Skip to content

Instrument Tracks & Presets

Instrument tracks host audio plugins that generate sound from MIDI input. Each instrument track has a plugin chain displayed in the Plugin Panel.

  1. Add a new MIDI track
  2. Open the Plugin Panel (double-click the track header or use the Plugin Manager)
  3. Select an instrument plugin from the browser
  4. The plugin loads into the track’s plugin chain

The plugin receives MIDI from the track and outputs audio to the mixer.

Each track has a plugin chain rendered in the Plugin Panel:

MIDI Input → [Instrument] → [Effect 1] → [Effect 2] → ... → Mixer Channel

The first slot is reserved for an instrument plugin (if the track is MIDI). Subsequent slots are for audio effects (EQ, compression, reverb, etc.).

The Plugin Panel displays plugins horizontally at the bottom of the screen:

PropertyValue
Default height200 px
Minimum height120 px
Maximum height400 px

The panel is resizable by dragging the top edge.

The Plugin Panel can display plugins for:

TargetDescription
TrackInstrument or audio track (selected by track ID)
FX ChannelSend effect channel
Output ChannelOutput bus
MasterMaster channel

Each plugin can display its native UI. Click a plugin in the chain to open its editor window. Plugin UIs are rendered using:

Plugin TypeUI Method
AUNative NSView (AudioUnit custom view)
VST3IPlugView (platform-native window)
CLAPclap_plugin_gui (native or embedded)
InternalWebview (HTML/JS/CSS GUI)

Built-in Plinken plugins (like Synome and Sampler) use a webview-based GUI. The GUI communicates with the audio engine via IPC messages:

Message DirectionContent
GUI → EngineParameter changes, preset requests
Engine → GUIParameter updates, state sync

The preset browser shows available presets for the selected plugin. Presets can come from:

SourceDescription
FactoryShipped with the plugin
UserSaved by the user
CloudPublished to the Plinken cloud via plugins:publish-patch

Save the current plugin state as a preset:

  • User presets are stored locally
  • Published presets are shared to the cloud
-- Publish the current plugin preset to the cloud
pl.cmd("plugins:publish-patch")

This uploads the current instrument state (all parameter values) to the Plinken preset cloud, making it available to other users.

-- Open plugin manager to browse instruments
pl.cmd("plugins:open-audio-plugins")
-- Publish current preset
pl.cmd("plugins:publish-patch")
-- Set plugin panel visibility
plinken.set("plugin_panel", "visible", true)
-- Set plugin panel height
plinken.set("plugin_panel", "panel_height", 250)

Instrument plugins receive MIDI from multiple sources:

SourceDescription
MIDI regionsRecorded or drawn MIDI notes on the timeline
MIDI input deviceExternal MIDI keyboard or controller
Music KeysVirtual on-screen keyboard (Cmd+Shift+K)
ArpeggiatorBuilt-in arp generating note patterns
Lua scriptsProgrammatic MIDI generation
MIDI Source
MIDI Track (quantize, transpose)
Instrument Plugin (note → audio)
Effect Chain (EQ, comp, reverb)
Track Output → Mixer Channel
FX Sends → FX Returns
Master Bus → Audio Output