ForHosting KIT · Audio & Voice

Compute multitrack mixdown gain from peaks and relative levels

This multitrack mixdown level calculator turns measured peak levels and creative balance weights into a precise gain setting for every track.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Enter each peak in dBFS and assign a non-negative weight that describes how loud its final peak should be relative to the others. The calculator normalizes the largest weight to 0 dBFS, converts every other ratio into decibels, and reports the required gain or attenuation. The result gives engineers, editors, podcasters, and automated audio pipelines a consistent starting balance without guessing at fader moves.

Describe the source peaks and the intended balance

Begin with a reliable peak reading for every track before adding mix-bus processing. Enter that value as peak_dbfs, using zero for digital full scale and negative values for peaks below it. Then assign each track a weight. A weight is a ratio, not a decibel value and not a percentage that must total one. For example, weights of 1, 0.5, and 0.25 ask for final linear peaks in a four-to-two-to-one relationship. Doubling every weight produces exactly the same balance because only their ratios matter. Names are preserved in the output so the settings can be mapped back to channels without relying on row positions. At least two tracks are required, and at least one weight must be positive. A zero weight deliberately mutes a track. Negative weights are invalid because a signed amplitude does not represent a usable level preference. Measure peaks over representative program material: an unrepresentative short section can produce mathematically correct settings that do not express the balance wanted across the full song, episode, or scene.

Understand how each gain value is calculated

The largest positive weight becomes the reference and receives a normalized weight of one. Its target peak is therefore 0 dBFS. Every other positive weight is divided by that maximum, and the resulting linear amplitude ratio is converted to decibels with 20 times the base-ten logarithm. The required gain is the target peak minus the measured input peak. Consider a track peaking at -6 dBFS with the largest weight: its target is 0 dBFS, so the reported gain is +6 dB. A track assigned half that weight has a target near -6.0206 dBFS; if it currently peaks at -3 dBFS, its gain is about -3.0206 dB. Values are rounded to six decimal places for stable, reproducible output. A zero-weight track is returned with muted set to true and no fictitious infinite decibel value. Because this method aligns peak amplitudes rather than loudness, it does not claim that two tracks with matching peaks will sound equally loud. Spectral density, dynamics, duration, and human perception still influence the artistic result.

Apply the settings safely in a real mixdown

Apply each reported gain_db as a trim before summing, or translate it into an equivalent fader adjustment when the signal path makes that more practical. The loudest requested individual peak lands at 0 dBFS, while the others land below it according to their weights. That normalization maximizes individual peak use, but it does not guarantee that the combined waveform will remain below full scale: simultaneous tracks add together, and correlated material can create a bus peak above any individual target. Preserve mix-bus headroom by lowering all non-muted tracks by the same additional amount after calculation, or use the result as a relative starting point and set the master gain during playback. Lowering every result equally retains the computed balance. Review the mix with meters and ears, especially when limiters, compressors, automation, or phase relationships follow the trim stage. For repeatable pipelines, store the original peaks, weights, and returned gains together. The API costs $0.002 per request, while the browser version can perform the same deterministic calculation locally. No audio file is uploaded or analyzed because the input is already-measured numeric data.

Set an initial music mix balance

Convert peak scans and producer-supplied ratios into repeatable trim values before detailed automation begins.

Balance podcast stems

Place voices, music, and room tone at defined relative peak targets before applying shared bus headroom.

Automate batch mix preparation

Generate deterministic per-track gains from measurements produced earlier in an offline audio workflow.

Do the weights need to add up to one?

No. Only the ratios matter. Weights of 1, 0.5, and 0.25 produce the same result as 4, 2, and 1.

What happens when a weight is zero?

That track is marked as muted. The response omits target and gain values instead of representing negative infinity as JSON.

Why are negative weights rejected?

A balance weight represents a non-negative amplitude ratio. A negative value cannot describe a conventional target peak level.

Will the summed mix stay below 0 dBFS?

Not necessarily. Several tracks can peak together and exceed the individual reference, so apply common bus headroom without changing their relative gains.

Does this calculate perceived loudness?

No. It balances measured peak amplitudes. Use LUFS measurements and listening review when perceived loudness is the goal.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/audio/multi-track-mixdown-levels

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

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}]}'
{
  "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": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "audio.multi_track_mixdown_levels",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_mb200
max_minutes180
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →