Effect Chains
Add, edit, bypass, reorder and remove the effects in a track, bus or master chain.
On this page5 tools
add_effectAppend an effect to a track's chain, pass scope "master" to put it on the master bus, where every track is summed, or scope "bus" with a bus name to put it on a bus made with create_bus. The chain is applied at render time and the source audio is never rewritten, so the parameters stay editable — unlike the destructive effect tools above, which bake their result into a new node.
Example prompt: put a limiter on the master at -1 dB
Returns: node_id, effect_index
An effect on the master bus processes the whole mix and keeps doing so when a track is edited later, which a mix rendered down into a new track does not. A bus processes what tracks send it with set_send, so an effect on a bus nothing sends to is not heard; name a bus by the name it was created with, or by its id if two share a name. Effects run in the order they appear in the chain. Only five kinds can stream today: gain, limiter, low_pass_filter, high_pass_filter and notch_filter. add_effect refuses any other kind, on a track, on a bus or on the master bus, with a message that lists the five and, for a kind that exists as a destructive tool (reverb, echo, eq, compressor and others), names that tool to call instead. It also refuses a parameter the kind does not read, naming it and listing the kind's own, rather than saving a setting the renderer would ignore. The names, which the schema also gives the model: gain has db; limiter has ceiling_db and release_ms; low_pass_filter and high_pass_filter have cutoff_hz; notch_filter has center_hz and q. Omitted ones use defaults.
set_effect_paramsEdit an effect already in a chain, on a track, on the master bus or on a bus. Given parameters are merged into the existing ones by default; pass replace to swap the whole set instead. A parameter name the effect's kind does not read is refused, with the kind's own names in the error. The names are the same as add_effect's: db for a gain, ceiling_db and release_ms for a limiter, cutoff_hz for the low-pass and high-pass filters, center_hz and q for the notch.
Example prompt: change that low-pass to 2 kHz
Returns: node_id
set_effect_bypassedTurn an effect off without removing it, on a track, on the master bus or on a bus. A bypassed effect renders byte-identically to one that is not there, so it is an A/B switch rather than an approximation.
Example prompt: bypass the compressor on track 1
Returns: node_id
reorder_effectsReorder a track's chain, the master bus's or a bus's. Takes a full permutation of the existing indices — a partial list is rejected rather than silently dropping effects.
Example prompt: put the EQ before the compressor
Returns: node_id
remove_effectRemove an effect from a track's chain, the master bus's or a bus's, by index.
Example prompt: take the reverb off the drums
Returns: node_id