Volume and Dynamics
Gain, fades, envelopes, buses and sends, loudness, and dynamics processors.
On this page15 tools
gainApply a static dB gain to a region of a track. Range: −60 to +12 dB.
Example prompt: boost the vocals by 3 dB
Returns: node_id
set_track_gainSet the overall gain level for an entire track.
Example prompt: set track 2 gain to -3 dB
Returns: node_id
create_busCreate a mix bus with its own effect chain. Tracks feed it through sends, so one chain of effects can serve several tracks instead of being applied to each. A new bus has no effects: add them with add_effect and scope "bus".
Example prompt: make a bus for the drums
Returns: node_id, bus_id
set_sendRoute a track to a bus at a given level in dB. The send is tapped after the track's own gain and pan.
Example prompt: send the vocal to the Vocals bus at -6 dB
Returns: node_id
remove_sendRemove a track's send to a bus, leaving both the track and the bus in place.
Example prompt: stop sending the vocal to the Vocals bus
Returns: node_id
normalizeScan a track for its peak amplitude and set its gain so the peak lands on target_dbfs. Peak-based — two files normalised to the same peak can still differ by 10 LUFS in perceived loudness, so use normalize_loudness when the goal is 'as loud as everything else'.
Example prompt: normalize the peak to -1 dBFS
Returns: node_id, applied_gain_db
normalize_loudnessSet gain so the track hits an integrated LUFS target, measured with EBU R128. Takes either a number or a platform by name — spotify, youtube, apple_podcasts, broadcast — so the target does not have to be remembered. Gain is capped at a true-peak ceiling (−1 dBFS by default) so it never clips getting there; when the cap bites, the result reports the shortfall rather than claiming success.
Example prompt: normalize for Spotify
Returns: node_id, measured_lufs, preset, applied_gain_db, achieved_lufs, shortfall_db, capped_by_ceiling
Presets: spotify / youtube −14 LUFS, apple_podcasts −16, broadcast −23. A custom target_lufs still works.
fadeApply a fade-in or fade-out envelope. Curve options: linear, exponential, logarithmic.
Example prompt: add a 3-second fade-out
Returns: node_id
set_clip_envelopeSet a per-clip volume automation curve. Provide (time_sec, gain_db) pairs and the engine linearly interpolates between them.
Example prompt: set a volume fade: track 0 clip 0, from 0s at -20dB to 2s at 0dB
Returns: node_id
duck_under_speechDrop a music track under the speech and bring it back in the gaps. A sidechain compressor keys on level, so a breath triggers it and a quiet line escapes it. This keys on where the speech is instead: on the transcript when there is one, and otherwise on the voice_tracks you name, where it follows the voiced (pitched) sound in their audio, so a breath, a click or hiss does not trigger it. It also ducks slightly before each line starts, which a level trigger cannot do — it only knows a line began after it has. A voice track that carries music reads as speech throughout, so name the voice alone; loud low rumble reads as speech too, and a fan that runs for part of a track is ducked under for as long as it runs.
Example prompt: duck the music under the voiceover
Returns: node_id, passages, ducks, clips, keyed_on, speech_sec, voice_tracks (when keyed on audio)
The result is an ordinary volume-automation curve on the music clip, so it is visible in the automation lane and draggable if a duck lands wrong. Short pauses inside a sentence do not un-duck: bringing the music up for a comma is a pump, not an edit.
limiterPeak limiter: turns the gain down just enough that no sample exceeds ceiling_db, then lets it recover smoothly over release_ms (default 80). Transients are tamed without the harmonic distortion of hard clipping, and all channels share one gain so the stereo image holds. Zero latency; a sample-peak ceiling, not an inter-sample true-peak one. This edit is baked into one track; to limit the whole mix and keep it limited as tracks change, use add_effect with scope "master".
Example prompt: limit track 1 to -1 dBFS
Returns: node_id
noise_gateApply a noise gate: audio below threshold_db is silenced. attack_ms and release_ms control how fast the gate opens/closes.
Example prompt: gate anything below -45 dB
Returns: node_id
levelerApply dynamic leveling: normalise each short window to a target RMS level. Reduces variation between loud and quiet passages.
Example prompt: even out the levels on track 1
Returns: node_id
de_esserReduce harsh sibilant 's' and 'sh' sounds. frequency_hz sets where sibilance detection begins (default 7000Hz); threshold_db is the compression trigger level.
Example prompt: take the harshness off the s sounds
Returns: node_id
truncate_silenceFind and remove silent regions in a track. threshold_db is the silence floor; min_silence_ms is the minimum gap duration to remove.
Example prompt: remove the long pauses
Returns: node_id