Calcule el fundido cruzado para un bucle perfecto
Esta calculadora de fundido cruzado para bucles convierte la duración de una pista y el solapamiento deseado en dos valores prácticos de la línea de tiempo: el punto donde el final saliente debe empezar a fundirse con el comienzo repetido y la duración que se percibe entre posiciones equivalentes de cada vuelta.
Ejecutar — gratis
Rechaza cualquier fundido superior a la mitad de la fuente. No carga, decodifica, analiza ni modifica el audio; entrega tiempos deterministas para editores, samplers, videojuegos, instalaciones y flujos multimedia automatizados.
Sitúe el solapamiento al final de la fuente
Un fundido de bucle reproduce a la vez el tramo final de una pista y el comienzo de su siguiente vuelta. Introduzca la duración completa en segundos y el solapamiento elegido. La calculadora resta el fundido de la duración para localizar su inicio. En una pista de 120 segundos con 5 segundos de solapamiento, la región saliente comienza en el segundo 115. Desde allí hasta el final, el cierre pierde nivel mientras una copia del comienzo lo gana. La respuesta denomina este punto crossfade_start_seconds, de modo que usted puede usarlo como marcador, decisión de edición, ajuste de sampler o instrucción de renderizado. Ambos datos deben estar en segundos y referirse a la misma línea temporal. La herramienta no elige un punto musical, no examina la fase, no detecta pulsos ni juzga si principio y final combinan bien. Esas decisiones creativas y acústicas son independientes; el resultado proporciona la ventana exacta después de que usted haya escogido el solapamiento.
Interprete la duración percibida del bucle
El fundido superpone tiempo que, sin él, sonaría de forma consecutiva. Por eso el oyente no percibe toda la duración de la fuente entre posiciones equivalentes de vueltas sucesivas. La duración percibida es la duración de la pista menos el fundido, y coincide con el punto inicial cuando la pista arranca en cero. Una fuente de 120 segundos con 5 segundos de fundido repite cada 115 segundos: durante los últimos cinco segundos ya suenan los cinco primeros de la vuelta siguiente. Este valor permite sincronizar animación, iluminación, acciones de juego, marcadores de transporte u otros sistemas repetitivos con el ciclo audible, no con la longitud del archivo original. Un fundido de longitud cero es válido y deja ambos resultados iguales a la duración de la pista. La salida usa segundos decimales; no los convierte a muestras ni a código de tiempo. Para límites exactos por muestra, convierta los segundos mediante la frecuencia del proyecto y aplique la política de redondeo de su sistema.
Mantenga el fundido dentro de un intervalo válido
El solapamiento puede ser cero, pero no negativo ni superior a la mitad de la pista. Este límite evita que las regiones inicial y final atraviesen el centro y compitan por el mismo material. Una pista de 30 segundos admite como máximo 15 segundos y rechaza cualquier valor mayor. La mitad exacta sí es válida y produce un inicio y un ciclo percibido de 15 segundos. Los dos campos deben ser números finitos y la duración tiene que ser positiva. Cuando la sincronización sea crítica, use la duración medida de la fuente, no una etiqueta redondeada. Esta capacidad solo hace aritmética temporal: no genera curvas lineales o de potencia constante, no compensa latencia, no recorta silencio, no alinea transitorios ni comprueba que la unión sea imperceptible. Después de colocar la ventana, escuche la transición y revise nivel, fase, ritmo, ambiente y cualquier salida codificada. El cálculo funciona directamente en el navegador; cada solicitud automatizada por API cuesta $0.002.
Qué puede hacer con ella
Definir marcadores en un editor
Convierta el solapamiento elegido en un marcador exacto al final y en la duración del ciclo antes de aplicar las curvas.
Sincronizar un juego o una instalación
Programe imágenes, acciones o luces repetitivas con la duración percibida de una banda sonora solapada.
Crear un manifiesto por lotes
Calcule ventanas reproducibles para pistas de duración conocida antes de enviarlas a un renderizador de audio.
Preguntas frecuentes
¿Qué fórmula determina el inicio del fundido?
El inicio es la duración de la pista menos la longitud del fundido. Ambos valores se expresan en segundos.
¿Por qué el bucle percibido es más corto que la fuente?
El final y el nuevo comienzo suenan simultáneamente durante el solapamiento, así que ese intervalo compartido solo cuenta una vez.
¿Puede el fundido ocupar la mitad de la pista?
Sí. La mitad exacta se acepta; solo se rechaza un valor superior a la mitad de la duración.
¿La herramienta crea o procesa archivos de audio?
No. Solo calcula posiciones temporales; no carga, decodifica, examina ni modifica audio.
¿Elige la mejor curva o el mejor punto de bucle?
No. Elija y escuche esos ajustes en su editor; la calculadora entrega la ventana del solapamiento que usted indicó.
¿Cuánto cuesta un cálculo por API?
Cada solicitud por API cuesta $0.002; el mismo cálculo determinista puede ejecutarse directamente en el navegador.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/audio/loop-point-crossfade-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"track_duration_seconds":120,"crossfade_length_seconds":5}'const res = await fetch("https://api.kit.forhosting.com/audio/loop-point-crossfade-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"track_duration_seconds": 120,
"crossfade_length_seconds": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/loop-point-crossfade-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"track_duration_seconds": 120,
"crossfade_length_seconds": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/loop-point-crossfade-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"track_duration_seconds":120,"crossfade_length_seconds":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"track_duration_seconds":120,"crossfade_length_seconds":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/loop-point-crossfade-calc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"track_duration_seconds": 120,
"crossfade_length_seconds": 5
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.loop_point_crossfade_calc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 200 |
max_minutes | 180 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |