Calculer le gain et les niveaux relatifs d’un mixage multipiste
Ce calculateur de niveaux multipistes transforme les crêtes mesurées et les poids de balance souhaités en un réglage de gain précis pour chaque piste.
Lancer gratuitement
Saisissez chaque crête en dBFS, puis attribuez un poids non négatif indiquant la hauteur de sa crête finale par rapport aux autres. Le calculateur normalise le poids maximal à 0 dBFS, convertit les autres rapports en décibels et fournit le gain ou l’atténuation nécessaire. Ingénieurs du son, monteurs, podcasteurs et chaînes automatisées disposent ainsi d’une base cohérente sans procéder par tâtonnements sur les faders.
Décrivez les crêtes sources et la balance voulue
Commencez par relever une crête fiable sur chaque piste avant tout traitement du bus de mixage. Saisissez cette mesure dans peak_dbfs : zéro correspond au maximum numérique, tandis qu’une valeur négative décrit une crête inférieure. Attribuez ensuite un poids à chaque piste. Ce poids est un rapport, et non une valeur en décibels ni un pourcentage devant totaliser un. Ainsi, les poids 1, 0.5 et 0.25 demandent des crêtes linéaires finales selon un rapport quatre-deux-un. Multiplier tous les poids par le même nombre ne change rien, car seuls leurs rapports comptent. Les noms sont conservés dans le résultat afin de reporter chaque réglage sur le bon canal sans dépendre de l’ordre des lignes. Il faut au moins deux pistes et un poids positif. Un poids nul coupe volontairement la piste. Tout poids négatif est refusé, car une amplitude signée ne représente pas une préférence de niveau exploitable. Mesurez un passage représentatif : un extrait atypique peut fournir un calcul juste qui ne convient pourtant pas à l’ensemble du programme.
Comprenez le calcul de chaque gain
Le poids positif le plus élevé sert de référence et reçoit un poids normalisé égal à un. Sa crête cible vaut donc 0 dBFS. Chaque autre poids positif est divisé par ce maximum, puis le rapport d’amplitude linéaire obtenu est converti en décibels en multipliant son logarithme décimal par 20. Le gain requis correspond à la crête cible moins la crête mesurée. Une piste culminant à -6 dBFS avec le poids maximal vise 0 dBFS et reçoit donc +6 dB. Une piste dont le poids vaut la moitié vise environ -6.0206 dBFS ; si elle culmine actuellement à -3 dBFS, son gain approche -3.0206 dB. Les valeurs sont arrondies à six décimales pour garantir une sortie stable et reproductible. Une piste de poids nul renvoie muted à vrai, sans inventer une valeur infinie. Cette méthode aligne les amplitudes de crête, pas la sonie : densité spectrale, dynamique, durée et perception humaine continuent de façonner le rendu artistique.
Appliquez les réglages sans compromettre le mixage
Appliquez chaque gain_db comme trim avant la sommation, ou traduisez-le en déplacement de fader équivalent si votre chaîne le demande. La piste au poids maximal atteint 0 dBFS et les autres restent en dessous selon leurs rapports. Cette normalisation exploite la plage de chaque piste, mais ne garantit pas que leur somme restera sous le maximum numérique : des pistes simultanées s’additionnent et des signaux corrélés peuvent créer une crête de bus supérieure à chaque cible individuelle. Conservez de la marge en abaissant toutes les pistes actives de la même quantité après le calcul, ou utilisez ce résultat comme balance relative initiale puis réglez le master à l’écoute. Une réduction commune préserve exactement les rapports calculés. Contrôlez le mixage aux instruments et à l’oreille, surtout si limiteurs, compresseurs, automation ou déphasages interviennent ensuite. Pour un processus reproductible, archivez ensemble crêtes, poids et gains. L’API coûte $0.002 par requête ; le navigateur exécute localement le même calcul déterministe. Aucun fichier audio n’est transmis ni analysé, puisque les mesures numériques constituent déjà l’entrée.
Cas d’usage
Préparer une balance musicale
Transformez les relevés de crête et les rapports du producteur en trims reproductibles avant l’automation fine.
Équilibrer les pistes d’un podcast
Placez voix, musique et ambiance sur des cibles relatives définies avant d’ajouter une marge commune.
Automatiser la préparation par lots
Produisez des gains déterministes par piste à partir de mesures réalisées auparavant hors ligne.
Questions fréquentes
Les poids doivent-ils totaliser un ?
Non. Seuls les rapports comptent. Les poids 1, 0.5 et 0.25 donnent le même résultat que 4, 2 et 1.
Que se passe-t-il avec un poids nul ?
La piste est indiquée comme coupée ; cible et gain sont omis au lieu d’inscrire l’infini négatif dans JSON.
Pourquoi les poids négatifs sont-ils refusés ?
Un poids représente un rapport d’amplitude non négatif ; une valeur négative ne décrit pas une crête cible conventionnelle.
La somme restera-t-elle sous 0 dBFS ?
Pas forcément. Plusieurs crêtes peuvent coïncider ; appliquez donc une marge commune sans modifier les gains relatifs.
Ce calcul mesure-t-il la sonie perçue ?
Non. Il équilibre les amplitudes de crête mesurées. Utilisez des mesures LUFS et une écoute critique pour évaluer la sonie.
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/multi-track-mixdown-levels \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"tracks":[{"name":"Lead vocal","peak_dbfs":-6,"weight":1},{"name":"Music bed","peak_dbfs":-3,"weight":0.5},{"name":"Room","peak_dbfs":-12,"weight":0.25}]}'const res = await fetch("https://api.kit.forhosting.com/audio/multi-track-mixdown-levels", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"tracks": [
{
"name": "Lead vocal",
"peak_dbfs": -6,
"weight": 1
},
{
"name": "Music bed",
"peak_dbfs": -3,
"weight": 0.5
},
{
"name": "Room",
"peak_dbfs": -12,
"weight": 0.25
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/multi-track-mixdown-levels",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"tracks": [
{
"name": "Lead vocal",
"peak_dbfs": -6,
"weight": 1
},
{
"name": "Music bed",
"peak_dbfs": -3,
"weight": 0.5
},
{
"name": "Room",
"peak_dbfs": -12,
"weight": 0.25
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/multi-track-mixdown-levels", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"tracks":[{"name":"Lead vocal","peak_dbfs":-6,"weight":1},{"name":"Music bed","peak_dbfs":-3,"weight":0.5},{"name":"Room","peak_dbfs":-12,"weight":0.25}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"tracks":[{"name":"Lead vocal","peak_dbfs":-6,"weight":1},{"name":"Music bed","peak_dbfs":-3,"weight":0.5},{"name":"Room","peak_dbfs":-12,"weight":0.25}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/multi-track-mixdown-levels", 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
{
"tracks": [
{
"name": "Lead vocal",
"peak_dbfs": -6,
"weight": 1
},
{
"name": "Music bed",
"peak_dbfs": -3,
"weight": 0.5
},
{
"name": "Room",
"peak_dbfs": -12,
"weight": 0.25
}
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.multi_track_mixdown_levels",
"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. |