Created by Mathias Vejerslev
RACKWERK is a complete music production studio that runs entirely in your browser. No installs, no plugins, no accounts, no cloud — everything happens on your device in real time.
What makes RACKWERK unique:
| 🌐 Zero install | Single HTML file — open it in any browser and start making music. Works offline, no server needed |
| 🎹 Real-time synthesis | 5 polyphonic synth engines + full General MIDI soundfont library (128 instruments) — all synthesized live via Web Audio API and Tone.js |
| 📂 Standard MIDI | Import any .mid file → instantly editable multitrack score with per-channel mixing. Export your work as standard MIDI |
| 🎼 Multitrack piano roll | Full-featured score editor with select/draw/erase tools, automation lanes, transform tools, zoom, snap grid — all in the browser |
| 🥁 Drum machine | Step sequencer with 8 synth kits + 5 sample kits, 19 presets, 10 fill patterns, per-step probability |
| 🎛️ Full mixer | 6-channel mixer with 3-band EQ, 8 FX send buses (reverb, delay, chorus, distortion, phaser, bit crusher, autowah, pitch shift), up to 4 group buses, A/B snapshots, master 8-band parametric EQ, compressor, limiter |
| 🎙 Audio recording | Record mic/line-in straight onto audio tracks — bar-aligned, latency-calibrated, with non-destructive clip trim/fades/normalize. Takes persist in your browser |
| 🦴 AI assistant | Lazy Bonez — a built-in AI that composes, mixes, designs sounds, writes automation and answers questions about your session. Everything it does is one Ctrl+Z away |
| 🔄 Arpeggiator | 12 modes, 9 rates, bar-synced, with latch, lock, humanize, and ★ diatonic chord mode — from trance stabs to ambient textures |
| 🎵 Bounce to WAV | Real-time audio capture with progress overlay — export your mix as a downloadable WAV file |
| 🌀 Audio visualizer | WebGL shader reactive to 16 frequency bands — 13 tweakable parameters |
| 💾 Session files | .rackwerk format saves everything — tracks, drums, mixer, FX, automation, score, layout |
| 📱 Mobile ready | Responsive layout with touch support, pad mode, and iOS audio unlock |
| ▶ PLAY | Start/pause playback — also initializes audio on first click. Press again to pause (position preserved) |
| ■ STOP | First click: pause (keeps position, shows paused readout). Second click: reset to beginning (1:1:1) |
| BPM | Tempo (40-220). Type a number or use TAP |
| TAP | Click rhythmically to set BPM — averages your last 6 taps |
| Time Sig | Time signature: 4/4, 3/4, 6/8, 5/4, 7/8, 2/4 — affects drum grid, beat lines, and snap grid |
| 🔔 | Metronome — click on every beat, accented on beat 1 |
| SC | Sidechain — ducks pad and bass on every kick hit. Drag the depth slider for more pumping |
| 💾 SESSION | Download your entire session as a .rackwerk file (everything saved) |
| 📂 LOAD | Load a saved session — restores everything including tracks, drums, FX, and score |
| MASTER | Master output volume (protected by limiter at -3dB) |
| ⚡/⚖/🛡 | Latency mode — Low (50ms), Balanced (100ms), Safe (200ms). Auto-upgrades during MIDI playback |
One-click audio export: resets to position 0, plays through your entire song, captures the master output as 16-bit stereo WAV. Full-screen progress overlay with cancel support (ESC / Space / click). The WAV file downloads automatically when complete.
Your session autosaves to browser storage every 30 seconds while you work. If the tab crashes or you close it by accident, a recovery bar appears on next load — one click restores where you left off, including any audio recordings (they live in the browser's storage too).
| Mouse/Touch | Click or tap keys. Velocity depends on where you click — top = soft, bottom = loud |
| Computer keys | A-; chromatic. Z/X = octave shift |
| MIDI controller | Plug in a USB MIDI keyboard — auto-detected via Web MIDI (notes, sustain pedal CC64, mod wheel CC1, pitch bend) |
| Sustain | Hold Shift — notes ring until you release it (hardware pedal CC64 also works) |
| E.Piano | Warm FM Rhodes — melodies, chords, arps (PolySynth/FMSynth) |
| Pad | Soft detuned triangle — warm chords, slow attack (PolySynth/Synth) |
| Bass | Fat sawtooth + lowpass filter — thick bass, monophonic (MonoSynth) |
| Guitar | FM plucked string — short, percussive (PolySynth/FMSynth) |
| Bells | Pure sine FM — metallic bells, glass-like (PolySynth/FMSynth) |
| OCT (2-9) | Visible keyboard range — 2 octaves (compact) up to 9 (the full C0-C9 span). Z/X shift the window |
| CHORD | Play full chords from single keys — 24 types: Major, Minor, 7th, Maj7, Min7, 9th, Min9, Maj9, 11th, 13th, 6th, Min6, 6/9, Sus2, Sus4, Add9, Dim, Dim7, m7♭5, Aug, Aug7, MinMaj7, Power + ★ Diatonic (chord quality follows scale degree). INV selects inversion (Root/1st/2nd/3rd) |
| SCALE | Lock notes to a scale — 24 scales in 4 groups: Common (Major, Minor, Pentatonic, Blues, Harmonic/Melodic Minor), Modes (Dorian, Phrygian, Lydian, Mixolydian, Locrian), Jazz (Whole Tone, Diminished H-W/W-H, Bebop), Exotic (Phrygian Dom, Hungarian Min, Double Harmonic, Hirajoshi, In-Sen, Persian, Enigmatic). Circle of Fifths badge shows related keys (V, IV, relative, parallel) |
| QUANTIZE | Snap timing to grid — ¼, ⅛, 1/16, 1/32, or ⅛ triplet |
| FILTER | Low-pass filter cutoff (20Hz–20kHz) and resonance (0–20). Per synth |
| ⟲ | Reset keyboard section to defaults |
Keys respond dynamically to your playing — always colored by the active synth engine:
| Velocity → Color | Harder hits show more saturated synth color; soft notes are barely tinted |
| Key Depression | Keys press deeper with harder velocity (0.8–3.5px) |
| Sustain Shimmer | Pedal-held keys dim and pulse gently |
| Pitch Bend Tilt | Per-channel — only keys from the bent channel skew (±5°). Other channels unaffected |
| Mod Wheel Pulse | CC1 above 5% triggers a brightness animation on active keys |
| Multi-Channel | Same key played on 2+ channels blends their synth colors |
| Scale Overlay | When a scale is selected, out-of-scale keys are dimmed. Root notes marked with accent bar |
Shape any synth in real time:
| WAVE | Oscillator waveform — Fat Saw, Fat Tri, Fat Square, Sine, Saw, Triangle, Square, PWM |
| ATTACK / DECAY / SUSTAIN / RELEASE | ADSR envelope — controls how the note fades in, sustains, and releases |
| DETUNE | Pitch offset (-100 to +100 cents) |
| VOICES | Unison voice count (1–6) — thickens the sound |
| VIB RATE / DEPTH | Vibrato — periodic pitch wobble (0.5–20 Hz) |
| TREM RATE / DEPTH | Tremolo — periodic volume pulse (0.5–20 Hz) |
Organized in 7 categories: Keys (Bright, Wurlitzer, Clavinet, Organ), Pads (Warm, Strings, Choir, Ambient), Bass (Sub, Synth Bass), Leads (Plucky, Square Lead, Brass), Bells (Glass, Vibraphone, Marimba), Guitar (Steel, Muted), World (Sitar, Kalimba) + more. Presets auto-switch to the right synth engine.
User presets: Click 💾 SAVE to save your custom sound. Appears with ✦ prefix in dropdown. ✕ DEL to remove.
Large touch pads for mobile. 16 pads auto-populated from the current scale/key.
Takes held notes and plays them automatically in a pattern, synced to tempo and locked to bar boundaries.
| Mode | Up, Down, Up-Down, Random, Played, Spiral, Converge, Diverge, Skip, Thumb, Walk, Chord — 12 patterns from melodic to rhythmic stabs |
| Rate | Half, Quarter, Dotted ¼, 8th, Dotted 8th, 8th Triplet, 16th, 16th Triplet, 32nd |
| Octaves | 1–4 octave spread |
| Gate | Note length (10% staccato → 100% legato) |
| VEL | Velocity curve — Flat, Rise, Fall, Accent, Wave, Random |
| PROB | Per-step probability — 100% = every note, 50% = random skips |
| HUM | Humanize — random timing offset per note (0% = robotic, 100% = loose feel) |
| LOCK | Freeze arp pattern — keeps playing after key release |
| LATCH | Remember notes — add more without releasing existing |
| OFFSET | Shift the pattern's starting step (0-7) — same notes, different groove |
| INV | Chord inversion for chord/diatonic modes — Root, 1st, 2nd, 3rd |
| KEY / SCALE | Scale lock inside the arp section — synced both ways with the keyboard's scale selects |
| ⏎ SYNC | Queue changes for next bar boundary (1/2/4/8 bars) |
19 Presets — Trance, Blade, Acid, Pluck, Funk, Ambient, EDM, Jazz, Synthwave, Lo-Fi, DnB, Cinematic, Techno, Gospel, Blues + an odd-meter set (Waltz 3/4, Celtic 6/8, Prog 5/4, Balkan 7/8). Each auto-configures synth, mode, rate, and notes — the odd-meter ones also set the time signature.
| BARS | Loop length: 1, 2, 4, 8, 16, or 32 bars |
| SWING | Shuffle feel for arp and drums |
| ▶ ARP | Mute/unmute arp audio (pattern still visible) |
| ↓ MIDI | Export current arp + drum pattern as standard MIDI file |
| 💾 SAVE TRACK | Snapshot arp + drums + sends + automation as a reusable track |
| ⏺ LOOP | Looper pedal — click to record your keyboard playing, click again to loop it, click again to overdub layers on top. Bar-aligned; resets on transport stop |
| ⏺ LIVE | Record live audio output to downloadable file — captures real-time playing, jamming, and tweaks |
| ⬤ AUTO REC | Record slider movements — saved with next track for automation |
Click ✏ EDIT to turn the looper into a piano roll editor:
| Click empty space | Add a note |
| Drag a note | Move pitch/timing |
| Drag right edge | Resize duration |
| Shift+click | Multi-select notes |
| Ctrl+drag | Adjust velocity |
| Del | Delete selected |
| Ctrl+Z/Y | Undo / Redo (50 levels) |
Always-on visualization showing all MIDI channels and recorded score tracks. Supports unified lane mode where each instrument gets its own row.
| ⏺ REC | Record into the armed track — instrument track: keyboard/MIDI notes; audio track: your microphone (see 🎙 Audio Recording) |
| 🎹 LIVE | Switch to live view (arp + drums + tracks combined) |
| ▼/▶ LANES | Collapse or expand all lanes at once (▼ = all expanded, ▶ = all collapsed) |
| ↓ MIDI | Export score tracks as standard MIDI file |
| ↑ MIDI | Load a MIDI file into the score |
| ⊟ FIT | Toggle fit-all / previous zoom |
| ⊞ FOLLOW | Auto-scroll to keep playhead visible when zoomed in |
Create multiple recording tracks, each with its own instrument, color, and notes. Per-track controls: ▼ collapse, ⏺ arm (for recording), S solo, M mute, instrument selector, rename, delete.
Each MIDI channel gets independent mix controls in its track strip:
| V / P / F / T | Volume, Pan, Filter cutoff, Transpose — all per-channel, independent of the shared mixer |
| 🏠 Room | Room reverb send level per channel |
| FX SENDS ▼ | Expand to show 8 independent FX send sliders (CH, DL, RV, DT, PH, CR, AW, PT) — each channel gets its own send levels to all FX buses |
Load any standard .mid file — channels are automatically imported as editable score tracks with GM soundfont instruments, per-channel volume/pan/filter/transpose controls, and full edit access from the start. No intermediate step needed.
Multi-tempo: MIDI files with tempo changes play back correctly — BPM updates automatically as tempo map events fire during playback. The BPM display updates in real time.
Full MIDI expression: Pitch bend (CC), vibrato (CC1), channel aftertouch, polyphonic aftertouch, sustain pedal (CC64), portamento, and bank select are all parsed and applied during playback with keyboard visualization.
| Ctrl+Wheel | Horizontal zoom (cursor-centered, up to 64×) |
| Alt+Wheel | Vertical zoom (pitch range, up to 8×) |
| Shift+Wheel | Horizontal scroll |
| Plain Wheel | Vertical scroll (pitch) |
| Click ruler | Set playhead position (continues playing if transport is active) |
| Drag ruler | Scrub playhead (pauses during drag, resumes on release) |
| Shift+click ruler | Set loop region starting at clicked bar (drag to extend). Enables loop mode automatically |
| Drag loop edges | Resize the loop region by dragging the left or right edge handles |
| Drag loop body | Move the entire loop region without changing its length |
| Double-click ruler | Clear loop region and disable loop mode |
| Double-click lane | Zoomed out: Edit Focus — zoom to ~8 bars, select track, expand lane + auto. Zoomed in: add note at click position. FIT to toggle back |
Control how each track's lane appears in the score — collapsed strip, content-fit, or full piano.
| Click lane header | Collapse / expand that single lane |
| Double-click lane header | Rename the track — prompt appears with current name |
| Drag resize handle (bottom of lane) | Resize lane height proportionally. Size is stored as a multiplier of the lane's natural content height, so it survives adding/removing notes |
| F or right-click → Fold / Unfold | Toggle between folded (pitch-pruned to content, default) and unfolded (full A0-C8 piano). Unfolded lets you paint notes outside the current content range |
| H | Distribute lane heights evenly across the visible canvas. Press again to restore prior sizes |
| ▼/▶ LANES button | Collapse or expand ALL lanes at once. ▼ = all expanded, ▶ = all collapsed (matches HTML <details> / OS file tree convention) |
| FIT / FOLLOW / LANES clusters | The same three buttons appear at the score panel's top-right, bottom-right, and in the toolbar — click any instance and all three stay in sync |
Three tool modes in the score toolbar: ⬚ SEL (select), ✏ DRAW (add notes), ✕ ERASE (delete notes).
| Select | Click to select, Shift+click multi-select, rubber-band marquee, drag to move, right-edge drag to resize, bottom-edge drag for velocity |
| Draw | Click to place a note at snap grid resolution. Previews pitch on click |
| Erase | Click a note to delete instantly |
Transform selected notes or the armed track via the ⚡ XFORM menu:
| Humanize | Add subtle timing and velocity variation for a natural feel |
| Quantize 50%/100% | Snap note timing toward the grid (partially or fully) |
| Velocity ±20% | Boost or reduce note velocities |
| Legato / Staccato | Extend notes to fill gaps, or shorten them |
| Transpose ±1/±12 | Shift pitch by semitone or octave |
| Invert / Reverse | Mirror pitch or reverse time order |
| Harmonize +3rd/+5th | Add parallel harmony notes |
| Constrain to Scale | Snap all notes to the current scale |
Click 📈 AUTO to show drawable automation curves below the piano roll. Click to add points, drag to reshape. Per-track automation for:
| Channel | Volume, Expression, Pitch Bend, Pan, Filter Cutoff, Resonance |
| FX Sends | All 8 buses — Reverb, Delay, Chorus, Distort, Phaser, Crush, AutoWah, Pitch |
| FX Parameters | 13 parameters — Reverb Size/Dampen, Delay Time/Feedback, Chorus Rate/Depth, and more |
Segments between points can be curved (Ableton-style eased ramps), and everything is stored in musical time — changing BPM never desyncs your curves. Automation exports to MIDI as CC events and imports from MIDI CC1/7/10/11/71/74/91/93/94/95 + pitch bend. Collapsed lanes show thin sparkline previews of automation curves. An A badge in the lane header indicates tracks with automation data.
Freeze renders a GM/drum track to an audio buffer via OfflineAudioContext, freeing CPU from per-note WAF voice creation. Right-click a track or use the ❄ button. Frozen tracks show a FROZEN badge — mixer controls (volume, pan, FX sends) remain live but instrument/note editing is locked until unfrozen.
Auto-freeze: Enable the Auto ❄ checkbox in the score title bar. Heavy tracks (>40 notes) freeze automatically in the background when you press Play. Per-lane frost animation shows progress. Demos enable auto-freeze by default.
A strip above the score canvas shows named, colored sections. Click to create a section, double-click to rename, drag to move, drag edge to resize, × to delete. All bar-snapped. Sections are imported from MIDI Marker events and exported to MIDI.
Set 1 or 2 bars of metronome pre-roll before playback starts. The transport counts down with click sounds before the music begins — useful for recording. Select in the transport bar dropdown.
Record your voice or any instrument straight into the session. Add an audio track (score panel + AUDIO), arm it, and press ⏺ REC.
| Bar-aligned start | Transport playing: capture begins at the next bar. Stopped: starts immediately and starts the transport. A red waveform grows live while you record |
| STOP commits | Hitting stop mid-recording keeps the take — nothing is ever silently discarded. Re-recording over an existing take asks first (and the old take stays restorable) |
| Input bar | Appears while an audio track is armed: STEREO/MONO badge, peak meter, GAIN pre-amp (±24 dB), MON monitor toggle with DIRECT (dry, zero-latency — use this while tracking) or CHAN (through the channel FX) routing |
| CAL / LAT | If takes land late or early against the beat: click CAL — it plays 3 beeps through your speakers, listens with the mic, and sets the latency compensation automatically (speakers must be audible to the mic — it can't calibrate on headphones). Or set LAT manually: takes late → raise it, early → lower it |
| Raw signal | Capture is music-grade: echo-cancellation, noise-suppression and auto-gain are all OFF. If the meter clips, the distortion is baked in — lower GAIN and re-take |
All edits are non-destructive and undoable: drag the clip to move it (snaps to the grid, Alt = free) · drag its edge handles to trim · drag the corner handles for fade-in/out · right-click for Normalize (brings the take to full level), move-to-playhead/start, delete, and Restore previous take.
Audio plays through the E.Piano channel strip — its EQ, sends and volume shape your recording. A clip parked at bar 1 loops on its own length like a looper pedal; a clip placed later in the timeline plays once per loop pass at its position.
Step grid for 14 drum sounds (canonical order): kick, snare, clap, rimshot, closed hi-hat, pedal hi-hat, open hi-hat, low tom, mid tom, high tom, crash, ride, cowbell, tambourine. Step count adapts to time signature (e.g. 12 steps in 3/4, 20 in 5/4). Click steps to toggle; drag rows to reorder. Each step has adjustable per-step probability (right-click or long-press).
8 Synth kits (instant, no download):
| TR-808 | Classic analog — deep booming kick, sizzly hats, noise claps |
| TR-909 | Punchier, tighter — brighter attack, crisper hats |
| Acoustic | Simulated real drums — pitched body + beater click |
| Lo-Fi | Bit-crushed vinyl — muffled, gritty |
| Industrial | Heavy distortion — sawtooth kick, harsh metallic hats |
| Minimal | Clean and tight — pure sine kick, short clicks |
| Jazz | Warm, round — soft kick, brush snare, ride cymbal |
| Electro | Deep sub kick + click transient, crispy metallic hats |
5 Sample kits (loaded from WebAudioFont CDN — full GM drums, notes 27–81):
| FluidR3 GM | Classic General MIDI soundfont — all standard percussion |
| JCLive | Natural live drums — default kit |
| Aspirin | Crisp modern kit |
| Chaos | Unusual experimental sounds |
| Best Available | Auto-selects the best sample per drum note across all soundfonts |
Sample kits support all 55 GM drum notes (27–81) for full MIDI drum playback. Custom samples: drag-and-drop any .wav/.mp3 onto a drum row to replace that sound.
Classic: 4-Floor, Hip-Hop, Half-Time. Trap/808: Trap, Reggaeton. Dance: Disco, Garage, Techno. Funk: Funk, Breakbeat, Afrobeat. Jazz: Bossa, Swing. Electronic: Dubstep, Lo-Fi, IDM, DnB. World: Latin.
| 🥁 Snare | 16th snare roll building to end |
| 📈 Build | Progressive density ramp |
| 📉 Break | Strip layers for a dramatic drop |
| 🎲 Chaos | Random weighted hits — different every time |
| ⏩ Double | Ghost-note every existing hit |
| 🔻 Tom | Cascading kick/snare fill |
| 🎩 Trap Roll | Rapid hi-hat buildup |
| 💥 Amen | Classic breakbeat shuffle |
| 🪖 March | Military snare roll |
| ⬛ Drop | Strip to silence for maximum tension |
6 channel strips (E.Piano, Pad, Bass, Guitar, Bells, Drums) + up to 4 group buses. Each channel has:
| VOL / PAN | Volume and stereo position (smooth — no crackling) |
| LO / MID / HI | 3-band EQ (-12 to +12 dB per band) with real-time frequency response curve showing combined EQ shape |
| EQ Curve | Mini canvas below EQ sliders — shows actual filter response from the BiquadFilter nodes. Updates in real time during playback (tracks automation). Channel-colored fill and stroke |
| M / S | Mute and Solo |
| 8 Send knobs | Send level to each of the 8 FX buses |
| OUT | Route channel to Master or to a Group Bus for submixing |
| Level meter | LED-style segmented bar with fixed color zones: green (safe), yellow (caution), red (hot). Clip LED lights at peak. Peak hold indicator |
Group Buses: Click + GROUP BUS below the mixer to create submix groups (up to 4). Each group has VOL, PAN, 3-band EQ, M/S, and metering. Route any channel to a group via the OUT dropdown. FX sends are unaffected by group routing (they tap from the channel bus in parallel).
The mixer header has A / B capture buttons and an A⇄B toggle — snapshot two complete mixer states and flip between them to compare, with a crossfade ramp from instant to 5 s. Arm ⏺ and toggle A⇄B during playback to record the crossfade as volume/pan/send automation.
The ↶ ↷ buttons in the mixer header undo/redo mixer changes — and the global Ctrl+Z covers everything in one timeline: notes, automation, mixer, room reverb, GM channel strips.
Each FX bus has a colored dot — click to bypass/enable. The ⚡ ALGO / 🎵 CONV button in the section header switches the room reverb engine between algorithmic (Schroeder — low CPU) and convolution (IR — richer sound).
| Chorus | Thickens sound — frequency + depth |
| Reverb | Room/hall ambience — room size + dampening |
| Delay | Echo repeats — delay time (50ms–1.5s) + feedback control |
| Distortion | Crunch and grit — amount control |
| Phaser | Sweeping comb filter — frequency + octaves |
| BitCrusher | Lo-fi bit reduction — bits (1-16, lower = grittier) |
| AutoWah | Envelope follower filter — responds to playing dynamics |
| PitchShift | Pitch up/down by semitones (-12 to +12) — harmonizer, octaver |
Master bus equalizer with 8 sweepable bands for final mix shaping. Each band has a gain slider (±12 dB) and Q (bandwidth) control.
| Band 1 (80Hz) | Low Shelf — boost/cut sub bass |
| Band 2–7 | Peaking at 200Hz, 500Hz, 1.2kHz, 2.5kHz, 5kHz, 10kHz |
| Band 8 (16kHz) | High Shelf — boost/cut air and brilliance |
Saved tracks capture: arp notes, drums, synth, sends, and automation. Click ↩ to load back, M to mute, ✕ to delete.
Song Arrangement: Chain patterns into a full song — add entries, set repeat count, reorder with ↑↓. ▶ PLAY SONG plays straight through.
♫ Demos: the demo browser streams ready-made example sessions — load one to hear what the engine can do, then pick it apart: every track, pattern and mixer move is fully editable.
Every rack panel title bar has an M button for quick muting:
| Keyboard / Synth / Arp | Linked — mutes the active keyboard synth channel |
| Drums | Mutes drums channel |
| Score | Mutes all score track channels |
| Loop | Mutes saved track playback |
| Mixer | Mutes master output |
| FX | Zeros all FX return gains (dry bypass) |
| Master EQ | Flattens all EQ bands (restores on unmute) |
Click ⊞ SPLIT in the header to toggle side-by-side panel layout. In split mode, each panel shows a ↔ dock button — click it to pair the panel with its neighbor at 50/50 width. Dock state persists across sessions.
5 layout presets via the ⚙ LAYOUT dropdown: Stack, Compose, Beat, Mix, Perform — each rearranges panels for a specific workflow. Drag the ☰ handle in any panel header to reorder panels manually.
Click 🌀 VIZ to enable a real-time audio-reactive background shader. Click again to show/hide the 13 control sliders; click a third time to turn off.
The visualizer analyzes 16 frequency bands from the master output, detecting beats, onsets, and spectral brightness. When active, all panels switch to glassmorphism (translucent backgrounds with blur).
| OPACITY | Shader visibility behind panels |
| SPEED | Animation rate |
| TENDRILS | Number of animated tendrils |
| REACH | Tendril size / spread |
| HUE | Color shift offset |
| REACT | Audio reactivity sensitivity |
| WARP / ZOOM / SPIN | Spatial distortion, scale, and rotation |
| SPARKLE | Treble-driven particle intensity |
| SHOCK | Beat-triggered flash intensity |
| SAT | Color saturation |
When a MIDI file contains metadata, RACKWERK displays it automatically:
| Title | Shown in the score badge: "MIDI · Song Title" |
| Lyrics | Synced to playback — shows previous, current (highlighted), and next lyric in a bar below the score |
The LAZY BONEZ panel is a music-production AI wired directly into the engine. Type what you want in plain language — it answers, or makes the change itself.
| What it can do | Compose melodies/chords/bass/beats onto tracks · balance and EQ the mix (Auto-Mix) · shape synth patches · write automation (fades, filter sweeps, pitch slides) · arrange song sections · manage tracks (create, mute, rename, freeze) · change BPM/key/scale · or just give advice |
| Quick actions | One-click presets above the chat: Auto-Mix, Warm Up, Widen, Fix Mud, Chords, Melody, Bass, Beat, Remix, Automate, Structure, Patches, Polish, Analyze |
| 🧠 Deep | Toggle Deep thinking — a stronger model with the full knowledge base (~3-5× more tokens per call). In Deep mode it can also ask to listen: it solos/mutes and plays a few bars to analyze the actual audio before answering |
| Consent & undo | Bigger changes arrive as a proposal with an ⚡ Apply button — nothing happens until you click. And everything it applies feeds the normal undo: one Ctrl+Z reverts an entire Auto-Mix |
| Status & budget | The LED and status rail show what it's doing; the budget display tracks API spend. First use asks a one-time privacy acknowledgement (your session data goes to the AI provider for the request). 🔊 toggles spoken replies |
| Boundaries | It can't press Record or edit audio clips for you — for recordings it advises (latency CAL, normalize, monitoring) while you drive |
6 color themes via the dropdown in the header: Amber, Phosphor, Neon, Ice, Violet, Infrared. Changes the accent color throughout the entire UI. Persists across sessions. The ☀ button toggles light/dark theme.
| A–; | Play notes (chromatic) |
| Z / X | Octave down / up |
| Shift | Sustain pedal (hold) |
| ↑ / ↓ | Pitch bend (hold) |
| Space / 1 | Play / Stop |
| Enter / 2 | Stop (press twice to reset) |
| R / 3 | Record (score if track armed, audio otherwise) |
| M | Toggle metronome |
| Q | Toggle quantize |
| L | Toggle song loop |
| , / . | BPM down / up (nudge) |
| Ctrl+S | Save session |
| B | Toggle Select ↔ Draw tool (FL/Ableton muscle memory) |
| 1 / 2 / 3 | Select / Draw / Erase tool |
| 4 | Step input (play keyboard → place notes at cursor) |
| Dbl-click lane header | Rename track |
| Right-click track | Context menu (rename, color, Fold/Unfold, duplicate…) |
| Ctrl+Z / Ctrl+Y | Unified undo / redo (notes, automation, mixer) |
| Ctrl+A | Select all notes |
| Ctrl+C / Ctrl+V | Copy / Paste notes |
| Ctrl+X | Cut (copy + delete) |
| Ctrl+D | Duplicate selected notes |
| Ctrl+Shift+D | Duplicate selected track |
| Alt+Drag | Copy notes (drag duplicates) |
| ↑ / ↓ | Nudge pitch ±1 semitone (Shift = ±1 octave) |
| ← / → | Nudge time ±1 snap grid step (Shift = ±1 bar) |
| Del / Backspace | Delete selected notes |
| Escape | Deselect all notes (then closes overlays) |
| Alt+↑ / ↓ | Navigate between tracks (with focus) |
| F | Fold ↔ Unfold selected lane (pitch-pruned ↔ full piano) |
| H | Optimize lane heights (distribute evenly; press again to restore) |
| Ctrl+Wheel | Horizontal zoom (time, cursor-centered) |
| Alt+Wheel | Vertical zoom (pitch range) |
| Ctrl+Shift+Wheel | Zoom both axes (cursor-centered) |
| Shift+Wheel | Horizontal scroll |
| Wheel | Vertical scroll (pitch) |
| ? | Toggle keyboard shortcuts overlay |
| Esc | Close overlays / cancel bounce / exit step input |
Click the voice counter in the transport bar to open a real-time diagnostics panel. Shows:
| Device tier | Phone / Tablet / Desktop — determines voice limits and FX thresholds |
| Voice counts | Soundfont (GM melodic + drums) and Synth engine voices, total + peak + stolen |
| Audio load | Estimated CPU usage percentage |
| Adaptive FX | Shows when FX are reduced (high voice count) — "reduced IR" or "minimal" |
| Note stats | Notes fired, late notes (with max latency), dropped GM/drum notes |
| Errors | Non-fatal error count + last 5 real errors with timestamps. Benign errors (audio node disconnect, param ramp) are filtered and counted separately. The transport voice meter shows ⚠N when errors exist |
Start simple: Pick a preset (Chill Pad), add a drum pattern (Hip-Hop), play a melody on the keyboard.
Try different kits: Jazz kit with Bossa preset. Electro kit with Trap preset. Sample kits (JCLive, FluidR3) give you full GM drums.
Use scale lock: Set to C Minor Pentatonic — every note sounds good. Impossible to hit a wrong note.
Layer FX: Send pad to Reverb + Chorus for width. Send bass to BitCrusher for grit. Send lead to Delay + PitchShift for shimmer.
Shape the master: Use the 8-band EQ to boost high shelf for air, cut 500Hz mud, boost 2.5kHz presence.
Load a MIDI file: Drop in any .mid file — channels become editable tracks instantly with per-channel Vol/Pan/Filter/Transpose. Use the ▼/▶ LANES button to expand each channel into its own row.
Bounce to WAV: Click ↓ BOUNCE WAV in the score toolbar — plays through your song and downloads a stereo WAV file. Cancel anytime with ESC.
Build a song: Save track → change the pattern → save again → chain in Song Arrangement.
Export your work: ↓ MIDI exports to standard MIDI. 💾 SESSION saves everything. ↓ BOUNCE WAV exports audio.
Connect a MIDI keyboard: Plug in any USB MIDI controller — notes, sustain pedal, mod wheel, and pitch bend are auto-detected.
Voice diagnostics: Click the voice counter in the transport bar for a real-time panel showing active voices, audio load, stolen voices, scheduling stats, and error log. A ⚠ badge appears when non-fatal errors are detected.
Section muting: Use the M buttons on panel headers to quickly A/B sections — mute drums to hear just melody, mute FX for a dry reference.
Try the visualizer: Click 🌀 VIZ during playback for audio-reactive visuals. Tweak the 13 sliders for different moods.
Split layout: Click ⊞ SPLIT for side-by-side panels. Dock panels together with ↔ for a dual-monitor feel.
Odd time signatures: Try 7/8 or 5/4 — the drum grid and score snap adapt automatically.