# 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.