INVISIBLE ARTFORMS

DAWntless — user guide

Installation, the transport, MIDI and audio tracks, recording, playback sounds and packaging

DAWntless brings MIDI and audio sequencing into Unreal Engine, with musical transport, MetaSound automation, Thumpr FM drums, the polyphonic Afterglow, and TheRaK, a cable-free device rack whose racks also play in your game.

This guide covers DAWntless 1.0 for Unreal Engine 5.8, tested on Windows (Win64); other engine versions and platforms are not supported yet.

Install and open

#

For a supplied plugin package, close Unreal and place the DAWntless folder inside your project's Plugins folder. The resulting layout should contain YourProject/Plugins/DAWntless/DAWntless.uplugin, with the package's other folders alongside the descriptor. Use a package built for your engine version and platform.

Open the project, find DAWntless in Edit > Plugins, enable it, and restart if prompted. The plugin declares its Level Sequence Editor, MetaSound, Harmonix, and MIDI Device (Windows and Mac only) dependencies. If Unreal reports a missing or incompatible module, resolve the package/engine mismatch before continuing.

To find the demos and examples, enable Show Plugin Content in the Content Browser and open DAWntless Content. The demos are in DAWntless Content > Demos: the demo map DAWntless with its sequences, and the TheRaK song Techno_Rulez. The instruments, effects and racks are in DAWntless Content > Examples, one folder per device. Where things are lists every folder. Store your own sequences, banks, and kits in your project's Content folder.

The bundled instruments are the starting point for a new project. Project Settings > DAWntless Settings lets you override the MIDI playback, audio playback, and recording sounds. Keep the defaults for the first walkthrough; a custom playback graph must expose the controls required by the workflow you use.

Where things are

#

In the Content Browser, enable Show Plugin Content, then open DAWntless Content:

FolderWhat is in it
DemosWhat you open and watch: the demo map DAWntless with its Level Sequence; the TheRaK song Techno_Rulez; LS_MidiFilterSweep (the filter-sweep automation example) with its instrument MSS_MIDISequencerPlayback_SimpleSynth; LS_SQLCHDemo; the sequence-player example (SequencePlayer); the demo map's visuals (Visuals), audio stems (Audio) and Traveler character (Traveler)
ExamplesThe instruments, effects and racks you build with: the default playback, recording, audio-track and metronome sounds (in the folder itself), Afterglow (synth and presets), DrumKing > Kits, DrumMachine (Thumpr: its graph, kits and pattern banks), GLTCH > Presets, Rack (the factory racks and their chain graphs), SQLCH (graphs, sounds and patterns) and UserDevices (example devices of your own)
WidgetsThe DAWntless editor utility widget

Start here

#
GuideWhat you can learn
TheRaK instrument rackStack instruments, sequencers and effects in a rack with no cables (the order is the routing), find devices with the Add Device search, jam and mix several chains, print each chain to Sequencer as its own MIDI track, play a saved rack in your game with the TheRaK Performer component, and clean up chain graphs nothing uses. Classic STPR-1 > Afterglow > Delay racks keep working. The demo track Techno_Rulez and its rack DA_Rack_TechnoRulez show a whole arranged and automated song.
GLTCHStutter and glitch any TheRaK chain: draw repeat, reverse, tape stop, scratch, stretch, crush, filter, gate, pitch and throw blocks on 11 lanes, repeat down to 1/256 and 1/256T, let Beat Repeat capture on its own, switch 12 patterns with MIDI keys or automation, and print it with its chain.
DrumKingPlay and edit a 64-pad sample drum machine in TheRaK: fill pads from the Content Browser, shape each sound with its envelope, filter, playback effects, second layer and variations, pick one of eight factory kits made from the engine’s built-in sounds, and see where every sample comes from and what cooks.
Your own TheRaK devicesTurn a MetaSound Patch into a rack instrument or effect: the DAWntless interfaces, parameter names, the Device Validator and its fixes, registration, error codes, and validation in CI.
Thumpr FM DrumAudition pads, make a first beat, use swing/chance/ratchets, shape and save kits, write MIDI into a sequence, and troubleshoot routing or pad-note mismatches.
SQLCHWrite acid lines with accents, slides and ties in a sixteen-slot pattern bank, shape the synth, print phrases to a track, and play SQLCH as a TheRaK instrument with its own sequencer.
Tools jamJam Thumpr, SQLCH, STPR-1 and TheRaK together on one shared clock without a Level Sequence, with the metronome, then print the result.
AfterglowPlay a polyphonic wavetable/granular instrument, import samples, edit graphical envelopes, route modulation, use effects, and assign presets to MIDI tracks.
STPR-1Draw up to three notes per step, give each note its own length by dragging its edge, edit individual velocities across 64 steps, transpose with MIDI, and use the performer in PIE or packaged builds. In TheRaK, its Drum Mode sequences DrumKing: one lane per pad, many hits per step, probability and ratchets.
MIDI MetaSound automationAutomate a MIDI track's instrument and effects in Unreal's Curve Editor: device-aware lanes grouped by device with their ranges and units, number, whole-number and on/off lanes, lanes that own their parameter while the sequence plays, Automate in Sequencer from a TheRaK knob, the filter-sweep example, scrubbing and parameter precedence.
Third-party noticesThe font and the Unreal Engine content that DAWntless and its demos use, and the terms that cover them.

For a first session, open Thumpr from the DAWntless section of Tools and follow its first-beat walkthrough. Save a bank for the rhythm, a kit for the sound, and a Level Sequence for the arrangement.

Core terms

#
TermMeaning
SequenceThe arrangement containing tracks and their notes, audio, or automation.
MIDI noteA pitch and velocity with a start and end; the selected instrument turns it into sound.
RouteThe instrument destination used by a MIDI track: the track's position among the sequence's MIDI tracks, starting at 1. The chosen playback graph must support it. See Routes.
Pattern bankReusable rhythms or patterns. Thumpr, SQLCH, and STPR-1 use their own bank types; instrument presets are saved separately.
KitThumpr's pad sounds, note mapping, and effects. Multiple tracks can reference one kit.
AutomationA curve that changes an exposed instrument parameter over time.

Open the transport and a sequence

#

Open Tools and choose DAWntless in the DAWntless section. This is the transport panel; Thumpr FM Drum is a separate entry. Older documentation calls the transport entry “DAW Transport.”

Open the transport panel before the Level Sequence. Opening the sequence first is a known limitation.

Choose your Level Sequence in the panel's sequence picker. Open focuses the current sequence, Browse opens an asset browser, and Refresh rescans the list if a new sequence is missing. Confirm the panel identifies the intended active sequence before editing or recording.

The DAW CLOCK control beside tempo and time signature controls DAWntless timing. Enable it before opening the sequence for the initial setup, then set BPM and the time signature. BEATS sets the numerator, or beats per bar; SIGNATURE sets the denominator, which determines the note value receiving a beat.

The compact studio layout keeps Play / Pause, Stop, Reset, and REC at the top, together with Loop, Click (metronome), tempo and time signature. Setup sections below the transport scroll independently. Check the resulting playback range when setting duration: the bar/beat/note fields use a position calculation.

Expand TIMING for tempo-map controls and the PIE beat readout. The readout is a development aid: it is compiled out of Shipping builds. To create a tempo change, position the playhead at the desired bar, enter the target BPM in Tempo @ bar, and use its set control. Ramp bars = 0 gives a step change. A positive ramp approaches the target before the marker: a one-bar ramp into bar 5 begins at bar 4. Save the Level Sequence to retain its tempo data and markers.

Add MIDI notes and quantize

#
  1. In Sequencer's add-track menu, choose MIDI Track, or DAWntless MIDI Track (Afterglow) for the wavetable/granular instrument with its preset already assigned. The Afterglow entry uses the synth panel's current sound, or Init when the panel is closed.
  2. For a plain MIDI track, right-click it, open Edit Track, choose an Instrument Patch, and give it a unique Track Name. A Afterglow track already has its preset and a unique name. For Thumpr, follow its dedicated guide and supported-route instructions.
  3. Set the panel's MIDI Note and Velocity, place the playhead, and use the track's + button to add a note section. Its start and end define note-on and note-off. If a note of the same pitch already covers the playhead, nothing is added: a notification explains why, and no undo step is left behind. Move the playhead or pick another note.
  4. Use Alter Sections to apply the panel's note/velocity values to selected notes. Refresh Sections rearranges the track's note rows when needed.
  5. To quantize, select the note sections, choose Bar, Beat, Note, Dotted Note, or Note Triplet in the quantization controls, then press Quantize. The operation moves section starts and preserves their lengths; use Ctrl+Z to undo.
  6. Listen to the result and save the sequence.

Beat grid changes the Sequencer ruler, snapping, and playhead stepping to a musical resolution. It does not itself quantize existing notes. Turning it off restores the sequence's display rate; the current Bar setting uses quarter notes for this display grid.

For curves that continue through rests, use MIDI MetaSound automation.

Routes

#

A MIDI track's route is its position among the DAWntless MIDI tracks of its sequence, counted in the order the tracks were added: the first MIDI track is route 1, the second is route 2, and so on. Audio tracks and other Sequencer tracks do not count. The track's properties show the number read-only.

The route is not stored in the sequence. It is worked out when Sequencer scans the sequence and when the clock actor prepares it in a game, so nothing needs renumbering or re-saving after you add or remove tracks.

  • Deleting a MIDI track moves every later MIDI track down one route. Its instrument moves with it: Thumpr kits and Afterglow presets are sent under the track's current route prefix, such as 2_.
  • A legacy instrument track only sounds when the shared playback MetaSound has inputs for its route. The bundled playback sound exposes routes 1–3. Printed rack tracks instead own separate instrument components and can play on later routes. After deleting a track, check that each legacy track still sits on a supported route.
  • An automation lane whose parameter carries a numeric route prefix, such as 2_Wave_Cutoff, is sent under the track's current route. Unprefixed inputs are shared by every route and are unaffected.
  • Tracks that share a name appear in the transport's track dropdown with their route appended, for example Drums (2) and Drums (3).

Import and export MIDI files

#

The MIDI track's Edit Track controls expose Import File and Export File under MIDI - Modify. Import opens a file picker for a .mid file. You can also drag a MIDI File asset from the Content Browser into Sequencer. Export opens a save dialog and uses the panel's export name as the suggested filename.

What an import creates:

  • One Sequencer MIDI track for each source track that contains notes. Source tracks are identified by their position in the file, not by name, so files whose tracks share a name or have none import completely. Track 0 is imported when it has notes; tracks without notes, such as a tempo-only conductor track, are skipped.
  • A source track whose notes use several MIDI channels, which is how a format 0 file stores a whole song, is split into one track per channel.
  • Each new track gets a readable, unique name: the file's track name, or Track <n> when it has none, plus ch<N> for a channel split and a number when the name is already taken.
  • Import File pressed on an existing track replaces that track's notes with the first note-bearing source of the file and keeps its name, instrument and automation. Any further sources become new tracks. Dragging an asset always adds new tracks.
  • The whole import is one undo step. A completion notification lists the tracks and notes created together with every warning below; the same lines go to the Output Log. A file that cannot be read, or has no notes, changes nothing and says so.

Positions are musical, not timed. DAWntless authors sequences against 60 BPM, where one quarter note is one sequence second, so a note on beat 3 of bar 2 lands on beat 3 of bar 2 whatever tempo the file was saved at. The file's tempo is not imported: the DAWntless transport sets playback tempo. For a file with tempo changes the notification adds a warning that notes were placed by beat position and play at the transport tempo.

A DAWntless track holds one note per pitch at a time, and the importer adjusts the file to fit. The notification counts each case:

  • A note re-triggered while the same pitch is still sounding closes the earlier note at the new start.
  • Overlapping notes of the same pitch, from different channels of an unsplit track, are shortened to end before the next one starts; of two that start together only one is kept.
  • A note without a note-off is closed at the end of the file.
  • Zero-length notes are dropped and stray note-offs are ignored.

The bundled playback MetaSound exposes three routes. When an import leaves tracks on a route the configured playback sound does not expose, the notification says how many: they stay silent until the playback sound supports them. See Routes.

Export writes every MIDI track of the active sequence, not only the track whose control you clicked. Each Sequencer track becomes its own file track even when names repeat; a repeated name is made unique within the file. With no MIDI track to export, a notification says so and no file is written.

Work in a new or duplicated sequence for the first import. Afterward, check track names and routes, assign the intended instruments, inspect notes and velocities, and compare timing with the original. A .mid file does not contain the Unreal Fusion Patches, Thumpr kits or Afterglow presets needed to reproduce the sound.

Automated tests cover track selection, channel splitting, note pairing, musical positions and an export/re-import round trip.

Connect a controller and record

#

Expand MIDI to reveal recording, note editing, quantization, device monitoring and MIDI Learn. This entire section can collapse while transport remains available. Choose Take mode below Record into. Overdub / Layer is the default: it keeps existing notes and adds the new take when recording stops. Replace notes replaces the target's MIDI notes only after a nonempty take. Both modes preserve automation, and an empty or cancelled take leaves the arrangement unchanged.

  1. Connect the physical or virtual MIDI input. Expand MIDI, press Refresh devices, and select its input port by name. Tap a pad/key and check the live event list. Refresh again after plugging or unplugging a device; port changes are locked during recording.
  2. Create or choose a MIDI track, give it a unique name, and assign its Fusion Patch, Thumpr kit, or Afterglow preset.
  3. Select that exact track in Record into, then choose Overdub / Layer or Replace notes. Tracks that share a name are listed with their route appended, such as Drums (2), so each can be chosen. An explicitly selected missing or ambiguous track cannot silently redirect the take. RecordTrack is used only when no target name has been selected. The target and mode remain fixed during count-in and recording.
  4. Enable instrument monitoring to hear the controller before recording. The studio layout labels this checkbox Monitor; earlier layouts called it Instrument or Prepare Recording. The target track's instrument or kit determines the monitored sound.
  5. Start Record from stopped and wait for count-in, or press Record during playback to begin immediately at the current playhead. Play a short phrase, then press Stop to finish and keep that position. Reset returns to the beginning. Notes are buffered until recording stops; the completion notification reports how many were added and skipped. Inspect the resulting notes, velocities, and durations before playing the take back and saving the sequence.

Existing notes continue playing while overdubbing. Existing notes of the same pitch take priority: a new note that overlaps one is skipped in full, leaving the original timing and velocity intact. Simultaneous notes of different pitches can be layered. Overlapping same-pitch notes within the incoming take are also skipped after the first accepted one; adjacent notes can meet at an end/start boundary.

Use Ctrl+Z once to undo the entire committed take, or Ctrl+Y to redo it. Replace mode also undoes in one step. A held note is closed at the stop position. Closing or switching away from the recording sequence cancels the buffered take; existing work remains intact. Save the Level Sequence to keep a completed take.

For a two-pass Thumpr example, select Overdub / Layer, record only the kick part, and stop. Press Record again on the same track and add the snare or hats while hearing the kick. Stop and replay both parts together. Repeat this process for further layers. Each recording runs for one pass; continuous loop recording and separate take lanes are not provided by this mode.

Record into one track at a time. For Thumpr, match controller notes to the pad-note reference. A flashing pad confirms an incoming note notification, not a saved take.

Audio level meters

#

The level meters sit below the fixed transport, at the top of the scrolling setup area. The transport EUW includes stereo MIDI playback, Audio tracks and Live instrument meters. They measure the rendered DAWntless audio sources in dBFS; MIDI velocity alone does not move a meter. Play a sequence or enable instrument monitoring and play your controller to see levels.

The scale runs from −60 to +6 dBFS. Green changes to yellow above −12 dBFS and red above −3 dBFS. White marks and the numerical peak readout retain the highest sample level; CLIP lights when a sample reaches or exceeds 0 dBFS. Stop lets the current bars fall to silence while retaining peaks. Reset peaks clears the held peaks and clipping indicators.

The heading switches between Editor and PIE. In PIE the meters follow DAWntless sequence clock actors and their live MIDI components. Mono sources appear on both bars; multichannel custom sources show their first two channels. Multiple clock actors show the highest source level within each group, rather than a sum.

These are source sample-peak meters before spatial attenuation and master/submix processing, not a final master mix, true-peak or LUFS measurement. Metronome and separate Thumpr/Afterglow panel audition sounds are outside these three transport groups. The native capture does no peak calculations while the meter widget is closed, and the display refreshes about 30 times per second.

The meters are a development aid. They attach to the audio sources only in editor builds, which includes PIE; a packaged game installs no metering.

MIDI monitor and MIDI learn

#

Expand MIDI to access the device picker and learn controls. PORT / EXPORT holds the legacy numeric Device ID and MIDI export-name field. The MIDI section lists device ports and shows the latest incoming notes, velocities, channels, CC messages, pressure and pitch bend. Select an input, not an output port. MIDI device input is available on Windows and Mac only; on other platforms the device list stays empty and the status reads “MIDI device input is not available on this platform.” The native input connection is shared by editor recording and live performance; the monitor keeps only 64 events and refreshes its display ten times per second.

Choose Record into, choose an exposed instrument parameter, set its output minimum/maximum, then click Learn. Touch one pad, key, knob, slider or wheel. The panel shows the detected input; click Confirm to save the mapping on that track. Cancel leaves the existing assignment unchanged. Save the Level Sequence to persist confirmed mappings. Select a parameter and use Remove mapping to clear its assignment. Confirming and removing mappings support Undo.

Note mappings use velocity on press and zero on release. CC and pressure use 0–127, and pitch bend uses the full 14-bit value, scaled to your output range. Float, integer, boolean and trigger MetaSound inputs are supported; triggers fire on positive input. Mappings identify the device name, MIDI channel and control. Up to 64 mappings can be created per track through the panel. Learn controls the sound live; it does not record parameter gestures as automation curves.

For a Novation Launchpad, select the input port whose pad presses appear in the monitor. If a pad produces only CC messages, it can be learned as a parameter control, but MIDI note recording requires Note On/Off messages. Port names and modes vary across Launchpad models; use the monitor to confirm the messages your current setup sends.

For live play in PIE, configure the sequence clock actor as described below. Its LiveMidiPerformance component uses the actor's Level Sequence and the armed track name, or an explicit Track Name on the component. Connect the MIDI input before entering PIE. The component has separate live voices and forwards confirmed mappings to both the live sound and the arrangement route. Record new notes into the Level Sequence in the editor; the PIE component is for live performance.

Add an audio track

#

Use a Sound Wave asset for an audio section; a MetaSound source is not accepted as its Wave Asset.

  1. Put the playhead where the clip should start. Choose DAWntless Audio from Wave... from Sequencer's add-track menu and pick a wave. Alternatively, add DAWntless Audio Track, use its + button, and assign the section's Wave Asset.
  2. Set Base BPM to the tempo at which the recording was made. The picker tries to infer this from the asset name and otherwise uses the transport tempo, so confirm the value yourself.
  3. Enable Affect Tempo Change when the clip should follow sequence tempo. Disable it when the audio should play at its original rate.
  4. Set Volume Multiplier for that section. Changing the wave or Base BPM refits the section to the wave's duration at that source tempo.
  5. Play from before the clip, then check playback from inside it, stopping, and restarting. Save and reopen the sequence to check the arrangement.

The waveform is an approximation for editing. It is built in the background: a new or newly opened clip shows a flat centre line for a moment, then the waveform. The drawing starts at the section's start and follows Base BPM, so a clip whose end is trimmed shows only the part that remains, and a section dragged longer than the wave shows nothing past the wave's end. Zooming in adds detail. Splitting audio sections is not supported: prepare a separate wave asset for each piece.

Playback in a game

#

Use a Blueprint derived from DAWntlessSequenceClockActor to coordinate the clock and sequence at runtime. Simply placing a Level Sequence in the world is not the documented DAWntless setup.

  1. Create a DAWntless Clock Data Asset. Give its clock a unique name and set BPM, numerator, denominator, and Should Loop.
  2. Create a Blueprint based on DAWntlessSequenceClockActor, place an instance in the level, and assign both Clock Data Asset and Level Sequence under Data.
  3. Choose the tempo source. Use Sequence Tempo is enabled by default: when saved sequence tempo data exists, its BPM and time signature take precedence. The clock asset supplies the fallback and always supplies the clock name and loop setting. The actor's Quartz clock runs in the resulting time signature, and what plays on that clock follows its bars and beats: printed TheRaK and SQLCH tracks, and a TheRaK Performer set to the clock's name (see Time signatures). Follow Tempo Markers controls whether sequence markers change tempo during playback.
  4. Call Start Sequence And Clock from the actor's Blueprint logic after initialization. Use Stop Sequence And Clock to stop it. If overriding On Sequencer Finished, keep the parent call to preserve the default stop behavior.
  5. Check the intended audio in Play in Editor, then in a cooked standalone build containing the sequence, instruments, kits, and wave assets. Packaging lists what the plugin cooks for you.

The actor exposes tempo, playback-speed, loop-state, and beat-count queries, plus events for bars, beats, loop iterations, note-on, note-off, and tempo changes. Set Tempo To Desired changes tempo; Reset Tempo restores the resolved starting tempo, which may come from the sequence. Active tempo-marker following can subsequently set tempo again.

Playback sound settings

#

The current settings expose three sounds. An empty or unavailable override falls back to the bundled asset.

SettingBundled asset in DAWntless Content / ExamplesPurpose
DAWntless Midi SoundMSS_MIDISequencerPlayback_DAWntlessMIDI sequence playback, including Thumpr on supported routes.
DAWntless Audio SoundMSS_DAWntless_AudioTrackSound_ExampleSound Wave sections on DAWntless audio tracks.
DAWntless Record SoundMSS_DAWntless_RecordInstrument_DAWntlessLive-input monitoring and recording audition.

Copy a playback graph into project Content before customizing it, then select the copy in the corresponding setting. Each added instrument route needs a complete set of graph inputs and a connected instrument/output path. Adding a fourth MIDI track alone does not expand the graph. The bundled MIDI playback sound exposes routes 1–3, with Thumpr inputs on routes 2 and 3.

Packaging

#

The MIDI and audio playback sounds are registered with the cooker automatically, both your overrides and the bundled fallbacks. No project setup is needed: no Asset Manager rule, no “additional directories to cook” entry. Your sequences, kits, presets and wave assets are cooked through your own levels and references as usual.

The live-MIDI record instrument, with its piano samples, is left out of packaged games by default. To let a packaged game audition a MIDI controller through LiveMidiPerformance, enable Project Settings > DAWntless Settings > Packaging > Cook Live MIDI Instrument, or add this to Config/DefaultGame.ini:

[/Script/DAWntlessRuntime.DAWntlessSettings]
bCookLiveMidiInstrument=True

Without it, a packaged game does not audition incoming notes; learned controls still reach the arrangement's routes. The editor and PIE always have the instrument.

TheRaK device racks reach a packaged game in two ways: as printed rack tracks in a Level Sequence, and through the TheRaK Performer component on an actor in a level. Either way the rack's saved chain graphs, kits, banks and samples are cooked through those references, and nothing is built in the game. Save the rack in TheRaK first, so its chain graphs exist, and submit them with it. See TheRaK Performer (gameplay) and Generated chain graphs and Perforce.

MIDI device input exists on Windows and Mac only. On other platforms it compiles out: the plugin still loads and sequences play, but no MIDI device can be opened.

To check what a cook will include without cooking anything, run:

UnrealEditor-Cmd <project>.uproject -run=cook -targetplatform=<platform> -CookList

Look for DAWntless: requested 2 runtime MetaSound(s) for cook. in the log; the count is 3 with Cook Live MIDI Instrument, and higher when overrides are set, because each override is cooked together with its bundled fallback. The LogCookList lines that follow name every package, including the MSS_... sounds from the table above. A configured sound that does not exist logs a warning and the bundled sound is used; a missing bundled sound logs an error.

The audio meters and the beat readout are development aids. The meters attach only in editor builds, and the beat readout compiles out of Shipping builds.