Calculateur de fondu audio
Ce calculateur d’enveloppe audio convertit la durée d’un clip et les longueurs de deux fondus en points précis de temps et de gain pour une enveloppe de volume linéaire.
Lancer gratuitement
Il indique le silence, le gain maximal, la partie stable et le fondu final vers le silence, tout en supprimant les points redondants au même instant. Le résultat déterministe s’adapte à un éditeur, un script d’automatisation, une chaîne de rendu ou une étape de validation. Si les fondus demandés dépassent ensemble la durée disponible, le calcul s’arrête avec une erreur de saisie explicite.
Transformez trois durées en une enveloppe sans ambiguïté
Un fondu audio paraît simple à décrire, mais son encodage peut varier selon les outils. Ce calculateur reçoit la durée totale du clip ainsi que les longueurs des fondus d’entrée et de sortie, toutes exprimées en secondes. Il renvoie une liste ordonnée de points contenant chacun un temps et un gain linéaire. Un gain nul représente le silence, tandis qu’un gain égal à un conserve le niveau d’origine. Avec un fondu d’entrée, l’enveloppe part de zéro et atteint un à la fin de la transition. Avec un fondu de sortie, elle reste à un jusqu’au début de celui-ci, puis descend à zéro à la fin du clip. Un éditeur ou moteur de rendu peut interpoler linéairement les points consécutifs. Les fondus de longueur nulle sont traités explicitement : sans entrée progressive, le clip commence au gain maximal ; sans sortie progressive, il se termine ainsi. Les points simultanés sont fusionnés afin d’éviter des repères temporels dupliqués et ambigus.
Comprenez la règle de chevauchement et les cas limites
Les deux fondus partagent une seule chronologie finie ; la somme de leurs longueurs ne peut donc pas dépasser la durée du clip. Au-delà, le fondu d’entrée continuerait à monter alors que celui de sortie devrait déjà commencer, sans laisser de solution linéaire simple avec un passage au gain maximal. La capacité rejette ce cas comme une saisie non valide. L’égalité reste autorisée : lorsque les deux fondus remplissent exactement le clip, l’entrée atteint le gain maximal au même instant que le début de la sortie. Cet instant n’est représenté qu’une fois. Chaque champ numérique doit être fini ; les valeurs infinies, NaN, les chaînes et les champs absents sont refusés. La durée doit être strictement positive, tandis que chaque fondu peut être nul. Ces règles rendent les limites prévisibles et empêchent des réglages impossibles d’atteindre un moteur audio susceptible de les tronquer ou de les réinterpréter silencieusement.
Exploitez les points dans vos flux de montage et de rendu
Les points renvoyés décrivent une enveloppe de gain normalisée, et non des échantillons ou des décibels, ce qui les rend portables. Vous pouvez associer les temps à la chronologie d’un éditeur, convertir le gain linéaire en décibels si le système cible l’exige, ou générer des commandes d’automatisation pour un moteur de rendu hors ligne. La sortie ne modifie aucun son et n’analyse aucun fichier multimédia ; elle calcule uniquement la géométrie de contrôle à partir des durées fournies. Cette séparation convient aux systèmes qui préparent un montage avant le transfert des médias, valident un formulaire ou conservent une liste compacte de décisions pour un rendu ultérieur. Gardez l’ordre des points et interpolez les gains voisins pour un fondu linéaire. Si votre moteur emploie des millisecondes, multipliez chaque temps par mille lors de l’intégration. Pour une courbe logarithmique ou à puissance constante, utilisez ces points comme repères temporels.
Cas d’usage
Automatiser un éditeur
Convertissez les valeurs d’un formulaire en images clés de gain linéaire ordonnées sur la chronologie d’un clip.
Valider une tâche de rendu
Refusez des fondus impossibles avant qu’un moteur en attente ne charge et ne traite le média source.
Conserver des décisions de montage portables
Stockez une enveloppe normalisée compacte, adaptable ensuite aux secondes, millisecondes, décibels ou commandes propres à un moteur.
Questions fréquentes
Que représente la valeur de gain ?
Le gain est linéaire et normalisé : zéro correspond au silence et un au niveau source inchangé. Les valeurs intermédiaires sont interpolées linéairement.
Les deux fondus peuvent-ils se rejoindre exactement ?
Oui. Leurs longueurs peuvent égaler exactement la durée du clip et former un unique point de gain maximal à leur jonction.
Que se passe-t-il lorsqu’un fondu dure zéro seconde ?
Un fondu nul n’est pas représenté comme une rampe. La limite concernée conserve le gain maximal et aucun point redondant n’est ajouté.
Un fichier audio est-il traité ou transféré ?
Non. Le calcul temporel est déterministe et repose sur trois nombres, sans lecture ni modification d’un média audio.
Quel est le prix d’une requête API ?
Chaque requête API coûte $0.002. La version exécutée localement dans le navigateur fournit le même calcul d’enveloppe.
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/fade-in-out \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"duration":12,"fade_in":2.5,"fade_out":3}'const res = await fetch("https://api.kit.forhosting.com/audio/fade-in-out", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"duration": 12,
"fade_in": 2.5,
"fade_out": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/fade-in-out",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"duration": 12,
"fade_in": 2.5,
"fade_out": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/fade-in-out", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"duration":12,"fade_in":2.5,"fade_out":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"duration":12,"fade_in":2.5,"fade_out":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/fade-in-out", 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
{
"duration": 12,
"fade_in": 2.5,
"fade_out": 3
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.fade_in_out",
"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. |