Calculez le fondu enchaîné d’une boucle audio parfaite
Ce calculateur de fondu enchaîné transforme la durée d’une piste et le chevauchement souhaité en deux repères pratiques : l’instant où la fin sortante doit commencer à se fondre dans le début répété, puis la durée perçue entre deux positions équivalentes de la boucle.
Lancer gratuitement
Tout fondu dépassant la moitié de la source est refusé. Aucun son n’est transféré, décodé, analysé ou modifié ; vous obtenez des temps déterministes pour un éditeur, un échantillonneur, un jeu, une installation ou un flux multimédia automatisé.
Placez le chevauchement à la fin de la source
Un fondu de boucle fait jouer simultanément la dernière partie d’une piste et le début de sa répétition suivante. Indiquez la durée complète en secondes et le chevauchement retenu. Le calculateur soustrait le fondu de la durée afin d’en trouver le début. Pour une piste de 120 secondes et un chevauchement de 5 secondes, la zone sortante commence à 115 secondes. Jusqu’à la fin, sa puissance diminue pendant qu’une copie du début monte. La réponse nomme ce repère crossfade_start_seconds ; vous pouvez donc l’utiliser comme marqueur, décision de montage, réglage d’échantillonneur ou instruction de rendu. Les deux valeurs doivent être exprimées en secondes sur la même chronologie. L’outil ne choisit pas un point musical, n’examine pas la phase, ne détecte pas le tempo et ne juge pas la compatibilité du début et de la fin. Ces choix créatifs et acoustiques restent distincts : ce résultat fournit la fenêtre exacte après que vous avez choisi sa longueur.
Comprenez la durée perçue de la boucle
Le fondu superpose un intervalle qui serait autrement lu deux fois de suite. L’auditeur ne perçoit donc pas toute la durée de la source entre deux positions équivalentes de passages consécutifs. La durée perçue correspond à la durée de la piste moins celle du fondu ; elle est égale au point de départ lorsque la piste commence à zéro. Une source de 120 secondes avec un fondu de 5 secondes se répète ainsi toutes les 115 secondes : pendant les cinq dernières secondes, les cinq premières du passage suivant jouent déjà. Cette valeur sert à synchroniser animation, éclairage, événements de jeu, marqueurs de transport ou autres systèmes répétitifs sur le cycle audible plutôt que sur la longueur du fichier. Un fondu nul est valide et laisse les deux résultats égaux à la durée originale. La sortie reste en secondes décimales, sans conversion en échantillons ni en timecode. Pour une précision à l’échantillon, convertissez le résultat avec la fréquence du projet et sa règle d’arrondi.
Conservez un fondu dans une plage exploitable
Le chevauchement peut être nul, mais jamais négatif ni supérieur à la moitié de la piste. Cette limite empêche les zones d’ouverture et de fermeture de traverser le centre et de se disputer le même contenu. Une piste de 30 secondes accepte donc au plus 15 secondes et refuse toute valeur supérieure. La moitié exacte reste autorisée : le départ et le cycle perçu valent alors 15 secondes. Les deux entrées doivent être des nombres finis et la durée doit être strictement positive. Pour une synchronisation précise, utilisez la durée mesurée plutôt qu’un affichage arrondi. Cette capacité effectue uniquement un calcul temporel : elle ne produit pas de courbes linéaires ou à puissance constante, ne corrige pas la latence, ne coupe pas le silence, n’aligne pas les transitoires et ne garantit pas une jonction inaudible. Après avoir placé la fenêtre, écoutez la transition et contrôlez niveau, phase, rythme, ambiance et sortie encodée. Le calcul fonctionne directement dans le navigateur ; chaque requête automatisée via API coûte $0.002.
Cas d’usage
Placer des marqueurs dans un éditeur
Transformez le chevauchement choisi en marqueur précis et en durée de cycle avant d’appliquer les courbes.
Synchroniser un jeu ou une installation
Cadencez images, événements ou éclairages répétitifs sur la durée perçue d’une bande-son superposée.
Préparer un manifeste par lots
Calculez des fenêtres reproductibles pour des pistes connues avant leur traitement par un moteur audio.
Questions fréquentes
Quelle formule détermine le début du fondu ?
Le début est égal à la durée de la piste moins celle du fondu. Les deux valeurs sont exprimées en secondes.
Pourquoi la boucle perçue est-elle plus courte que la source ?
La fin et le nouveau début jouent ensemble pendant le chevauchement ; cet intervalle partagé ne compte donc qu’une fois.
Le fondu peut-il occuper la moitié de la piste ?
Oui. La moitié exacte est acceptée ; seule une valeur supérieure à la moitié est refusée.
L’outil crée-t-il ou traite-t-il un fichier audio ?
Non. Il calcule uniquement des positions temporelles, sans transférer, décoder, examiner ni modifier le son.
Choisit-il la meilleure courbe ou le meilleur point de boucle ?
Non. Choisissez et écoutez ces réglages dans votre éditeur ; le calculateur donne la fenêtre demandée.
Quel est le prix d’un calcul par API ?
Chaque requête via API coûte $0.002 ; le même calcul déterministe est disponible directement dans le navigateur.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"track_duration_seconds": 120,
"crossfade_length_seconds": 5
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.loop_point_crossfade_calc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 200 |
max_minutes | 180 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |