Skip to content

Mixer

The Mixer provides a console-style view of all tracks and channels with faders, pan controls, effects chains, and routing. Open it with ⇧M or from View > Mixer.

PropertyTypeDefaultDescription
visibleboolfalseWhether the Mixer panel is shown
-- Toggle mixer visibility
pl.cmd("mixer:toggle-visible")
-- Check if mixer is visible
local visible = plinken.get("mixer", "visible")

The mixer has several channel types, each serving a different role in the signal chain:

Every timeline track appears as a channel strip in the mixer. Track channel state is stored directly on the Track struct.

PropertyTypeDefaultRangeDescription
volumef641.00.0–2.0Output level (1.0 = unity gain)
panf640.0−1.0–+1.0Stereo position
muteboolfalseSilence the track output
soloboolfalseIsolate for monitoring
is_monoboolfalseMono channel mode
instrumentPluginRef?NoneInstrument plugin (MIDI tracks)
effectsPluginRef[][]Effect plugin chain

Eight FX return channels for parallel effects processing. Tracks send audio to FX channels via aux sends, and FX returns are mixed into the master output.

Four stereo output channels for multi-output routing. Tracks can be routed to different outputs via output_routing.

The master channel controls the final stereo output level. All track and FX return channels are summed into the master before reaching the audio output.

FX return, output, and master channels share the same state structure:

PropertyTypeDefaultDescription
volumef641.0Channel output level (0.0–2.0)
panf640.0Stereo position (−1.0 to +1.0)
muteboolfalseMute the channel
soloboolfalseSolo the channel
effectsPluginRef[][]Effect plugin chain
CommandShortcutDescription
mixer:toggle-visible⇧MShow or hide the Mixer panel
CommandDescription
mixer:set-channel-volumeSet volume for FX/output/master channel
mixer:set-channel-panSet pan for FX/output/master channel
mixer:toggle-channel-muteToggle mute for FX/output/master channel
mixer:toggle-channel-soloToggle solo for FX/output/master channel
CommandDescription
mixer:add-effectAdd effect plugin to FX/output/master channel
mixer:remove-effectRemove effect from FX/output/master channel
mixer:reorder-effectReorder effect in channel’s plugin chain
CommandShortcutDescription
track:set-volumeSet track volume
track:set-panSet track pan
track:toggle-muteToggle track mute
track:toggle-soloToggle track solo
track:toggle-monoToggle mono/stereo
track:toggle-recordToggle record arm
track:select-prevSelect previous track
track:select-nextSelect next track
track:add-effectAdd effect to track
track:remove-effectRemove effect from track
track:reorder-effectReorder effect in chain
-- Set track 1 volume to 80%
pl.cmd("track:set-volume", { track_id = 1, volume = 0.8 })
-- Pan track 2 hard left
pl.cmd("track:set-pan", { track_id = 2, pan = -1.0 })
-- Mute track 3
pl.cmd("track:toggle-mute", { track_id = 3 })
-- Solo track 4
pl.cmd("track:toggle-solo", { track_id = 4 })
-- Set FX return 1 volume
pl.cmd("mixer:set-channel-volume", {
channel_type = "fx",
index = 0,
volume = 0.7
})
-- Set master channel pan
pl.cmd("mixer:set-channel-pan", {
channel_type = "master",
index = 0,
pan = 0.0
})
-- Mute output channel 2
pl.cmd("mixer:toggle-channel-mute", {
channel_type = "output",
index = 1
})
-- Solo FX return 3
pl.cmd("mixer:toggle-channel-solo", {
channel_type = "fx",
index = 2
})
-- Add an effect to track 1
pl.cmd("track:add-effect", {
track_id = 1,
plugin_id = "com.fabfilter.Pro-Q-3",
format = "AU"
})
-- Add an effect to FX return channel 1
pl.cmd("mixer:add-effect", {
channel_type = "fx",
index = 0,
plugin_id = "com.valhalla.ValhallaRoom",
format = "AU"
})
-- Add an effect to the master channel
pl.cmd("mixer:add-effect", {
channel_type = "master",
index = 0,
plugin_id = "com.fabfilter.Pro-L-2",
format = "AU"
})
-- Remove an effect by index
pl.cmd("mixer:remove-effect", {
channel_type = "fx",
index = 0,
effect_index = 0
})
-- Reorder an effect in the chain
pl.cmd("mixer:reorder-effect", {
channel_type = "master",
index = 0,
from = 0,
to = 2
})

Tracks can send audio to bus tracks at adjustable levels. Each send has a level and a pre/post fader toggle.

CommandDescription
track:add-sendAdd a group send to a track
track:remove-sendRemove a group send
track:set-send-levelSet send level
-- Add a send from track 1 to bus
pl.cmd("track:add-send", {
track_id = 1,
target = "bus-1",
level = 0.5
})
-- Adjust send level
pl.cmd("track:set-send-level", {
track_id = 1,
send_index = 0,
level = 0.7
})

Each track has 8 fixed aux send slots for routing to the FX return channels. Each aux send has:

  • Level — Send amount (0.0–1.0)
  • Pre/Post — Whether the send is pre-fader or post-fader (controlled by a bitmask)
-- Set aux send 1 level on track 1
pl.cmd("track:set-aux-send", {
track_id = 1,
send_index = 0,
level = 0.4
})

Tracks can be routed to different output channels:

Routing ValueDescription
"stereo-out"Default stereo output
"bus-1" .. "bus-16"Bus tracks
"device-1-2"Hardware output pair 1-2
"device-3-4"Hardware output pair 3-4
-- Route track to bus 1
pl.cmd("track:set-output-routing", {
track_id = 1,
routing = "bus-1"
})

The mixer captures live plugin state for all channel effects before saving. Plugin state is serialized as base64-encoded data in the PluginRef.state field, supporting AU and CLAP plugins.

ShortcutCommandDescription
⇧Mmixer:toggle-visibleToggle Mixer panel
track:select-prevSelect previous track
track:select-nextSelect next track
CommandDescription
mixer:toggle-visibleShow/hide Mixer panel
mixer:set-channel-volumeSet FX/output/master volume
mixer:set-channel-panSet FX/output/master pan
mixer:toggle-channel-muteToggle FX/output/master mute
mixer:toggle-channel-soloToggle FX/output/master solo
mixer:add-effectAdd effect to FX/output/master
mixer:remove-effectRemove effect from FX/output/master
mixer:reorder-effectReorder effect in FX/output/master chain
track:set-volumeSet track volume
track:set-panSet track pan
track:toggle-muteToggle track mute
track:toggle-soloToggle track solo
track:toggle-monoToggle track mono/stereo
track:add-effectAdd effect to track chain
track:remove-effectRemove effect from track chain
track:reorder-effectReorder effect in track chain
track:add-sendAdd group send
track:remove-sendRemove group send
track:set-send-levelSet group send level
track:set-aux-sendSet FX aux send level
track:set-output-routingSet track output routing