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.
Creating an Instrument Track
Section titled “Creating an Instrument Track”- Add a new MIDI track
- Open the Plugin Panel (double-click the track header or use the Plugin Manager)
- Select an instrument plugin from the browser
- The plugin loads into the track’s plugin chain
The plugin receives MIDI from the track and outputs audio to the mixer.
Plugin Chain
Section titled “Plugin Chain”Each track has a plugin chain rendered in the Plugin Panel:
MIDI Input → [Instrument] → [Effect 1] → [Effect 2] → ... → Mixer ChannelThe first slot is reserved for an instrument plugin (if the track is MIDI). Subsequent slots are for audio effects (EQ, compression, reverb, etc.).
Plugin Panel Layout
Section titled “Plugin Panel Layout”The Plugin Panel displays plugins horizontally at the bottom of the screen:
| Property | Value |
|---|---|
| Default height | 200 px |
| Minimum height | 120 px |
| Maximum height | 400 px |
The panel is resizable by dragging the top edge.
Selecting Channels
Section titled “Selecting Channels”The Plugin Panel can display plugins for:
| Target | Description |
|---|---|
| Track | Instrument or audio track (selected by track ID) |
| FX Channel | Send effect channel |
| Output Channel | Output bus |
| Master | Master channel |
Plugin UI
Section titled “Plugin UI”Each plugin can display its native UI. Click a plugin in the chain to open its editor window. Plugin UIs are rendered using:
| Plugin Type | UI Method |
|---|---|
| AU | Native NSView (AudioUnit custom view) |
| VST3 | IPlugView (platform-native window) |
| CLAP | clap_plugin_gui (native or embedded) |
| Internal | Webview (HTML/JS/CSS GUI) |
Internal Plugin Webview
Section titled “Internal Plugin Webview”Built-in Plinken plugins (like Synome and Sampler) use a webview-based GUI. The GUI communicates with the audio engine via IPC messages:
| Message Direction | Content |
|---|---|
| GUI → Engine | Parameter changes, preset requests |
| Engine → GUI | Parameter updates, state sync |
Presets
Section titled “Presets”Browsing Presets
Section titled “Browsing Presets”The preset browser shows available presets for the selected plugin. Presets can come from:
| Source | Description |
|---|---|
| Factory | Shipped with the plugin |
| User | Saved by the user |
| Cloud | Published to the Plinken cloud via plugins:publish-patch |
Saving Presets
Section titled “Saving Presets”Save the current plugin state as a preset:
- User presets are stored locally
- Published presets are shared to the cloud
Publishing Patches
Section titled “Publishing Patches”-- Publish the current plugin preset to the cloudpl.cmd("plugins:publish-patch")This uploads the current instrument state (all parameter values) to the Plinken preset cloud, making it available to other users.
Lua API
Section titled “Lua API”-- Open plugin manager to browse instrumentspl.cmd("plugins:open-audio-plugins")
-- Publish current presetpl.cmd("plugins:publish-patch")
-- Set plugin panel visibilityplinken.set("plugin_panel", "visible", true)
-- Set plugin panel heightplinken.set("plugin_panel", "panel_height", 250)MIDI Input
Section titled “MIDI Input”Instrument plugins receive MIDI from multiple sources:
| Source | Description |
|---|---|
| MIDI regions | Recorded or drawn MIDI notes on the timeline |
| MIDI input device | External MIDI keyboard or controller |
| Music Keys | Virtual on-screen keyboard (Cmd+Shift+K) |
| Arpeggiator | Built-in arp generating note patterns |
| Lua scripts | Programmatic MIDI generation |
Signal Flow
Section titled “Signal Flow”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 OutputRelated
Section titled “Related”- Plugins Overview — Plugin formats and types
- Plugin Manager — Scanning and validation
- Synome — Built-in synthesizer
- MIDI — MIDI tracks, events, and recording