Acid-style MetaSound instrument for DAWntless / Unreal Engine 5.8. It also plays as a TheRaK rack instrument with its own sequencer: see SQLCH in TheRaK.
One vertical scrollbar scrolls the whole device, including presets, sound controls, the matrix, and print controls. Long patterns retain horizontal scrolling within the matrix.
Use
#- Open Tools → DAWntless → sqlch, or run
SQLCH.Openin Unreal's console. - Set Jam BPM. Open Thumpr as well to build patterns and sounds together; no Level Sequence is needed.
- Click Play loop. The visible LOOP toggle is on by default. Turn it off for Play once, or disable it during playback to finish the current pass. Tools playback uses a shared editor Quartz clock. Each instrument joins on the next bar and loops independently; its Stop and Mute controls leave the other instrument playing. Stop jam stops both.
- Click cells to toggle notes; Shift-click selects without changing the pattern. Each column allows five pitches. Mono plays the lowest pitch; Poly uses five independent voices. Select a note to edit velocity, gate, accent, and outgoing Retrigger / Slide / Tie.
- Use Save bank to save all sixteen pattern slots and the Loop preference. Save sound separately. The buttons create project assets under
/when the current data is transient or bundled.Game/ DAWntless/ SQLCH - Print to track creates a SQLCH MIDI track when no track is selected, or appends to the selected SQLCH track. Update selected phrase replaces the phrase owning a selected printed note. Printing stops audition; use the normal DAWntless transport to play the printed track, and save the sequence and sound asset.
Sequencer integration: choose + Track → DAWntless MIDI Track (SQLCH) to create a track with the current panel pattern and sound at the bar under the playhead. With the panel closed, it uses the bundled Init pattern/sound. Right-click an existing MIDI track and choose Use SQLCH (current preset) to change its instrument while preserving its notes and automation. Both actions support undo. SQLCH's dedicated playback source also supports MIDI routes beyond the three routes in the bundled legacy graph. These menu actions target root Level Sequences; use the normal transport to play the resulting track.
Knobs: drag vertically, hold Shift for fine adjustment, use arrow keys, or type into the numeric readout. Cutoff, decay and glide use logarithmic ranges. Each drag is one undo operation. Sound, swing, gate, velocity and modulation use rotary controls; length, transpose and print position remain numeric entries.
Live pattern bank: click slots 01–16 while playing. Each slot retains its notes, length, swing, transpose and modulation. A selected slot starts at step one on the next audio-scheduled step boundary; rapid selections use the latest choice. Amber marks the sounding slot, teal marks the selected/queued slot, and the readout shows NOW / NEXT. Edit notes or knobs without stopping. Copy to next slot copies the current pattern into the following slot; Undo restores the overwritten slot. Rename the selected pattern in the name field. New bank creates sixteen empty slots.
Pattern presets: Load preset into slot replaces only the selected slot, keeping the sound and other slots intact. The factory bank starts with Init plus Warehouse, Rubber octaves, Broken circuit, Night bus (swing), Chromatic bite, Slow burn (ties), Spiral (32 steps), Sevenfold (7 steps), Filter steps (modulation), Dorian lift, Minor glass and Five-fold, followed by three empty user slots. The two chord presets are marked POLY; enable Poly to hear all their voices. Existing individual SQLCH pattern assets can still be loaded through the chooser's Load saved pattern into this slot picker.
During bank audition, Tools playback runs independently of the arrangement and never changes its loop preference. With LOOP off, SQLCH finishes the current pass, releases its voices, and shows FINISHED; selecting a slot or pressing Play starts another pass while Thumpr continues. Starting the arrangement transport stops the jam to avoid doubling printed parts. See Tools jam for the shared playback workflow and implementation.
Length is 1–32 with hidden steps retained, default 16. Swing follows Thumpr's 960-PPQ convention. Transpose changes playback/printing without changing stored pitches. MOD is bipolar and currently targets cutoff in octaves. Other modulation destinations can be added behind the compiled step data without changing the grid or saved notes.
Accent raises amplitude and filter-envelope response. Slide is an outgoing transition into the next step, retaining the envelope while pitch glides. Tie retains only an identical pitch. A rest releases the voices. Chord matching preserves common notes first, then minimizes total pitch distance with stable voice-index tie breaking. Unmatched destinations attack; unmatched sources release.
SQLCH in TheRaK
#SQLCH is also an instrument of the TheRaK device rack. In the rack it keeps its own sequencer and its sixteen-slot pattern bank: TheRaK plays it on the rack's clock, beside the rack's other chains, through its effects and chain strip. The standalone panel described above is unchanged and independent of the rack.
Add it. In TheRaK, choose + Add Device > INSTRUMENTS > SQLCH (own sequencer). It starts a new chain with its own strip, after the selected chain or at the end of the rack. The new device gets its own copies of the Init sound (DA_) and the factory bank (DA_) and starts on slot 01. Rack edits change only these copies: the factory assets, the standalone panel's sound and bank, and your SQLCH tracks never change. Add effects below it as for any instrument. The factory rack DA_
Its own sequencer. SQLCH sequences itself, so an STPR-1 cannot play it. With SQLCH selected, the Add Device menu disables STPR-1 → attach to; dragging an STPR-1 onto its header, or into the gap above it, shows a red line instead of a drop. Both give the reason "SQLCH uses its own sequencer". An STPR-1 that ends up directly above SQLCH stays in the rack, inactive, and its card gives the same reason. Replacing an instrument that has an STPR-1 with SQLCH removes that STPR-1 after you confirm.
Sounds and banks. Unfold the card for the sound knobs (the same controls as the standalone panel, one Undo step per drag), POLY/MONO and SAW/SQUARE, the bank row and the sixteen pattern slots. The sound browser in the card header (the arrows and the sound name) steps through the sounds in DAWntless Content > Examples > SQLCH and in /; choosing one copies it into the device, and the sound asset stays unchanged. Save preset... in the card's [...] menu stores the rack's sound under /, the standalone panel's project folder, and Reset returns the device to the Init sound and the factory bank. Factory banks in the bank row loads a copy of a bank, starting on slot 01. The rack's SQLCH body has no step matrix: edit pattern steps in the standalone panel, which works on its own bank, not on the rack's copy. Undoing a sound, bank or slot change also restores what the rack plays.
Switching patterns. Click a slot. While the rack plays, the slot starts at the next SQLCH step, as in the standalone panel; while it is stopped, the slot is kept for the next Play jam. The selected slot is saved with the rack and is the one Print writes. Sound edits reach the playing chain at once.
MIDI focus. SQLCH plays only its own patterns and takes no live MIDI focus: its K key is greyed, with the tooltip "SQLCH plays its own sequencer and takes no live MIDI focus.", and your keyboard never plays it.
In a game. A saved rack with an SQLCH chain plays in a game through the TheRaK Performer component, exactly as the jam plays it: the chain's selected bank slot, launched with the rack (see TheRaK Performer (gameplay)). Its Select Pattern switches SQLCH slots (slot 01 = 0). The rack's own Timing limit below applies there too.
Print. TheRaK's Print... dialog lists an SQLCH chain with the sequencer SQLCH. Printing writes the selected slot, repeated Repeats times from the playhead, on a new track named after the chain: one SQLCH phrase per repeat, every note with its velocity, gate, accent, Retrigger / Slide / Tie, slide length and its step's modulation, exactly as Print to track writes them. The track keeps its chain snapshot (sound, bank, effects and strip): it is a TheRaK track, not an SQLCH track, so the panel's Print to track and Update selected phrase refuse it, and Use SQLCH (current preset) would replace its chain with an SQLCH track sound (Undo restores it). In the arrangement and in PIE it plays through the chain's own SQLCH sequencer on the sequence clock. A slot without notes cannot be printed ("its pattern N is empty"). A printed track plays at most 8,192 SQLCH notes, so a print whose notes over all repeats would exceed that is refused, and the message names the largest Repeats that fits.
Limits in the rack.
- Timing. SQLCH follows the rack's clock and position the way the standalone SQLCH follows Quartz: it re-anchors only when it drifts by more than two mixer buffers, so it is not promised to stay within one frame of the rack's other chains (Thumpr, STPR-1 chains). See Timing and editing boundaries.
- Sound automation on printed tracks only. A printed SQLCH chain's Cutoff, Resonance, Env mod, Decay and Accent can be automated from the track's SQLCH (SQLCH) automation submenu (see SQLCH sound settings); the other sound controls cannot. Knob movements are neither recorded nor printed. Its effects keep their own controls.
- Modulation of empty steps is not printed. Only steps with notes carry their modulation into the printed track: a MOD value on a rest step is used by the jam but is not in the print.
- SQLCH plays only while the transport runs. Stopping the rack or the sequence silences SQLCH at once (effect tails still ring), and a stopped rack plays nothing from it; Play jam starts it again. Bypass silences it while its pattern keeps its place.
- Printed tracks follow their notes. A note edit reaches the playing chain a tenth of a second later. A track that becomes invalid (more than five notes on one onset, say), or that replace-mode recording mutes, is silent until it plays again; the phrase then resumes where the playhead is.
Assets
#The SQLCH assets are in DAWntless Content > Examples > SQLCH (/):
MSP_SQLCHVoice: stock saw/square → stock Ladder Filter → independent voice amplitude envelope.MSP_SQLCHOutput: tanh drive → compressor with zero lookahead → compensated output trim → 6 dB makeup with bounded soft saturation. Output zero remains silent. Tools jam uses the same level as sequence playback; its former additional 6 dB reduction is removed. Balance louder settings against the other instruments with Output.MSS_SQLCH: five voice patches summed before one output-effects patch.DA_, twelve additionalSQLCHPattern_ Init DA_assets,SQLCHPattern_* DA_andSQLCHBank_ Factory DA_.SQLCHPreset_ Init
The demo sequence LS_SQLCHDemo is in DAWntless Content > Demos.
MSS_SQLCH is part of the runtime cook set: a packaged game cooks it with its patch dependencies.
Timing and editing boundaries
#Musical events are generated on the audio thread. Printed tracks follow the existing Quartz proxy and preserve partially buffered MetaSound frames when mixer and graph block sizes differ. They follow the clock in its time signature: in the editor the one the transport's clock was created with (the sequence's time signature), in a game the DAWntless Sequence Clock actor's (the Level Sequence's tempo data, else its Clock Data Asset), and in TheRaK the rack's clock (see Time signatures). On a 3/4 or 6/8 clock a track therefore runs on through the bar lines; the pattern keeps its own length in quarter notes. The editor passes the existing transport's seek offset explicitly; transport loops clear that offset. Tools audition follows an independent shared Quartz clock with an absolute bar launch; arrangement loops do not affect it. Slot switches and one-shot endings are handled in that audio scheduler. No Blueprint or Slate Tick schedules notes.
Within a running pattern, note and amplitude events are scheduled per sample. Transport discontinuities and settings handoffs are bounded by audio blocks. The stock Ladder Filter accepts float controls, so filter cutoff and resonance update once per MetaSound block.
Pattern revisions apply at the next scheduled step (immediately while stopped); that boundary retriggers the new pattern state. Sound edits do not reconstruct the graph. Live Sequencer edits recompile the existing track; invalid edits silence its pattern until valid again. Phrase identities and relative note offsets preserve unrelated notes and leading rests during replacement. Slide durations are relative to each note, so moving a note preserves its transition length.
SQLCH MIDI tracks are for root-level Level Sequences: a subsequence's time transform is not applied to them. Sequencer automation does not reach an SQLCH MIDI track's sound settings; a printed TheRaK SQLCH chain's can be automated. Phrase updates keep unrelated automation. The MOD lane routes to cutoff.