Firmware

schwung-davebox

Hype10/100

schwung-davebox is custom firmware for the Ableton Move, by @legsmechanical. Open source under MIT, latest release v1.0-beta.8 (July 2026), 11 stars on GitHub.

forAbleton Move·by@legsmechanical

Unclaimed. Is this yours? Sign in with GitHub as @legsmechanical to claim it.

Downloads
0
Stars
11
Fork
1
Commits
1,711
Last commit
Download v1.0-beta.8

davebox-module.tar.gz· 833 KB

MIT· legsmechanical/schwung-davebox·downloads come from the creator’s GitHub releases

1,687
Commits
15
Releases
1,687 commits and 15 releases in the last year
Activity · last 12 months
15 releases
  1. v1.0-beta.8Latest1 file

    Performance / UX

    • Additional movy-inspired UI improvements

    Full technical changelog: CHANGELOG.md.

  2. v1.0-beta.71 file

    Features

    • Big pop-up read-outs when you turn a parameter knob. Turning any knob — on the track pages or in the step editor — opens a large, centred view of just that parameter: a zoomed arc/value, or a scrolling picker for choice params, so you can read what you're changing at a glance. It appears on turn (a bare touch still just highlights the name) and holds until you release.
    • Redesigned track-view parameter pages. Graphical widgets per knob (arc and centre-tick knobs, toggle bars, option/value squares) under a chunky pixel-font header — an on-screen canvas UI whose look and font are adapted from movy by DimaDake. The step editors match.
    • Capture — retrospective recording, like Move's own Capture button. dAVEBOx always listens; tap Capture to keep what you just played. From a stopped empty session it estimates the tempo, sizes the clip to whole bars and plays it back; with the transport running it overdubs into the focused clip. Melodic and drum.
    • Live Merge now confirms before it starts, with a 1-bar count-in. Shift + Record raises a notice first (so an accidental press can't wipe a take), then counts in and captures a clean take — single-track in Track View, all 8 in Session View.
    • Clearer button roles. Capture captures, Sample bakes, Shift + Record runs Live Merge.
    • The Back button now navigates instead of just leaving. A tap backs out one level at a time; hold Back (or the menu item) to suspend. (Needs a current Schwung host; on older hosts a tap suspends as before.)
    • One consistent feel for every knob. Three response classes — continuous (±1 always dialable), option-pickers, and deliberate (toggles/actions) — replacing ~20 hand-tuned speeds.
    • Absolute step velocities in the arp and Repeat Groove step editors, with a "Thru" default that passes your playing dynamics through and a Shift fine-adjust page.
    • Widget cues and bank renames. Action knobs show "turn-either-way" chevrons, Playback Direction shows real arrows, stepped ranges show a position dot-strip; ARP IN → LIVE ARP and AUTO → AUTOMATION, with consistent headers.

    Fixes

    Lots of stability and correctness work, including: crash fixes around drum-clip copy/cut/undo, perf-mods over an empty loop, and placing a Live Merge onto an empty drum clip; stuck-note fixes (track switch, count-in, transport restart, two-pad co-run); external-MIDI recording restored on Move/Schwung/External routes plus count-in capture; Ableton (.ablbundle) export repaired; a bake-vs-live-playback parity audit; a consistency pass over every dialog and pop-up (button order, casing, "Back cancels"); NOTE FX pitch-random mode now persists; live-recording into an empty clip no longer freezes; saved performance presets survive reloads; and many smaller refinements. Full detail in the repo changelog and the technical changelog.

    Full changelog: https://github.com/legsmechanical/schwung-davebox/blob/main/CHANGELOG.md

  3. v1.0-beta.61 file

    Features

    • The AUTO bank is now fully functional on drum tracks
    • Inserting an automation point starts from the value already at that step
    • Automation graph shows a live playhead

    Full technical changelog: CHANGELOG.md.

  4. v1.0-beta.51 file

    Features

    • Mute is handed to Move/Schwung during co-run
    • Bank position strip in the Track View header
    • CC automation on drum tracks
    • Clock Out — make dAVEBOx the clock master for external gear
    • Live arp & delay keep their groove while following Move
    • Clock Follow — lock dAVEBOx to Move's transport
    • Save state asks first

    Fixes

    • Fixed a crash when clearing a clip with a drum track in the set
    • ALL LANES edits all wait for the confirmation now
    • Track mode menu shows Conduct, not Cond
    • Switching tracks with Shift + jog stays on the track overview
    • Clips you've left off stay off
    • Metronome mode reads the same everywhere
    • Knob lights no longer flash a dead Shift gesture
    • Automation now records after a count-in
    • Drum tracks show the right pattern after switching with Shift + jog
    • Chromatic pad layout is remembered
    • Copying a drum lane carries its repeat cycle length
    • Drum pads play once in Move co-run

    Documentation

    • Manual: co-run gets its own chapter (§15)
    • Manual: Clock Follow and Clock Out documented (§16.6)
    • New Quick Start guide + reorganized manual
    • Manual corrections

    Full technical changelog: CHANGELOG.md.

  5. v1.0b41 file

    Features

    • Key/Scale changes transpose your clips
    • Co-run surface polish
    • Co-run auto-opens the instrument the track plays
    • Per-lane automation loops
    • Auto bank visual mode
    • Transport stop returns to resting values
    • Conductor tracks — real-time, non-destructive transposition
    • Scene bake can apply the Conductor
    • Ableton export can apply the Conductor

    Full technical changelog: CHANGELOG.md.

  6. v1.0b31 file

    Fixes

    • Pads silent on Schwung v0.9.16

    Full technical changelog: CHANGELOG.md.

  7. v1.0b21 file

    Performance / UX

    • Lazy drum clip allocation

    Fixes

    • Empty drum→melodic track conversion now reliably flips pad mode
    • delete_held flag now shares padmap self-heal
    • Incompatible state files prompt before erasing

    Full technical changelog: CHANGELOG.md.

  8. v1.0bv1.0b11 file

    Features

    • Per-clip / per-lane playback direction (Dir knob on CLIP and DRUM LANE banks)
    • Audio-reverse playback style (alt-mode on Dir knob)
    • NOTE FX Len knob (K5) — non-destructive fixed length
    • Lgto (Legato) one-shot action on CLIP K8 / DRUM LANE K8
    • HARMONY bank: Hrm3 added, Unison removed
    • Per-step trig conditions: Iter, Prob (was "Random"), and Ratchet
    • Bank alt-params toggle with jog-click instead of Shift
    • CC automation latch overwrite recording
    • Melodic pad pressure → aftertouch (Track Config → AftTch)
    • AUTOMATION bank (renamed from CC PARAM)
    • Clear Automation is undoable
    • Save states (snapshots)
    • Export to Ableton Live (.ablbundle)
    • Track type conversion carries notes (Track Config → Mode)
    • Co-run improvements
    • Move-native knob spin stutters less in Edit Synth
    • ARP IN bank reset (Delete+jog on ARP IN bank)
    • Arp Steps overlay
    • Sub-bar launch quant preserves playhead phase
    • CLIP, DRUM LANE, and ALL LANES knob banks rearranged
    • Melodic and drum NOTE FX banks rearranged
    • Recording blocked in non-Forward direction
    • Copy/cut carries Dir and RvSt to destination
    • Loop button blinks at ARP IN rate while track is latched
    • Delay Retrig knob (DELAY K7)
    • Shift+side row in Session View queues bar-quantized scene launch
    • Hold empty melodic step → auto-activates with lastPlayedNote and opens step edit
    • Tap Loop alone (drum track) unlatches all repeats on that track

    Fixes

    • Clear Session fully resets all state
    • Global params persist on change
    • Pad drop self-heal
    • No stuck notes when changing playback direction during playback
    • Fixed Move synth voice corruption after stopping legato playback
    • Bank param resets also reset Dir, RvSt, SqFl
    • Session view playing clips blink in sync with pad LEDs
    • Step length adjust: pressing end-of-span step now shrinks the note
    • OLED param display dismisses immediately on jog release
    • NOTE FX Len=.25 no longer plays at double length
    • First cycle after clip clear is no longer silent
    • Recording-suppressor flags cleared on every clip launch
    • REC arm no longer blocked by RvSt=Audio when Dir=Fwd
    • Dir display no longer flickers on bank jog onto CLIP
    • Capture+drum pad no longer cuts the playing note
    • PP/Bwd bake uses rounded step indexing matching live playback
    • SEQ ARP / ARP IN Retrig=On no longer stutters on rapid chord changes
    • Arp Steps Off removed; Skip renamed Step
    • Poly aftertouch works expressively under SEQ ARP and ARP IN
    • Bank reset also resets SEQ ARP step params in JS mirror
    • HARMZ no longer drops notes during chords
    • Arp Steps overlay no longer fires on drum tracks
    • Drum step edit overlay uses 4-column layout matching melodic
    • SEQ ARP / ARP IN Arp Gate defaults to 100% (was 50%)
    • Random mode selector moved to jog-click alt param (K8)
    • All Lanes bank requires jog-click confirmation on entry
    • Step edit length knob refined with breakpoints and grid-snap
    • Zombie clips after clear are fixed
    • Pads no longer go silent after modifier toggle
    • Drum vel-zone pad release sends note-off
    • Lowest pad octave no longer ghost-lights three pads
    • Perf Mode loop pads no longer leave hanging notes
    • Clear Session no longer leaves track 1's pads stale
    • Clip/drum-lane copy and cut preserve loop_start
    • Selecting a clip with loop_start>0 lands on the correct page
    • Clip Clear preserves clip structure (only wipes notes)
    • Drum lane Reset also resets per-lane Rpt groove
    • Focused clip plays by default on transport start
    • Press-Record during playback arms at next bar boundary (adaptive clips)
    • Per-track active param bank persists across track switches and reload
    • Length and loop-window changes re-anchor playhead phase
    • Loop Double works on clips with loop_start>0
    • Drum lane Delete+pad does notes-only clear (preserves structure)
    • Drum repeats fire through track mute when pad is held
    • Shift+pad no longer triggers Rpt1/Rpt2 latch on prior track
    • Record-arming during play no longer drifts TARP timing
    • Rpt1+Rpt2 rates persist across reload
    • Input Quantize is per-track and snaps to actual rate value
    • Transport Stop unlatches TARP and Rpt1/Rpt2 across all tracks
    • TARP latch survives track/route/channel changes
    • Modal pad-interception fixed
    • VelIn applies to live pad monitoring on patched Schwung
    • Velocity zone presses audible again on patched Schwung
    • Recording into clips with non-zero loop start lands inside the window
    • ARP IN first note after count-in records on step 0
    • Delete+Play clears every latch across all tracks regardless of transport state
    • Per-track octave shift persists per-set
    • Stuck live notes when touching Arp Steps knob mid-hold fixed
    • SEQ ARP Steps Mode takes effect on first turn
    • Clear Session resets drum tracks back to Keys (except track 1)
    • Drum→Keys Mode flip actually takes effect on DSP
    • Mute silences TARP/Rpt1/Rpt2 emission while keeping latch alive
    • Co-run exit reclaims LEDs and clears modifiers
    • Bank reset / param reset actually reaches DSP
    • Coalescing remediation across copy/cut/clear/snapshot/scene/merge gestures
    • Various display fixes
    • Hot-path debug probes gated behind compile flag
    • Volume knob (CC 79) no longer stutters playback
    • Shift+Step3 co-run shortcut is Track View only
    • Side clip button focuses clip on press, not at legato boundary
    • Save/Quit/Shift+Back no longer drops DSP save under coalescing
    • Drum lane Cut gesture (Copy+Shift+lane+lane) now works
    • Hanging notes during fast or polyphonic live play fixed
    • No more stuck notes when changing octave while holding a note

    Performance / UX

    • Pad input rewired to audio thread on patched Schwung
    • ROUTE_EXTERNAL latency jitter ~7.6× tighter on patched Schwung
    • Count-in capture window tightened to last 1/8 note
    • ARP IN plays through count-in
    • Drum repeats during count-in + Repeat Sync toggle + true sub-step recording
    • Co-run drum pads invert into track colors
    • Shift+bottom-row pads: active track is solid bright, others blink dim
    • New splash art pool
    • Nudge knob folded onto Shift+K2 (Shft)
    • Loop and Capture buttons have visible dim grey ambient
    • Shift+jog in Session View steps the active track
    • Various knob speed improvements
    • Step-entry velocity rule unified
    • Track-bank OLED returns to overview faster (~1s instead of ~4s)
    • Recording CC automation no longer fights the knob
    • Drum repeats respond to pad pressure
    • Held CC step shows recorded value, not live knob value
    • Drum Shift+Delete+Jog popup reads "LANE PARAMS RESET"
    • Alt-mode label "RvSt" renamed to "Rvrs"
    • Perf View knob LEDs show looper state
    • Sample tap in Session View is no-op (was incorrectly opening bake dialog)

    Documentation

    • Full revision and reorganization of MANUAL.md

    Full technical changelog: CHANGELOG.md.

  9. v0.4.01 file

    Fixes

    • Input Quantize / Step Grid Misalignment

    Full technical changelog: CHANGELOG.md.

  10. v0.3.71 file

    Fixes

    • Chord-press monitoring now plays every note
    • Drum chord recording lands in one DSP buffer
    • Drum recording inline-monitors via DSP, matching melodic

    Full technical changelog: CHANGELOG.md.

  11. v0.3.61 file

    Documentation

    • MANUAL.md crash disclaimers softened to reflect Schwung v0.9.13. §12.4 and §15 previously warned that routing live external MIDI through pfx on a Move-routed track would crash the device. Schwung v0.9.13 (Vestal, May 14 2026) ships the upstream fixes — EXT_MIDI_REMAP_BLOCK (PR #76), the inject SIGABRT guard (PR #77), and a follow-up dedup pass (commit 62a04135) that's explicitly gated as a no-op when dAVEBOx is loaded. dAVEBOx still bypasses the chain for ROUTE_MOVE live input by design; the disclaimer no longer warns of a hard crash on current Schwung versions.

    Fixes

    • Drum clip switches keep polyrhythmic lanes in phase. Switching between drum clips on the same track during playback used to jolt lanes whose loop length is shorter than 16 steps (e.g. 5, 7, 9, 12) — the immediate-launch path preserved the old lane's wrapped step (often arbitrary in the new clip), and the quantized-launch / page-stop / scene-launch / launch-quant-switch-to-Now paths reset every lane to loop_start mid-cycle. All five DSP launch sites now anchor each lane's playhead to where the new clip's lane params would put it if they had been driving the lane since transport start (loop_start + (elapsed_render_ticks / lane.tps) % lane.length). For the common case of length=16 + tps=24, the anchor coincides with loop_start at every quant boundary — no behavior change there. Short non-aligned lanes now stay phase-locked across switches in both Now and quantized modes, including across Scene launches.

    Features

    • Loop window set (start + end) via Loop+step range gesture. While Loop is held in Track View, hold a page step to anchor the start, then tap another step before releasing to set the clip / drum-lane loop window to [start_page, end_page]. While the start page is held, additional taps re-set the end (scrub without releasing — last tap wins); the same-page tap is ignored; B<A auto-swaps so the range is always [min, max]. Single tap (no second press before release) keeps its existing semantics: length = (N+1)*16, loop_start = 0. Aborted hold (Loop released first) falls back to single-tap semantics so no gesture state leaks. Non-destructive: notes outside the window are preserved in storage and replay when you expand the window. Page LEDs in Loop view dim pages outside the window; the bottom OLED position bar shows window pages only with 1px ticks at the edges signaling clip content exists before/after. Bake re-anchors the window at step 0 (loop_start → 0, length unchanged) so the upper-length clamp returns to 256. State format bumps DSP v=26 → v=27.

    Performance / UX

    • ARP IN latch visual feedback. When Ltch is on for the active melodic track, (1) the pad LEDs of every note in the TARP input buffer stay lit white — physical-held and latched-after-release — so you can see at a glance which chord is feeding the arpeggiator; (2) the Arp indicator on the Track View overview OLED inverts (black on white chip) to signal that the engine is latched. Pad lighting mirrors DSP truth (read from t{n}_tarp_held), so it tracks the Rtrg setting automatically and includes external-MIDI-driven notes.
    • Loop clears latched notes (without dropping Ltch). While Ltch is on with notes in the TARP input buffer, pressing Loop with no pads held drops the latched chord and leaves the arp idle — without toggling Ltch off, so the next chord you play latches as expected. The existing Loop+pad-held shortcut (toggle Ltch) is unchanged.
    • Re-press a latched note to drop it (accumulate mode). With ARP IN Rtrg=Off + Ltch=On, re-pressing a pad whose note is currently latched-but-not-held removes that single note from the buffer. Lets you pluck individual voices out of a latched chord without dropping everything. The buffer-replacing behavior of Rtrg=On is unchanged.
  12. v0.3.51 file

    Features

    • Shift + Step 3 — Edit Synth / Edit Slot shortcut. One-press entry to the right co-run editor for the active track: Move-routed tracks open Move's device-edit / preset browser (same as Track menu → Edit Synth...); Schwung-routed tracks open the chain editor on the track's current slot (same as Edit Slot...). Available in both Track View and Session View. Silent no-op on External-routed tracks and on stock Schwung without the chain-edit shim.
    • Swing applies to ARP IN, SEQ ARP, and drum Rpt1/Rpt2 with transport stopped. Holding a chord through ARP IN (or driving drum repeats) used to feel straight with the transport off; the swing engine now runs off the free-running clock so offbeat output stays grooved whether the sequencer is playing or stopped. Live one-shot pad taps now always bypass swing — taps land immediately even if they happen on an offbeat step. (Previously, taps during playback that fell on offbeat steps could be delayed by the swing offset; that's gone.) Sequencer playback feel is unchanged.

    Performance / UX

    • Note/Session button LED blinks while in Edit Synth / Edit Slot co-run to advertise the exit gesture, matching the existing behavior for the Global Menu and Tap Tempo. Press the button to return to dAVEBOx from either editor.

    Fixes

    • Drum step + pad LEDs now refresh when switching clips from Session View with transport stopped. Tapping a clip pad (or Shift+pad) on a drum track in Session View while the transport was stopped previously left the step LEDs and the left-4-column lane-selector pad LEDs displaying the previous clip's content until the user deactivated/reactivated the clip or started transport. The two session-view clip-switch branches that update trackActiveClip immediately when stopped now also schedule the standard pendingDrumResync so the drum lane caches re-read from DSP, matching every other drum-clip switch site. Playing-transport and melodic-track paths are unchanged.
    • Drum Rpt1/Rpt2 recording now captures sub-step fires. Repeats at rates finer than the drum lane's per-step rate (e.g. Rpt1 1/32 with a 1/16 lane, or 1/64, or 1/16-triplet) used to record as one hit per lane step — the recording write was gated on the step being empty, so only the first sub-step fire per lane step landed in the clip. Now subsequent fires within the same lane step (in the same recording pass, InQ Off) accumulate up to the 8-per-step cap, each with its own note_tick_offset captured from drum_tick_in_step. Playback already supported multi-note-per-step via the existing migrate path. Write-once-across-passes semantics preserved: clearing a step is still required to re-record over it. InQ On unchanged (single hit per step, no degenerate sub-step duplicates).
    • Hanging notes during ARP IN chord-changing with swing on. Sporadic stuck notes that appeared when changing chord pitches while held with swing high (both playing and stopped transport) are resolved. The pfx queue drain was re-entering the swing block on every fired event without the bypass flag — MIDI DLY echoes, unison stagger, and deferred note-offs would get re-deferred, sometimes shuffling a note-on past its matching note-off and stranding the on. The drain now suppresses swing re-entry while still routing queued events through the SEQ ARP gate, looper hook, and merge hook (so echo→arp-buffer feeding, looper capture, and merge capture all continue to work). As part of the same fix, MIDI DLY echoes, unison stagger, and pfx_note_off deferred offs now get per-event schedule-time swing — each scheduled event individually evaluates whether the step it targets is offbeat, and bakes the swing offset into its fire time at insert. Echoes that target offbeat steps land swung; those targeting downbeat steps land tight. Replaces the previous behavior where echoes' swing depended on which step the drain happened to fire in (which was the root cause of the hangs).
  13. v0.3.01 file

    [0.3.0] — 2026-05-12

    Features

    • Euclidean rhythm knob (DRUM LANE K4 = Eucl) — per-lane Bjorklund hit-count placer. Turning K4 sets the number of evenly-spaced hits across the current drum lane's length; the displayed value is the active Euclidean count. Each turn diffs the previous Bjorklund pattern against the new one: only the changed positions toggle, so hand-placed hits outside the Euclidean set are preserved across knob sweeps. Hits are written with the unified step-entry velocity. Existing knobs shift right one slot: Len → K5, SqFl → K6 (K7/K8 LaneOct/LaneNote unchanged). Value is persisted per-track-per-lane via UI sidecar dleu.
    • Capture + scene-row button — snapshots the current performance into the pressed scene row: copies each track's currently-active clip into that row in one gesture. Skips tracks where the active clip is already on the target row (self-copy) or empty (so target keeps its prior contents on unused tracks). View-agnostic — works in both Session View and Track View. OLED shows CAPTURED / TO ROW N (or NOTHING / TO CAPTURE if nothing applied).
    • Track menu: Edit Slot... — hands the OLED + jog wheel + track buttons over to Schwung's native chain editor while dAVEBOx keeps pads, step buttons, knobs, and transport. First use shows a slot picker (1-4); the choice persists per track. Hold Shift while selecting Edit Slot... to reopen the picker and reassign. Press Back to navigate up within the editor, Menu to exit co-run. Entry is shown only on Schwung-routed tracks (symmetric with Edit Synth, which is shown only on Move-routed tracks). Capability-gated: requires the patched Schwung shim from legsmechanical/schwung (adds shadow_set_corun_chain_edit + corun_chain_edit_slot in shadow_control). On stock Schwung the entry is hidden and the feature is invisible.
    • Track menu: Edit Synth... (Phase A) — for tracks set to Route: Move, hands the OLED + jog + track buttons + Shift + Back + device-edit knobs + master knob to Move firmware's native preset browser and device-edit pages, while dAVEBOx keeps pads, step buttons, transport, and Menu. The sequencer keeps firing audibly so you can audition presets and parameter changes against the playing pattern. Auto-taps the matching track button on entry based on the track's MIDI channel (channel 1-4 → Move tracks 1-4); on channels outside 1-4 the user picks the Move track manually via Move's track buttons. Menu exits co-run. On Drum-mode tracks: tapping a pad in the left 4 columns silently selects the corresponding cell in Move's drum-instrument editor (via a synthesized Shift+pad gesture) while dAVEBOx still fires the drum from its sequencer — no double trigger. Capability-gated: requires the patched Schwung shim from legsmechanical/schwung (adds shadow_set_corun_move_native + corun_move_native_track in shadow_control). On stock Schwung or on non-Route-Move tracks the entry is hidden. Implementation note: pad and step-button LEDs freeze at entry-time state during co-run — verified harmless in real use.

    Performance / UX

    • Performance View knob LEDs show looper state. In Performance View (locked), each knob LED lights in its track color when that track's looper is on, and goes dark when off. Knob touch toggles the looper for that track with a LOOPER ON / TRACK N popup. The track menu reflects the change.
    • Unified step-entry velocity rule. Velocity written to a step now follows one rule.
      • Drum tracks: an active drum vel-pad press (while a step is held) wins; else the sticky vel-zone if a vel-pad has been pressed on that track; else VelIn if set; else 100. Drum vel zones always beat VelIn — they are the most direct, intentional control.
      • Melodic tracks: VelIn (when set 1–127) wins; else a live pad press wins (chord-entry hold-step + press-pad); else 100.
      • Previously VelIn was ignored at step-write time, drum step-tap defaulted to zone 12 (≈104) even with no vel-pad pressed, and melodic step-tap inherited lastPadVelocity from incidental pad activity. Now consistent and predictable.
    • Nudge knob folded onto the Shft knob. In CLIP, DRUM LANE, and ALL LANES banks, K3 (Nudge) is removed and Shift + K2 (Shft) now performs Nudge. The K2 OLED label flips to Nudg while Shift is held. Nudge mode is 2× snappier than Clock Shift (sens=4 vs 8). On melodic CLIP, K4–K8 shift down by one (Res → K3, Len → K4, SqFl → K7). On drum lanes / ALL LANES, the middle knobs shift left but K7/K8 (LaneOct/LaneNote on drum CLIP; unused on ALL LANES) stay in place.
    • Loop and Capture buttons now light with a visible dim grey ambient (Loop was invisible at peer-button palette idx 16; Capture was unlit). Loop uses a custom-RGB scratch palette entry; Capture uses DarkGrey. Loop's perf-mode and drum-repeat indicator overrides are preserved.
    • Shift + jog wheel in Session View now steps the active track 0–7 (was a no-op). Plain jog still scrolls scene rows. Track View behavior unchanged.
    • NoteFX Gate knob is now 4× snappier: each detent changes the value by ±2% (was 1% per 2 detents). Useful precision preserved for the 0–400% range; other NoteFX knobs unchanged.
    • NoteFX Quantize knob now changes by ±2% per detent (was ±1%), 2× faster sweep across the 0–100% range.
    • Melodic step-edit Pit knob snappier: shifts a scale degree every 10 detents (was 16).
    • SEQ ARP / ARP IN Stps knob labels spelled out: Mut → Mute, Stp → Skip (Off unchanged). Easier to read at a glance.

    Fixes

    • Shift step-hint overlay drops when a compound modifier is pressed. Holding Shift normally lights the step buttons as a shortcut-hint grid. When another modifier is pressed while Shift is held (Shift+Mute = Solo, Shift+Delete = clear/hard-reset, Shift+Copy = Cut, Shift+Loop = Perf latch toggle), the hint grid is no longer accurate — the step row carries the compound's semantic instead. The hint now disappears the moment the second modifier presses down and reappears if it's released while Shift is still held. Applies to step main LEDs (Track View), icon LEDs (CCs 16-31), and the Session View step-main overlay.
    • Drum-lane step copy now flashes the source step. Hold Copy + tap a step on a drum-mode track and the source step now blinks white/off the same way it does on melodic tracks. The drum step-LED renderer was returning early before the copy-source overlay; the overlay now applies to both pad modes.
    • Hanging notes during fast or polyphonic live play. When a pad press and its release landed in the same JS tick (~10.6 ms window), the live-note flush sorted offs before ons unconditionally, so the off processed an inactive note (silent no-op) and the on then activated it with no subsequent off — leaving the note stuck on the Move synth. Drain now emits same-pitch off+on pairs in arrival order while preserving the existing offs-first ordering across different pitches. Affected ROUTE_MOVE most visibly (no downstream chain to mask the hang); ROUTE_SCHWUNG benefits too.
    • Step-entry velocity inconsistency. Tapping a step button (without holding a pad) now writes a fixed velocity of 100 instead of inheriting lastPadVelocity — which was silently being mutated by drum velocity-pad presses, so step taps on melodic tracks would silently shift after touching a drum vel-pad. Affects melodic step-tap (with last-played note) and the multi-toggle path when a primary step is held. Chord-entry (hold step + press pad) is unchanged — pad press velocity still wins.
    • Shift+Step 2/7/9 menu shortcuts now target by label (Global / Swing Amt / Scale) instead of hardcoded numeric menu indices. The conditional Edit Slot... / Edit Synth... items were shifting the indices so the shortcuts landed on the wrong items (e.g. Step 7 was hitting Launch, Step 9 was hitting Tap Tempo). Now stable under future menu reorders.
    • MIDI DLY Lvl now defaults to 127 on all drum lanes across all 8 tracks (was 0 on tracks 1–7 — only track 0 got the JS-side seed). This also makes Vel Fdbk audible on those drum lanes: previously, with Lvl=0 the DSP skipped all delay scheduling, so even non-zero Vel Fdbk produced no effect. Set Rep ≥ 1 and Vel Fdbk now shapes the repeat-velocity slope as documented. Defaults fixed at the DSP layer (both drum_pfx_params_init and clip_pfx_params_init); the JS first-run seeding workaround is removed. Saved sets with explicit per-clip/per-lane delay_level keep their stored values; sparse-default sets pick up the new 127 default on next load.
    • Panic (Delete+Play when stopped) now sweeps all 16 MIDI channels on every active route, not just the channels that tracks happen to be configured for. ROUTE_SCHWUNG: 128 note-offs × 16 channels; ROUTE_EXTERNAL: CC 120+123 × 16 channels; ROUTE_MOVE: CC 123 × 16 channels (in addition to the existing targeted active-note silencing).

    Persistence

    • UI sidecar bumped to v=6: per-track-per-lane Euclidean hit count (dleu, 8 × 32 ints) — feeds the DRUM LANE K4 Eucl knob. Old v=5 sidecars load with all entries defaulting to 0 (no Euclidean stamps active).
    • UI sidecar bumped to v=5: per-track drumVelZoneArmed (dva) — tracks whether a velocity-pad has been pressed on each drum track, gating the sticky vel-zone fallback for step entry. Old v=4 sidecars load with dva defaulted to false for all tracks (re-arm by pressing a vel-pad once).
    • UI sidecar bumped to v=4: per-track Schwung-slot assignment (ss). Old v=3 sidecars upgrade in place; new slots default to unassigned.
  14. v0.2.01 file

    Features

    • Loop+Play (Track View): restarts playback with the active clip starting at the first step of the visible step-view page; other tracks land at the musically-equivalent offset (preserves sync)
    • Perf Mode preset mods are now individually toggleable — pressing a mod pad clears its bit whether latch is on or off
    • Latch toggle is purely a mode switch (mod pads sticky vs momentary); it no longer wipes mod state
    • Perf Mode OLED redesigned: header (preset name / PERFORMANCE), tiny-font active mod list (up to 4 lines), footer chips (Latch · Hold · Sync, filled = active) + right-aligned rate
    • Action popups now render in Perf Mode (e.g. "PERF PRESET / SAVED")
    • Top-row Perf pad LEDs are static — no more flashing: DarkGrey/White (rates), DeepRed/Red (Hold), DeepGreen/Green (Sync), DarkOlive/BrightGreen (Latch)

    Fixes

    • Removed the rec-arm count-in OLED takeover; the normal track view stays visible during count-in
    • Melodic live-recording: notes pressed in the upper half of a step no longer play back stuck at the default ~½-step gate — the note-off step-array mirror now uses the same note_step() rounding as the rest of the recording path

    Performance / UX

    • Action popup duration halved (~1 s → ~520 ms)
    • Step hold-to-save duration shortened (~1.6 s → ~750 ms) — affects both Perf preset and Mute snapshot saves

    Documentation

    • MANUAL.md rewritten as a comprehensive user guide; code-verified against ui.js / seq8.c
    • MANUAL.md Performance Mode + Appendix B updated for the toggleable-preset / latch-as-pure-mode-switch / new-OLED-layout behavior; new PERF PRESET / SAVED and PERF PRESET / CLEARED action pop-ups documented
    • README maintained on GitHub directly (pre-commit hook blocks local commits)
  15. v0.1.0v0.1.0 — initial release1 file

    Changelog

    All notable changes to dAVEBOx are documented here.

    0.1.0 — 2026-05-11

    Initial public release.

    Features

    • 8 tracks (melodic + drum), 16 clips per track, up to 256 steps per clip
    • Per-clip effects chain: TARP, NOTE FX, HARMZ, MIDI DLY, SEQ ARP
    • Bake — render the effects chain back into note data (multi-loop, wrap mode)
    • Live recording with count-in pre-roll
    • 32-lane drum tracks with per-lane loop length, effects, and note repeat
    • Scale-aware everything: pitch random, harmonizer, delay, manual transposition
    • Performance Mode: 24 mods × 16 snapshot slots, hold/lock/latch interaction
    • 8 CC automation lanes per track, per-clip at 1/32 resolution
    • Mute/solo with 16 snapshot slots
    • Copy/paste for notes, steps, clips, and scenes
    • Per-track MIDI channel and routing (Move · Schwung · External)
    • Suspend/resume — background playback while browsing Move's native UI
    • Set state inheritance — duplicate a Move set, inherit dAVEBOx state by name

    Known limitations

    • External MIDI input into Move-routed tracks crashes Move
    • Suspending while a Move-routed drum track is playing can crash Move
    • Volume knob briefly interrupts MIDI output
    • Powering Move off from within dAVEBOx causes a brief hang