2.5 KiB
Internal instruments and effects
No plugin downloads, search paths or external libraries are needed. The original built-in sine remains available for existing projects.
Choose Internal: Soft Keys or Internal: Sub Bass in a MIDI track's instrument dropdown. Soft Keys blends a sine with a third harmonic; Sub Bass uses a pure sine. Both are fixed presets with 32 voices, velocity sensitivity, short attack/release envelopes, sustain pedal, note-off and panic handling. High harmonics are omitted near Nyquist. These basic instruments have no preset editor, pitch bend, sample library or oscillator/filter controls.
In Modular Graph, select a wire and choose Edit → Insert internal delay on wire or Insert internal reverb on wire. This preserves the route and inserts the effect into the signal path. File → Add internal delay/reverb creates an unconnected device for manual wiring. Select its node and use Edit → Selected plugin control to edit it, or Selected plugin automation to automate it. Changes use the existing stopped-engine preparation and undo workflow.
- Delay: time (1–2000 ms), feedback (0–0.95), dry/wet mix (0–1).
- Reverb: four parallel damped feedback combs, with decay (0–0.95), damping (0–0.95) and dry/wet mix (0–1). Decay is a feedback coefficient, not seconds.
These are basic mono processors; stereo plans use independent instances. Reverb is deliberately simple and has no room model or stereo diffusion. Delay time changes can click; there is no crossfade or tempo sync. Transport seeks retain existing effect history, like LADSPA. Effect tails require continued rendering; playback/export does not automatically extend the song for tails.
Project format 13 stores internal devices as format 4 with reserved module path
/xtc/internal, stable numeric identity and index (0 keys, 1 bass, 2 delay,
3 reverb). This is a virtual identifier, never an external binary. Effect controls
and automation are saved using the existing plugin records; instruments are fixed
presets. Readers still accept formats 1–12. Older xtc builds reject format 13.
All buffers are allocated during preparation; processing performs no allocation,
file access, library loading, locking or GUI calls.
Validation: make BUILD_DIR=build/phase38 all gui test test-gui-instruments test-gui-modern-plugins test-gui-plugins analyze (join onto one line).
test-builtins checks impulse tails, dry mix, feedback bounds, block partition
consistency, note release/panic and instrument/effect project round trips.