xtc/docs/TRACK_INSERTS.md

2.8 KiB
Raw Blame History

Track inserts

The sequencer's Create dropdown groups track creation, WAV import and instrument loading. View → Track inspector opens the optional inspector; it is hidden when the application starts to leave more room for editing.

Project format 17 stores up to eight effect slots per track, their order, bypass, wet amount and chain output gain. Formats 1–16 read with empty chains. Metadata load, clone and history never open executable plugin modules. Track move, duplicate and removal retain the association with stable track IDs. Nonempty bus chains are rejected. The model accepts mono effect specifications for LADSPA, VST2, VST3, CLAP and internal effects; this alone does not establish that a third-party binary is compatible with the host.

The chain API is declared in xtc_plugin.h. Setter errors preserve the old chain; plugin identity and layout are checked when preparing playback.

Playback prepares an independent serial graph for each affected track. Audio clips on the same track sum before its effects; instrument and scheduled MIDI contributions also pass through their track graph. Effects run before track and bus gain/pan, and meters observe their output. Wet/dry uses parallel gain branches. Internal effect history resets at timeline discontinuities.

Each renderer owns its plans and preallocated raw buffers (up to 256 KiB per affected track); processing uses blocks of at most 256 frames, with no host allocation or I/O. Mono effect adapters require zero reported latency. External plugin state on seeks follows the existing host contract. Bus inserts and tracks containing both audio assets and MIDI reject preparation explicitly. Live unassigned sine monitoring remains a separate master input.

Open View → Track inserts (Ctrl+4) and choose a track. Add effect offers internal Delay/Reverb and the plugin library. The left rack shows signal order; the graph displays the actual generated graph compiled by playback. Wiring in this view is read-only: edit the rack to preserve the serial chain. The global Modular Graph remains independent. A failed plugin probe or playback preparation preserves the current project; successful additions are undoable.

The library searches configured Preferences paths recursively (including VST3 bundle contents), with case-insensitive search and format filters. LADSPA and VST2 both use .so, so those filters share candidates until inspection identifies the ABI. Listing files executes no plugin code. Only inspect trusted binaries.

Select a slot in the rack, then use Up, Down, Bypass or Remove. The selection follows reordered effects. Bypassed slots retain their settings and appear marked in the rack; their nodes are omitted from the compiled graph. Each successful operation creates one project undo step.