AXIOM 16-P User Manual
Manual version 2.9 for app build 11.10 · a drum synthesizer, sampler and sequencer that runs in your web browser.
This manual describes every button, dropdown, slider and editor in the app and how the pieces fit together. Hover over any control in the app for a two-sentence description of it; this manual gives the longer explanation and worked examples.
How the manual is organised
| Part | What it covers |
|---|---|
| 1. App shell | Quick start, top bar, menus, projects, MIDI, time keeping and PERFORM mode, troubleshooting |
| 2. Pads and sound engines | The 16 pads, the sampler, the subtractive synth, the additive synth (partial editor, shaping tools, morph layer), pad controls, baking, kits |
| 3. Sequencer, loops and effects | Sequencer, pattern slots (single click and double-click cues), the loop slicer and looper pad, the four aux effect bays and the master bus |
| 5-6. Engine reference | Every control of the four new engines and the added controls |
| 7. Version 11.3 | Two loopers, tempo syncs, RENDER SEQUENCE, RECORD MIX, the storage folder (the app has no samples), DJ / LOOP mode |
| 4. Version 11 | EDIT / PERFORM, rendering to the sampler (replaces baking), the two LFOs, send effects, loop sets, the four new engines (physical model, waveshaper, wavetable, vocoder) and the chord strip. Where parts 1-3 mention baking or the sequencer while editing, part 4 is the current behaviour |
Where things live in the project (for whoever updates this manual)
- The app is the folder
AXIOM-16P(index.html, css, js, manual.html): copy it anywhere and openindex.htmlin Chrome or Edge. Everything else in the project folder (tools, docs, backups, notes) is for development and is not needed to run it. - This manual:
docs/manual/*.md(source parts) → built intodocs/MANUAL.mdanddocs/manual.htmlbypython tools/docs/build_manual.py. - Tooltips:
AXIOM-16P/js/tooltips.js(andtitleattributes inAXIOM-16P/index.htmlfor the additive panel). - Sound-design lab and kit tools:
tools/sounddesign/(see itsSOUND_DESIGN_GUIDE.md). - History of design decisions:
PROJECT_STATE.md.
Keeping this manual up to date
Every time a feature, control or behaviour changes, do these steps in the same change:
- Edit the matching part file in
docs/manual/(the control tables are the first place to look: control | what it does | range/default). Add new controls to the table and describe new workflows in the text. - Update the tooltip of every new or changed control (
js/tooltips.js, or thetitleattribute for controls in the additive panel): at most two sentences. - Add a line to the change log below (date, build number, what changed, which section was edited).
- Rebuild the manual:
python tools/docs/build_manual.py. - Check coverage:
python tools/docs/check_manual.pylists every on-screen control that has no tooltip or is not mentioned in the manual. The manual is complete when both lists are empty. - Bump the build number (
?v=in the script tags ofAXIOM-16P/index.html) so browsers do not show a cached old version, and update the "Manual version" line above.
Change log
| Date | App build | Change | Manual section |
|---|---|---|---|
| 2026-10-18 | 11.4 | Layout cleaned up: three big section buttons (EDIT / PERFORM / DJ / LOOP) at the top left, the app opens in PERFORM with the kit built, big pads again with a slim looper row, sequencer tools behind a TOOLS button; DJ / LOOP: EQ and level under each deck, loop list between the decks, one loop per deck, pads and sequencer silent; EXPORT PACK window; stereo image for kits and loops (pan spread + widening) | 7 |
| 2026-10-17 | 11.3 | Loop pad starts on the next bar, second looper (row 18, pads A / B with switches, loop or song, RENDER AT TEMPO), triplet / dotted / bar syncs, FX pages stay open when a pad is pressed, chord strip moved into the vocoder, RENDER TO SAMPLER on every synth page (fixed a duplicate id that disabled the toolbar button), sticky sequencer toolbar, RENDER SEQUENCE window, RECORD MIX, storage folder and first-run question (no samples shipped, kits render and cache), DJ / LOOP mode with two decks, 3-band EQ, crossfader, scratch tools, MIDI learn, app packaged in its own folder | 7 (new) |
| 2026-10-16 | 11.0 | EDIT / PERFORM split (sequencer only in PERFORM, PERFORM plays samples only), RENDER TO SAMPLER replaces baking (5 previous samples), two LFOs per pad with every slider as target, FX 3 / FX 4 back, PRINT SEND FX, loop sets and LOOPS mode, new engines PHYSICAL MODEL / WAVESHAPER / WAVETABLE / VOCODER, chord strip, vocoder MIDI in, first 15 kits redesigned with the engines, AI Kit 01 | 4 (new), 1-3 notes |
| 2026-10-15 | 10.3 | Quirk fixes: master volume slider follows the engine, FX return faders follow RETURN LEVEL, SET list no longer shows stale BPM figures, Rectangle label (25%), a bay fed only by the looper is kept alive in PERFORM, RESET GM DRUMS tooltip tells the truth | 1, 2, 3 |
| 2026-10-15 | 10.3 | All 52 factory kits: hi-hats, crashes, rides, bells, metal clangs, chimes redesigned with the new oscillator banks, sizzle noise and FM stage, and re-printed | 2 |
| 2026-10-15 | 10.3 | Cymbals: oscillator types Metal Cluster / Shimmer Cluster / Modal Plate, noise type Sizzle, new Crash and Ride recipes. Additive: SHIMMER, SCATTER, SIZZLE, PITCH DIVE, BLOOM sliders, 9 new series presets (FM bell, tubular, vibes, marimba, bowl, gong, gamelan, cymbal, hat), 'what additive is good at' guide | 2 |
| 2026-10-15 | 10.3 | New FM SYNTH tab in the subtractive synth: a carrier oscillator driven by any of the 5 sources through a 5-in matrix; off by default | 2 |
| 2026-10-15 | 10.3 | CONVERT TO ADDITIVE button next to BAKE TO SAMPLE: subtractive synth to additive synth | 2 |
| 2026-10-15 | 10.3 | Sequencer: 9 new track tools (SHIFT, REVERSE, INVERT, MIRROR, ACCENT, HUMAN TIME, CHANCE, COPY TO ALL BARS), VEL RAMP down (Shift+click), PAN SWEEP shapes, step PAN and CHANCE in the inspector, HOLD = tie, DUPE PATTERN skips locked slots. MIDI learn: LEARN A SET (all pads, mixer of every pad, steps, patterns, bars), menus / lane tabs / EDIT buttons, program change, relative encoders | 1, 3 |
| 2026-10-15 | 10.3 | Quirk fixes: pad RELEASE (S) and sample RELEASE now work, duplicate CLEAR TRACK button removed, DUPE on bar 8 says LAST BAR, loop slots 1-4 show 2 bars; all factory kits re-printed without LFO | 1, 2, 3 |
| 2026-10-15 | 10.3 | LFO also removed from the factory kits and from the sound engine (the clap flutter and sweeps of the redesigned kits are gone from the synth versions) | 1, 2 |
| 2026-10-15 | 10.3 | Pad LFO tools removed (archived); effects reduced to two channels (reverb, delay) with a new lightest reverb 'Light Room' as the first-run default; pad lights always follow the sound; metronome checkbox and LOOP button fixed | 1, 2, 3 |
| 2026-10-15 | 10.2 | Additive synth v2: partial editor, odd/even, low-end and top-end shelves, formant, comb, stretch, morph layer B (copy a tone from any pad), conversion analysis rewritten; every control has a tooltip; every sound lights its pad; manual added | 2 (additive), all |
| 2026-10-14 | 10.1 | 52 redesigned and printed kits (10 new), KITS LOAD AS setting; double-click pattern cue; orange looper pad in PERFORM; master limiter; lighter reverb | 1, 2, 3 |
| 2026-10-13 | 9.x | Top bar rebuilt, PAD CONTROLS layout, PERFORM mode, time keeping and clock follow, preset tempo rule | 1, 2 |
AXIOM 16-P User Manual - Part 1: The App Shell
This part covers everything around the sound editor and sequencer: starting the app, the top bar, the FILE / MIDI / SETTINGS menus, projects, kits and sets, MIDI, timing, performance and troubleshooting. The sound editor, loop rack, effect channels and sequencer have their own parts.
Control names are written exactly as they appear on screen. Where a label is shown only as an icon in the top bar (SET, KIT, STYLE), the full name is given as well. "(unverified)" marks statements that could not be confirmed in the code.
Contents
- Quick start
- The top bar
- FILE, MIDI and SETTINGS menus
- Projects, autosave, kits, sets and styles
- MIDI
- Time keeping and performance
- Troubleshooting
- Maintainer notes
---
1. Quick start
1.1 Your first sound (60 seconds)
- Open
index.htmlin Chrome (or another modern browser). There is no install and no server. - Click anywhere on the page. A box reading AUDIO ENGINE READY asks for this click. Browsers keep audio silent until you interact with the page.
- Press a pad with the mouse, or press a key on your keyboard (see 1.4). The app starts with the Techno kit loaded.
- Press PLAY (or the space bar). Pattern button 6 plays. The button turns into PAUSE.
- To change the drums, open the KIT drop-down in the preset bar and pick a kit. Loading a kit never changes your tempo or your pattern.
- To change the rhythm, open the STYLE drop-down (SEQUENCE STYLE) and pick a style. This loads 16 patterns and never changes your sounds.
- To change tempo, type in the BPM field, or press TAP at least twice.
- To hear everything at once, open the SET drop-down (MASTER FULL SET). This loads a kit, 16 patterns and effects together.
- Press STOP to rewind to bar 1, step 1.
If you hear nothing, open SETTINGS and press TEST SOUND. See section 7.
1.2 The three views (FULL mode)
| View | Button / key | What you see | Use it to |
|---|---|---|---|
| PADS | PADS, F1 | Big square pads on the left, sound editor beside them, compact sequencer below | Play and pick pads, quick edits |
| SOUND | SOUND, F2 | Pads shrink to a one-row strip, the synth / sampler / loop / aux editor gets the middle of the screen | Design sounds |
| SEQ | SEQ, F3 | Pad strip plus a one-line editor header, the sequencer fills the screen and the 17-row grid opens by itself | Write patterns |
Two toggles sit next to the view buttons:
| Button | Key | What it does |
|---|---|---|
| SEQ ▾ / SEQ ▴ | F4 | Collapse the sequencer to a single line, or expand it again |
| PADS ▾ / PADS ▴ | F8 | Hide or show the pad strip in SOUND and SEQ views. Disabled in PADS view, where the big pads are the point of the view |
Leaving SEQ view closes the 17-row grid again if the view had opened it.
1.3 The two modes: FULL and PERFORM
| Mode | Button / key | Meaning |
|---|---|---|
| FULL | FULL, F9 | Every tool: synths, sampler, loop slicer, all sequencer tools |
| PERFORM | PERFORM, F9 | Sample playback only. Synth pads are baked to samples. Lean sequencer. Much lighter on the CPU. See 6.6 |
F9 switches between them. Use PERFORM live or on a slow computer. Use FULL to design and edit.
The app remembers your mode, view, sequencer collapse and pad strip state between visits (browser storage key axiom_layout_v1). You can force a layout with URL parameters: index.html?view=sound&seq=min&pads=hide&mode=perf (view = pads / sound / seq, seq = full / min, pads = show / hide, mode = full / perf). In PERFORM mode the view is always PADS.
1.4 Keyboard shortcuts
Shortcuts do not fire while you type in a text or number field. Function keys also work while a drop-down has focus. Function keys ignore Ctrl, Alt, Shift and Cmd combinations.
| Key | Action | Notes |
|---|---|---|
1 2 3 4 | Pads 1-4 | |
Q W E R | Pads 5-8 | Upper or lower case |
A S D F | Pads 9-12 | |
Z X C V | Pads 13-16 | Pad is selected for editing and recorded when REC is armed |
5 6 | Hold to open effect channel 1 (REVERB) / 2 (DELAY) (FX trigger pads) | Only has an audible effect while TRIGGER MODE is ON in the effects tab. They are not pad keys. 7 and 8 are still read by the key handler but have no channel or pad to act on |
Space | PLAY / PAUSE | Does not press a focused button |
F1 / F2 / F3 | PADS / SOUND / SEQ view | FULL mode only |
F4 | Collapse / expand the sequencer | FULL mode only |
F8 | Hide / show the pad strip | FULL mode, not in PADS view |
F9 | FULL / PERFORM | |
Ctrl+Z / Cmd+Z | Undo | |
Ctrl+Shift+Z, Ctrl+Y, Cmd+Shift+Z | Redo | |
Esc | Close an open FILE / MIDI / SETTINGS menu | Modal windows do not close with Esc; use their ✕ button |
Pad keys are ignored while Ctrl, Cmd or Alt is held, and while a key auto-repeats.
Mouse shortcuts you will meet in this part:
| Gesture | Where | Result |
|---|---|---|
| Click a pad higher or lower | Pads | Higher on the pad = louder (velocity about 0.5 at the bottom to 1.1 at the top) |
| Alt+click | PADS / SOUND / SEQ buttons, deck tabs, sub tabs, lane tabs, while MIDI LEARN is active | Learn that navigation control (a plain click still navigates) |
| Double-click / double-tap a pattern button | Pattern buttons | Switch at the next measure instead of the end of the pattern loop (see 4.4) |
| Drag an audio file onto a pad | Pads | Loads it as the pad's sample |
---
2. The top bar
The top bar has two rows. Row A (top) holds the logo, tempo, transport, master volume, meters, mode and menus. Row B holds the view buttons, swing and the preset bar.
2.1 Logo and build stamp
| Control | What it does | Notes |
|---|---|---|
| AXIOM 16-P + build label | Shows the version of the page, for example v10.0.0 | The label compares the version in index.html with the version in js/app.js. If they differ it reads vX ≠ js Y in a warning style. That means the browser loaded mixed files (see section 7, "Strange behaviour after an update") |
2.2 Tempo block (BPM, PRESET, BAR, STEP)
| Control | What it does | Range / default | Notes |
|---|---|---|---|
| BPM display (big digits) | Shows the real tempo of the engine | 40-300, start-up 120 | One decimal appears only when the tempo is fractional (for example 121.4 while following an external clock) |
| BPM field | Type a tempo | 40-300, decimals allowed, default 120 | Values outside 40-300 are ignored while you type and the field snaps back to the real tempo when you leave it. Whole numbers are rounded to whole BPM; typing a decimal keeps two decimals |
| ↺ PRESET (number) | Plays at the tempo, swing and groove that the last loaded preset was saved with. The number is that preset's BPM | Greyed out until a preset is loaded. Turns amber when the engine's tempo or swing differs from it | Full name PRESET TEMPO. Tooltip names the preset and its values. See 2.3 |
| Tempo source tag (small text beside PRESET) | Shows what last changed the tempo: EXT CLOCK, TAP, PRESET, PROJECT or LOOP MATCH | Empty after typing a tempo by hand | Display only |
| BAR | Current bar of the pattern loop | 01-08 | Display only |
| STEP | Current 16th-note step inside the bar | 01-16 | Display only |
2.3 PRESET TEMPO and the tempo rule
Rule: loading a kit, a full set, a sequence style, a pattern slot, a pasted pattern or a patch / song JSON file never changes your tempo or swing. Each of these only remembers the tempo it was saved with. To use that tempo, press ↺ PRESET.
- ↺ PRESET sets BPM, swing and groove together.
- Pattern slots keep the tempo they were authored with.
- The big BPM display, the BPM field, the swing slider, the groove box and the source tag always show the engine's real values, whoever changed them.
- Exception: LOAD PROJECT and RESTORE (the restore banner) do set the tempo, swing and groove stored in the project file, and the source tag shows PROJECT. Undo and redo never change tempo or swing.
2.4 Swing and groove (row B)
| Control | What it does | Range / default | Notes |
|---|---|---|---|
| SWING slider and % readout | Delays the off-beat notes | 50% (straight) to 75% (strongly shuffled), default 50% | 66% is a triplet feel, 75% a dotted feel |
| Groove drop-down | Chooses which notes the swing delays | 16th Swing (default), 8th Swing, Quintuplet Feel | 16th delays every second 16th. 8th delays the second 8th of each pair. Quintuplet applies a small nudge to the 2nd and 4th 16ths |
Swing and groove change what you hear and what a WAV render contains. They do not move steps in the pattern.
2.5 Transport
| Control | What it does | Notes |
|---|---|---|
| ▶ PLAY / ⏸ PAUSE | Starts playback. While playing it pauses and keeps the position | Space bar does the same |
| ⏹ STOP | Stops and rewinds to bar 1, step 1 | Also stops the loop player |
| ⏺ REC | Arms or disarms live recording. Pads you hit (mouse, keys, MIDI) are written into the current pattern while it plays. Arming starts playback if it is stopped | Refused (with a message) while the pattern slot is locked. The button lights while armed |
| ⚙ (gear, record setup) | Opens SEQUENCER LIVE RECORD SETUP | Hidden in PERFORM mode |
| 🔔 OFF / 🔔 ON (CLICK) | Metronome click | The first beat of each bar has a higher pitch. The click plays on every quarter note while the sequencer plays |
| TAP | Tap the tempo | Needs at least 2 taps. Averages the last 5 taps. A gap longer than 2 seconds restarts the count. Accepted range is an average gap of 200-1500 ms (40-300 BPM). Sets the source tag to TAP |
Record setup window:
| Field | What it does | Range / default |
|---|---|---|
| TARGET PATTERN SLOT | Slot that receives the recording | Pattern 1-16, defaults to the active slot |
| SONG ROLE CATEGORY | Role stored with the slot, shown on the slot button | Intro, Verse, Pre-Chorus, Chorus, Bridge, Breakdown, Drop, Build, Fill, Outro |
| CUSTOM PATTERN NAME | Optional name for the slot | Empty keeps the current name |
| LOOP LENGTH (BARS) | Length of the recording loop | 1, 2, 4 or 8 bars |
| RECORDING MODE | Overdub adds to the existing notes. Overwrite replaces them as you play | Overdub |
| QUANTIZE SNAP STRENGTH | How strongly hits snap to the grid | 0-100%, default 100%. 0% keeps your own timing (up to 50 ms off the step) |
| METRONOME CLICK | Quarter-note click on or off (same switch as the 🔔 CLICK button, applied when you press START RECORDING) | Off |
| CANCEL / ⏺ START RECORDING | Close without recording / apply, arm recording and start playback |
The METRONOME CLICK check box now switches the real click: it calls the same function as the 🔔 CLICK button.
2.6 Master volume and meters
| Control | What it does | Range / default | Notes |
|---|---|---|---|
| MASTER VOL | Overall output level | 0-1.5. The slider always shows the engine's real level | Above 1.0 boosts the mix and can clip. A limiter (-2 dB) and a soft clipper sit at the end of the chain, so the output never exceeds full scale. Loading a kit or a project moves the slider to the new level |
| Stereo peak meters (two bars) | Peak level of the master output | Both bars come from one peak reading; the right bar is scaled to 95% of the left. They are not true separate L/R meters | |
| Audio LED | Green = audio engine running. Otherwise suspended | Click anywhere or press SETTINGS > UNMUTE to wake it | |
| MIDI LED | Flashes when MIDI arrives | Also flashes for clock and transport messages | |
| Autosave text | Autosave status (Autosaved hh:mm:ss) | The text is hidden in the top bar in the current layout; the project is still autosaved | |
| ⚠ LOAD / DSP n% badge | Appears while playing when the engine is under strain, or shows the audio thread load | See 6.4 |
The oscilloscope picture is hidden in the current top bar (and in PERFORM mode); only the meters remain.
2.7 Mode and menus (row A, right)
| Control | What it does |
|---|---|
| FULL / PERFORM | Switch app mode (F9). Entering PERFORM bakes synths to samples. See 6.6 |
| FILE ▾ / MIDI ▾ / ⚙ SETTINGS ▾ | Drop-down menus, described in section 3. Only one is open at a time. They close on outside click, on Esc, and after you press a button inside them. The CPU and clock toggles in SETTINGS stay open |
2.8 View buttons (row B, left)
PADS, SOUND, SEQ, SEQ ▾ / ▴ and PADS ▾ / ▴: see 1.2. In PERFORM mode this group is hidden.
2.9 The preset bar (row B, right)
Three levels of preset, from biggest to smallest. Labels are shown as icons when space is tight; the full name is in the tooltip.
| Control | Full name | What it loads | What it never touches |
|---|---|---|---|
| ★ SET drop-down | MASTER FULL SET | A complete setup: drum kit, the kit's effects (2 channels), the style's 16 patterns, then pattern 1. 32 sets, each shown with its BPM | Tempo and swing (use ↺ PRESET) |
| 🥁 KIT drop-down | KIT ONLY (40+) | The 16 pad sounds, the master level, the 2 effect channels (reverb, delay) and the compressor / reverb settings of that kit. Reverb exception: see 4.4 | Your sequencer patterns, tempo, swing |
| 🎼 STYLE drop-down | SEQUENCE STYLE (30+) | 16 pattern slots (two songs of 8 sections), then pattern 1 | Your sounds, tempo, swing |
| UNIQ slider | (uniqueness / chaos) | Chaos for every random button, 0-100%, default 25%. 0 keeps strict genre conventions, 100 is wild | Linked with the CHAOS slider in the sound editor |
| 🎲 RANDOM KIT | RANDOM KIT | Generates a new random sound for all 16 pads, using each pad's category and the UNIQ value | Patterns, tempo. Pads set to the sampler are not switched to a synth |
Notes:
- The KIT list has two groups, Vintage Machines (20) and Genre & Modern (22), plus a group "New designed kits (10)" added at start-up.
- Choosing a SET also moves the KIT and STYLE drop-downs to the matching entries.
- Loading a kit replaces the two effect channels and the master compressor and reverb settings with the kit's own, and sets the master level (see section 4).
- A hidden older duplicate of the KIT drop-down exists (
select-kit-preset) for older MIDI-learn mappings. It is not visible.
---
3. FILE, MIDI and SETTINGS menus
3.1 FILE menu
| Control | What it does | Range / default | Notes |
|---|---|---|---|
| 💾 SAVE PROJECT | Downloads the whole project as one .axiomproject file | File name axiom-project-<date>.axiomproject | Includes sample audio. The toast shows the size in KB |
| 📂 LOAD PROJECT | Opens a .axiomproject (or .json project) file and replaces the current state | Stops playback first. Sets tempo, swing and groove from the file. Rejects patch / song JSON files and files from a newer app version with an error toast | |
| ↶ UNDO | Undo the last change | Up to 32 steps | Same as Ctrl+Z. Toast "Nothing to undo" when empty |
| ↷ REDO | Redo | Same as Ctrl+Shift+Z / Ctrl+Y | |
| 💾 SAVE PATCH (LEGACY JSON) | Exports the 16 pads, the effect channels, the master settings and the tempo as JSON | File Axiom_Kit_Patch_<time>.json | Older format. No patterns, no sample audio |
| 📁 SAVE SONG (LEGACY JSON) | As SAVE PATCH, plus swing, groove and all 16 pattern slots | File Axiom_Song_Project_<time>.json | Older format |
| 📂 LOAD (LEGACY JSON) | Imports a patch or song JSON | Does not change tempo or swing; the file's tempo is offered by ↺ PRESET. A song file replaces the 16 slots and loads slot 1. A message box confirms or reports the error | |
| 🎹 MIDI IMPORT (MIDI FILE) | Opens the import window for Standard MIDI files (.mid, .midi; type 0 or 1) | 1, 2, 4 or 8 bars, default 4 | Pick a track, audition, set the note-to-pad routing table, then ✓ COMMIT TO SEQUENCER. AUTO-DETECT GM resets the routing |
| ⏺ BAKE LOOP WAV (RENDER / ANALYSE) | Renders one pass of the active pattern loop to a 16-bit WAV, with a 1.5 s tail | File axiom-loop-<kit>-<bpm>bpm.wav | Respects swing, mute / solo and the OFF switches. The comments in the code say aux FX are included; PROJECT_STATE says the offline render omits them (unverified) |
| ⏺ BAKE PAD WAV | Renders the selected pad as a one-shot WAV (1.2 s) | File axiom-pad-<n>-<name>.wav | |
| ⏺ BAKE 16-PAD STRIP WAV | Renders all 16 pads one after another with a 50 ms gap into one WAV | File axiom-16pad-strip-<kit>.wav | |
| ∿ FFT BENCHMARK | Runs the acoustic comparator against the reference sounds and downloads a JSON report | Developer tool. Shows a summary message box. Takes a while. Needs the matcher code to be loaded |
The BAKE buttons here are exports. They are not the same as BAKE TO SAMPLE / BAKE KIT in the sound editor (those change the pads themselves).
3.2 MIDI menu
| Control | What it does | Range / default | Notes |
|---|---|---|---|
| 🎹 MIDI LEARN | Turns MIDI Learn on or off | Off | A banner MIDI LEARN ACTIVE appears. See 5.3 |
| ⚙ MIDI SETUP | Opens the MIDI hardware window (devices and monitor, mapping table, pad controllers) | See 5.1, 5.3, 5.4 | |
| ↻ RESCAN | Looks for MIDI devices again | Use after plugging in a controller | |
| MIDI IN (USB) | Chooses the input device | First device found is connected automatically | Same choice as INPUT DEVICE in MIDI SETUP |
| IN CH | MIDI channel to listen on | Omni (All), Ch 1-16. Default Ch 10 (GM) | Applies to notes and CC. Clock and transport messages ignore it |
| MIDI OUT | Chooses where sequencer notes, MIDI clock and controller LED messages go | (None / Internal Only) until you pick a port | Never auto-selected, so a system synth does not play over the drums |
3.3 SETTINGS menu
| Control | What it does | Range / default | Notes |
|---|---|---|---|
| OUTPUT DEVICE (AUDIO DEVICE) | Sends audio to the chosen speakers, headphones or interface | Default Audio Output | Needs a browser that supports choosing the audio output (Chrome and Edge do). Device names may appear generic until the browser has audio permission (unverified) |
| ACTIVE / SUSPENDED badge | Shows whether the audio engine is running | Refreshes every second | |
| ↻ (refresh audio devices) | Rescans the output device list | ||
| 🔊 TEST SOUND | Plays a two-tone chime straight to the output | Plays even if the master volume is very low (it raises the volume briefly). Confirms the audio path | |
| ⚡ UNMUTE | Forces the audio engine to resume | Use it when the badge says SUSPENDED | |
| ⚡ SLOW CPU: OFF / ON | Lighter graphics and engine work | Off | ON: removes shadows, blurs and glows, hides the oscilloscope, shrinks the analyser, redraws meters at about 8 frames per second, hides the 17-row grid and locks its expander ("LOCKED (SLOW CPU)"). Not saved between visits |
| 💡 PAD LIGHTS: ON / OFF | Every pad lights at the moment its sound plays (sequencer, any pattern or measure, MIDI, keys, recording, also while the engine sheds load). The orange looper pad lights when the loop starts | On | Off stops the automatic lights. A pad you hit yourself with the mouse always lights. Not saved between visits |
| OFF 9-12: ACTIVE / MUTED | Switches off pads 9-12 (toms, crash, ride) | Active | Frees CPU: no voices, no sequencer work for them. Saved in projects |
| OFF 13-16: ACTIVE / MUTED | Switches off pads 13-16 (percussion, SFX) | Active | Saved in projects |
| KITS LOAD AS: SAMPLES / SYNTHS (CPU) | How factory kits load | SAMPLES | SAMPLES: the kit's pre-printed sounds load at once, light on the CPU. SYNTHS: pads load as live, editable synths. Applies to the next kit you load. Remembered between visits |
| ✂ MONO PADS: ON / OFF | A pad cuts its own previous hit when struck again | On | Hits closer than 45 ms (flams, ratchets) still overlap. Forced on in PERFORM and restored when you leave. Not saved between visits |
| VOICE LIMIT | Most voices allowed at once | 8-96, default 32 | Half of this while the system is struggling. Capped at 16 in PERFORM mode. See 6.3 |
| AUDIO BUFFER | Size of the audio output buffer | LOW LATENCY, BALANCED (default), SAFE (SLOW PC) | Saved at once, but takes effect only after you reload the page |
| CPU THREADS | Shows how many cores the browser reports and how the work is split | Display only | Audio runs on one audio thread, the sequencer clock on a worker thread, bakes on the other cores |
| ⏱ FOLLOW CLOCK: OFF / ON (MIDI CLOCK SYNC) | Follow the tempo and start / stop of an external MIDI clock | Off | See 5.5. Not saved between visits |
| CLOCK OFFSET (ms) | Fine timing trim when following | -80 to +80 ms, default 0 | Positive = your beats land later. Use it to cancel interface latency |
There is no switch for MIDI clock output. It is always on when a MIDI OUT port is chosen and the app is not following an external clock.
---
4. Projects, autosave, kits, sets and styles
4.1 What a project contains
A project file (.axiomproject) and the autosave contain:
- Tempo, swing, groove, loop length, click on / off and click volume.
- The master bus (volume, compressor, reverb and delay settings).
- All 16 pads: mode, mixer, synth / additive / sampler settings, final stage, crop, envelopes, and the sample audio itself (16-bit). A baked pad remembers its synth so BACK TO SYNTH still works after a reload.
- The two effect channels (effect, parameters, tempo sync, trigger mode). Sessions saved with 4 channels still load; channels 3 and 4 are ignored.
- The live sequencer tracks and all 16 pattern slots, with their names, roles, lock state, loop length and tempo notes. Also track mute / solo, chain mode and the record settings.
- The OFF 9-12, OFF 13-16 and loop power switches.
Not in a project: the loop player's audio slots (track 17) and the sound design in them, your MIDI mappings (they are stored separately in the browser and have their own EXPORT MAP / IMPORT MAP), the app mode and view, and the current drop-down choices of SET / KIT / STYLE.
4.2 Autosave and the restore banner
- The app checks for changes every 4 seconds and saves to the browser's database (IndexedDB), including sample audio. If that is not available it saves a smaller copy without samples to local storage.
- While the sequencer plays it saves at most every 20 seconds, to keep playback smooth. It also saves when you switch tabs or close the page.
- On the next start, if an autosave exists, a bar offers: "Restore your previous session (saved ...)?" with RESTORE and START FRESH.
- RESTORE loads it (including its tempo).
- START FRESH deletes the autosave.
- Until you choose, the old autosave is not overwritten.
- Autosave lives in this browser profile for this page address only. It is not a backup. Use SAVE PROJECT for a file you can keep.
4.3 Undo and redo
- 32 steps. Buttons are in FILE; keys are Ctrl+Z and Ctrl+Shift+Z / Ctrl+Y.
- A step is recorded about a quarter of a second after you change a control, click a step, draw in a lane or load a preset. Playing pads, transport buttons and view / mode / tab buttons are not recorded.
- Covered: pad settings, mixer, effect channels, sequencer steps, pattern slots, master bus.
- Not covered: sample audio (loading or replacing a sample cannot be undone), tempo, swing and click (undo never rolls them back), loop player audio, MIDI mappings, mode and view.
- Undo keeps the transport running.
- Loading a project or restoring a session starts a new baseline; its history is not undoable beyond that point (unverified: the stack is not cleared by LOAD PROJECT, but states before it contain the old tempo).
4.4 Kits, sets and styles
| Concept | What it is | Loads | Leaves alone |
|---|---|---|---|
| Master Full Set | Kit + 16 patterns + effects, as a package. 32 of them | Pad sounds, effect channels, master settings of the kit, 16 patterns, pattern 1 active | Tempo, swing |
| Kit only | The 16 pad sounds with the kit's effects. 42 factory kits (20 vintage machines, 22 genre) plus 10 new designed kits and some alias names | Pad sounds, 2 effect channels, master level and compressor | Patterns, tempo, swing |
| Sequence style | 16 hand-written pattern slots in two songs (slots 1-8 and 9-16), each Intro / Verse / Chorus / Breakdown ... (names vary by genre). 32 of them | 16 pattern slots, pattern 1 active | Sounds, tempo, swing |
Behaviour to know:
- Every pad loaded by a kit starts from neutral synth defaults, so the result never depends on the kit you had before. Both FX sends of every pad are set to 0 by factory kits; the kit's effects are loaded but nothing is sent to them until you raise a SEND.
- Reverb choice: a first-time user starts with the lightest reverb, Light Room (first item of the reverb list), whatever the kit says. Once you pick a reverb yourself (or open a session saved with one), kits may bring their own reverb again (browser storage key
axiom.reverbPicked). - The pad LFO tools were removed from the app and from the factory kits (build 10.3); kits no longer contain hidden modulation.
- Loading a kit replaces everything you did to the pads, including edits and loaded samples. Use SAVE PROJECT first, or UNDO.
- Loading a style or set replaces all 16 pattern slots. Your own patterns in the slots are lost unless you saved a project. Locked slots are not protected from a style load (unverified).
- Switching pattern buttons: a single click while playing cues the pattern to start at the end of the current pattern loop. A double-click or double-tap (second click within 350 ms) starts it at the next measure line, restarting at the new pattern's bar 1 if that is mid-pattern. Stopped, a click switches at once. The cued button is highlighted; a forced cue has a stronger highlight.
- Your pattern edits are stored in its slot when you switch to another slot.
4.5 KITS LOAD AS: SAMPLES or SYNTHS
Every designed kit is stored two ways: as synth settings (live and editable) and as "printed" samples (the same sounds rendered to audio, about 1 MB per kit).
| Setting | Behaviour |
|---|---|
| SAMPLES (default) | The kit loads as synths first, then the printed samples replace them almost at once (a small file is fetched the first time you pick a kit). Pads play samples: lighter on the CPU. Press UNBAKE / ↩ SYNTHS (or BACK TO SYNTH in the pad editor) to get the synth back |
| SYNTHS | Pads stay live synths. Editable, heavier on the CPU |
Older kits that have no designed version load their own reference samples as before (vintage sampler kits are sample-first, analogue ones synth-first) (unverified for individual kits). The setting applies to the next kit you load. Kits loaded in PERFORM mode are baked to samples automatically whichever setting is chosen.
---
5. MIDI
MIDI needs a browser with Web MIDI (Chrome, Edge, Opera). If it is missing, the MIDI IN list says "Web MIDI Unsupported". The MIDI file importer still works without it.
5.1 Devices and monitor
Open MIDI SETUP > DEVICES & LIVE MONITOR.
| Control | What it does | Notes |
|---|---|---|
| INPUT DEVICE (USB / DIN) | Primary input | Same as MIDI IN (USB). The first device is connected automatically at start-up and when the current one disappears |
| RECEIVE CHANNEL | Channel filter for notes and CC | Omni, 1-16, default 10. Linked with IN CH |
| OUTPUT DEVICE (TRIGGER OUT) | Port for sequencer notes, clock and controller LEDs | None until you choose |
| ↻ RESCAN USB CONTROLLERS | Rescans | Also logs "Rescanned USB MIDI devices" |
| LIVE MIDI INPUT MONITOR | Scrolling log of notes, velocity, CC and system messages | Last 60 lines. CLEAR LOG empties it. Clock ticks (24 per beat) are not logged |
| LED in the window title | Flashes on every incoming message |
What the app sends to MIDI OUT:
- A note on and note off (100 ms long) for every sequencer step, on the track's channel (default 10) with the step's MIDI note and velocity. Notes you play by mouse or key are not sent (unverified for live hits).
- MIDI clock (24 ticks per quarter note), Start (0xFA) when playing from step 1, Continue (0xFB) when resuming from the middle, Stop (0xFC) on PAUSE / STOP. The clock is "straight": it ignores swing.
- Controller LED messages if LED feedback is on (5.4). These go out on channel 1 on the same port.
- A follower never echoes a master's clock back.
5.2 What incoming messages do
Order of handling for a note on (channel filter applies):
- MIDI Learn mappings you made yourself.
- The playable pad range of the controller profile (default root note 40, 16 notes) plays pads 1-16.
- The step range (default root note 24, 16 notes) toggles steps 1-16 of the selected track in the shown bar.
- The default General MIDI mappings (notes 36-51 = pads 1-16), if they are still in the table.
- Anything else is ignored, unless KEYBOARD & DUAL ROUTING is set to chromatic mode.
Notes: note-offs are only logged. Velocity of the note sets the pad level. If REC is armed the hit is recorded.
Built-in transport messages (primary input only, any channel):
| Message | Action |
|---|---|
| Start (0xFA) | Rewind to bar 1 and play (with FOLLOW CLOCK on: on the master's next tick) |
| Continue (0xFB) | Play from the current position (with FOLLOW CLOCK on: on the master's next tick) |
| Stop (0xFC) | Pause and keep the position |
| MMC Stop / Play / Record (system exclusive) | STOP (rewinds) / PLAY / toggle REC |
| CC 116 / 117 / 118, value 64 or more | STOP (rewinds) / play-pause / toggle REC. A CC you have learned yourself wins over these |
5.3 MIDI Learn
To map a control:
- Press 🎹 MIDI LEARN in the MIDI menu (or ENGAGE MIDI LEARN in MIDI SETUP > MIDI LEARN & MAPPING TABLE). Learnable controls get a dashed outline.
- Click the on-screen control. It pulses and the banner says LISTENING FOR: <name>.
- Press a key or pad (note) or turn a knob (CC) on your controller. A chime plays and the banner confirms the binding.
- Click the next control, or press EXIT LEARN (banner) / DISENGAGE MIDI LEARN to leave. Bindings are kept.
To learn many at once use LEARN A SET (below): pick a set, press LEARN ALL IN ORDER and touch one key or knob per control. The banner counts the progress and SKIP ▶ leaves one out.
What you can map:
| Control type | Mapped to | Behaviour |
|---|---|---|
| Pads (1-16 and the looper pad) | Note | Plays the pad. Velocity sets the level |
| Sliders, number fields, knob dials | CC (or note) | CC value 0-127 spreads over the control's range. A note sets it from the velocity |
| Drop-downs (kit, style, groove, FX algorithm ...) | CC or note | CC sweeps through the options (the option loads when the knob settles, about 0.14 s). A note steps to the next option and wraps |
| Check boxes | Note or CC | Toggles |
| Any button with an id (PLAY, STOP, REC, CLICK, menu buttons ...) | Note or CC | Clicks it. A CC fires once each time it rises through 64 |
| Sequencer step buttons | Note or CC | Toggles that step number of the selected track in the shown bar |
| Menus (FILE, MIDI, SETTINGS, the pad editor sections), the lane tabs VEL / PAN / MICRO / MOD and the 16 ⚙ EDIT buttons | Note or CC | Opens or closes the menu, selects the lane tab, opens the step inspector for that step (Alt+click for the tabs) |
| Any of the above | Program Change | A program change message (PC #n) fires a button or switch, and jumps a menu to option n |
Rules:
- Controls that cannot be learned: file pickers, text boxes, the oscilloscope and the drawing canvases (waveform crop, loop waveform, partial editor).
- Navigation controls (PADS / SOUND / SEQ, the editor tabs, sub tabs and lane tabs) keep working while learn is on. Alt+click them to learn them.
- Clicks inside the MIDI setup window and the step inspector are not learn targets.
- While learn is on, clicking a learnable control selects it for learning instead of operating it.
- A new binding replaces an older binding of the same control, and also an older binding of the same note or CC number (on the same channel, or on Omni).
- Bindings are saved in the browser (
axiom_midi_mappings) and survive reloads. They are not part of a project.
MIDI SETUP > MIDI LEARN & MAPPING TABLE:
| Control | What it does |
|---|---|
| Table (TARGET CONTROL, TYPE, CH, NOTE / CC #, RANGE, KNOB MODE, REMOVE) | Lists every binding. REMOVE deletes one. KNOB MODE (CC bindings of sliders, knobs and menus): ABS = the knob position sets the value; REL = for endless encoders that send 1-63 for up and 65-127 for down, one tick moves a slider by 1% of its range and a menu by one option |
| LEARN A SET: [set] [number] LEARN ONE / LEARN ALL IN ORDER | Learns controls in bulk. ONE learns the chosen number only; ALL learns the whole set in order (see below) |
| RESET GM DRUMS | Replaces the whole table with the default map (notes 36-51 to pads 1-16) and removes every learned binding; its tooltip says so |
| CLEAR ALL | Deletes every binding after a confirmation |
| EXPORT MAP | Saves the table as Axiom_Midi_Map_<time>.json |
| IMPORT MAP | Loads such a file and replaces the table |
Learn sets. The first group learns controls that are on screen; the mixer sets work for every pad, also when it is not selected, and for the looper (number 17):
| Set | Binds | Kind |
|---|---|---|
| Pads: play pad 1-16 and the looper | the 17 pads | note (plays the pad) |
| Pads: select pad 1-16 and the looper | selects that pad for editing | note or CC |
| Mixer: mute pad / solo pad | toggles the sequencer mute / solo of that pad | note or CC |
| Mixer: volume / pan / FX 1 send / FX 2 send of pad | the level, stereo position or effect send of that pad | CC (ABS or REL) or note |
| Step grid of ONE pad | steps 1-16 of the pad whose number you chose (toggles in the shown bar) | note or CC |
| Steps 1-16 of the selected pad | the 16 on-screen step buttons | note or CC |
| Pattern slots 1-16, Bars 1-8, Loop slots 1-8 | the on-screen buttons | note or CC |
With the pad the mixer set changes selected, the PAD CONTROLS slider follows. Learned sets are saved like any other binding (axiom_midi_mappings).
5.4 Pad controllers (AKAI and Novation split)
Open MIDI SETUP > PAD CONTROLLERS (AKAI / NOVATION SPLIT). A pad controller with 8 x 4 pads is split in two halves: the top two rows play pads 1-16, the bottom two rows toggle steps 1-16 for the selected pad.
| Control | What it does | Default / range |
|---|---|---|
| CONTROLLER PROFILE | Sets the root notes, keyboard routing and LED protocol in one go | AKAI APC Key 25 / Mini: play root 40, step root 24, filter keys, AKAI LEDs. Novation Launchpad: 48 / 32, filter keys, Novation RGB. Standard 4x4 Pad Grid: 36 / 52, chromatic keys. Custom Split: leaves everything as it is |
| KEYBOARD & DUAL ROUTING | What a note that no pad, step or mapping uses does | Filter / Ignore Keyboard Keys (default): ignored, so a keyboard can drive another instrument. Pass Keyboard to Drum Cells: chromatic C1-C3 to pads |
| SECONDARY MIDI INPUT (DUAL DEVICE) | A second input, for example pads plus a keyboard | None. Realtime messages from it are ignored (so clock is not doubled) |
| SECONDARY RECEIVE CHANNEL | Channel of the second input | Omni, Channel 1 (default), Channel 10 |
| PLAYABLE PADS: -OCT / +OCT, ROOT MIDI NOTE | Shifts the pad range by 12 notes, or sets the first note | 0-111, default 40 |
| SEQUENCER STEPS: -OCT / +OCT, ROOT MIDI NOTE | Same for the step range | 0-111, default 24 |
| 8x2 previews | Show the note number of each pad and step | |
| TRANSMIT HARDWARE LED COLOR DATA | Sends colours back to the controller | On |
| LED PROTOCOL | AKAI APC Standard (velocity 1 = green, 3 = red, 5 = yellow) or Novation Launchpad RGB | AKAI |
| 💡 TEST LEDS | Runs a light chase over the pads | Needs a MIDI OUT port; otherwise a message appears |
LED colours: green = playhead, yellow = active step of the selected pad, red = a pad was hit, off = empty. The LED messages go to MIDI OUT, so choose your controller's output port there.
Overlaps: with the default AKAI profile the play range (40-55) shadows the default GM map for notes 40-51, and the step range (24-39) takes notes 36-39 for steps 13-16. Pick the Standard 4x4 profile if you want plain GM notes 36-51 on the pads.
5.5 MIDI clock out, following an external clock, clock offset
Clock out: with a MIDI OUT port chosen, the app sends 24 ticks per beat, plus Start / Continue / Stop, to whatever is connected. It does so only while not following.
Following a master (SETTINGS > MIDI CLOCK SYNC):
- Choose the master's port as MIDI IN (USB). Clock only counts from the primary input.
- Press ⏱ FOLLOW CLOCK. It reads ON.
- Start the master. When the master sends Start, the app rewinds and starts on the master's next tick. Continue resumes from the current position. Stop pauses.
How it behaves:
| Item | Behaviour |
|---|---|
| Tempo | Taken from the tick spacing over the last 4 beats. Fractional values (for example 131.37) are used. The first beat after Start is needed before the tempo appears. The display shows EXT CLOCK |
| Phase lock | Every 16th note the app compares its step time with the master's tick. In the first two bars after Start a gap over 20 ms is corrected at once. Later, corrections are small (up to 6 ms per step), and a jump over 60 ms is corrected at once |
| Typing a BPM, TAP, ↺ PRESET | Overridden again by the next clock update while following |
| Pressing PLAY yourself | Starts the local clock (nothing is sent out) |
| Turning FOLLOW CLOCK off | The tempo stays at its last value and the source tag clears |
| Start / Continue / Stop with FOLLOW CLOCK off | Still obeyed: Start rewinds and plays at once, Continue plays, Stop pauses. Ticks are ignored |
| Master stops sending ticks (gap over 0.25 s) | The app forgets the old spacing and waits |
CLOCK OFFSET (ms) shifts your beats later (+) or earlier (-) relative to the master. If your kick lands late against the master's kick, use a negative value; if early, a positive one. Start with 0 and adjust by ear in steps of 1-5 ms.
---
6. Time keeping and performance
6.1 The scheduler
- The clock runs in a worker thread (not slowed down in a background tab). It wakes every 25 ms.
- Each wake-up schedules every step that falls inside the next 120 ms of audio time (the look-ahead). Steps are given exact audio times, so they do not drift.
- In a background tab, where timers can be throttled, the look-ahead widens to 0.6 s.
- If the app falls more than 0.1 s behind (for example the page was frozen), it re-syncs instead of playing the missed steps.
- The pad flashes and the playhead LEDs are timed to the audio, not to the scheduler.
6.2 Load shedding
A watchdog measures the gap between clock ticks. A gap longer than about 70 ms means the main thread was busy. Then:
- The look-ahead is widened by up to 0.4 s so the audio does not starve, and relaxes slowly after 3 calm seconds.
- Load shedding is switched on for 5 seconds: the voice limit is halved, and soft ghost notes (velocity under 0.45) on non-essential pads are skipped. Pad lights keep working.
- The first 1.5 s after PLAY are ignored, because start-up hiccups are not overload.
6.3 Voice limit
VOICE LIMIT (8-96, default 32) is the most voices that may sound at once.
- Under the limit, everything plays.
- Over it, non-essential pads (anything except kick, snare, clap, rim shot, stomp) are skipped, and a kick, snare or clap steals the tail of a hat or percussion voice.
- While shedding, the limit is halved (never below 4).
- MONO PADS reduces the number of overlapping voices a lot; try it before lowering the limit.
- In PERFORM mode the limit is capped at 16. Whatever you type there is restored to your earlier value when you return to FULL (unverified for edits made inside PERFORM).
6.4 The LOAD / DSP badge
The badge in the top bar appears only while playing.
| Badge | Meaning |
|---|---|
| (hidden) | The engine is keeping up, and the browser cannot report audio load |
| DSP n% (green) | The audio thread uses n% of its time on average. Below about 70% is comfortable. Shown only in browsers that report it (Chrome) |
| ⚠ LOAD (amber, pulsing) | The engine is skipping quiet hats / percussion or shedding load. May add "· FX MUTED", "(n skipped)" and "· DSP n%" |
An audio underrun (1% or more of blocks) or a peak above 92% also switches on load shedding.
What to do: bake synth pads (BAKE KIT), switch to PERFORM, turn MONO PADS on, lower VOICE LIMIT, use SLOW CPU, switch OFF 9-12 / OFF 13-16, set AUDIO BUFFER to SAFE (SLOW PC), close other tabs.
6.5 FX auto-mute
Every 500 ms the engine counts clock stalls and audio overloads. Two or more within 10 seconds mutes the effect channels that hold a reverb or modulation effect for 8 seconds, and the badge adds FX MUTED. Drums keep time. The channels return by themselves. If it keeps happening, reduce voices or bake pads.
6.6 PERFORM mode
PERFORM is the "play it live on a modest computer" mode.
| Item | In PERFORM |
|---|---|
| Synth pads | Baked to samples (the drive, filter and attack are printed into the sample). Pads bake several at a time, up to 3 on a 4-core machine. A toast reports how many |
| New kit, set or project | Any synth pad that arrives is baked at once. Designed kits already arrive as samples |
| Hidden | PADS / SOUND / SEQ buttons, record setup gear, the oscilloscope, the synth and additive editor, bake tools, sample conversion tools, the loop rack tab, most sequencer tools, the lane bar, chain mode and the 17-row grid |
| Kept | Pads, pad editor with the basic sampler controls (attack, decay, sustain, release, cutoff, resonance, filter type), PAD CONTROLS and FX sends, the looper pad, pattern buttons, bar buttons, 16 steps, the transport and all menus |
| Looper pad | Stays, in orange. Tapping it opens the loop slicer panel and the loop step row (unverified how the panel is reached while the rack tab is hidden) |
| Engine | Voice limit capped at 16, MONO PADS forced on, the legacy master reverb and delay disconnected, effect channels with no sends disconnected 3 s after their last send, loop stretch pre-rendered once (one source instead of many), meters drawn at about 15 frames per second without the scope |
| Leaving PERFORM | Pads that PERFORM baked go back to their synths. Pads you baked yourself keep their samples. Your voice limit and MONO PADS setting are restored, and your earlier view, sequencer collapse and pad strip state come back |
If you leave PERFORM while it is still baking, the bake is cancelled and undone.
6.7 AUDIO BUFFER and slow computers
AUDIO BUFFER sets how much audio the browser buffers before the speakers.
| Choice | Latency | Use it when |
|---|---|---|
| LOW LATENCY | Lowest | Fast computer, playing pads live |
| BALANCED (default) | Medium | Most computers |
| SAFE (SLOW PC) | Highest | Crackles on a slow computer. The sequencer is scheduled ahead, so only live pad playing feels the delay |
It is saved immediately, but the audio engine is created once per page load: reload the page to apply it.
Checklist for a slow computer, in order:
- Settings > AUDIO BUFFER = SAFE (SLOW PC), reload.
- Switch to PERFORM (F9), or press BAKE KIT in FULL mode (keep kick + snare if you want to edit them).
- Keep KITS LOAD AS: SAMPLES and MONO PADS: ON.
- Lower VOICE LIMIT to 16-24.
- Turn ⚡ SLOW CPU ON, and switch OFF 9-12 / OFF 13-16 for sounds you do not use.
- Use fewer FX sends; keep the reverb light (Light Room is the cheapest).
- Close other tabs and apps. Use Chrome or Edge.
---
7. Troubleshooting
| Problem | Likely cause | What to do |
|---|---|---|
| No sound at all | Audio engine suspended (no click yet) | Click anywhere on the page. Check the green audio LED and the ACTIVE badge in SETTINGS. Press ⚡ UNMUTE |
| No sound, engine ACTIVE | Wrong output device, volume low, tab muted | SETTINGS > OUTPUT DEVICE, ↻, TEST SOUND. Check MASTER VOL, system volume and the browser tab's mute icon |
| TEST SOUND works, pads silent | Pad muted or disabled, OFF switch, no pattern, wrong sample | Check OFF 9-12 / OFF 13-16, the pad's volume and mute, a track mute or solo in the sequencer |
| Sequence plays but some pads never sound | Voice limit, OFF switches, solo on another track, load shedding | Raise VOICE LIMIT, check MUTED switches, clear solos. Look at the LOAD badge |
| Hats or percussion drop out | Voice budget under strain (by design) | See 6.3 and 6.4. Turn MONO PADS on, bake pads, lower effects |
| Crackles, pops, stutter | CPU overload or small audio buffer | AUDIO BUFFER = SAFE and reload, PERFORM mode, bake pads, SLOW CPU, close other tabs |
| Reverb disappears for a few seconds | FX auto-mute (badge shows FX MUTED) | Reduce load (6.4). It comes back by itself after 8 s |
| Playback hangs or the page freezes | Heavy tab or huge sample, an offline render in progress | Wait; press STOP. A BAKE WAV render can take a few seconds. Reload; RESTORE the autosave |
| Playback stops by itself | An external MIDI Stop or MMC Stop arrived, or a CC 116 was sent | Check the MIDI monitor. Turn FOLLOW CLOCK off. Unplug or remap the controller |
| Tempo changed on its own | FOLLOW CLOCK is on, or a MIDI clock is arriving | Source tag says EXT CLOCK. Turn FOLLOW CLOCK off |
| Tempo is not what the preset says | Presets never change the tempo (by design) | Press ↺ PRESET. The amber colour shows it differs |
| Tempo changed after loading a file | LOAD PROJECT and RESTORE load the saved tempo (source tag PROJECT) | Retype your BPM. Undo does not restore tempo |
| Tempo jumps while tapping | Taps more than 2 s apart start a new count | Tap steadily, at least 3 times |
| A kit sounds different from last time | KITS LOAD AS was changed, a kit needs its sample file, or the pad was edited | Check SETTINGS > KITS LOAD AS. Reload the kit. If SAMPLES, wait a moment for the printed sound to swap in. Pads you edited are replaced by a kit load |
| Pad sounds like a different instrument after PERFORM | PERFORM baked it to a sample | Return to FULL mode; PERFORM-baked pads go back to synths |
| Kit load changes loudness | A kit sets its own master level | Move MASTER VOL. (The slider does not follow the kit's value) |
| Project will not load | Wrong file type (patch / song JSON), file from a newer version, damaged file | Use LOAD PROJECT only for .axiomproject. Use LOAD (legacy JSON) for patch / song files. Read the error toast |
| Restore banner does not appear | No autosave, other browser or page address, site data cleared | Use a saved .axiomproject file |
| Samples missing after restore | Autosave fell back to the small copy (no IndexedDB) | Use SAVE PROJECT regularly |
| Loop player audio missing after load | Loop slots are not part of projects | Reload the loop files |
| Undo does nothing for a sample or tempo | Not covered (4.3) | Re-load the sample; set the tempo by hand |
| Controller does nothing | Channel filter, wrong port, or Web MIDI blocked | MIDI IN CH: try Omni. Check the monitor in MIDI SETUP. Rescan. Allow MIDI access in the browser |
| Notes play the wrong pads | Profile root notes | MIDI SETUP > PAD CONTROLLERS: pick the right profile or set ROOT MIDI NOTE |
| Pad LEDs on the controller stay dark | No MIDI OUT port, LED feedback off, wrong protocol | Choose your controller as MIDI OUT. Tick TRANSMIT HARDWARE LED COLOR DATA. Try TEST LEDS |
| External synth plays over my drums | MIDI OUT points to a synth | Set MIDI OUT to (None / Internal Only) |
| Learned control does nothing | Mapping on another channel, or deleted by RESET GM DRUMS / CLEAR ALL | Open the mapping table and check it. Re-learn |
| Cannot click controls (dashed outlines) | MIDI LEARN is on | Press EXIT LEARN |
Strange behaviour after an update (build label shows ≠ js) | Cached or mixed files | Hard reload (Ctrl+F5), clear the site's cache |
| REC does nothing | The pattern slot is locked | Unlock it (pattern toolbar) or record into another slot |
| Settings are forgotten on reload | SLOW CPU, PAD LIGHTS, MONO PADS and FOLLOW CLOCK are not saved | Set them again. KITS LOAD AS, AUDIO BUFFER, mode and view are remembered |
---
8. Maintainer notes
Update this part when any of the files below change. Search for the element ids or function names given.
| Section | Derived from |
|---|---|
| 1.1, 1.2, 1.3, 1.4 (views, modes, keys, URL parameters) | js/layout.js (state, keydown map F1-F4, F8, F9, ?view= parameters, PERFORM enter / leave), js/app.js _setupPadGrid (pad key map, FX trigger keys 5-6 in _setupAuxBayControls; AXIOM_AUX_COUNT in js/audio-core.js), js/ui-helpers.js (installSpaceBar, menu Esc handling), js/project.js wireUI (Ctrl+Z / Y), css/axiom-compact.css ("v9.4 PERFORM MODE" block: what is hidden) |
| 2.1 build label | index.html (data-build, inline script at the end), js/app.js line 1 (window.AXIOM_BUILD) |
| 2.2-2.5 (tempo, swing, transport, record setup) | index.html header (ids disp-bpm, input-bpm, btn-original-tempo, slider-swing, select-groove, btn-transport-*, modal-record-setup), js/app.js _setupTransportListeners, syncTempoUI, _setupRecordSetupModal, js/audio-core.js (setBPM, noteOriginalTempo, playOriginalTempo, tapTempo, getSwingOffset, setSwing), js/sequencer.js (toggleRecording, recordHit), js/tooltips.js |
| 2.6 master volume and meters | index.html (slider-master-vol), js/audio-core.js (_setupMasterBus, setMasterVolume), js/app.js _startVisualizers, js/project.js _syncTransportUI |
| 2.9, 4.4, 4.5 (preset bar, kits, sets, styles, sample mode) | index.html (select-master-set, select-kit-only, select-sequence-style, slider-global-uniqueness, btn-master-random-kit), js/presets.js (applyFullSet, applyKit, applySequenceStyle, applyPendingCue, cueSequence, setKitLoadMode, _upgradeKitToSamples, _applyPadConfig), js/app.js (_setupSequenceBankButtons, random kit handler), PROJECT_STATE.md sections 8, 12, 16, 17 |
| 3.1 FILE menu | index.html (#menu-file), js/project.js (saveToFile, loadFromFile, wireUI), js/app.js (_setupStateManagement, exportPatchJSON, exportSongJSON, importStateJSON), js/audio-core.js (AudioRendererClass, renderActiveLoop) |
| 3.2 MIDI menu, 5 (MIDI) | index.html (#menu-midi, modal-midi-config), js/app.js (_setupMidiIntegration, _setupMidiLearn, _handleIncomingMidiInner, _rehydrateMapping, bindMidi, _setupMidiConfigModal, sendMidiLedColor), js/sequencer.js (_sendMidiNoteOn, _sendMidiNoteOff), js/audio-core.js (externalClockTick, externalClockStart, _scheduleStep clock out, start, pause) |
| 3.3 SETTINGS menu | index.html (#menu-settings), js/app.js _setupUIElements, _setupAudioOutputControls, js/audio-core.js (setLowCpuMode, setDisablePads*, init latency hint, playTestSound), js/dsp-engine.js (maxVoices, monoPads, setPerfMode), css/style.css (body.low-cpu-mode) |
| 4.1-4.3 projects, autosave, undo | js/project.js (serialize, restore, autosave functions, showRestoreBanner, undo stack) |
| 6 time keeping and performance | js/audio-core.js (_schedulerLoop, _startClockTimer, _watchRenderCapacity, setPerfLite), js/dsp-engine.js (admitVoice, refreshAuxActivity, setPerfMode, isHighPriority), js/app.js (badge code in _setupUIElements), js/layout.js, PROJECT_STATE.md sections 12, 13, 14, 16 |
| 7 troubleshooting | All of the above; re-check each row when behaviour changes |
| Tooltip wording reused | js/tooltips.js (TIPS map) |
Open issues found while writing (verify before relying on the manual text above; remove the notes here and in the text when fixed):
- At the last check
index.htmlandjs/app.jsboth said 10.2.0 (the coordinator reported 10.3); README still says v9.4. Re-check the build label text in 2.1 when the version changes. Preset-kit reverb rule:Presets.applyKit(Light Room unlessaxiom.reverbPicked). js/project.jsheader comment says aux FX bays are not persisted; the code does persist them.- The meter's right bar is derived from the left bar's value (single peak reading).
- The "tempo is never changed by loading" rule has one deliberate exception: LOAD PROJECT and RESTORE apply the stored tempo.
02 - Pads and Sound
This chapter covers everything that makes a single pad sound: the 16 pads, the pad editor, the three sound engines (SAMPLE, SUBTRACTIVE, ADDITIVE), the PAD CONTROLS window, BAKE, and the kits.
Conventions used in this chapter:
- Control names are written exactly as they appear on screen, in CAPITALS.
- "Range" is the slider range in the editor. "Default" is the neutral synth/engine default; loading a kit or choosing a RECIPE CATEGORY replaces most defaults.
- Most sliders in the editor are drawn as rotary knobs. Drag a knob up or down to change it. Hold Shift for fine steps. Double-click resets it to its starting value. When a knob has keyboard focus, the arrow keys, Page Up, Page Down, Home and End move it, and the mouse wheel works only while the knob is focused.
- "(unverified)" marks a statement I could not confirm in the code.
- Sections 4 and 5 describe the additive engine v2 (new in v10.2). This chapter matches build 10.3.
Contents: 1 Pads and editor, 2 Sample engine, 3 Subtractive synth, 4 Additive synth, 5 PAD CONTROLS, 6 BAKE, kits, presets, 7 Cookbook and glossary, Maintainer notes.
---
1. The 16 pads and the pad editor
1.1 The pads
The 16 pads sit in a 4 by 4 grid (title: 16 DRUM CELLS // MATRIX). Each pad shows only a small number in the corner. Hover a pad to see its name and keyboard key.
| Row | Pads | Keys | Default roles (factory pad names before a kit is loaded) |
|---|---|---|---|
| 1 | 1 to 4 | 1 2 3 4 | KICK 1, KICK 2, SNARE 1, SNARE 2 |
| 2 | 5 to 8 | Q W E R | CLAP, RIMSHOT, CLOSED HAT, OPEN HAT |
| 3 | 9 to 12 | A S D F | LOW TOM, MID TOM, HIGH TOM, CRASH |
| 4 | 13 to 16 | Z X C V | RIDE, PERC 1, PERC 2, SFX / IMPACT |
Pad 17 is the separate LP pad (looper). It is covered in the loop chapter.
What you can do with a pad:
| Action | Result |
|---|---|
| Click or tap a pad | Plays it and selects it. The editor then shows that pad. |
| Press its key | Plays the pad at velocity 0.9 and selects it. Keys are ignored while you type in a text box or drop-down, and while Ctrl, Alt or Cmd is held. |
| Click higher or lower on the pad | Mouse velocity depends on where you click: the bottom edge is about 0.5, the top edge about 1.1. |
| Drop an audio file onto a pad | Loads it as that pad's sample and switches the pad to the SAMPLE engine. |
| Record (REC armed) while sequencer plays | Pads you hit are written into the pattern. |
Selecting a pad also switches the right-hand deck to the PAD SOUND ENGINE tab.
Pad lights. A pad flashes for about 110 ms at the moment its sound plays, whether the hit comes from the sequencer, MIDI, a key or the mouse. Every pad lights when its sound plays, by any path (sequencer, MIDI, key, mouse, recording); your own hits always light. Use SETTINGS > PERFORMANCE / CPU > PAD LIGHTS to turn the sequencer-driven lights on or off. The selected pad has a permanent highlight.
Mute and solo. There is no mute button on the pads themselves. The MUTE and SOLO buttons in the sequencer deck header act on the currently selected track (the selected pad). They gate the steps the sequencer plays. They do not stop you from playing the pad by hand. To switch off pads 9 to 12 or 13 to 16 completely (to save CPU), use SETTINGS > PERFORMANCE / CPU > OFF 9-12 and OFF 13-16.
Hi-hat choke. Playing the pad named CLOSED HAT (pad 7) cuts any pad named OPEN HAT (pad 8). The match uses the pad names, so a renamed kit pad keeps the behaviour only if "CLOSED" and "OPEN" stay in the names, or if the pads stay in positions 7 and 8.
MONO PADS (SETTINGS > CPU, on by default). A pad cuts its own previous hit when you strike it again more than 45 ms later. Hits closer than 45 ms (flams, ratchets) overlap.
1.2 The tools under the pads
| Control | What it does |
|---|---|
| RANDOM KIT | Randomizes all 16 pads, each within its own category rules. Same as RANDOM KIT in the top bar. The chaos level is the UNIQ slider (top bar) = CHAOS slider (synth panel); they are one value. Kicks keep both FX sends at 0. Pads in sample mode get a randomized sampler setting but keep their sample. Pads do not switch engine. |
| RANDOM PAD | Randomizes the selected pad. In FULL mode it presses RANDOMIZE SUB SYNTH. In PERFORM mode it presses the sample RANDOM button. If the pad is in ADDITIVE mode this changes only the hidden subtractive settings, so you will hear nothing new. Use the additive RANDOMIZE button for additive pads. |
| EDIT SOUND | Switches to the SOUND view (same as F2): pads shrink to a strip and the editor gets the screen. |
| BAKE KIT | Renders every synth pad (SUBTRACTIVE or ADDITIVE) to a sample, one pad at a time. See section 6.1. |
| keep kick+snare | Tick box. When ticked, BAKE KIT leaves pads whose category or name contains "kick" or "snare" as live synths. |
| SYNTHS | Appears only when at least one pad is baked. Puts every baked pad back on its synth. |
View keys: F1 PADS, F2 SOUND, F3 SEQ, F4 collapse sequencer, F8 hide pad strip, F9 FULL / PERFORM.
1.3 The pad editor and the three engines
The PAD SOUND ENGINE tab shows the title bar "PAD n: NAME" and three engine tabs:
- SUBTRACTIVE SYNTH
- SAMPLE ENGINE
- ADDITIVE SYNTH
A pad's mode is the tab that is lit. Clicking an engine tab changes what the pad plays, immediately. Each pad remembers the settings of all three engines, so you can switch back and forth. Rules to remember:
- A pad in SAMPLE mode with no sample loaded plays its subtractive synth instead.
- An ADDITIVE pad needs a bank of partials. A new pad has a built-in 10-partial bell-like default bank.
- The CONVERT TO ADDITIVE button (next to it, visible while the pad plays the subtractive synth) rebuilds the subtractive sound as an additive synth: a measured bank of partials you can then edit, shape and morph (4.3 explains the analysis).
- The BAKE TO SAMPLE button (top right of the editor, visible when the pad is not already a sample) turns a synth pad into a sample. After a bake the pad is in SAMPLE mode, and BACK TO SYNTH appears.
The editor has two windows below the tabs:
- The engine window (the tab you chose).
- PAD CONTROLS (the final stage, right column).
---
2. SAMPLE ENGINE
Use the sample engine for recorded sounds, for pads that must be light on the CPU, and for baked synth sounds. The sampler is the best engine for live playing.
2.1 Loading and sources
| Control | What it does |
|---|---|
| SAMPLE PACK (drop-down: "-- Load Preset Hit --") | Builds a short synthesized hit in memory and loads it as the pad's sample. Choices: 808 Sub Kick, 909 Punch Kick, Acoustic Snare, Trap Clap, Crisp Closed Hat, Sizzle Open Hat, 808 Rimshot, Wood Clave, Lo-Fi Shaker, Acoustic Floor Tom, Bright Crash Cymbal, Ride Cymbal Bell. The pad is renamed after the preset (14 characters). Several presets contain random noise, so each load sounds slightly different. "Ride Cymbal Bell" falls into the generic fallback voice (a 120 Hz thump plus noise, 1.6 s long) rather than a ride sound (unverified by ear). |
| LOAD SAMPLE FILE | Opens a file chooser. Accepts .wav, .mp3, .ogg, .flac (any format the browser can decode). The crop is reset to the whole file and the pad is renamed after the file. |
| (drag a file onto a pad) | Same as LOAD SAMPLE FILE for the pad you drop on. |
| AUDITION | Plays the selected pad once. |
| the info line under the buttons | Shows name, length in ms, sample rate and mono/stereo. |
Trap: loading a file does not reset the sample envelope. A pad whose sampler envelope has SUSTAIN at 0 will fade the new sample away after about one DECAY time. If a loaded sample sounds cut short, set SUSTAIN to 1.00.
2.2 Crop, trim, normalize, reverse, random
The waveform window (canvas) shows the sample with two cyan crop markers.
| Control | What it does |
|---|---|
| Drag a crop marker | Moves the start or end of what plays. A marker grabs when you press within about 8 percent of the width of it. The markers cannot come closer than 2 percent. |
| Click away from both markers | Moves the nearer marker to where you clicked. |
| AUTO-TRIM | Sets the crop to the transient. The start is the first sample at or above 0.03 in amplitude, minus 128 samples of headroom. The end is the last sample at or above 0.0105, plus 512 samples. Analysis uses channel 1 only. |
| NORM | Normalizes the whole buffer so the peak is 0.98 (about -0.2 dB). Each channel is normalized separately, so a stereo sample with unequal channels changes its balance. The buffer is changed in place (the original is lost unless you reload it). |
| REVERSE | Reverses the whole buffer in place. The crop markers stay where they are on the screen, so re-set the crop after reversing. |
| RANDOM | Randomizes the sampler: hidden sample pitch of up to plus or minus 12 semitones scaled by chaos, ATTACK 1 to 31 ms, DECAY 0.1 to 0.7 s scaled by chaos, SUSTAIN 0.15 to 1, CUTOFF 2 kHz to 18 kHz. The sample pitch is not shown by any slider and no control resets it directly; it stays until the next RANDOM or until the pad is restored (unverified). |
2.3 Envelope, filter, pitch
| Control | What it does | Range | Default |
|---|---|---|---|
| ATTACK | Fade-in from silence. Never shorter than 1.5 ms, so a crop that starts mid-wave does not click. | 1 ms to 0.2 s | 2 ms |
| DECAY | Time for the level to fall from the peak to the SUSTAIN level (exponential). | 0.02 to 2 s | 0.25 s |
| SUSTAIN | Level held after the decay until the sample ends. At 1.00 the sample plays out in full and DECAY does nothing. | 0 to 1 | engine 0, shows 1.00 on a fresh pad until the pad is edited (see trap above) |
| RELEASE | With SUSTAIN below full, the level holds 20 ms after the decay and then fades to silence over this time. At full SUSTAIN the sample plays to its end (baked pads rely on this). | 0.01 to 2 s | 0.05 s |
| CUTOFF | Sample filter cutoff. At 20 kHz (19.5 kHz or more) the filter is bypassed in Lowpass mode. | 200 to 20000 Hz | 20000 |
| RESONANCE | Filter Q. | 0.1 to 18 | 1.0 |
| FILTER TYPE | Lowpass or Highpass. | - | Lowpass |
There is no sample-pitch slider. Pitch comes from OVERALL PITCH in PAD CONTROLS (section 5). For samples it changes the playback speed, so +12 semitones plays the sample twice as fast and half as long.
Velocity sets the peak level of the envelope.
2.4 Conversion buttons
| Button (as written on screen) | What it does |
|---|---|
| CONVERT SAMPLE TO ADDITIVE SYNTH | Analyses the cropped part of the sample and builds an additive bank (section 4.3), then switches the pad to ADDITIVE. After a successful click the label shows "RESYNTHESIZED!" and then returns to "SEND TO ADDITIVE" instead of its original text (cosmetic quirk). If the pad has no sample it shows an alert. Uses the partial count chosen in the ADDITIVE tab (default 24). |
| CONVERT SAMPLE TO SUBTRACTIVE SYNTH | Measures the sample (pitch glide, brightness, noise amount, decay time, crest factor), picks a starting recipe (kick / snare-percussion / hat-metal by brightness), writes the subtractive settings, renders and scores the result, and switches the pad to SUBTRACTIVE. A score of 95 or more shows "CONVERTED!". A lower score opens a warning window that lets you keep the sound, export a diagnostic report, or retry with wider bounds. The sample stays in memory. |
| MATCH SUBTRACTIVE SYNTH TO SAMPLE | Runs the same analysis and the same function, without the "explicit conversion" flag. I could not find a different effect in the code. Treat it as the same job (unverified difference). |
Both subtractive conversions overwrite OSC 1 to OSC 3 level and type, NOISE 1 and NOISE 2 settings, the main ADSR, the resonant filter and the drive. They do not reset the shaping HP and LP, or the PAD CONTROLS window.
---
3. SUBTRACTIVE SYNTH
3.1 Signal flow
OSC 1 --+ (wave -> pitch glide START -> PITCH END over PITCH DECAY
OSC 2 --+ -> own TONE DECAY envelope -> own PAN)
OSC 3 --+
+--> SUM --> MAIN ADSR --> SHAPING HP --> SHAPING LP
NOISE 1-+ (if all five levels add up to more than 1.8 the sum is scaled down to 1.8)
NOISE 2-+ (type -> HP -> LP -> own ATTACK / RELEASE envelope -> own PAN)
FM stage (optional): any of the five sources ticked in the FM matrix leave the SUM and bend the pitch
of one extra CARRIER oscillator instead; the carrier joins the SUM (section 3.8)
--> RESONANT FILTER (always in the chain; lowpass in the editor; cutoff scales with velocity)
--> DRIVE (algorithm, amount, wet/dry mix)
--> PAD CONTROLS: FILTER (off/LP/HP) -> DRIVE / OD -> ATTACK fade
--> pan -> PAD VOLUME -> master mix
\-> SEND 1..2 -> reverb / delay
Velocity affects three things on a subtractive pad: source level, resonant filter cutoff (soft hits are darker, hard hits brighter, scale 0.35 to 1.85) and the depth of the pitch drop.
3.2 Layout of the SUBTRACTIVE SYNTH tab
Top row: RECIPE CATEGORY drop-down, CHAOS slider, RANDOMIZE SUB SYNTH button. Below it, seven module tabs:
OSC 1 (PRIMARY), OSC 2 (LAYER), OSC 3 (ACCENT), NOISE 1 (BODY), NOISE 2 (METALLIC), FM SYNTH, SUM & SHAPING.
The old five-channel mixer strip is hidden. Its level, pan and MUTE controls now appear as the first three controls of each source tab (LEVEL, PAN, MUTE; the button reads MUTED while the source is silent).
3.3 Oscillators (OSC 1, OSC 2, OSC 3)
Each oscillator has the same controls. A source with LEVEL below 0.005 is not created at all.
| Control | What it does | Range OSC 1 / OSC 2 / OSC 3 | Neutral default OSC 1 / 2 / 3 |
|---|---|---|---|
| OSC n LEVEL | Level before the main ADSR. | 0 to 1 | 0.90 / 0.30 / 0.00 |
| OSC n PAN | Stereo position. | -1 to +1 | C |
| OSC n MUTE | Silences the oscillator. | button | off |
| OSC n WAVEFORM | Shape. See table below. | - | Sine / Triangle / Square |
| START FREQ (HZ) | Frequency at the instant of the hit. | 30-600 / 30-800 / 30-1200 | 130 / 80 / 220 |
| PITCH END (HZ) | Frequency the pitch glides to. This is an end frequency, not a drop amount. Set it equal to START FREQ for a fixed pitch. The engine never goes below 10 Hz. | 0-400 / 0-400 / 0-600 | 45 / 30 / 60 |
| PITCH DECAY | Time of the exponential glide from START to END. Short means a click and punch. Long means a laser-like sweep. | 0.005 to 0.5 s | 0.06 / 0.05 / 0.04 |
| TONE DECAY | Amplitude decay time of this oscillator. See the decay rule below. | 0.01 to 2.0 s | 0.35 / 0.25 / 0.15 |
| FINE TUNE (CENTS) | Detune, 100 cents = 1 semitone. | -100 to +100 | 0 |
Waveforms (names as shown in the drop-down):
| Name on screen | What it is |
|---|---|
| Sine, Triangle, Square | Standard shapes. |
| Saw + (Rising), Saw - (Falling) | Saw ramps. |
| Rectangle (25%) | A 25 percent pulse wave. |
| Random / S&H | A fixed set of pseudo-random harmonics (a rough, stepped buzz). It is not a true sample-and-hold. |
| Sub Sine | Sine with a strong second and third harmonic, for body. |
| Hyper Saw | Saw with gently varied harmonic weights. |
| Metallic Bell | A few inharmonic-sounding harmonics (1, 2, 3, 5, 7, 11, 13). |
| 808 Bridged-T Sub | The 808 kick and tom resonator: a nearly pure sine with a little saturation harmonic. |
| 909 Snap Resonator | The 909 kick core: sine with strong low harmonics and a small cosine component for a knock. |
| 6-Schmitt Metallic Cluster (single wave) | One oscillator with dense odd and even harmonics up to the 21st. Because the harmonics are whole multiples, it stays a pitched buzz; for real metal use the three cluster types below. |
| Metal Cluster: 6 squares (808 cymbal / hat) | Six real square-wave oscillators at the TR-808's inharmonic ratios 1 : 1.48 : 1.80 : 2.55 : 2.63 : 3.90 of START FREQ (the circuit's 205 to 800 Hz). Gives the dense, hard metal of the 808 cymbal and hat. Set START FREQ to about 250 to 600 Hz and filter the lows away (SHAPING HP 2000 to 6000 Hz). Costs 6 oscillators per hit. |
| Shimmer Cluster: 12 beating squares | The same six, each with a twin a few cents away that dies sooner. The twins beat against their partners, so the metal shimmers and moves, like a crash or ride. 12 oscillators per hit. |
| Modal Plate: 14 inharmonic modes | 14 triangle waves at the mode ratios of a struck plate (1, 1.59, 2.14, 2.30, 2.65 ...). Higher modes are quieter and die faster. A bell-like, clanging cymbal body; set START FREQ to about 500 to 1200 Hz. 14 oscillators per hit. |
The three cluster types follow the oscillator's pitch drop like any other wave (all their oscillators move together) and, ticked into the FM matrix, they make strong inharmonic modulators. They are also the quickest way to metal when you send them to the FM stage (3.8).
(The code also knows twin_t_snare, a dual-resonance snare body. It is not in the drop-down; kit designs can use it.)
The decay rule (important). Every decay time is the time to fall about 80 dB (to silence), and these envelopes multiply: each oscillator's TONE DECAY, each noise RELEASE, and the main ADSR DECAY all apply at the same time. The time you actually hear to fall 40 dB (t40) is therefore roughly half of the stated time, and the main ADSR shortens it further:
t40 = 0.5 / (1/TONE DECAY + 1/ADSR DECAY)
To hit a target t40, solve for the source decay: TONE DECAY = 1 / (0.5/t40 - 1/ADSR DECAY). Set ADSR DECAY at least as long as your longest source, and ADSR SUSTAIN to 0.
3.4 Noise generators (NOISE 1, NOISE 2)
| Control | What it does | Range NOISE 1 / NOISE 2 | Neutral default |
|---|---|---|---|
| NOISE n LEVEL | Level before the main ADSR. | 0 to 1 | 0.20 / 0.00 |
| NOISE n PAN, MUTE | As for the oscillators. | -1 to +1 | C |
| NOISE n TYPE | White Noise (bright), Pink Noise (1/f), Brown / Red Noise (dark), Metallic Cluster, Velvet Noise (sparse clicks), Sizzle (grainy glitter). | - | Pink / Metallic Cluster |
Sizzle is white noise chopped into random 1 to 7 ms grains of different loudness and tilted towards the highs. Steady noise sounds flat and hissy; sizzle has the restless, glittering surface of a real cymbal or hat (its level flutters by about 1 to 3 dB, real cymbals by 0.6 to 2.6 dB). Use it as the second noise, quieter than the first, with a high SHAPING HP.
| HP CUTOFF (HZ) | High-pass on the noise. Keep it below LP CUTOFF; together they make a band-pass. | 20-12000 / 50-15000 | 20 / 1500 |
| LP CUTOFF (HZ) | Low-pass on the noise. | 100-20000 | 3500 / 12000 |
| PRE-ADSR ATTACK | Fade-in of the noise burst. | 0 to 0.5 s (minimum used is 1 ms) | 0.002 |
| PRE-ADSR RELEASE | Decay of the burst, to about -80 dB. | 0.005 to 2.0 s | 0.15 / 0.08 |
The noise buffers are fixed (the same noise on every hit), so hits are repeatable.
3.5 SUM & SHAPING
| Control | What it does | Range | Default |
|---|---|---|---|
| ADSR ATTACK (S) | Fade-in of the summed sound. | 0.001 to 0.5 s | 0.002 |
| ADSR DECAY (S) | Fall from full level to the SUSTAIN level. Multiplies with every source decay. | 0.01 to 2.0 s | 0.25 |
| ADSR SUSTAIN | Level the envelope falls to. Use 0 for drum hits. | 0 to 1 | 0.00 |
| ADSR RELEASE (S) | Final fade after the decay. | 0.01 to 3.0 s | 0.10 (neutral engine 0.05) |
| SHAPING HP (HZ) | High-pass on the summed sound. | 20 to 10000 | 20 |
| SHAPING LP (HZ) | Low-pass on the summed sound. | 200 to 20000 | 20000 |
| RESONANT CUTOFF | Cutoff of the resonant filter. | 50 to 20000 | neutral engine 4500; the slider is drawn at 20000 |
| FILTER RESONANCE (Q) | Resonance of that filter. | 0.1 to 18 | neutral engine 1.5 |
| DRIVE ALGORITHM | Regular Distortion, Fuzz Distortion, Excite Overtones, Reduce Overtones, Reduce & Crunch, Ring Modulator, Compression + Distortion. | - | Regular |
| DRIVE AMOUNT | Drive strength. 0 is clean. | 0 to 100 | 0 |
| DRIVE MIX (WET %) | Share of the driven signal. At 0 the drive does nothing even if AMOUNT is high. | 0 to 1 | neutral engine 0 |
Envelopes run by themselves. There is no note-off for a drum hit. The main ADSR fires: attack, (hidden hold, normally 0), decay down to the sustain level, a 20 ms pause at that level, then the release fade. With SUSTAIN at 0 the release is already silent.
Rules that catch people out:
- The resonant filter is always in the chain and its neutral setting is a 4.5 kHz low-pass with Q 1.5. Hats, claps and cymbals sound dull and quiet until RESONANT CUTOFF is at 20000 and FILTER RESONANCE (Q) is about 0.7. The editor has no filter-type switch, so the resonant filter is a low-pass for any pad you edit by hand.
- Recipes (RECIPE CATEGORY) and RANDOMIZE set a drive amount but leave DRIVE MIX at 0, so they add no distortion. To hear drive, raise DRIVE MIX.
- Recipes leave the ADSR and resonant filter as they were. Check them after changing category.
- DRIVE ALGORITHM can show blank after a recipe that used the names "tube", "tape", "overdrive" or "foldback". Those all behave as Regular Distortion.
- For kicks use DRIVE ALGORITHM = Regular or Compression + Distortion with SHAPING HP at 24 to 28 Hz, to keep DC offset out.
- If all source levels add up to more than 1.8 the engine scales them down, so raising one level can make others quieter.
3.6 RECIPE CATEGORY, CHAOS, RANDOMIZE SUB SYNTH
RECIPE CATEGORY (34 categories): Kick, Snare, Hi-Hat, Crash Cymbal, Ride Cymbal, China Cymbal, Clap, Tom, Wood Block, Rim Shot, Bell, Swoosh, Stomp, 8-bit Snare/Cymbal/Hat, Impact Sound, UFO Sound, Drum Fill, Drive-By, Gunshot, Sword Swoosh, Sword Clank, Stab Sound, Whip, Gong, Chimes, Explosion, Page Turn, Fake Electric Car, Transition, Hovering, Bird Chirps, Metal Clang, 8-bit Cymbal, 8-bit Hat.
Choosing one loads that category's starting patch into the pad's oscillators and noises and sets the FX sends to 0. It replaces OSC 3 and NOISE 2 levels, but it does not touch the pad name, the ADSR, the filters, or PAD CONTROLS other than the sends.
Example starting patches (from the code): Kick = sine 240 to 46 Hz over 32 ms, tone decay 0.38 s, plus triangle knock and sub sine, plus pink noise click. Snare = triangle 310 to 185 Hz, sine 330 Hz and 440 Hz overtones, white noise high-passed at 2.1 kHz. Hi-Hat = three squares near 3.8, 5.9 and 8.2 kHz plus white and metallic noise. Tom = sine 220 to 110 Hz over 65 ms, decay 0.48 s.
CHAOS (0 to 100 percent, default 25): how far RANDOMIZE strays. 0 keeps close to genre rules, 100 is experimental. It is the same value as the UNIQ slider in the top bar.
RANDOMIZE SUB SYNTH: reloads the pad's category recipe and then randomizes the oscillators, noises, resonant filter, the pad volume, pan, and FX sends within ranges that suit that category. Kick and Stomp categories (and pads 1 and 2, or any pad named KICK or SUB) always get 0 on both sends. Randomizing never turns drive on. A pad in SAMPLE mode keeps its sample and gets a randomized sampler setting instead.
3.7 Recipes for typical sounds
These are starting points calculated from the engine rules. They have not been auditioned. For every recipe, set in SUM & SHAPING: ADSR SUSTAIN 0, RESONANT CUTOFF 20000, FILTER RESONANCE (Q) 0.7, unless noted. Unlisted levels are 0. Unlisted values stay at the neutral defaults.
808 kick (t40 about 0.4 s)
| Where | Setting |
|---|---|
| OSC 1 | WAVEFORM 808 Bridged-T Sub (or Sine), LEVEL 1.0, START FREQ 130, PITCH END 48, PITCH DECAY 0.025, TONE DECAY 1.4 |
| NOISE 1 | Pink, LEVEL 0.08, HP CUTOFF 800, LP CUTOFF 3000, PRE-ADSR RELEASE 0.012 (a small click) |
| SUM & SHAPING | ADSR ATTACK 0.001, ADSR DECAY 2.0, SHAPING HP 24, DRIVE ALGORITHM Regular, DRIVE AMOUNT 15, DRIVE MIX 0.3 |
| Longer "sub" kick | PITCH END 40 to 45, TONE DECAY 2.0 |
909 kick (t40 about 0.24 s)
| Where | Setting |
|---|---|
| OSC 1 | Sine (or 909 Snap Resonator), LEVEL 1.0, START FREQ 250, PITCH END 52, PITCH DECAY 0.04, TONE DECAY 1.0 |
| OSC 2 | Triangle, LEVEL 0.25, START FREQ 700, PITCH END 150, PITCH DECAY 0.01, TONE DECAY 0.04 (the click) |
| NOISE 1 | White, LEVEL 0.3, HP CUTOFF 1500, LP CUTOFF 6000, PRE-ADSR RELEASE 0.008 |
| SUM & SHAPING | ADSR DECAY 0.9, SHAPING HP 28, DRIVE ALGORITHM Compression + Distortion, DRIVE AMOUNT 25, DRIVE MIX 0.4 |
909 snare (t40 about 0.14 s)
| Where | Setting |
|---|---|
| OSC 1 | Sine, LEVEL 0.7, START FREQ 260, PITCH END 200, PITCH DECAY 0.02, TONE DECAY 0.25 |
| OSC 2 | Sine, LEVEL 0.4, START FREQ 330, PITCH END 330, TONE DECAY 0.15 |
| NOISE 1 | White, LEVEL 0.9, HP CUTOFF 2000, LP CUTOFF 12000, PRE-ADSR ATTACK 0.001, PRE-ADSR RELEASE 0.45 |
| NOISE 2 | White, LEVEL 0.25, HP CUTOFF 5000, LP CUTOFF 20000, PRE-ADSR RELEASE 0.2 (extra snap) |
| SUM & SHAPING | ADSR DECAY 0.8 |
Closed hat (808 style)
| Where | Setting |
|---|---|
| OSC 1 | 6-Schmitt Metallic Cluster, LEVEL 0.5, START FREQ 800, PITCH END 800, TONE DECAY 0.06 |
| OSC 2 | 6-Schmitt Metallic Cluster, LEVEL 0.3, START FREQ 540, PITCH END 540, TONE DECAY 0.06 |
| NOISE 2 | Metallic Cluster, LEVEL 0.5, HP CUTOFF 7000, LP CUTOFF 20000, PRE-ADSR RELEASE 0.06 |
| SUM & SHAPING | ADSR DECAY 0.12, SHAPING HP 7000 |
| Open hat | Same, with TONE DECAY and PRE-ADSR RELEASE about 0.6 and ADSR DECAY 0.9. Put it on pad 8 and the closed hat on pad 7 so the closed hat chokes it. |
| Cymbal / crash | Same, TONE DECAY and RELEASE 1.5 to 2.0, ADSR DECAY 2.0. |
Clap
| Where | Setting |
|---|---|
| NOISE 1 | White, LEVEL 0.9, HP CUTOFF 800, LP CUTOFF 1800, PRE-ADSR RELEASE 0.2 |
| NOISE 2 | Pink, LEVEL 0.5, HP CUTOFF 1000, LP CUTOFF 3000, PRE-ADSR ATTACK 0.012, PRE-ADSR RELEASE 0.25 (a late second swell) |
| Layering | Stagger the two noise layers (NOISE 2 starts 12 ms later, see above); the pad LFO gate no longer exists. |
| SUM & SHAPING | ADSR DECAY 0.4 |
Tom (sine)
| Pad | START FREQ | PITCH END |
|---|---|---|
| Low tom | about 280 | about 185 |
| Mid tom | about 405 | about 270 |
| High tom | about 575 | about 385 |
OSC 1: Sine, LEVEL 1.0, PITCH DECAY 0.05, TONE DECAY 0.9. NOISE 1: Pink, LEVEL 0.15, HP CUTOFF 1000, LP CUTOFF 3500, PRE-ADSR RELEASE 0.02 (stick). ADSR DECAY 0.8 (t40 about 0.2 s). Lower toms get longer decays.
Cowbell: OSC 1 Square 540 to 540, OSC 2 Square 800 to 800, both TONE DECAY 0.35, ADSR DECAY 0.5, SHAPING HP 400, SHAPING LP 6000.
---
3.7a Recipe: a better cymbal
Cymbals and hats are the hardest drum sounds to synthesise, because they are made of many unrelated (inharmonic) vibrations plus a restless noise wash. The standard methods, and what this synth offers for each:
| Method | Where |
|---|---|
| A bank of inharmonic square waves (the TR-808 circuit) | OSC type Metal Cluster, or Shimmer Cluster for the beating version |
| Modal synthesis: the vibration modes of a struck plate, each with its own decay | OSC type Modal Plate |
| Frequency modulation with non-integer ratios (a few oscillators making dense sidebands) | the FM SYNTH tab (3.8): send a cluster or OSC 2 into the matrix, CARRIER RATIO 2 to 6, FM INDEX 1 to 4 |
| Noise, high-passed, in two layers with different decays | NOISE 1 white, NOISE 2 Sizzle |
| Highs that die faster than the lows | different TONE DECAY / RELEASE on each source, and ADSR DECAY |
The built-in Crash Cymbal and Ride Cymbal categories (RECIPE CATEGORY) use these: for the crash a Modal Plate (510 Hz, level 0.53) with a quiet Metal Cluster (380 Hz) and Shimmer Cluster (875 Hz), white noise (HP 2750) and Sizzle (HP 5000, level 0.2), ADSR DECAY 2.7, SHAPING HP 2900, RESONANT CUTOFF 20000. The recipe was found by trying 600 variants against 17 factory crash recordings: it matches their decay, brightness and band balance better (score 65 against 61 for the old recipe, on a 100-point scale where one recording against another typically reaches 70 to 85).
3.8 FM SYNTH (the FM stage)
The FM SYNTH tab sits after the two noise generators and before the ADSR. It adds one carrier oscillator whose pitch can be bent (frequency modulation) by any of the five sources: OSC 1, OSC 2, OSC 3, NOISE 1 and NOISE 2. It is off when a pad is created or a kit is loaded; the tab shows a dot (FM SYNTH ●) while it is on.
How it works:
- Tick FM STAGE ON (
sub-fm-enable). - In the matrix SEND INTO FM (
sub-fm-in-1tosub-fm-in-5: OSC 1, OSC 2, OSC 3, NOISE 1, NOISE 2) tick the sources that should act as modulators. A ticked source is taken out of the normal sum and bends the carrier instead, in mono (its PAN no longer applies). Its own LEVEL sets how strongly it bends the carrier (there are no extra volume faders in the matrix), and its pitch, drop and tone envelope shape the modulation. Unticked sources play as normal, so you can keep a noise burst or a layer outside the FM. - The carrier follows OSC 1's pitch curve (START FREQ, PITCH END, PITCH DECAY, TUNE) multiplied by CARRIER RATIO, even when OSC 1 itself is muted or sent into the matrix. It joins the sum with the other sources, then goes through the ADSR, filters, drive and PAD CONTROLS like any other source.
| Control | What it does | Range | Default |
|---|---|---|---|
| FM STAGE ON | Switches the stage on. With it off the pad sounds exactly as before. | on / off | off |
| SEND INTO FM: OSC 1, OSC 2, OSC 3, NOISE 1, NOISE 2 | Which sources act as modulators. A source with level 0 or MUTED has no effect. | 5 tick boxes | all off |
| CARRIER WAVE | Waveform of the carrier. | Sine, Triangle, Square, Saw | Sine |
| CARRIER RATIO | Carrier pitch as a multiple of OSC 1's pitch. 1 = the same note, 2 = an octave up. | 0.25 to 8 | 1 |
| FM INDEX | Depth of the modulation. The carrier's pitch is bent by up to index x its own pitch (times the modulator's level). 0 = no FM, a plain carrier. | 0 to 12 | 2 |
| INDEX DECAY (S) | How fast the depth dies away (to 2%). A short time gives a bright attack that turns into a clean tone. | 0.01 to 2 s | 0.12 |
| CARRIER DECAY (S) | Length of the carrier's own fade-out (before the main ADSR). | 0.02 to 3 s | 0.35 |
| CARRIER LEVEL | Loudness of the carrier in the sum (counts towards the 1.8 headroom limit). | 0 to 1 | 0.80 |
Tips: a sine OSC 2 at a simple ratio to OSC 1 (for example OSC 1 at 130 Hz, OSC 2 at 260 Hz) gives classic bell and tom tones; raise FM INDEX for metal and clangs. Sending NOISE 1 into the matrix gives noisy, rattling FM. Sending OSC 1 itself into the matrix makes the carrier modulate itself with the same pitch curve. FM adds one oscillator and two gain stages per hit (about double the offline render time of a plain pad, still tiny). The FM settings are saved with the pad, work with BAKE TO SAMPLE and CONVERT TO ADDITIVE, and are not touched by the additive tab.
4. ADDITIVE SYNTH (new in v10.2)
4.1 What additive synthesis is
An additive pad builds its sound by adding many plain sine waves, called partials. Each partial has its own frequency, level and decay time. A bell, a tom or a drum body is a handful of partials that fade at different speeds. Because you draw each partial's level yourself, you can reshape the spectrum of a sound directly: darker, hollower, more metallic, longer.
The engine has three parts:
- Bank A: the pad's own partials (the bars you edit).
- Shaping sliders: non-destructive spectral tools applied on top of the stored partials every time the pad plays.
- Layer B (MORPH): a second set of partials copied from any other pad, blended with A during each hit.
Two numbers describe every partial:
- f0: the bank's fundamental frequency. It is the first partial that is at least 30 percent as loud as the loudest one.
- Harmonic ratio r = freq / f0. A partial at r = 2.00 is the second harmonic. A partial more than 0.15 away from a whole number is "inharmonic" (metal, bell). The editor labels bars with their ratio.
What additive synthesis is good at (the sounds this tab is for, which the subtractive synth cannot make as well):
- Struck metal, glass, wood and bells. These have partials at non-whole ratios that each die at their own speed. Series presets give the real ratios of an FM bell, tubular bell, vibraphone and marimba bars, a singing bowl, a gong, a gamelan metallophone and a cymbal cluster.
- Living, beating tones. Two partials a few cents apart beat slowly. SHIMMER adds such twins; SCATTER detunes every partial a little. Both come from the additive method (per-partial tuning) and cost nothing in sound quality.
- Evolving and swelling sounds. BLOOM makes high partials enter later; DECAY TILT makes the highs die first or last; MORPH LAYER B changes the whole spectrum during the hit.
- Surgical spectral editing. Odd or even harmonics only, a formant bump, comb notches, shelves: all act on harmonic numbers, so they stay correct when the pitch changes.
- Resynthesis. CONVERT FROM SAMPLE and CONVERT TO ADDITIVE turn any sound into editable partials, then freeze, stretch, darken or blend it.
- Zaps, drops and risers. PITCH DIVE glides every partial at once, like a sweep.
Limits: it needs many oscillators (live hits use up to 32, extra partials play only when you BAKE), and it is weak at dense noise: add the NOISE (RESIDUAL) layer or print the pad to the sampler.
Partials are always kept sorted by frequency, and every tool works on the real ratio, never on the list position. (So ODD/EVEN really means odd and even harmonics, even if the bank has gaps.)
The pad's pitch comes from the bank itself. To retune a pad, use OVERALL PITCH in PAD CONTROLS (plus or minus 24 semitones). There is no f0 slider. A pad can hold up to 128 partials per bank.
4.2 Top rows of the ADDITIVE SYNTH tab
| Control | What it does |
|---|---|
| CONVERT FROM SAMPLE | Analyses the pad's sample (cropped region only) and replaces bank A with the result (section 4.3). Needs a sample on the pad. A baked synth pad counts, because its baked sample is a sample. |
| partial-count drop-down | 16, 24, 32, 48 or 64 partials. Used by CONVERT FROM SAMPLE, by COPY TONE, and by the SERIES presets. Default 24. |
| RANDOMIZE | Builds a new harmonic bank (24 partials on a random fundamental of 50 to 300 Hz) with random shaping settings. Chaos-aware. Switches the pad to ADDITIVE. |
| Series presets... (drop-down) | Replaces bank A with a classic series built on the current f0. See 4.4. |
| ~N osc/hit | Badge showing the CPU cost of one hit. See 4.9. |
| THIS PAD IS BAKED TO A SAMPLE note | Orange note that appears when the pad was baked from an additive pad. It says edits are not heard until you UN-BAKE (the BACK TO SYNTH button). |
4.3 Converting a sample: what is estimated
Click CONVERT FROM SAMPLE (or CONVERT SAMPLE TO ADDITIVE SYNTH on the sample tab). The analysis, step by step:
- The cropped part of the sample is mixed to mono. Set the crop first with AUTO-TRIM.
- The analysis starts where the signal first reaches 10 percent of its peak (minus 1 ms).
- Which partials. A long spectrum (8192 points) of the first moment is searched for peaks between 25 Hz and the lower of 20 kHz or 0.45 of the sample rate. A peak must be above -60 dB relative to the strongest and be a local maximum. Peaks closer than 1.2 bins are merged. The loudest N peaks (N is the partial-count drop-down) are kept, with a refined frequency. Only the first window of the sound defines the partial list.
- Level and decay of each partial. The partial's level is followed over time with short windows (2048 points, or 4096 when the lowest partial is below 90 Hz). A straight line is fitted to the level in dB over the first part of the decay (the part that stays within about 35 dB of the peak). The line gives the starting level (a partial's level is the extrapolated level at time zero, scaled so the loudest is 1.0) and the decay time (time to fall 60 dB, limited to 0.02 to 8 s). If there are fewer than three usable points, or the partial does not fall, its decay is set to the sample length (at most 3 s).
- Attack. The 1 ms RMS envelope gives the time from 10 to 90 percent of the peak, limited to 0.5 to 30 ms. It is written to the ATTACK (ms) slider.
- Noise residual. The energy left after removing the peaks (plus or minus 3 bins) is measured in seven bands (60-200, 200-500, 500-1000, 1000-2000, 2000-4000, 4000-8000 Hz and 8 kHz to 16 kHz), each with a level and a decay time. Both conversions (from a sample and from the subtractive synth) set NOISE (RESIDUAL) to 1.00, so the noise part is heard at once; lower the slider to taste. In a test on 80 factory pads this cut the spectral distance to the original from 24 dB to 15 dB (snares, claps, hats and cymbals gain most; kicks and toms were already close).
- The pad switches to ADDITIVE. The old shaping sliders are not reset.
After a conversion each bar remembers its analysed level, so Alt+click (or the 0 key) can restore it.
4.4 SERIES presets
Choosing a series replaces bank A at once, on the current f0 (110 Hz if the pad has no bank), clears the stored noise residual and keeps layer B. N is the partial-count drop-down.
| Preset (as on screen) | Partials |
|---|---|
| Saw (1/n) | harmonics 1 to N, level 1/n |
| Square (odd 1/n) | odd harmonics 1, 3, 5 ... (N of them), level 1/n |
| Triangle (odd 1/n²) | odd harmonics, level 1/n squared |
| Pulse 25% | harmonics 1 to N, level of a 25 percent pulse wave |
| Organ drawbars | ratios 1, 2, 3, 4, 6, 8, 10, 12 with fixed levels |
| Bell (inharmonic) | ratios 1, 2.76, 5.4, 8.93, 13.34, 18.64, 25.1, 32.7, falling levels, long decays |
| Glass (inharmonic) | ratios 1, 2.32, 4.25, 6.63, 9.38, 12.5, 16.1 |
| Clarinet (odd, soft) | odd harmonics, level 1/n to the power 0.7 |
| FM Bell (1 : 1.4) | the sidebands of a carrier : modulator 1 : 1.4 FM bell at ratios 0.4, 1, 1.8, 2.4, 3.2, 3.8, 5.2, 6.6, 8.0, 9.4 |
| Tubular bell | ratios 1, 2, 3, 4.2, 5.4, 6.8, 8.4, 10.2 |
| Vibraphone bars | ratios 1, 3.99, 10.02, 17.9 (long fundamental, short overtones) |
| Marimba bars | ratios 1, 3.93, 9.14, 15.8 (short, wooden) |
| Singing bowl | ratios 1, 2.71, 5.15, 8.14, 11.7, 15.9, very long decays |
| Gong / tam-tam | 12 inharmonic modes from 1 to 10.1, long decays |
| Gamelan metallophone | ratios 1, 1.5, 2.07, 3.01, 3.55, 4.6, 6.1 |
| Cymbal cluster (dense metal) | the six 808 ratios, then a fixed scatter of inharmonic partials between 2 and 14 times f0, highs dying faster; N partials. Set f0 to about 900 to 1200 Hz (use OVERALL PITCH or the partial editor) for a bright cymbal |
| Hi-hat cluster (short metal) | the same layout with 0.1 to 0.2 s decays |
Decay times of the harmonic series shrink with the harmonic number (about 0.5 to 0.6 s divided by the square root of n).
4.4a SHIMMER, SIZZLE, DIVE & BLOOM
The panel section SHIMMER, SIZZLE, DIVE & BLOOM (METAL, GLASS, CYMBALS, ZAPS) holds six sliders that use what only a bank of independent partials can do. They act on every hit (they are not printed by COMMIT TOOLS, except SCATTER).
| Slider | What it does | Range | Default |
|---|---|---|---|
| SHIMMER (BEATING TWINS) | The loudest partials get a twin 2 to 12 cents away (more cents with more SHIMMER) at 70 to 100% of the level; the pair beats against each other. Uses up to 40% more oscillators; the cost badge counts them. | 0 to 1 | 0 |
| SCATTER (RANDOM DETUNE, CENTS) | Detunes each partial by its own fixed random amount up to this many cents (the same every hit). Small = thick, large = clanging. COMMIT TOOLS prints it into the partial frequencies. | 0 to 60 | 0 |
| SIZZLE (RANDOM LEVEL FLUTTER) | Each partial's level wobbles randomly every 10 to 30 ms for the first 1.6 s, more for higher partials. Different on every hit. Measured: a clean 12-partial cluster goes from 0.12 dB to 1.3 dB of surface flutter at 1.0. | 0 to 1 | 0 |
| PITCH DIVE (SEMITONES) | Every partial starts this far above (negative: below) its pitch and glides to it (exponentially). | -24 to +24 | 0 |
| DIVE TIME (ms) | Length of that glide. | 5 to 1000 | 120 |
| BLOOM (HIGHS ENTER LATER) | The partial's start is delayed by BLOOM x 60 ms for every octave above f0, so the sound opens up. | 0 to 1 | 0 |
Ideas: a bell = FM Bell series + SHIMMER 0.5 + SCATTER 8; a cymbal = Cymbal cluster series (f0 1000 Hz) + SIZZLE 0.5 + DECAY TILT 0.5 + NOISE (RESIDUAL) 0.5; a laser zap = any series + PITCH DIVE +24, DIVE TIME 80; a bowed swell = Organ drawbars + ATTACK 30 ms + BLOOM 0.6. In a test, an additive cymbal cluster reached a similarity score of 58 against 17 reference crashes (the subtractive recipe: 65), but with the sound of a struck metal plate rather than of noise.
4.5 The partial editor (canvas)
The big canvas shows one bar per partial. The upper part shows the level (bar height, linear 0 to 1). The lower purple lane shows the decay of each partial on a log scale from 0.02 to 8 s. Numbers under the bars are the harmonic ratios.
How to read it:
- Bar colour for a harmonic partial moves from cyan to orange-yellow as the ratio rises. Orange bars are inharmonic.
- A white tick on a bar marks its level after shaping and morph tools, so you can see what the sliders do.
- Grey bars are muted (or not soloed). A yellow strip on top marks a solo. A red slash marks a mute.
- Hollow orange outlines are the levels of layer B, matched by position, shown while you edit A.
- The line under the canvas shows: index, frequency in Hz, harmonic number (and "inharmonic"), level in dB, decay in seconds, and [MUTED] or [SOLO].
Mouse
| Gesture | Result |
|---|---|
| Drag across the bars (upper area) | Draws levels. Bars skipped by a fast drag are filled by a straight line. |
| Shift + drag | Draws a straight ramp from the bar where you pressed to the bar under the pointer. |
| Ctrl + drag (Cmd on Mac) | Scales the bar under the pointer: drag up to raise it, down to lower it. |
| Drag in the lower lane | Sets decay times of the bars you cross (0.02 to 8 s, log scale). |
| Right-click a bar | Mute or unmute that partial. |
| Shift + right-click | Solo or unsolo that partial. If any partial is soloed, only soloed partials sound. |
| Middle-click | Mute or unmute. |
| Alt + click | Restores the analysed level of that bar (only for bars that have one, for example after a conversion). |
| Hover | Shows the readout for that bar. |
Keyboard (click the canvas first so it has keyboard focus)
| Key | Result |
|---|---|
| Left / Right arrow | Select the previous / next partial. |
| Up / Down arrow | Level plus or minus 1 dB. With Shift: 6 dB. With Alt: 0.2 dB. A bar can never go above 1.0. |
| [ and ] | Decay shorter (about 11 percent) / longer (about 12 percent) per press. |
| M | Mute / unmute the selected partial. |
| S | Solo / unsolo the selected partial (the editor keeps the key to itself: it no longer plays pad 10). |
| Delete or Backspace | Remove the selected partial. |
| 0 | Restore the analysed level of the selected partial. |
| Ctrl + Z / Ctrl + Y | Editor-local undo / redo. |
Undo. The editor keeps its own 20-step history, used while the canvas has focus (Ctrl+Z, Ctrl+Y) or through the two arrow buttons next to A and B. One drag is one step. Every tool button is one step. It records the partial banks (A and B) and f0. It does not record the shaping sliders or other controls. It is not per pad (see Maintainer notes), so do not undo after you change pad. The project-wide Ctrl+Z is blocked while the canvas has focus. Ctrl+Shift+Z in the canvas is also undo (not redo).
4.6 Tool buttons
The EDIT row: A, B, undo, redo, the tool buttons, and the audition tick box.
| Button | What it does |
|---|---|
| A / B | Chooses which bank the canvas and the tools edit. B is available only when layer B has content. |
| undo / redo (arrow buttons) | See 4.5. |
| NORM | Scales levels so the loudest is 1.0. |
| SMOOTH | Averages each partial with its two neighbours in the sorted list (weights 25, 50, 25 percent). |
| FLAT | Sets every partial to the average level. |
| INVERT | Replaces each level with 1 minus the level (minimum 0.01). |
| +H | Moves every partial up by f0 (one harmonic step). |
| -H | Moves every partial down by f0 (lowest allowed 20 Hz). Partials can pile up on top of each other. |
| SNAP | Moves each partial to the nearest whole harmonic of f0. Two partials can land on the same harmonic and add. |
| + PARTIAL | Adds one partial one harmonic above the highest, at level 0.3 and the average decay, and selects it. |
| - PARTIAL | Deletes the selected partial. Click a bar first. |
| UNMUTE ALL | Clears every mute and solo flag. |
| COMMIT TOOLS | Prints the effect of the shaping sliders into the bars of bank A, then resets those sliders (see below). |
| audition | When ticked, the pad plays after each edit so you hear it. |
COMMIT TOOLS in detail. It always works on bank A. It writes the shaped result into the partials: frequencies after STRETCH and INHARMONICITY, levels after tilt, odd/even, low end, top end, formant, comb and FLOOR, and decays after DURATION and DECAY TILT. Levels are renormalized so the loudest is 1.0. Then it resets TILT, ODD/EVEN, LOW END, TOP END, FORMANT BUMP, COMB, HARMONIC STRETCH, INHARMONICITY, DECAY TILT and DURATION SCALE to neutral. Corner, frequency, width, spacing and shift sliders, PUNCH, SUB-OCTAVE, NOISE, FLOOR and the vibrato stay as they are. Three consequences:
- Muted partials, soloed-out partials and partials below the FLOOR level are deleted for good.
- Partials that lie above 0.45 of the sample rate are dropped.
- The stored "analysed level" of each bar is lost, so Alt+click and the 0 key stop working.
Use COMMIT TOOLS before you want to continue sculpting the sound you hear, and before you copy the pad into another pad's layer B (which reads the shaped result anyway).
4.7 Shaping sliders
These sliders act on both layer A and layer B while the pad plays. Let r be the harmonic ratio of a partial and f its frequency. Amounts are in dB unless stated.
SPECTRAL SHAPING (ODD / EVEN, LOW END, TOP END, FORMANT, COMB, STRETCH)
| Slider | Range / default | Exact effect |
|---|---|---|
| SPECTRAL TILT | -1 to 1 / 0 | Adds tilt x 12 x log2(r) dB. At +1 harmonic 2 is +12 dB, harmonic 4 is +24 dB, harmonic 8 is +36 dB. Negative values darken. The fundamental (r = 1) is untouched. |
| ODD / EVEN HARMONICS | 0 to 1 / 0.5 | With o = (value - 0.5) x 2, each harmonic partial gets +18 x o dB if its number is even and -18 x o dB if odd, weighted by how close it is to a whole harmonic. At 1.0: odd -18 dB, even +18 dB (warm). At 0: odd +18 dB, even -18 dB (hollow, square-like). The fundamental is left alone (a built-in "fundamental lock", no switch). Inharmonic partials are not affected. |
| LOW END (BOTTOM HARMONICS) | -24 to 24 dB / 0 | Shelf below the corner: dB / (1 + (r / corner)^4). Full amount well below the corner, half at the corner, nothing far above. |
| LOW END CORNER (HARMONIC #) | 1 to 32 / 4 | The harmonic number of that shelf corner. |
| TOP END (UPPER HARMONICS) | -24 to 24 dB / 0 | Shelf above the corner: dB x (1 - 1 / (1 + (r / corner)^4)). Nothing below, half at the corner, full above. |
| TOP END CORNER (HARMONIC #) | 2 to 64 / 8 | The harmonic number of that shelf corner. |
| FORMANT BUMP (dB) | -18 to 18 / 0 | Peak (or notch) at the formant frequency: dB x exp(-(log2(f / FORMANT FREQUENCY) x Q)^2). It falls to half its dB value about 0.83 / Q octaves away. Zero turns it off. Works on the true frequency, not the harmonic number. |
| FORMANT FREQUENCY (Hz) | 100 to 8000 / 1200 | Centre of the bump. |
| FORMANT WIDTH (Q) | 0.5 to 8 / 2 | Higher means narrower: only a few partials are affected. |
| COMB (NOTCHES) | 0 to 1 / 0 | Cuts up to 24 x depth dB with a raised-cosine pattern over the harmonic number: -24 x depth x (0.5 - 0.5 x cos(2 pi (r / spacing + shift))). Partials at multiples of the spacing (at shift 0) are untouched; partials halfway between are cut most. |
| COMB SPACING (HARMONICS) | 1.5 to 16 / 3 | Distance between notches in harmonic numbers. |
| COMB SHIFT | 0 to 1 / 0 | Slides the pattern up the harmonic series. 1.0 moves it by exactly one spacing (a full cycle). Sweep it for a phaser-like movement. |
| HARMONIC STRETCH | -0.3 to 0.3 / 0 | Moves partial r (above 1) to f0 x r^(1 + stretch). At +0.1 the second harmonic sits at 2.14 x f0. Positive is bell- or piano-like. Negative squeezes the harmonics together. |
| INHARMONICITY (METALLIC) | 0 to 1 / 0 | Multiplies each frequency by sqrt(1 + 0.004 x value x r^2) (limited to 2.5x). At value 1, harmonic 10 sits 18 percent high, harmonic 20 sits 61 percent high. Applied after STRETCH. |
TIME, LEVEL & NOISE
| Control | Range / default | Exact effect |
|---|---|---|
| PHASE (drop-down) | Spread (low crest) / All sine / All cosine | Start phase of the partials. Spread gives each partial a different start phase (steps of the golden ratio), which lowers the peak level of the sum (lower crest factor): punchier and cleaner at the same loudness. All sine starts every partial at phase 0 and All cosine at a quarter cycle; these pile up at the first instant and make a sharp click and a higher peak. |
| DURATION SCALE | 0.2 to 3 / 1 | Multiplies every partial decay (also the sub-octave and noise decays). |
| DECAY TILT (HIGHS vs LOWS) | -1 to 1 / 0 | Multiplies the decay by max(r,1)^(-0.5 x tilt). At +1 harmonic 16 decays 4 times faster than the fundamental. Negative makes the highs ring on. |
| ATTACK (ms) | 0.5 to 50 / 2 | Fade-in of each partial. Conversions set this from the sample. |
| PUNCH (TRANSIENT) | 0 to 1 / 0.4 | Each partial starts at 1 + 2 x punch times its level and settles to its level over 15 ms. At 0.4 that is 1.8 times. |
| SUB-OCTAVE | 0 to 1 / 0.5 | Adds a sine at half the fundamental (kept between 20 and 220 Hz), level value x 0.5, which fades in 3 ms and decays over 0.4 x DURATION SCALE seconds. It is on by default; set it to 0 to remove it. Above 0.05 it uses one oscillator. |
| NOISE (RESIDUAL) | 0 to 1 / 0 | Mixes in the noise found by the conversion, in three bands (centred 250 Hz, 1.5 kHz, 6 kHz). Level is the analysed level times value x 2. If the pad has no analysis (a series preset, RANDOMIZE), it mixes a single 250 Hz band-limited thump with a 0.12 s decay instead of white noise. |
| FLOOR (dB) | -72 to -30 / -54 | Partials quieter than this, relative to the loudest, are left out. Raising it thins the sound and saves CPU. |
The pad's overall loudness is normalized automatically (a sum of the partial levels around -4 dBFS peak). Boosting one partial changes the balance more than it raises the volume. Use PAD VOLUME to set the final level.
The "after-shaping" order for each partial: level shaping in dB (tilt, odd/even, low end, top end, formant, comb) then frequency changes (stretch, then inharmonicity), then decay changes (duration, decay tilt). Partials under 20 Hz or above 0.45 of the sample rate are dropped. Then the FLOOR removes quiet partials, and the survivors are sorted loudest-times-longest first for the oscillator cap.
4.8 MORPH LAYER B (copy a tone from another pad and blend)
Layer B is a second bank of partials copied from another pad. During every hit, A and B are blended.
| Control | What it does |
|---|---|
| source drop-down (Pad 1 to Pad 16) | Pad to copy from. The looper is not available. You may choose the pad itself. |
| COPY TONE → B | Analyses the chosen pad and stores its partials in B. An ADDITIVE pad: its shaped bank A (the effective result of its shaping sliders) is copied. A SAMPLE pad: its cropped sample is analysed with the partial count. A SUBTRACTIVE pad: one hit is rendered offline (2.5 s) and analysed. The button reads ANALYSING... while it works. If B and the morph amounts are both zero, the copy sets MORPH END to 1 so you hear B. |
| align pitch | Tick box. Transposes the copied tone so its f0 equals this pad's f0. |
| Cross-fade / Glide (partials slide) | The blend mode (see below). |
| B → A | Replaces this pad's bank A with B. |
| SWAP A/B | Exchanges A and B. The old A becomes B, named "previous A". |
| COMMIT BLEND → A | Prints the blend at the MORPH END amount into A (see below) and sets MORPH START and MORPH END to 0. B stays. |
| CLEAR B | Empties B and turns the morph off. |
| the info line | Shows "B: label - n partials, f0 x Hz" or "B is empty". |
| Slider | Range / default | Effect |
|---|---|---|
| MORPH START (A..B) | 0 to 1 / 0 | Share of B at the start of each hit. 0 is all A, 1 is all B. |
| MORPH END (A..B) | 0 to 1 / 0 | Share of B after the ramp. If both START and END are 0, B is not heard. |
| MORPH RAMP TIME (s) | 0.02 to 4 / 0.5 | Time to move from START to END. |
| MORPH CURVE | -1 to 1 / 0 | Bends the ramp with time^(2^curve). Negative moves quickly at first, positive slowly at first. |
Cross-fade mode. A fades out and B fades in with equal-power curves while the blend goes from START to END over the RAMP TIME. A bank that is not heard (blend near 0 or 1 at both ends) is not played, to save oscillators.
Glide mode. Each partial of A is paired with the nearest partial of B (within one third of an octave). The paired partial slides in frequency, level and decay from A to B over the ramp time. Unpaired partials fade in or out. Glide uses plain sines (the PHASE setting does not apply). It gives a pitch-gliding sound, such as a kick that turns into a tom.
COMMIT BLEND → A in detail. At the MORPH END amount m, A and B partials are paired by pitch (within one third of an octave). Paired partials get frequency and level blended geometrically (in the log domain) and decay blended in a straight line. Unpaired A partials are kept at (1 - m) of their level. Unpaired B partials are added at m of their level.
4.9 CPU cost rules
Additive sound costs one oscillator per partial per hit, plus extras. The engine protects the clock with these limits:
| Limit | Value |
|---|---|
| Oscillators per hit, live | 32 partials (the loudest-times-longest first; the rest are skipped) |
| Oscillators per hit, when rendering for BAKE or for a preview | 96 |
| Oscillators per hit when the engine is crowded (more than 192 additive oscillators already sounding) | 12 (the "crowded" cap) |
| Partials per bank | 128 |
| When A and B both play in cross-fade mode | A gets half the cap (rounded up), B gets the other half |
| Voice limit | An additive hit counts as 1 voice per 10 oscillators (1 to 5 voices) against the VOICE LIMIT (default 32). A 32-partial hit uses 4 voice slots. |
The ~N osc/hit badge is the estimate: the number of partials that survive FLOOR (A plus B when the morph is active), limited to 32 and plus 1 for the sub-octave. It turns amber at 32 or more. If more partials exist than the live cap, it adds "(n partials, capped live)". Everything beyond the cap is skipped live. BAKE it to hear all of them.
4.10 Workflow: design in additive, then BAKE to the sampler
The additive engine is for designing. The sampler is for playing. Work like this:
- Convert a sample or pick a series preset.
- Shape it with the bars and sliders until it sounds right (use COMMIT TOOLS to keep going).
- Click BAKE TO SAMPLE (top right of the editor). The pad renders one hit offline, with up to 96 partials and the full shaping, trims the silent tail (below about -52 dB), and switches to SAMPLE mode. The render length follows the longest partial (at least 1 s, at most 6 s).
- The baked pad is a normal sample pad: ADSR, filter, crop, PAD CONTROLS and sends all work, and it costs very little CPU.
What the buttons do:
| Button | Effect |
|---|---|
| BAKE TO SAMPLE | Renders the pad's synth voice (ADDITIVE or SUBTRACTIVE) into a sample. Overall pitch, final filter, final drive and final attack are rendered neutral and stay live on the sample side. The synth settings are kept. |
| CONVERT TO ADDITIVE | Renders the subtractive voice, measures its partials (pitch, level, decay, attack and the noise part) and rebuilds the pad as an additive synth with 32 partials (or your partial count if it is higher) and the NOISE (RESIDUAL) slider at 1.00, so the measured noise part comes back. The pad volume is raised or lowered so the loudness stays about the same. The subtractive settings are kept, so the SUBTRACTIVE SYNTH tab switches back. Shown only while the pad plays the subtractive synth. |
| BACK TO SYNTH (the UN-BAKE button) | Returns the pad to the synth it was baked from and restores the sample and crop it had before the bake. The synth settings were never touched. |
| BAKE KIT, SYNTHS | The same for all pads (section 6.1). |
Why baked pads ignore additive edits. After BAKE the pad plays a recorded sample, not the partials. The partial bars, shaping sliders and morph settings are still stored, but nothing reads them until you press BACK TO SYNTH. The orange note "THIS PAD IS BAKED TO A SAMPLE" reminds you. To use new edits you can either un-bake, edit, and bake again, or keep editing the sample.
One more difference: OVERALL PITCH on a baked pad changes the playback speed (the sound gets shorter when raised). On a live additive pad it only transposes the partials.
---
5. PAD CONTROLS (the final stage window)
The right-hand window under the engine. It works for all three engines (and for the looper pad). Two columns:
| Control | What it does | Range | Default |
|---|---|---|---|
| PAD VOLUME | Level of the pad. Values above 1 boost. | 0 to 1.5 | 0.85 |
| STEREO PAN | Position, shown as C, L n or R n. | -1 to +1 | C |
| OVERALL PITCH | Transposes the whole pad. For samples it also changes playback speed. | -24 to +24 ST | 0 ST |
| FILTER MODE | Off (Bypass), Lowpass or Highpass. | - | Off |
| FILTER CUTOFF | Cutoff of that filter. No effect while Off. | 0 to 20000 Hz (limited to 20 Hz or more) | 20000 shown (engine 18000) |
| FILTER RES (Q) | Resonance of that filter. | 0.1 to 18 | 1.0 |
| ATTACK (S) | Fade-in of the finished sound. Values up to 3 ms are treated as off. | 0 to 1.0 s | 0.002 |
| RELEASE (S) | Length of the fade at the very end of the pad's sound (an exponential fade over the last RELEASE seconds of the audible tail, about -50 dB). Low values end the quiet tail sharply, high values let it die away smoothly. A value as long as the sound itself changes nothing. | 0.01 to 4.0 s | 0.25 s |
| DRIVE / OD | Overdrive on the finished sound, always fully wet. Anything above 0.01 is on. Hard at the top. | 0 to 1 (shown as %) | 0% |
| SEND 1 (REV) | How much of the pad goes to shared effect channel 1 (reverb). | 0 to 1 | 0.00 |
| SEND 2 (DLY) | Shared effect channel 2 (delay). | 0 to 1 | 0.00 |
Signal order in this window: engine sound, FILTER, DRIVE / OD, ATTACK, then pan, then PAD VOLUME. The sends are taken after pan and volume, so a quieter pad also sends less. The effect type of each channel (1 reverb, 2 delay) is set in the 2 AUX FX BAYS tab. Only two shared effect channels exist. The send labels and meaning follow the bay setup.
When the looper pad (17) is selected, the same controls (except ATTACK and RELEASE) act on the loop player.
Factory kits start with both sends at 0 (dry). RANDOMIZE can set sends on non-kick pads.
---
6. BAKE tools, kits and presets
There is no pad LFO any more: the LFO window, the additive vibrato and the LFO settings inside the factory kits were all removed in build 10.3. (Only the effect bays' own chorus / phaser / flanger sweep remains.)
6.1 BAKE tools
| Control (as on screen) | Where | What it does |
|---|---|---|
| BAKE TO SAMPLE | Top right of the PAD SOUND ENGINE tab | Bakes the selected pad. Shown only when the pad is a synth. The button reads BAKING... during the render and the pad moves to the SAMPLE ENGINE tab. A pad that already plays a sample shows a warning. |
| CONVERT TO ADDITIVE | Next to BAKE TO SAMPLE | Analyses the selected subtractive pad and switches it to the additive synth (the noise part is measured in 7 frequency bands and switched on) (the button reads ANALYSING... meanwhile and the pad moves to the ADDITIVE SYNTH tab). Shown only for a subtractive pad. A silent sound shows a warning |
| BACK TO SYNTH | Same place | Un-bakes the selected pad. Shown only when the pad is baked. It refuses to touch a pad whose sample was replaced by you since the bake (a pad you loaded your own sample into). |
| BAKE KIT | Under the pads | Bakes every SUBTRACTIVE or ADDITIVE pad, one by one, with a counter. With keep kick+snare ticked, pads containing "kick" or "snare" in category or name stay live. |
| SYNTHS | Under the pads (only if any pad is baked) | Un-bakes every baked pad. |
| keep kick+snare | Tick box | See BAKE KIT. |
A baked pad plays at the speaker's own sample rate (1:1, no resampling), with the sample ADSR set to ATTACK 1 ms, DECAY 0.05 s, SUSTAIN 1.00, RELEASE 0.05 s. Its tail is trimmed at about -52 dB with an 8 ms fade-out. BAKE KIT keeps the pad's final filter, drive and attack live on the pad; PERFORM mode instead prints them into the sample.
Un-baking restores the previous sample, crop, pitch and ADSR that the pad had before the bake (for kit pads: the reference or printed sample it held). Normalize and reverse you did on the baked sample are lost. Baked state survives saving a project (the pad remembers which engine it came from).
PERFORM mode (F9) bakes all synth pads for you; it is described in the performance chapter.
6.2 Kits and presets
KIT ONLY (top bar) loads a drum kit onto all 16 pads without changing the sequencer patterns. It is not a full set: MASTER FULL SET also loads patterns, FX bays and tempo notes; SEQUENCE STYLE loads patterns only.
- 42 kits in the KIT ONLY drop-down, in two groups: Vintage Machines (20) and Genre & Modern (22).
- 10 newer designed kits, in a third group, New designed kits (10): Studio Acoustic Kit, Latin Percussion Rack, Blip Arcade 8-Bit, Casio SK-1 Toy Kit, Dream Trance 96, 80s Stab Hit Kit, Combat Foley FX, Found Object Percussion, Synth Boss Kit, Crushed Distortion Machine.
- Several kits also exist under a second name (for example "Techno" = TR-909, "Pop" = LinnDrum LM-2, "Rock" = Alesis SR-16 Studio, "Trip Hop", "Lo-Fi", "Synthwave"). The 52 designed kits have 62 names in total.
Every kit was designed on the subtractive synth by measurement and reference (the designs are in tools/sounddesign/designs). The pad roles of a kit match the pad positions: pads 1 to 16 stay kick, kick, snare, snare, clap, rim, closed hat, open hat, three toms, crash, ride, two percussion, and an FX sound, so the sequencer patterns work on every kit. Every pad in a kit is meant to sound different from its siblings.
KITS LOAD AS: SAMPLES / SYNTHS (SETTINGS > CPU; remembered, applies to the next kit you load)
| Setting | What happens when you pick a kit |
|---|---|
| SAMPLES (default) | The kit's synth pads are applied, then the factory's pre-printed 16-bit samples (about 1 MB per kit, loaded the first time you choose the kit) replace them. Light on CPU. Each pad is baked: use BACK TO SYNTH or SYNTHS to get the editable synth back. |
| SYNTHS | The kit loads as live, editable synths. A pad that you edited or renamed before the samples arrive is left alone. |
Kit loading starts every pad from the neutral synth defaults, so a kit never depends on the kit loaded before it. Loading a kit never changes tempo or swing; the PRESET button in the top bar can restore the kit's own tempo.
Hardware families. Each kit carries a family tag:
- Family 1, analog synthesis: TR-808, TR-909, TR-606, CR-78, DR-110, KR-55, Minipops 7, Simmons SDS-V, Moog DFAM, and most genre kits (techno, synthwave, trap, drill, dub, cinematic, hardstyle, IDM, and the new kits).
- Family 2, digital samplers: LinnDrum, DMX, SP-1200, MPC60, MPC3000, Yamaha RX5, Alesis SR-16, Casio RZ-1, Drumulator, Roland R-8, and some genre kits (boom bap, chillhop, trip hop, jungle, afrobeat, neo-soul, UK garage, French house).
For the shipped (designed) kits, every pad is first a synth pad; the family tag matters only for older reference sounds (the sample info line and the converters use it when a pad has no sample). The tag itself does not change how the kit plays (unverified beyond that).
---
7. Sound-design cookbook and glossary
All values are starting points, not auditioned. After setting them, adjust by ear.
7.1 Eight recipes
1. Tight synth kick (subtractive). OSC 1 Sine, LEVEL 1.0, START FREQ 220, PITCH END 50, PITCH DECAY 0.03, TONE DECAY 0.6. ADSR DECAY 0.7, SUSTAIN 0, SHAPING HP 26, RESONANT CUTOFF 20000, Q 0.7. Add NOISE 1 White at LEVEL 0.1, HP CUTOFF 2000, PRE-ADSR RELEASE 0.01 for a click.
2. Rim click or wood block (subtractive). OSC 1 Triangle, LEVEL 0.8, START FREQ 600, PITCH END 340, PITCH DECAY 0.01, TONE DECAY 0.06. OSC 3 Square, LEVEL 0.18, START FREQ 1200, PITCH END 1200, TONE DECAY 0.03. NOISE 1 White at LEVEL 0.4, HP CUTOFF 3600, PRE-ADSR RELEASE 0.03. ADSR DECAY 0.1.
3. Struck bell (additive). Series presets: Bell (inharmonic). PAD CONTROLS OVERALL PITCH +12 ST for a higher bell. DURATION SCALE 1.5, DECAY TILT 0.5, PUNCH 0.6, ATTACK (ms) 0.5, SUB-OCTAVE 0. For a more metallic bell, set INHARMONICITY 0.2.
4. Metallic hat (additive). Series presets: Glass (inharmonic). INHARMONICITY 0.8, TOP END +9 dB with TOP END CORNER 6, DECAY TILT 0.8, SUB-OCTAVE 0, ATTACK (ms) 0.5, NOISE (RESIDUAL) 0.3. DURATION SCALE 0.3 for a closed hat, 1.2 for an open hat. Then BAKE TO SAMPLE.
5. Hollow tom (additive). Series presets: Saw (1/n), then ODD / EVEN HARMONICS 0.1 (odd harmonics stand out), SPECTRAL TILT -0.5, DURATION SCALE 0.5, SUB-OCTAVE 0.6, PUNCH 0.7. OVERALL PITCH -5 ST.
6. Snare from a sample (additive). Load a snare, AUTO-TRIM, choose 32 partials, CONVERT FROM SAMPLE. Raise NOISE (RESIDUAL) to 0.6 to bring the snares back, PUNCH 0.7, SUB-OCTAVE 0. Use TOP END +6 dB for more snap, DURATION SCALE 0.8 for a shorter tail. COMMIT TOOLS, then BAKE TO SAMPLE.
7. Kick that mutates into a tom (morph). On a converted kick pad (A), COPY TONE → B from a tom pad, tick align pitch off, mode Glide (partials slide), MORPH START 0, MORPH END 1, MORPH RAMP TIME 0.15, MORPH CURVE -0.4. Then BAKE TO SAMPLE so it plays cheaply.
8. Vowel-like stab (additive). Series presets: Saw (1/n). FORMANT BUMP +12 dB, FORMANT FREQUENCY 800, FORMANT WIDTH (Q) 3, COMB (NOTCHES) 0.4 with COMB SPACING 3. DURATION SCALE 0.6. Sweep COMB SHIFT slowly while you listen.
7.2 Glossary
| Term | Meaning |
|---|---|
| Additive synthesis | Building a sound by adding sine waves (partials). |
| Partial | One sine wave of a sound, with its own frequency, level and decay time. |
| Harmonic | A partial whose frequency is a whole-number multiple of f0 (2 x f0, 3 x f0 ...). |
| Inharmonic | A partial that is not a whole-number multiple of f0 (bells, metal, cymbals). |
| f0 (fundamental) | The lowest important partial of a bank; the pitch you hear. The ratio of every partial is measured against it. |
| Harmonic ratio r | freq divided by f0. |
| Odd / even harmonics | Odd harmonics (1, 3, 5) sound hollow, like a square wave. Even harmonics sound warm and full. |
| Spectral tilt | A slope that makes high partials louder or quieter, measured in dB per octave. |
| Shelf | A boost or cut of everything above or below a corner. |
| Formant | A band of partials that is emphasised, like a vowel or a resonant body. |
| Comb | A pattern of regularly spaced notches in the spectrum. |
| Harmonic stretch | Moving harmonics further apart than whole multiples, as in piano and bell strings. |
| Inharmonicity | A frequency spread that grows with the square of the harmonic number, making a sound metallic. |
| Decay time (additive) | Time for a partial to fall 60 dB. |
| Decay time (subtractive) | Time for a source to fall about 80 dB. Envelopes multiply, so the audible tail is shorter. |
| t40 | Time for the sound to fall 40 dB; a practical measure of how long a drum sounds. |
| Envelope (ADSR) | The shape of level over time: Attack, Decay, Sustain, Release. |
| Crest factor | Peak level compared with average level. Low crest means a clean, punchy sound with headroom. The SPREAD phase mode lowers the crest factor of an additive pad. |
| DC offset | A constant shift of the waveform away from zero. It wastes headroom and causes clicks. Kicks need SHAPING HP at about 24 Hz or more to remove it. |
| Pitch envelope | The glide from START FREQ to PITCH END. |
| Drive | Distortion. |
| Wet / dry | Wet is the processed signal; dry is the untouched signal. |
| Bake | Rendering a synth pad into a sample, so it plays with much less CPU. |
| Un-bake | Returning a baked pad to its synth. |
| Writing the effect of a live setting into the stored data (COMMIT TOOLS, kit samples). | |
| Tail | The decaying end of a sound after the hit. |
| Layer B | The second tone of an additive pad that can be blended with the pad's own tone. |
| Morph | Gradual change from one tone to another during a hit. |
| Voice | One sounding instance of a pad hit. The VOICE LIMIT caps how many sound at once. |
| Mono pads | A pad cuts its own previous hit when struck again. |
| PERFORM mode | The light mode that bakes all synths to samples. |
---
Maintainer notes
This section lists where each part of the chapter comes from, so you can update it when features change. Re-check these files after any change.
| Chapter section | Source files and functions |
|---|---|
| 1.1 Pads, keys, lights, choke | js/app.js: keyMap, _setupPadGrid, _getKeyLabel, selectInstrument, flashPad, loadSampleIntoPad, the key listener; js/dsp-engine.js: PadEngine.trigger (choke, MONO PADS), defaultPadConfigs; MUTE and SOLO: app.js section "8. Active Track Mixer MUTE & SOLO"; index.html pads panel and SETTINGS menu |
| 1.2 Pad tools | index.html #pads-toolbar; js/layout.js (handlers for RANDOM KIT, RANDOM PAD, EDIT SOUND, keys F1 to F9); app.js btn-master-random-kit; DSPEngine.bakeAllPads, unbakeAllPads, randomizeKit |
| 1.3 Engines and tabs | app.js _setupPadEditor (tab click sets pad.mode), updatePadEditor; PadEngine.trigger switch |
| 2 Sample engine | index.html #panel-engine-sample; app.js handlers (select-sample-preset, auto-trim, normalize, reverse, random, conversions, _setupWaveformCanvas); dsp-engine.js _playSample, autoTrimTransient, normalizeBuffer, reverseBuffer, loadSyntheticSamplePreset, randomizeSample, AcousticSpectralComparatorClass.matchSampleToSynth / convertSampleToSubtractive |
| 3 Subtractive | index.html #panel-engine-sub; dsp-engine.js PadEngine constructor (subParams defaults), _playSubtractive, _initDefaultSynthCategory (34 recipes), randomizeCategory (and the wrapper at the end of the file), PadEngine.SYNTH_BASE; js/audio-core.js _buildPeriodicWave, _buildDistortionCurve, syncSeconds/syncHz; decay rule and traps from tools/sounddesign/SOUND_DESIGN_GUIDE.md (confirmed against _playSubtractive) |
| 3.7 Recipes | Calculated from the envelope maths in _playSubtractive and guide knowledge; not auditioned |
| 4 Additive | js/additive.js: cleanBank, estimateF0, validateAdditive, additiveEffective (every formula in 4.7), _playAdditive, SA.analyze2 (4.3), captureAdditive, morphSwap, morphToA, morphCommit, commitAdditiveTools, additiveSeries, additiveTool, additiveCostEstimate, constants LIVE_CAP, OFFLINE_CAP, CROWDED_CAP, OSC_BUDGET, MAX_PARTIALS, defaults DEF; js/additive-ui.js: editAt, onDown, onKey, onContext, refresh, undo; index.html #panel-engine-additive (labels and tooltips) |
| 4.10 / 6.1 Bake | dsp-engine.js bakeToSample, applyBakedSample, unbake, isBaked; additive.js bakeToSample wrapper (duration); app.js _setupBakeControls, _syncBakeButtons; project.js (bakePreMode) |
| 5 PAD CONTROLS | index.html #pad-window-final; app.js _wireFinalControls, _syncFinalControls; dsp-engine.js _routeFinalChain, setVolume, setPan, setSend, initNodes (routing) |
| 6.2 Kits | js/kit-designs.js (generated: names, aliases, family, isNew), js/presets.js (_mergeDesignedKits, applyKit, _applyPadConfig, _upgradeKitToSamples, setKitLoadMode, _isFamily2Kit), js/kit-samples/*.js, tools/sounddesign/ (design pipeline); KIT ONLY groups in index.html |
| Knob behaviour | js/knob.js |
| Tooltip wording reused | js/tooltips.js, plus tooltips inside index.html (additive panel is skipped by tooltips.js) |
Known quirks seen while writing this chapter (verify, then fix the app or this text)
- SEND TO ADDITIVE. The button reads CONVERT SAMPLE TO ADDITIVE SYNTH but resets to "SEND TO ADDITIVE" after a click. There is no button called SEND TO SUBTRACTIVE; the two subtractive buttons are CONVERT SAMPLE TO SUBTRACTIVE SYNTH and MATCH SUBTRACTIVE SYNTH TO SAMPLE, which run the same matcher.
- Hat choke is described in
PROJECT_STATE.mdas pads 6 and 7 choking pad 8; the code chokes by id (pad 7 chokes pad 8) or by the words CLOSED and OPEN in the pad names. - Subtractive recipes write drive types "tube", "tape", "overdrive" and "foldback" that the DRIVE ALGORITHM drop-down does not contain (the drop-down then shows blank). They behave as Regular.
- Sample preset "Ride Cymbal Bell" is not matched by any ride branch in
loadSyntheticSamplePresetand falls to the generic voice. - Resonant filter type (lowpass, bandpass, highpass) cannot be changed in the editor; only kit data sets it.
- Hidden controls:
fundLock(additive),adsrHold(subtractive) and sample pitch (samplePitch, set by RANDOM) have no control in the UI. - NORM normalizes channels separately; REVERSE reverses the whole buffer, not the crop.
- Version stamps.
PROJECT_STATE.mdis at v9.4.0 in its header while its sections go to v10.1; this chapter assumes v10.2 for the additive v2 panel. - In
additive-ui.jsthe draw gesture uses an odd interpolation helper (b2); the behaviour (straight fill between sampled bars) matches the description above, but check it again if the gesture code is changed.
AXIOM 16-P User Manual - Part 3: Sequencer, Loops and Effects
This part covers the sequencer (steps, bars, recording, tools), the 16 pattern slots and live cueing, swing and tempo-synced features, the 8-slot loop slicer with the looper pad (Track 17), and the two AUX FX channels (reverb and delay) with the master bus. Manual for app build 10.3. The pads and sound engines are in Part 2. The top bar, menus, projects, MIDI and PERFORM mode are in Part 1.
Control names are written exactly as they appear on screen. "(unverified)" marks statements that could not be confirmed in the code. Ranges and defaults come from index.html and the JavaScript files named in the Maintainer notes.
Contents
- The sequencer
- Pattern slots, styles and song mode
- Swing, groove, tempo and sync
- The 8-slot loop slicer and the looper pad
- The 2 AUX FX channels and the master bus
- Worked examples
- Known quirks and troubleshooting
- Maintainer notes
---
1. The sequencer
1.1 How it is organised
| Term | Meaning |
|---|---|
| Track | One row of steps. Tracks 1-16 play pads 1-16. Track 17 (shown as LP) plays the loop slicer. |
| Step | One 16th note. A track has 16 steps per bar. |
| Bar (measure) | A page of 16 steps. Each track stores 8 bars (128 steps). The shown bar is called MEASURE n / 8. |
| Pattern | All 17 tracks x 8 bars, plus a length (1-8 bars). 16 patterns are kept in the pattern slots (section 2). |
| Pattern length | The LIMIT setting. The pattern plays bars 1 to LIMIT, then starts again. Bars after LIMIT are kept but not played. |
You edit one track at a time in the active step row at the bottom of the screen. Select a track by pressing its pad (or the orange looper pad for Track 17), or by clicking its name in the 17-row grid (1.8). The badge above the row shows the selected track, for example PAD 1: 909 PUNCH KICK or LOOP TRACK // name, and MEASURE 1 / 8.
The step LEDs under the label STEP // BEAT move with the playhead. They only light while the bar you are looking at is the bar that is playing. Press the BAR buttons to follow the playhead. The BAR and STEP displays in the top bar always show the real position.
1.2 Transport and keys
| Control | What it does |
|---|---|
| PLAY / PAUSE | Starts the sequencer. While it plays the button reads PAUSE and keeps the position. The space bar does the same. |
| STOP | Stops and rewinds to bar 1, step 1. It also stops the loop slicer. |
| 🔔 OFF / 🔔 ON | Audible metronome. Beats 1-4 of each bar click; the first beat is higher pitched (1600 Hz against 900 Hz). The click does not go through the master bus. |
| TAP | Sets the tempo by tapping (see 3.3). |
| REC and the gear button next to it | Live recording (1.10). |
Keys 1-4, Q-R, A-F and Z-V play pads 1-16 (see Part 2). Keys 5 and 6 are the two AUX FX trigger pads (5.6). Every pad lights when its sound plays, from any pattern, bar, MIDI note or recording (also while the engine sheds load); the orange looper pad lights when the loop starts. SETTINGS > PAD LIGHTS: OFF turns the lights off.
1.3 Step buttons
The active step row has 16 numbered buttons. Steps 1-4 are red, 5-8 orange, 9-12 yellow and 13-16 white, so you can count beats at a glance.
| Action | Result |
|---|---|
| Click a step | Switches it on or off. When it switches on you hear the pad at that step's velocity. |
| Press and drag across steps | Paints. The state of the first step you press decides whether the drag paints on or erases. Works with mouse and touch. |
| Right-click a step, or press its ⚙ EDIT button | Opens the step inspector (1.4). |
| Click a step in the 17-row grid | Switches it on or off. Dragging does not paint in the grid. |
A step badge under the number shows a hit modifier (TRIP 2, FLAM and so on, see 1.6). In the 17-row grid a small cyan dot marks steps that have a modifier. While MIDI learn is active, clicking a step maps it to a MIDI control instead of painting it (Part 1).
New steps have velocity 100, micro-timing 0, pan 0 and modifier Normal. Switching a step off keeps its velocity, pan and modifier; they come back when you switch it on again.
1.4 Step inspector
Open it from ⚙ EDIT or by right-clicking a step. Its title reads INSPECT: <track name> (Bar n, Step m). Changes apply at once. Close it with the ✕ button.
| Field | What it does | Range / default |
|---|---|---|
| VELOCITY | How hard the step hits. | 1-127, default 100 |
| MICRO-TIMING OFFSET | Moves the step earlier (negative) or later (positive) in milliseconds. | -50 to +50 ms, default 0 |
| PAN | Moves this step left (-1) or right (+1) of the pad's own pan. Shown as C, L25 or R40. | -1 to +1, steps of 0.05, default centre |
| CHANCE | How often the step plays: 100% always, 50% about every other time (decided at random each pass). The step button looks the same; the chance is saved with the step. | 0-100%, steps of 5, default 100% |
| STEP MODIFIER | Changes how the step plays (1.6). | Normal (Single Hit) |
| MIDI NOTE NUMBER (0-127) | The note sent to external MIDI out for this step. It does not change the sound. | the track's General MIDI note |
The ⚙ EDIT button's mouse-over text lists what the inspector has: velocity, micro-timing, pan, chance, step modifier and MIDI note. The step inspector is not a learn target, but the ⚙ EDIT buttons themselves can be learned (5.3).
1.5 The parameter lane (VEL / PAN / MICRO / MOD)
The strip under the step row has 16 cells, one per step of the shown bar, and four tabs.
| Tab | What you draw | Range | Notes |
|---|---|---|---|
| VEL | Velocity | 1-127 | Bar height = loudness. |
| PAN | Stereo position of that step | -1 (left) to +1 (right), steps of 0.02 | Added to the pad's own PAN. The centre line is 0. Pad tracks only: Track 17 ignores step pan. |
| MICRO | Micro-timing | -50 to +50 ms | Same value as the inspector field. The centre line is 0. |
| MOD | Hit modifier | see 1.6 | Click a cell to go to the next modifier. Shift+click goes back. Dragging does not cycle. |
Press and drag across the cells to draw values. The bottom of a cell is the minimum and the top is the maximum. Cells of steps that are switched off are dimmed; you can still draw values into them, and drawing does not switch the step on. The tab you chose stays selected when you change tracks or bars.
1.6 Step modifiers
The inspector lists nine hit types. The lane and the step badge show them in short form.
| STEP MODIFIER (inspector) | Lane label | Badge | What it plays |
|---|---|---|---|
| Normal (Single Hit) | · | none | One hit at the step velocity. |
| Double Ratchet (2 Sub-Hits) | R2 | RATCH 2 | Two hits that split the step in half. The second is at 85% of the velocity. |
| Triplet Ratchet (3 Sub-Hits) | R3 | TRIP 3 | Three hits that split the step in thirds, at 100%, 80% and 70%. |
| Flam / Grace Note (18ms Ahead) | FLM | FLAM | A soft grace note (55% velocity) 18 ms before the step, then the main hit. |
| Flange Burst (4-Hit Roll) | BRST | BURST | Four hits across the step, rising from 60% to 96% of the velocity. |
| Ghost Note (Low Velocity) | GHST | GHOST | One quiet hit: 40% of the velocity, never above 35% of full level. |
| Note Off / Voice Choke | OFF | CHOKE | No new hit. It cuts the pad's sound, or stops the loop on Track 17. It is also sent as MIDI note-off. |
| Hold / Tie (no new attack after a hit) | HOLD | HOLD | A tied note: when the previous step of this track also played (up to 1.6 steps earlier), the earlier hit keeps ringing and nothing new is played. After a rest, it plays like Normal. |
| Skip Note (Polyrhythm Tick Omit) | SKIP | SKIP | Plays nothing and moves this track one step ahead of the others. See 1.7. |
The lane cycles in this order: Normal, FLM, R2, R3, BRST, GHST, OFF, HOLD, SKIP, then Normal again.
Hit letters in the factory pattern files. The pattern data files that build the 32 sequence styles (js/pattern-data-*.js) write steps as text. You never type these, but they explain what styles contain. Digits 1-9 set velocity (1 = 30 up to 9 = 127). Letters set a modifier:
| Letter | Becomes | Velocity |
|---|---|---|
| x | Normal | 100 |
| g | Ghost | 42 |
| f | Flam | 110 |
| r | 2-hit ratchet (R2) | 100 |
| t | 3-hit ratchet (R3) | 100 |
| b | Burst | 100 |
A . or - is a rest.
1.7 Track length, polyrhythm and skip
Every track has an internal length of 1-16 steps (default 16). A shorter track repeats inside each bar, which gives polyrhythms. No control on screen sets this length; it comes from loaded projects and pasted patterns (unverified whether any other route sets it). The factory styles do not use it.
A step set to SKIP, when it is switched on, plays nothing and pushes that track one step ahead of the master grid. It stays out of phase until you press STOP or SYNC GRID. SYNC GRID (in the pattern tool row) moves every track back to the master grid.
1.8 Bars, pattern length and the 17-row grid
| Control | What it does | Range / default |
|---|---|---|
| ◀ PREV / NEXT ▶ | Show the previous or next bar. Wraps from bar 8 to bar 1 and back. | 1-8 |
| BAR 1 ... BAR 8 | Show that bar in the step row and the grid. | |
| LIMIT: | Pattern length in bars. The playhead loops after this many bars. In CHAIN mode it also decides when the next pattern starts. | 1 Bar - 8 Bars |
| EXPAND 17 ROWS / COLLAPSE GRID | Shows or hides the grid of all 17 tracks for the shown bar. Clicking a track name selects it. Locked while SLOW CPU is on. |
Pressing a pattern slot loads that pattern's own length into LIMIT (section 2). Changing LIMIT while the pattern plays takes effect at the next wrap.
1.9 Mute, solo and audition
| Control | What it does |
|---|---|
| MUTE | Mutes the selected track in the sequencer. The step data is kept. Pressing a pad by hand still plays it. |
| SOLO | Plays only the soloed tracks. Several tracks can be soloed. |
| ▶ AUDITION | Plays the selected track's sound once (the loop for Track 17). |
Mute and solo apply to all patterns, not to one slot, and they are saved in projects.
1.10 Live recording (REC)
Press REC to arm recording. If the sequencer is stopped it starts. Pads you press (mouse, keys or MIDI) while it plays are written into the current pattern at the playhead. REC lights while armed. It refuses to arm while the active pattern is locked.
Press the gear button next to REC for the setup window, SEQUENCER LIVE RECORD SETUP.
| Field | What it does | Range / default |
|---|---|---|
| TARGET PATTERN SLOT | Pattern slot that receives the recording. | Pattern 1-16 |
| SONG ROLE CATEGORY | Role stored with the slot and shown on its button. | Intro, Verse, Pre-Chorus, Chorus, Bridge, Breakdown, Drop, Build, Fill, Outro |
| CUSTOM PATTERN NAME | Optional name. Empty keeps the current name. | |
| LOOP LENGTH (BARS) | Pattern length while recording. Also sets LIMIT. | 1, 2, 4 or 8 bars |
| RECORDING MODE | Overdub adds your hits to what is there. Overwrite replaces the pattern as you play. | Overdub |
| QUANTIZE SNAP STRENGTH | 100% puts every hit exactly on the nearest 16th step. 0% keeps your own timing as a micro-timing offset (limited to -50 to +50 ms). | 0-100%, default 100% |
| METRONOME CLICK | Switches the quarter-note click on or off (the same click as the 🔔 button). | off |
| CANCEL / START RECORDING | START RECORDING applies the settings, loads the target slot, arms REC and starts playback. |
How recording behaves:
- A hit goes to the nearest 16th step. A hit slightly before the downbeat lands on that downbeat, with a negative micro-timing when quantize is below 100%.
- The velocity comes from where you press the pad (higher on the pad is louder), from the key (fixed velocity 100) or from the MIDI velocity.
- Overdub keeps the step's existing modifier. Overwrite sets the modifier back to Normal.
- Overwrite also clears every other active step on every track as the playhead passes it, unless you hit that step in the same pass. Tracks that are muted (or not soloed) are skipped, so solo the track you want to replace to protect the rest.
- If you start recording with REC alone, the current mode, quantize strength and pattern slot are used. Defaults are Overdub and 100%.
- The recording is stored in the active slot immediately.
1.11 Track tools
The TRACK TOOLS row works on the selected track and the shown bar only (COPY TO ALL BARS writes to all 8). They are refused while the pattern is locked.
| Control | What it does |
|---|---|
| RANDOM | Writes a new rhythm for this track in the shown bar. The pad's category decides the style (kick, snare, hat, tom and so on). The UNIQ slider in the top bar (0-100%, default 25%) sets how adventurous it is. It clears the bar's steps first and resets velocity, modifier and pan. |
| VEL RAMP | Click: sets the velocity of the active steps by their position, step 1 = 40 up to step 16 = 127 (crescendo). Shift+click: 127 down to 40 (decrescendo). |
| HUMANIZE | Moves each active step's velocity by a random amount up to 15 up or down, kept between 20 and 127. |
| FLAMS | On active steps 15 and 16 sets a 2-hit roll. On about half of the active steps 3, 7 and 11 sets a flam. It does nothing to empty steps and adds no ghost notes. |
| PAN SWEEP | Sets the pan of all 16 steps (also inactive ones). Each click moves to the next shape and the button names it: PING-PONG (odd steps -0.65, even +0.65), L → R (-0.8 to +0.8), R → L, CENTRE (all 0). |
| ◀ SHIFT, SHIFT ▶ | Moves every step of the shown bar one step earlier or later. Steps that fall off one end come back at the other end, with their velocity, pan, modifier and chance. |
| ⇄ REVERSE | Plays the bar backwards: step 1 swaps with step 16, step 2 with 15 and so on (with all their values). |
| ◐ INVERT | Swaps hits and rests. New hits get velocity 100 and the Normal modifier. |
| ⇉ MIRROR | Copies steps 1-8 onto steps 9-16. |
| ❗ ACCENT | Sets the velocity of the active steps by place in the beat: steps 1, 5, 9, 13 = 118, the other even steps 96, the odd steps 74. |
| 🕑 HUMAN TIME | Gives each active step a random micro-timing of up to 10 ms early or late. Steps 1, 5, 9 and 13 stay at 0 so the groove keeps its anchor. |
| 🎲 CHANCE | Gives the active steps that are not 1, 5, 9 or 13 a play chance. Each click cycles 75%, 50%, 25% and ALWAYS (which removes the chance); the button shows the value just applied. Single steps: CHANCE in the inspector. |
| ⇶ COPY TO ALL BARS | Copies the shown bar of this track onto all 8 bars. |
| EUCLIDEAN: [n] FILL | Spreads n hits (1-16, default 4) evenly over the 16 steps. Step 1 is always a hit. It switches every other step off. Hits on steps 1, 5, 9 and 13 get velocity 115, other hits 90. |
1.12 Bar tools and pattern generator
| Control | What it does |
|---|---|
| COPY | Copies the 16 steps of the selected track in the shown bar (all step values). |
| PASTE | Pastes them into the shown bar of the selected track. You can change track or bar first. |
| DUPE | Copies the shown bar into the next bar and moves to it. Does nothing on bar 8. |
| CLEAR | Clears the 16 steps of the selected track in the shown bar and resets their values. |
| STYLE: (drop-down) | Chooses a sequence style. Choosing one loads that style's 16 patterns into the slots at once (2.4). It also sets the style RANDOM PATTERN uses. |
| RANDOM PATTERN | Fills the 16 pad tracks of the shown bar with a new pattern in the chosen style. Track 17 is not touched. Which part of the style it draws on depends on the bar number. The UNIQ slider sets the amount of change. |
The COPY, PASTE, DUPE and CLEAR buttons briefly show a check mark and a past-tense word (DUPE shows LAST BAR on bar 8), then return to their labels.
1.13 Pattern tools
These work on the whole active pattern (all 17 tracks, all 8 bars).
| Control | What it does |
|---|---|
| COPY PATTERN | Copies the active pattern, its length and its saved tempo to the clipboard. |
| PASTE PATTERN | Pastes the clipboard over the active slot. It replaces all steps and the pattern length. Refused if the slot is locked. It never changes the tempo (it only offers the copied pattern's tempo through PRESET). |
| DUPE PATTERN | Copies the active pattern into the next slot that is not locked (16 wraps to 1), replacing it, and switches to that slot. Refused only if every other slot is locked. |
| LOCK / UNLOCK | Write-protects the active slot. The button shows the state: 🔓 UNLOCKED or 🔒 LOCKED. See below. |
| CLEAR PATTERN | After a confirmation, switches off every step on all tracks and bars of the active pattern. Refused if the slot is locked. |
| CLEAR ACTIVE PAD | Clears all 8 bars of the selected track and resets velocity, modifier and micro-timing. |
| EXPORT MIDI | Saves the pattern (see 1.14). |
| SYNC GRID | Moves all tracks back to step 1 so tracks pushed out of phase by SKIP line up again. |
A locked pattern refuses: recording (REC will not arm), PASTE PATTERN into it, DUPE PATTERN onto it, and CLEAR PATTERN. It does not stop editing steps by hand, CLEAR or CLEAR ACTIVE PAD, or loading a style or set (which replaces all 16 slots). Locks are saved in projects.
1.14 MIDI export of a pattern
EXPORT MIDI downloads a Type 0 Standard MIDI file named axiom-pattern-N.mid (N = active slot number). It contains the pattern as it is currently loaded.
- Length: the LIMIT bars, 480 PPQN, channel 10, tempo = the current BPM.
- Every active step becomes a note with its velocity. Steps set to SKIP or Note Off are left out.
- Micro-timing, swing, pan and modifiers are not written (a ratchet is one note).
- Pads map to General MIDI drum notes: pad 1 = 36, 2 = 34, 3 = 38, 4 = 40, 5 = 39, 6 = 37, 7 = 42, 8 = 46, 9 = 41, 10 = 45, 11 = 48, 12 = 49, 13 = 51, 14 = 75, 15 = 56, 16 = 52, Track 17 = 54. These notes import back onto the same pads through MIDI import.
- Mute and solo are ignored.
1.15 The sequencer in PERFORM mode
PERFORM mode keeps the pattern slots, ◀ PREV / NEXT ▶ and the BAR buttons, MUTE, SOLO, ▶ AUDITION and the step row with its playhead. It hides the pattern tools row, LIMIT, STYLE and RANDOM PATTERN, the bar tools, TRACK TOOLS, the parameter lane, ⚙ EDIT, CHAIN and the 17-row grid. Switch back to FULL (F9) to use them.
---
2. Pattern slots, styles and song mode
2.1 The PATTERNS: row
The row PATTERNS: has 16 buttons. Each shows its number and a role name (Intro, Verse 1, Chorus 2, Fill and so on). Mouse-over text reads Song 1: Verse 1 (4 bars - click to cue).
What a slot stores: all 17 tracks x 128 steps (active state, velocity, micro-timing, modifier, pan, MIDI note), the pattern length in bars, the role name, a name, and the tempo, swing and groove the pattern was written with. It does not store pad sounds, effects, mute/solo or the loop audio.
When you switch away from a slot, your edits to it are saved into it first. Slots are saved in projects (FILE > SAVE PROJECT). Autosave covers them too (Part 1).
2.2 Switching patterns
| You do | Result |
|---|---|
| Click a slot while the sequencer is stopped | It loads at once. |
| Single click while playing | The slot is cued. It starts when the current pattern has finished: at the end of the current pattern's LIMIT bars. |
| Double-click (or double-tap) while playing | The slot is cued to start at the next measure (the next bar line). If that is part-way through the old pattern, the new pattern starts from its own bar 1. |
A double-click is two clicks on the same button within 350 ms. Clicking another slot replaces the cue. A cue that is waiting is lost if you load a style or a set.
Button states
| Look | Meaning |
|---|---|
| Bright (active) | The pattern that is playing. |
cued (pulsing) | Waiting for the end of the current pattern (single click). |
cued-now (orange outline, faster pulse) | Waiting for the next measure line (double-click). |
Example: pattern 2 is 4 bars long and plays at bar 3. A single click on slot 5 makes the change at the end of bar 4. A double-click on slot 5 changes at the start of bar 4, and slot 5 starts from its bar 1.
2.3 Song structure and sequence styles
The SEQUENCE STYLE drop-down in the preset bar (and the STYLE: drop-down in the sequencer) offers 32 styles: from TR-808 Classic Electro and TR-909 Peak Techno to Hyperpop Speed Glitch and Miami Bass Booty Shake. Each style is two short songs written by hand:
- Slots 1-8 are Song A. Slots 9-16 are Song B.
- Each song has the sections Intro, Verse 1, Verse 2, a fill or pre-chorus, Chorus 1, Chorus 2, a breakdown or bridge, and Outro. The names change with the genre.
- Each section has its own length of 1-4 bars and its own tempo and swing. Example, TR-808 Classic Electro song A: Intro 2 bars, Verse 1 4, Verse 2 4, Pre-Chorus 2, Chorus 1 4, Chorus 2 4, Breakdown 4, Outro 2.
- The patterns use pads 1-16 only; the loop track is empty.
Loading a style replaces all 16 slots and selects slot 1. Edits in the old slots are lost unless you saved a project first. It does not change the pad sounds and it does not change the tempo. The style's tempo and swing are offered through PRESET (2.5).
2.4 Master Full Sets
The MASTER FULL SET drop-down (★ in the top bar) has 32 sets. Each combines one drum kit, one style (16 patterns), the two AUX FX channels and the master volume and master compressor setting of the kit. Pick one to hear a complete song set at once. It loads kit and style, selects slot 1, and remembers the set's tempo and swing for the PRESET button. The kit drop-down is KIT ONLY (sounds only, patterns stay).
A kit or set overwrites both AUX FX channels (their effects, parameters and return levels), which may surprise you if you tuned them. The reverb in channel 1 follows the first-run rule in 5.2: a new user keeps Light Room until a reverb has been picked.
2.5 The tempo rule
Loading never changes your tempo or swing. This holds for kits, full sets, sequence styles, pattern slots, pasted patterns and imported MIDI files. Each load only remembers the tempo it was saved with.
- The PRESET button (top bar, shows the saved BPM, for example
PRESET 128) is greyed out until something has been loaded. It turns amber when the saved tempo or swing differs from the current one. - Press PRESET to apply the saved tempo and swing (and groove type). A message confirms it.
- A tag next to the tempo shows what set the tempo last: EXT CLOCK, TAP, PRESET, PROJECT or LOOP MATCH.
- Loading a project restores the project's own tempo (tag PROJECT).
- Start-up tempo is 120.
The BPM figures written in the SET drop-down are fixed text and can differ from the tempo the set really applies. For example DMX Old School Hip Hop is listed as 96 BPM, while its pattern data applies 108. The PRESET button shows the real value.
2.6 Song mode (CHAIN)
The CHAIN: OFF / CHAIN: ON button (next to MUTE and SOLO) turns on song mode. On the last step of each pattern, the next slot is cued: slot 1 then 2 and so on through 16, then back to 1. Each pattern plays for its own LIMIT length. A slot you cued yourself takes priority over the chain. Press the button again to stop chaining; the current pattern then loops.
To play a whole style as a song, pick the style, turn CHAIN ON and press PLAY.
---
3. Swing, groove, tempo and sync
3.1 Swing and groove type
The SWING slider (50-75%, default 50% = straight) and the groove drop-down next to it are in the top bar.
| Groove | Which notes are delayed | Delay at the maximum (75%) |
|---|---|---|
| 16th Swing | The 2nd, 4th, 6th... 16th notes of the bar | Half a 16th note |
| 8th Swing | Every second 8th note (steps 3, 7, 11, 15) | One 16th note |
| Quintuplet Feel | A subtle nudge of steps 2, 4, 6... | About a quarter of a 16th note |
The swing percentage is the share of a note pair given to its first note. 66% gives a triplet feel on 16th swing. Swing moves the sound of the notes and the metronome. Micro-timing is added on top. MIDI clock out stays straight.
3.2 Tempo
| Control | What it does | Range |
|---|---|---|
| BPM field | Type the tempo. Decimals are allowed. | 40-300 |
| TAP | Tap at least twice. The tempo is the average of your last 5 taps. A pause over 2 seconds starts a new count. Taps must be between 200 and 1500 ms apart. | |
| PRESET | See 2.5. | |
| MATCH BPM TO LOOP | Sets the tempo to the active loop's BPM (4.4). | |
| FOLLOW CLOCK (SETTINGS > MIDI CLOCK SYNC) | Slaves the tempo to incoming MIDI clock. See 3.4. |
Without decimals, the tempo is rounded to a whole number. Typing, clock follow and loop matching can give fractional tempos.
3.3 Tempo-synced controls
These controls lock to the tempo. The divisions are the same everywhere.
| Division | Meaning (in 4/4) |
|---|---|
| 1 bar | One whole bar (4 beats) |
| 1/2 | Half a bar (2 beats) |
| 1/4 | One beat |
| 1/8, 1/16, 1/32, 1/64, 1/128 | Shorter divisions down to 1/128 of a bar |
| Where | What it does |
|---|---|
| AUX FX channel: TEMPO SYNC drop-down | Delay time of the delay effects (5.5). Reverbs have no time control. |
| Loop slicer: Time-Synced Stretch | The loop is stretched to the project tempo (4.3). |
Synced values follow tempo changes. An effect channel is rebuilt about half a second after the tempo settles, which also keeps un-synced delay times at their fraction of a beat.
3.4 External MIDI clock
SETTINGS > MIDI CLOCK SYNC:
| Control | What it does | Range / default |
|---|---|---|
| FOLLOW CLOCK: OFF / ON | When ON, the app follows the MIDI clock (24 pulses per quarter note) from the first MIDI input. Start begins on the master's next pulse, Continue resumes, Stop pauses. The tempo is measured over the last 4 beats (it needs about one beat of clock to appear). The step grid is also phase-locked to the master. | OFF |
| CLOCK OFFSET (ms) | Fine trim, positive = our beats land later. Use it to cancel interface delay. | -80 to +80, default 0 |
Only the first MIDI input is used for clock. The details of choosing a device are in Part 1. When a MIDI output is selected, the app also sends clock, Start and Stop to it (not while it follows a master).
---
4. The 8-slot loop slicer and the looper pad
The loop slicer plays audio loops in time with the sequencer. It is Track 17. Open it with the 8-SLOT LOOP SLICER tab, or by pressing the orange looper pad. It is only available in FULL mode from the tab; in PERFORM mode use the looper pad (4.8).
4.1 The slots
The left column lists 8 loop slots. Click a slot to make it the active loop for the slicer, the preview and Track 17. Each slot shows its number, name and BPM.
- Slots 1-4 hold generated drum breaks: Amen Funk Break (130 BPM), Electro 808 Groove (124), Downtempo Trip (85) and Techno 4-on-Floor (132). Each is 2 bars long, but their BARS value starts at 1, so AUTO-PLAY MEASURE restarts them every bar until you set BARS to 2 under MANUAL OVERRIDE.
- Slots 5-8 are empty ("Loop Slot 5" ... "Loop Slot 8").
- Loop audio is not saved in projects. Load your files again after reopening the app (7.1).
4.2 Loading audio
| Control | What it does |
|---|---|
| + LOAD AUDIO | Opens a file chooser. The file goes into the active slot. Any audio format your browser can decode works (wav, mp3, ogg, flac...). |
| Drop a file on the looper pad | Same, and it plays at once. |
The slot is named after the file (the first 16 characters). The app then reads the tempo:
- WAV files with ACID or stretch information give the exact BPM, beat count and time signature.
- Other files get a guess. The app tries loop lengths of 4, 8, 16, 32, 64 or 128 beats and keeps the one whose tempo is between 60 and 180 BPM and closest to 120.
If the guess is wrong, use MANUAL OVERRIDE (4.5). Loading also detects slices (4.3).
4.3 Waveform, slices and playback modes
| Control | What it does |
|---|---|
| Waveform | Shows the loop with white slice markers. The selected slice is shaded orange. Click the waveform to select the slice under the pointer and hear it (this always plays that slice, whatever the MODE). |
| DETECT TRANSIENTS | Finds the drum hits and puts a slice marker on each. Markers are at least 70 ms apart. If fewer than 4 hits are found, the loop is cut into even 16th-note slices instead. Sensitivity is fixed. |
| ▶ PLAY LOOP / ⏹ STOP | Plays the active slot using the current MODE, or stops it. |
| MODE: | How the loop is played (below). Applies to all slots. |
| MODE | What you hear |
|---|---|
| Time-Synced Stretch (default) | The whole loop, stretched to the project tempo without changing pitch. Stretch factor = project BPM x speed button / the loop's BPM. |
| Selected Slice Only | Only the selected slice. |
| Original Pitch/Speed | The whole loop as recorded. The speed buttons and pitch change the speed here. |
A trigger plays the loop once. It does not repeat by itself. A new trigger cuts the loop that is playing and starts again from the beginning. To loop it, put a step on Track 17 at the start of each repeat, or use AUTO-PLAY MEASURE (4.6).
Pre-stretch. In PERFORM mode, the stretch is calculated once in the background and played from one sound instead of hundreds of small grains. This is much lighter on the CPU. The result is kept per slot and rebuilt about half a second after a tempo change. The first hit after a tempo change may play at a slightly different pitch while the new version is being prepared. When the loop is already at the project tempo it plays unchanged. If OVERALL PITCH is not 0, the app uses the live (heavier) stretch instead.
4.4 Matching the tempo
⚡ MATCH BPM TO LOOP sets the project tempo to the active loop's BPM (the manual BPM when MANUAL OVERRIDE is on). The tag next to the tempo then reads LOOP MATCH. The speed buttons are not taken into account. This is the only place a loop changes the tempo by itself.
4.5 Manual BPM, bars and time signature
Tick MANUAL OVERRIDE to correct the guessed values for the active slot. The three fields next to it then unlock.
| Field | What it does | Range / default |
|---|---|---|
| BPM: | The loop's real tempo. It drives the stretch and MATCH BPM TO LOOP. | 40-320, default 120 |
| SIG: | Time signature. It is stored but does not change playback. (Code search found no use; unverified.) | 4/4, 3/4, 6/8 |
| BARS: | Length of the loop in bars. Only AUTO-PLAY MEASURE uses it. | 1-32, default 2 |
Settings are kept per slot.
4.6 AUTO-PLAY MEASURE and speed
| Control | What it does |
|---|---|
| AUTO-PLAY MEASURE: OFF / ON | When ON, the active loop starts at the first measure line after PLAY and starts again every BARS bars (up to 32). Track 17's steps are ignored while it is ON. |
| ½x / 1x / 2x | Speed relative to the project tempo (0.5, 1, 2). In Time-Synced Stretch the pitch stays; in Original Pitch/Speed the pitch changes too. |
4.7 Convert a slice to a pad
CONVERT SLICE: drop-down (Pad 1 to Pad 16) plus EXPORT SLICE TO PAD. The selected slice is copied into the chosen pad as a sample (the pad name becomes SL_<slot>_<slice>), with a very short fade at the end. The pad switches to its sampler, its crop is reset, and it is selected for editing. The button reads ✓ Exported! for a moment. The old sound of that pad is replaced.
4.8 The orange looper pad (Track 17)
The orange pad under the 16 pads reads LOOP: AMEN BREAK (the name does not follow the active slot; unverified) and LOOP TOOL PAD. It has the badge LP and the number 17.
| Action | Result |
|---|---|
| Press the pad | Selects Track 17, opens the loop slicer panel and plays the loop from the start. The step row now edits Track 17. |
| Drop an audio file on it | Loads it into the active slot (4.2). |
| LOOP: ON / LOOP: OFF (button on the pad) | Switches the loop engine on or off. Off stops the loop, ignores Track 17 and frees CPU. The pad dims. |
| LOOP: ACTIVE (button in the slicer panel) | Same switch. After a click its text may read LOOP: MUTED / OFF. |
In PERFORM mode. The pad stays, and the 8-SLOT LOOP SLICER tab is hidden. Press the orange pad to open the slicer panel. Then:
- Pick a slot and play it with ▶ PLAY LOOP or by pressing the pad.
- Set the pattern step row to Track 17: pressing the pad does that. Put a step on step 1 for a loop that restarts every pattern, or switch AUTO-PLAY MEASURE: ON.
- Use MATCH BPM TO LOOP to put the project on the loop's tempo.
- Loading audio, MANUAL OVERRIDE and EXPORT SLICE TO PAD work as in FULL mode.
4.9 Loop mixer controls
The loop has no mixer of its own. While Track 17 is selected, the PAD CONTROLS window (in the PAD SOUND ENGINE tab) controls the loop instead of a pad. (This was read from the code; unverified in a browser.)
| Control | Effect on the loop | Range |
|---|---|---|
| PAD VOLUME | Loop volume | 0-1.5 |
| STEREO PAN | Loop pan | -1 to +1 |
| OVERALL PITCH | Pitch shift in semitones. In Time-Synced Stretch the length is kept. In Original Pitch/Speed it also changes speed. | -24 to +24 |
| FILTER MODE / FILTER CUTOFF / FILTER RES (Q) | Filter on the loop (Off, Lowpass or Highpass) | cutoff 20 Hz-20 kHz, Q 0.1-18 |
| DRIVE / OD | Distortion on the loop | 0-100% |
| SEND 1-2 | How much of the loop goes to AUX FX channel 1 (reverb) and 2 (delay) | 0-1 |
| ATTACK (S), RELEASE (S) | No effect on the loop |
Loop mixer values are not saved in projects.
---
5. The 2 AUX FX channels and the master bus
Open the 2 AUX FX BAYS tab. The app has two shared effect channels: AUX 1 = reverb and AUX 2 = delay. (Older versions had four; sessions saved with four keep only the first two sends.) The terms "bay" and "channel" mean the same thing below.
5.1 Signal flow
pad (volume, pan) ──┬── dry ─────────────────────────────┐
└── SEND 1 / 2 ► AUX 1 / 2 ► RETURN ──┤
loop (Track 17) ── same, with its own SEND 1-2 ──────────┤
▼
master bus: compressor ► MASTER VOL ► limiter ► soft clipper ► speakers
- Each pad has two SEND knobs, SEND 1 (REV) and SEND 2 (DLY), in PAD CONTROLS. Each knob sends a copy of the pad, after its volume and pan, to the matching channel. The dry sound is not reduced. Sends default to 0 (fully dry).
- Each bay is an effect (5.3). Its output is the wet signal only.
- The bay's RETURN LEVEL sets how loud the wet signal is, then a fixed trim of 0.8 is applied (not adjustable).
- The returns join the dry pads in the master bus (5.8).
Because the channels are parallel (send) effects, they add a processed copy next to the dry sound. They do not replace it. To change the dry sound itself use the pad's own filter and drive.
The labels of SEND n, the FX n return faders and the live trigger pads follow what each channel is set to (REV, DLY; a session that holds another effect shows MOD, DYN or DRV).
5.2 The bay controls
| Control | What it does | Range / default |
|---|---|---|
| AUX 1, AUX 2 (tabs at the top) | Choose which channel the controls below edit. | AUX 1 |
| MASTER AUX RETURNS: FX 1, FX 2 | Return level of each channel. Same value as RETURN LEVEL (see 7.1). | 0-1 |
| FX CATEGORY | Channel 1 offers Reverbs, channel 2 offers Delays. Other categories are hidden. A saved session that holds another effect in a channel keeps it, and that category stays listed for it. | |
| ALGORITHM | The effect inside the category (5.3). Changing the category picks the category's first algorithm. | |
| TEMPO SYNC | Free (Hz) or a division (5.5). | Free (Hz) |
| RETURN LEVEL | Output level of the selected bay. | 0-1.5, default 0.8 |
| PARAM 1 (DECAY/TIME) ... PARAM 4 (RATE/DIFFUSE) | Four effect parameters. The names printed under the sliders are general; the table in 5.3 gives the real meaning for each algorithm. | 0-1, default 0.5 |
| RANDOMIZE AUX FX | Randomizes both channels. With the UNIQ slider above 40% it also picks a new algorithm (channel 1 stays a reverb, channel 2 a delay); at or below 40% it only changes the four parameters. Return levels and sync stay. |
Default channels at start-up: AUX 1 Reverbs / Light Room, AUX 2 Delays / Ping-Pong. A parameter change rebuilds the effect after a very short pause; you may hear a tail reset when you drag a knob.
First-run reverb rule. A new user starts with the lightest reverb, Light Room, and kits and sets that carry a reverb are loaded with Light Room instead of their own. This protects slow computers. Once you pick a reverb in channel 1 yourself, or open a session that was saved with a different reverb, the browser remembers it (localStorage key axiom.reverbPicked) and kits may bring their own reverb again. Kits and full sets still replace the delay, the parameters and the return levels of both channels.
The engine still contains Modulation, Dynamics / EQ and Drive / Harmonics effects. The UI no longer offers them (the category list is limited to the channel's role); they can only appear through an older saved session, or through kit data that names them (unverified whether any kit does). They are described in 5.3 for that case.
5.3 Algorithms and what PARAM 1-4 mean
- means the parameter is not used by that algorithm.
Reverbs (channel 1). All five use a light algorithmic reverb (damped delay lines and diffusers per side). The algorithm sets the room size and tail length factor. PARAM 2 works as a brightness control: higher is brighter, lower is darker.
| Algorithm | What it is | PARAM 1 | PARAM 2 | PARAM 3 | PARAM 4 |
|---|---|---|---|---|---|
| Light Room | The lightest and cheapest reverb: half the delay lines and one diffuser (size 0.55, tail x0.6). The first-run default. | Decay, about 0.25 to 2.1 s | Brightness of the tail (1.2-9.2 kHz) | - | - |
| Spring | Small, tight reverb with a short tail (size 0.4, tail x0.7). | Decay, about 0.25 to 2.5 s | Brightness of the tail (1.2-9.2 kHz) | - | - |
| Hall | Medium room, medium tail (size 1.0, tail x1.0). | Decay, about 0.35 to 3.55 s | same | - | - |
| Room | Small room (size 0.6, tail x0.55). | Decay, about 0.25 to 2.0 s | same | - | - |
| Ambient | Largest and longest (size 1.35, tail x1.5). | Decay, about 0.5 to 5.3 s | same | - | - |
Delays (channel 2). The delay times are fractions of a beat, so they follow the BPM even with TEMPO SYNC set to Free (Hz). With TEMPO SYNC on, the time is one division.
| Algorithm | What it is | PARAM 1 | PARAM 2 | PARAM 3 | PARAM 4 |
|---|---|---|---|---|---|
| Basic Stereo | One feedback delay with a low-pass in the loop. | Time, 1/4 to 3/4 of a beat | Feedback, up to 0.8 | Tone, low-pass 0.8-7.8 kHz | - |
| Ping-Pong | Two delays that bounce between left and right. Left and right times differ (the right one is longer), unless sync is on. | Time: left 1/4 to 3/4 beat, right 1/4 to 1 beat | Feedback, up to 0.85 | Tone, low-pass 1-7 kHz | - |
| Multi-tap | Three taps, no feedback. | Spacing, taps at 1/4, 1/2 and 3/4 beat multiplied by 0.5-1.5. With sync the taps sit at 1/3, 2/3 and 3/3 of the division. | Tap level (taps at 0.7, 0.5, 0.35 times PARAM 2) | - | - |
The longest delay is about 2.9 s. Slow tempos with large divisions are capped at that.
The three families below are not selectable in the UI any more (see 5.2); they are listed for sessions that still hold them.
Modulation. The effect is the modulated copy; the phaser and flanger also include the dry signal inside the bay. With TEMPO SYNC the LFO rate is one cycle per division (capped at 40 Hz).
| Algorithm | What it is | PARAM 1 | PARAM 2 | PARAM 3 | PARAM 4 |
|---|---|---|---|---|---|
| Chorus | Two delays (25 and 32 ms) swept in opposite directions. | LFO rate, 0.4-3.9 Hz | Depth (up to 3 ms) | - | - |
| Phaser | Four all-pass stages swept by an LFO. | LFO rate, 0.2-5.2 Hz | Sweep depth (up to 800 Hz) | - | - |
| Flanger | 3 ms delay swept by an LFO, with feedback. | LFO rate, 0.2-4.2 Hz | Feedback, 0.4-0.85 | - | - |
| Ring Modulator | The sound multiplied by a sine wave (metallic, bell-like). | Carrier frequency, 50-1250 Hz (no sync effect) | - | - | - |
Dynamics / EQ. In a send bay these process a parallel copy.
| Algorithm | What it is | PARAM 1 | PARAM 2 | PARAM 3 | PARAM 4 |
|---|---|---|---|---|---|
| 5-band EQ | Four filters: low shelf 100 Hz, peak 400 Hz, peak 1.5 kHz, high shelf 8 kHz. 0.5 = flat. | Low shelf, -12 to +12 dB | 400 Hz, -10 to +10 dB | 1.5 kHz, -10 to +10 dB | High shelf, -12 to +12 dB |
| Studio Compressor | Compressor. | Threshold, -30 to -4 dB (lower = more compression) | Ratio, 2:1 to 16:1 | Attack, 2-52 ms | Release, 50-450 ms |
| Brickwall Limiter | Fast limiter at -3 dB (ratio 20, attack 1 ms, release 50 ms). | - | - | - | - |
Drive / Harmonics. The distortions are fully wet; the exciter includes the dry sound.
| Algorithm | What it is | PARAM 1 | PARAM 2 | PARAM 3 | PARAM 4 |
|---|---|---|---|---|---|
| Harmonic Exciter | Dry sound plus a saturated copy of everything above 3.5 kHz. | Amount of the bright copy, 0.3-1.0 | - | - | - |
| 8-bit Cruncher | Reduces the number of amplitude steps, then a low-pass. | Crunch: higher = fewer steps (down to 4) | Tone: higher = darker (low-pass 10.5 kHz down to 1.5 kHz) | - | - |
| Multi-Distortion | Tube-style saturation, then a low-pass. All variants listed under this name currently use the tube curve. | Drive, 5-80 | Tone, low-pass 1.5-9.5 kHz | - | - |
5.4 Return levels
There are two places to set the same level:
- MASTER AUX RETURNS (two sliders FX 1 and FX 2, range 0-1).
- RETURN LEVEL (range 0-1.5), for the selected bay.
They set the same bay output. Moving one does not move the other, so they can show different positions (7.1).
5.5 Tempo sync
The TEMPO SYNC drop-down of a channel locks the delay time (delay effects) to a division of the BPM (see 3.3). The choice is per channel and is saved in projects. Reverbs ignore it (so does every non-delay effect except chorus, phaser and flanger, which lock their LFO rate).
5.6 Live trigger pads (gate)
Under the bay controls, AUX FX LIVE TRIGGER PADS (KEYS 5-6) hold two pads: FX 1 [KEY 5] and FX 2 [KEY 6], each labelled with the channel's algorithm.
| Control | What it does | Range / default |
|---|---|---|
| ⚡ TRIGGER MODE: OFF / ON | Switches both channels at once. ON: a channel is silent until you hold its pad (or key 5 / 6). OFF: channels are always audible. | OFF |
| FX n pad (press and hold) | Opens the bay while held, then closes it. | |
| INVERT | The bay is audible normally and is cut while you hold the pad. Only has an effect while TRIGGER MODE is ON. | off |
| ATT (MS) | Fade-in time when you press the pad. | 0-500, shown 10 |
| REL (MS) | Fade-out time when you release the pad. | 0-2000, shown 200 |
The gate sits after the effect, so the effect keeps running while closed: opening the reverb channel brings in the tail built up so far. Settings are saved in projects. The sliders are shown at 10 ms and 200 ms; a bay that you have not touched starts with 15 ms and 150 ms (unverified).
5.7 The master bus
All pads, the loop and the aux returns meet in masterIn, then:
| Stage | Setting | Notes |
|---|---|---|
| Master compressor | threshold -16 dB, ratio 4:1, knee 10, attack 5 ms, release 200 ms | No on-screen control. Kits can change threshold and ratio when loaded. Saved in projects. |
| MASTER VOL | 0-1.5 | The slider in the top bar. Values above 1 boost the mix and can overload the limiter. Kits set it when loaded. |
| Safety limiter | threshold -2 dB, ratio 20:1, hard knee, attack 1 ms, release 80 ms | Always on. No control. |
| Soft clipper | transparent up to 0.85, smooth rounding above, peak about 0.964 | Always on. Catches what the limiter misses. |
| Meters and oscilloscope | after the clipper |
The metronome click goes straight to the output and bypasses this chain.
An older master reverb and tape delay exist in the engine but nothing feeds them; they have no controls.
5.8 PERFORM mode and the bays
In PERFORM mode a channel that no pad sends to (all sends 0) and that has TRIGGER MODE off is disconnected 3 seconds after its last send goes quiet, so it costs no CPU. A reverb tail can still ring out. When you raise a send the bay reconnects at once. In FULL mode all bays stay connected.
The disconnect looks only at pad sends. A bay fed only by the looper (Track 17) SEND is treated as unused (read from the code; unverified in a browser). Give the bay a tiny pad send or leave PERFORM mode if the loop's effect goes silent.
Separately, in any mode, if the engine falls behind repeatedly (2 or more stalls or overloads within 10 seconds), the reverb channel (and any modulation effect from an old session) is muted for 8 seconds. The LOAD badge in the top bar then adds FX MUTED. The drums keep time. See Part 1.
---
6. Worked examples
6.1 Build a 4-bar beat from scratch
- Press STOP, then pattern slot 16 (or any slot you do not need). Press CLEAR PATTERN and confirm. (If the slot holds a style pattern you want to keep, pick another slot first.)
- Set LIMIT: to 4 Bars.
- Press BAR 1. Press pad 1 (the kick) so the step row shows Track 1.
- Click steps 1, 5, 9 and 13. You hear the kick on each beat.
- Select pad 3 (snare). Click steps 5 and 13 (beats 2 and 4).
- Select pad 7 (closed hat). Set EUCLIDEAN: to 8 hits and press FILL for eight even hats. (Or drag across steps 1, 3, 5, 7... with the mouse.)
- Press PLAY. Bar 1 loops until you have more bars.
- With the kick selected, press the COPY button (bar tools), press BAR 2, then PASTE. Do the same for the snare and hat (select each pad, BAR 1, COPY, BAR 2, PASTE). A quicker way is DUPE (it works on the selected track): on BAR 1 press DUPE, and you land on bar 2 with bar 1 copied; press DUPE again to fill bar 3, and so on.
- On bar 4, vary it: select the snare, click the MOD tab, click step 16 until the cell reads R2 (a roll). Click a few extra kick steps.
- Open the VEL tab and drag across the hat cells to draw accents: tall on the beats, short in between.
- Press the lock button (LOCK / UNLOCK) if you want it protected from accidental record, paste or clear.
- Save with FILE > SAVE PROJECT.
6.2 Switch patterns live with single and double click
- Pick a style in the STYLE (SEQUENCE STYLE) drop-down. Slot 1 loads. Press PLAY.
- While the Intro plays, single-click slot 2 (Verse 1). Its button pulses. When the Intro has played its last bar, Verse 1 starts. You never get a half-finished pattern.
- To jump sooner, double-click slot 5 (Chorus 1) while Verse 1 is in its second bar. The button gets an orange outline and pulses faster. At the next bar line Chorus 1 starts from its first bar.
- To let the app run the arrangement, press CHAIN: OFF so it reads CHAIN: ON. Slots then play in order. Your own clicks still win.
- Remember: loading another style replaces all 16 slots.
6.3 Add reverb to a snare with a send
- Check the bay: open the 2 AUX FX BAYS tab and look at AUX 1 (default Reverbs / Light Room; pick Room or Hall for a bigger sound). Set PARAM 1 about 0.4 for a short tail, PARAM 2 about 0.6. Set RETURN LEVEL to 0.8 or so.
- Press the PAD SOUND ENGINE tab. Press the snare pad (pad 3) to select it.
- In PAD CONTROLS raise SEND 1 (REV) to about 0.25. The snare keeps its dry sound and a reverb copy is added.
- Press PLAY and adjust SEND 1 for the wet amount, RETURN LEVEL for the whole reverb, PARAM 1 for the tail length.
- For a gated, rhythmic splash instead, press TRIGGER MODE in the AUX bay tab so it reads ON. The reverb is then silent until you hold the FX 1 pad (or key 5), and it opens and closes with ATT (MS) and REL (MS).
- Turn SEND 2 (DLY) back to 0 if you hear the delay too.
6.4 Record a loop and match the tempo
- Open the 8-SLOT LOOP SLICER tab and click an empty slot, for example slot 5.
- Press + LOAD AUDIO and choose your loop file. It loads, gets a guessed BPM and is cut into slices.
- Look at the BPM shown in the slot and in the BPM: field. If you know the real tempo, tick MANUAL OVERRIDE, type the BPM and set BARS to the length of the loop (for example 2).
- Press ⚡ MATCH BPM TO LOOP. The tempo changes to the loop's tempo and the tag reads LOOP MATCH. (The tempo never changes without this press or another tempo control.)
- Press MODE: Time-Synced Stretch (default) and press ▶ PLAY LOOP to hear it at the project tempo.
- To use it in the beat, press the orange looper pad, then click step 1 in the step row. Set LIMIT to the loop length in bars. The loop restarts at step 1 of each pattern pass. Or press AUTO-PLAY MEASURE: OFF so it reads ON, and the loop retriggers itself every BARS bars.
- Press PLAY. Change the BPM in the top bar and the loop follows it; it stays in time.
- To use one hit as a drum sound, press the waveform at that hit (the slice turns orange), choose a target in CONVERT SLICE: and press EXPORT SLICE TO PAD.
---
7. Known quirks and troubleshooting
7.1 Known quirks
These are labels or behaviours that differ from what you might expect. Each was checked in the code at the time of writing.
| Where | What you will see |
|---|---|
| FLAMS | Puts a 2-hit roll on active steps 15 and 16 and a flam on about half of active steps 3, 7 and 11. It does not touch empty steps and adds no ghost notes. |
| CLEAR | Clears the shown bar of the selected track. (The duplicate CLEAR TRACK button was removed in 10.3.) To clear all 8 bars use CLEAR ACTIVE PAD. |
| DUPE (bar) | On bar 8 there is no next bar: the button shows LAST BAR for a moment and nothing is copied. |
| Button text after a click | COPY, PASTE, DUPE and CLEAR change to a short confirmation, then return to their labels. |
| LOCK / UNLOCK | The button reads 🔓 UNLOCKED or 🔒 LOCKED (the state, not the action). A locked pattern can still be edited by hand. |
| Collapse button | In SLOW CPU mode it reads ▼ LOCKED (SLOW CPU). After SLOW CPU is switched off it reads ⊞ VIEW FULL 16-PAD PATTERN (16 ROWS x 16 STEPS) or ▲ HIDE FULL GRID instead of EXPAND 17 ROWS / COLLAPSE GRID. |
| Return level | MASTER AUX RETURNS FX 1 and FX 2 (0-1) and RETURN LEVEL (0-1.5) edit the same value and always follow each other, also after loading a kit or a project. The master faders stop at 1; use RETURN LEVEL for more. |
| Trigger ATT / REL sliders | Shown at 10 ms and 200 ms. An untouched bay starts at 15 ms and 150 ms. (unverified) |
| PARAM labels | PARAM 1 (DECAY/TIME) ... PARAM 4 (RATE/DIFFUSE) never change. Use the table in 5.3. In reverbs, PARAM 2 "DAMP" makes the sound brighter when raised. |
| SET list tempos | The BPM text in MASTER FULL SET is fixed and can differ from the tempo the set offers through PRESET. |
| Loop SIG | Stored but not used in playback. |
| Loop slots 1-4 | The four generated loops are 2 bars long and BARS shows 2, so AUTO-PLAY MEASURE retriggers them every 2 bars. |
| Looper pad label | Reads LOOP: AMEN BREAK whichever slot is active. (unverified) |
7.2 Troubleshooting
| Problem | What to check |
|---|---|
| A step is on but silent | The track is muted or another track is soloed (MUTE / SOLO). The pad is switched off in SETTINGS (OFF 9-12, OFF 13-16). The step modifier is Note Off or SKIP. The loop engine is off (Track 17). |
| Steps seem to play in the wrong place | A SKIP step pushed the track out of phase. Press SYNC GRID or STOP. |
| The pattern is shorter than I wrote | LIMIT is lower than the bars you used. Raise LIMIT. |
| The pattern button I clicked does not start | While playing, a single click waits for the end of the pattern. Double-click for the next bar line. If it is a long pattern (LIMIT 4 or more), the wait is long. |
| My slot edits vanished | You loaded a style or full set (replaces all 16 slots). Save a project first next time. |
| REC will not arm | The active pattern is locked. Press LOCK / UNLOCK. |
| Overwrite recording removed my other tracks | Overwrite clears all unmuted tracks as it passes. Use Overdub, or solo the track you record. |
| Recorded hits are late or early | Lower QUANTIZE SNAP STRENGTH only if you want the feel kept. At 100% hits snap to the grid. Check CLOCK OFFSET if you follow an external clock. |
| Loaded loop does not line up | The guessed BPM is wrong. Use MANUAL OVERRIDE and enter the real BPM, then MATCH BPM TO LOOP. |
| Loop plays once and stops | By design. Add a step on Track 17 or use AUTO-PLAY MEASURE. |
| Loop is gone after reload | Loop audio is not saved in projects. Load the files again. |
| Loop reverb disappears in PERFORM mode | See 5.8: only pad sends keep a bay connected. |
| Reverb or modulation suddenly mute | The engine is struggling (FX MUTED). Lower the VOICE LIMIT, bake the kit or use PERFORM mode (Part 1). |
| An effect bay does not change the sound | The pad's SEND for that bay is 0, or TRIGGER MODE is ON and the pad is not held. |
| The loop sounds different at 2x | In Original Pitch/Speed mode the pitch changes with speed. Use Time-Synced Stretch. |
| Master sounds squashed or distorted | Lower MASTER VOL below 1 and the pad volumes. The limiter and soft clipper are always on. |
---
8. Maintainer notes
Update this list when files or functions are renamed. Line numbers are not recorded because the files change often.
| Section | Source |
|---|---|
| 1.1-1.3 Tracks, steps, step buttons | index.html (#active-instrument-sequencer, #active-step-columns, #container-full-grid); js/app.js renderActiveInstrumentSequencer, refreshSequencerGrid, selectInstrument; js/ui-helpers.js bindStepPainting |
| 1.4 Step inspector | index.html #modal-step-inspector; js/app.js _setupStepInspectorModal, openStepInspector |
| 1.5 Parameter lane | index.html .seq-lane-bar; js/app.js _setupSequencerLane, renderLane; js/ui-helpers.js LANES, bindLaneDrawing, MOD_CYCLE, MOD_SHORT, nextModifier |
| 1.6 Modifiers | js/sequencer.js _executeStepModifier; badge text App._getModBadgeText; hit letters Presets._buildSlotsFromPatternData (js/presets.js) and js/pattern-data-*.js |
| 1.7 Track length, skip | js/sequencer.js SequencerTrack.trackLength, _onClockStep, resetTrackPointers; js/project.js serialization |
| 1.8 Bars, LIMIT | js/app.js _setupSequencerGrid; Sequencer.setLoopLength; AudioCore._advanceStep |
| 1.9 Mute, solo | js/sequencer.js setTrackMute, setTrackSolo; js/app.js mute/solo wiring |
| 1.10 REC | js/sequencer.js setRecording, toggleRecording, recordHit, the overwrite sweep in _onClockStep; js/app.js _setupRecordSetupModal; index.html #modal-record-setup |
| 1.11-1.12 Track and bar tools | js/sequencer.js randomizeTrackPattern, randomizeFullPattern, applyVelocityRamp, humanizeVelocities, applyAutoFlamsAndRolls, applyPanSweep, generateEuclideanRhythm; js/app.js _setupSequencerGrid, copyMeasure, pasteMeasure, duplicateMeasure, clearMeasure |
| 1.13 Pattern tools | js/sequencer.js copyPattern, pastePattern, dupePattern, toggleLockPattern, clearActivePattern, clearTrack; js/app.js _setupPatternManagementToolbar |
| 1.14 MIDI export | js/sequencer.js exportPatternToMidi |
| 1.15, 4.8, 5.8 PERFORM mode | css/axiom-compact.css ([data-mode="perf"] block), js/layout.js, DSPEngine.setPerfMode, refreshAuxActivity, AudioCore.setAuxActive |
| 2.1-2.2 Slots and cueing | js/presets.js sequenceSlots, cueSequence, applyPendingCue, switchToSlot, saveCurrentToSlot, loadSequence; js/sequencer.js _onClockStep (cue block); js/app.js _setupSequenceBankButtons, updateSequenceButtons; CSS .btn-seq-slot.cued-now |
| 2.3 Styles | js/presets.js _initSequenceStyles, _buildSlotsFromPatternData, _fillStyleSectionPattern; js/pattern-data-1..8.js |
| 2.4 Full sets, kits | js/presets.js _initFullSets, applyFullSet, applyKit |
| 2.5 Tempo rule | js/audio-core.js noteOriginalTempo, playOriginalTempo, setBPM; js/app.js syncTempoUI |
| 2.6 Song mode | js/sequencer.js patternChainEnabled, togglePatternChain, _onClockStep; js/app.js CHAIN button wiring |
| 3.1 Swing | js/audio-core.js setSwing, getSwingOffset, _scheduleStep |
| 3.2-3.4 Tempo, TAP, sync, clock | js/audio-core.js tapTempo, syncSeconds, syncHz, externalClockTick; js/app.js transport wiring |
| 4 Loop slicer | js/loop-player.js (all); index.html #panel-deep-loop-rack, #pad-looper-tool; js/app.js _setupLoopRack, updateLoopRackUI, drawLoopWaveform, _wireFinalControls, _syncFinalControls |
| 5.1 Signal flow | js/dsp-engine.js PadEngine.initNodes, setSend; js/audio-core.js _setupAuxBusses, setAuxProcessor |
5.2-5.6 Channels (AXIOM_AUX_COUNT = 2 in js/audio-core.js; first-run reverb rule in Presets.applyKit, selectAuxBay, project.js) | index.html #panel-deep-aux-bays; js/app.js _setupAuxBayControls, selectAuxBay, syncAuxLabels; js/dsp-engine.js AuxFXBay (rebuildFXChain, _buildLightReverb, trigger methods), DSPEngine.defaultAuxConfigs, randomizeAuxBays, onTempoChanged |
| 5.7 Master bus | js/audio-core.js _setupMasterBus, _buildSoftClipCurve, setCompressor, setMasterVolume |
| 7.1 Quirks | tools/docs/tooltips_coverage.md (items 3-8 and 12 still true; items 1, 2, 9, 10, 11 were fixed or changed), plus checks made while writing this part |
When any of these change, re-check: the algorithm table (5.3) against rebuildFXChain, the modifier table (1.6) against _executeStepModifier, the quirks table (7.1) against the code, and the SET drop-down tempos against js/pattern-data-*.js.
04 - Version 11: EDIT / PERFORM, rendering, LFOs, loops and the new engines
This part describes how the app works since build 11 and replaces the older "BAKE" wording in parts 2 and 3. Where an older sentence in parts 1-3 talks about baking, PERFORM baking all synth pads or the sequencer being visible while editing, read this part instead.
1. Two sides: EDIT and PERFORM
The two buttons EDIT and PERFORM at the top of the window (keys F1 / F2; F8 / F9 switch the pad view and sound view) change what the whole app is for.
| EDIT | PERFORM | |
|---|---|---|
| Purpose | Design sounds, kits, loops | Play, sequence, jam |
| Sequencer and transport | Hidden. The sequencer exists only in PERFORM | Shown: the complete sequencer (16 steps, the 16 pattern presets, all the track edit tools, EXPAND 17 ROWS with the looper row) sits under the pads. PADS and SEQ buttons (F1 / F3) switch between pads with the sequencer under them and the sequencer taking the whole screen |
| What a pad plays | Its engine (the tab that is selected: SAMPLER, SUBTRACTIVE, ADDITIVE, PHYSICAL MODEL, WAVESHAPER, WAVETABLE, VOCODER) | Its sample (the SAMPLER) only |
| Editor | Full pad editor with all engines, two LFOs, final filter, the four send effects | Minimal: level, pan and the send amounts of reverb and delay |
| Effects | Whatever the user chose (4 effect bays) | Reverb and delay only: Light Room reverb and Basic Stereo delay unless you chose others. FX 3 / FX 4 are switched off |
| Loop tools (loopers A and B) | On | The two looper pads (rows 17 and 18 of the sequencer, they can be sequenced like any pad) and the 8-SLOT LOOP SLICER tab are there; each looper has its own on / off switch (the position is remembered) |
Everything PERFORM does not need is switched off to save processor time: the synth engines, the engine workers, the cached renders, the FX 3 and FX 4 bays, the idle effect bays and (unless you switch it on) the loop engine. Going back to EDIT switches it all on again. Your EDIT effects are kept in the project and come back.
Why this split? PERFORM has to be ultra smooth: it only plays recorded samples, with two light effects. All the heavy sound design (synth engines, LFOs, final filter, big reverbs) happens in EDIT and is rendered into the sample of the pad.
2. Rendering: the SAMPLER is the PERFORM voice
Every pad has a sampler. The sampler's sample is what PERFORM plays. A pad that never got a sample is rendered automatically when you enter PERFORM.
| Control | What it does |
|---|---|
| RENDER TO SAMPLER | Plays the pad's current engine once, offline, and puts the result into the sampler. The result includes the engine, its two LFOs, the final filter, drive and attack and the chord tool. It does not include the pad volume, pan, tune or the send effects. You stay on the engine tab, so you can go on editing and listen to both. |
| + SEND FX (checkbox) | Also prints the pad's send effects (reverb, delay, FX 3, FX 4, at the send levels you set) into the sample while rendering. The sends then go to 0, because the effects are inside the sample. |
| PRINT SEND FX | Prints the send effects into the current sample without rendering the engine again (for example a big, CPU-heavy reverb on a snare: it costs processor time once instead of at every hit). |
| RENDER KIT | Renders every pad of the kit. |
| CONVERT TO ADDITIVE | Measures the subtractive sound and rebuilds it as an additive synth (unchanged). |
| PREVIOUS SAMPLES 1-5 | The last five samples of the pad. Every render, load or kit change pushes the old sample here; click a number to bring it back (the current sample takes its place in the list). |
| State text | "SAMPLE = THIS ENGINE" (the render is up to date), "EDITED SINCE RENDER" (you moved something; the pad also shows a dot). |
Rules to know:
- The tabs of the new engines (PHYSICAL MODEL, WAVESHAPER, WAVETABLE, VOCODER) and the subtractive / additive tabs are EDIT only. In PERFORM the pad reverts to its sample; in EDIT it plays the engine again, so you can go back and forth and listen to each engine with the same pad.
- The sampler keeps the final filter etc. in its own sample: it never applies them twice.
- Rendering a pad does not change which engine tab it is on.
3. Two LFOs per pad (LFO window)
Each pad has two LFOs, and every slider of the pad editor can be a target (about 170 targets: oscillators, noise, filters, FM, envelope, the additive shaping sliders, the final stage, the pad volume / pan / tune, the four new engines, and even the other LFO's rate and depth).
| Control | What it does |
|---|---|
| SHAPE | sine, triangle, square, saw, ramp, random (a new value each cycle), smooth random |
| RATE (HZ) | Speed in cycles per second (0.05-40) |
| TEMPO SYNC | Locks the LFO to the tempo: one cycle per note division. Free (Hz) = off |
| DEPTH | How far the LFO moves the target: 1 = plus or minus half the slider range (by octaves for frequencies); negative flips it; 0 = off |
| TARGET | The parameter to move |
| START PHASE | Where in its cycle the LFO is at the start of a hit |
| RETRIGGER ON HIT | Restarts the LFO on every hit (every hit alike). Off = it runs with the clock |
| UNIPOLAR | Only upwards from the current value |
Pitch, filter cutoffs, resonances, levels, pan, the FM index and the final filter move continuously inside the hit; every other parameter is moved once per hit (the value for that hit). All LFO movement is in the render.
4. The four send effects
There are four effect bays. Bays 1 and 2 are the reverb and delay. FX 3 and FX 4 are the two further effect channels (EDIT only). Each pad has four send sliders. In PERFORM only the reverb and delay exist. To get a heavier reverb into PERFORM, use PRINT SEND FX or render with + SEND FX.
5. Loops and loop sets
Render the sequence to a sample: in PERFORM, the loop buttons render the active pattern (a number of bars) to a stereo sample with the sample voices, the chosen effects and a seamless tail. The result goes to the looper, where you can audition it in the loop tool.
Convert all sequences to loops: renders all pattern slots one after the other into the loop set.
Loop set: 16 loops with names. The LOOP SET tab (EDIT, deck) lists them, lets you rename, render, load, delete, save (.axloops file) and load a loop set.
Playing the loops: the old PADS | LOOPS switch has become the DJ / LOOP mode (top bar button, F10): two decks play the 16 loops (see part 7). In PERFORM the complete sequencer stays under the pads, with the two looper pads and the RENDER SEQUENCE... button (the active sequence into a loop, all sequences into all loops, or to a WAV file).
6. The new engines (EDIT tabs)
Every engine tab has RANDOMIZE and DEFAULTS buttons, all sliders have a tooltip and can be targeted by the LFOs, the pad's final filter / drive / attack / release apply to every engine, and every engine is rendered to the sampler like the others. All of them are light on the processor: a hit is calculated once per setting and then played from memory.
6.1 PHYSICAL MODEL
A struck or plucked object calculated from physics.
| Group | Controls |
|---|---|
| MODEL | MODEL: Waveguide / Karplus-Strong (a string or tube: delay line with loss) or Modal resonator bank (membrane, bar, plate, bell, tube, string, wood, glass, random). PITCH, DECAY (60 dB time), LEVEL |
| EXCITER | EXCITER (noise burst, impulse, mallet, brush, stick click), LENGTH, BRIGHTNESS, LEVEL, STRIKE POSITION (where the object is hit; the middle is round and hollow) |
| BODY | DAMPING (highs die faster), STIFFNESS (waveguide: overtones become sharper than harmonic), WAVEGUIDE TYPE (string: all harmonics; closed tube: odd harmonics), MODE SET, MODES (2-32), MODE SPREAD (more metallic), MODE DETUNE (beating twins), DECAY TILT |
| SKIN, WIRES & STEREO | TENSION BEND (semitones and time: tom / taiko "boing"), RATTLE and RATTLE LENGTH (snare wires, sizzle), STEREO WIDTH |
Good for toms, congas, bongos, wood blocks, claves, bells, plates, gongs, tuned percussion, plucked and struck strings. A short cymbal: MODE SET plate, spread 0.6, noise exciter, damping 0.2.
6.2 WAVESHAPER (non-linear / distortion synthesis)
A simple tone is pushed through a curve that folds, clips or bends it into rich harmonics. INPUT chooses what is shaped: Own tone, or the sound of any other source (sampler, subtractive, additive, physical model, wavetable, the looper). When another source is chosen, its tab and (for the looper) its pad light up while you are on this pad, so you always see what feeds the shaper.
- If the sampler is the input, rendering replaces the pad's sample with the shaped version. Rendering again shapes the original again, so nothing builds up. The previous sample stays in PREVIOUS SAMPLES.
- The shaper replaces only the pad's sample, not the looper's loops (when the looper is the input it is only read).
- The pad remembers the last five samples (see rendering above).
Controls: OWN TONE (oscillator sine / triangle / saw / square / noise, pitch start and end, pitch drop time, attack, decay); THE SHAPER (SHAPE: soft clip, hard clip, wavefolder, sine fold, Chebyshev harmonics, asymmetric, phase distortion, bit / rate crusher; DRIVE; DRIVE FOLLOWS LEVEL = bright attack, clean tail; BIAS; fold THRESHOLD; the HARMONIC 2-6 levels for the Chebyshev shape; PHASE DISTORTION; BITS; RATE DIVIDER); OUTPUT (TONE, DRY / WET, LEVEL).
6.3 WAVETABLE
Two tables play together and are mixed. Each table has 16 morphing waveforms. 25 tables made for drums, percussion and effects: kick body, sub thump, tom, snare shell and wires, wood block, metal bell, glass, metallic hat noise, periodic noise, soft noise, zap, laser, formant sweep, vocal "ah", FM bell, FM metal, saw stack, pulse width morph, organ, pluck, click, digital harsh, chaos, hollow pipe and analog thump.
Controls: TABLES (TABLE A / B, POSITION, SWEEP of the position during the hit, SWEEP TIME, MIX A / B, PITCH RATIO B, DETUNE B); PITCH & ENVELOPE (pitch start / end / drop time, attack, decay, ENVELOPE SNAP); SOUND SHAPING (HARD SYNC, WARP, FM of B into A, UNISON, UNISON DETUNE, SUB, NOISE, BIT DEPTH, LEVEL).
6.4 VOCODER ("reverse additive")
An ordinary vocoder listens to a voice and shapes a carrier. This one listens to the ADDITIVE synth: each of its strongest partials (at most 18) becomes one filter band, the partial's level and decay open and close that band, and the bank of filters shapes another sound, the carrier. You design the spectrum on the ADDITIVE tab (use the button EDIT THE BANDS) and listen to it here.
- CARRIER: saw (plays the chord), pulse, white noise, pink noise, or the sound of another engine, the sampler, the looper, or the waveshaper. A sample or loop carrier is repeated if it is shorter than the longest band.
- MODE: Vocoder (only the bands are heard) or EQ sculpt (the carrier is heard in full and each partial lifts or cuts its band).
- Controls: NUMBER OF BANDS, BAND WIDTH (Q), EQ RANGE, FORMANT SHIFT (all bands up or down), BAND STRETCH, LEVEL SLOPE, DECAY SCALE, BAND ATTACK, CARRIER BLEED; HIGH-PASS 30 Hz and LOW-PASS 18 kHz cut before the bands.
- MIDI IN: tick "MIDI IN PLAYS THIS PAD", select this pad with the vocoder open, and play notes on a MIDI keyboard. The note sets the pitch (relative to the ROOT NOTE) and the chord strip is built on it. No external audio is needed.
7. CHORD strip (all engines)
Under the engine tabs: CHORD on / off, four note drop-downs (semitones above the pad's pitch, or off) and TRANSPOSE (the main key, -24 to +24). When CHORD is on, one hit plays all chosen notes together (their level is balanced), with every engine. The chord is part of the render.
8. Kits in v11
The first 15 factory kits were redone in a second round with the rule authenticity first: analog machines (TR-808, 909, 606, CR-78, KR-55, DFAM, SDS-V) keep their subtractive circuit models, and sampler-era machines (LinnDrum, DMX, SP-1200, MPC60, MPC3000, SR-16, R-8) are emulated with the engines, or converted from a library sample into a synth (additive / subtractive), and only as a last resort play a library recording (at most 3 per kit; the list is LIBRARY_SAMPLES_USED.md). EDIT plays the engine, PERFORM plays the rendered sample. AI Kit 01 is at the top of the kit list (and as the set AI Kit 01 Groove), and SFX Designer Kit is the 16th kit: sixteen sound effects (impacts, risers, zaps, clangs, gongs, chimes, whooshes) made with all engines and the LFOs.
Maintainer notes (v11)
- Source files:
js/layout.js(EDIT / PERFORM),js/modulation.js(LFO),js/fx-print.js(print send FX, perform effects),js/loopset.js(loop sets),js/engine-dsp.js(the sound calculation of the four engines, also run in Web Workers),js/engines.js(the engines in the app: panels, links, chord, MIDI in). - Lab tests for these features:
tools/sounddesign/out/t_s1.js(edit / perform / render),t_lfo.js,t_s3.js(effects),t_s4.js(loops),t_dsp.js(engine calculation),t_eng.js(engines in the app). Run withpython tools/sounddesign/sd.py eval <file>. - Designing kits with the engines:
tools/sounddesign/SOUND_DESIGN_V11.md.
05 - Engine parameter reference (v11)
Every slider and drop-down of the four new engines, as it appears on screen. Defaults are the values after DEFAULTS. All sliders can be targets of the LFOs.
PHYSICAL MODEL
MODEL
| Control | What it does | Range / choices (default) |
|---|---|---|
| MODEL | Waveguide: a delay line with loss, like a string or an air column. Modal: a bank of resonators at the vibration modes of a drum skin, bar, plate or bell. | Waveguide / Karplus-Strong (string, tube); Modal resonator bank (membrane, bar, plate, bell) (default: ks) |
| PITCH (HZ) | Fundamental frequency of the object. | 20 to 4000 (110) |
| DECAY (S) | Time for the sound to die away by 60 dB. | 0.05 to 6 (0.6) |
| LEVEL | Output level of the engine (before the pad volume). | 0 to 1.5 (1) |
EXCITER (WHAT HITS IT)
| Control | What it does | Range / choices (default) |
|---|---|---|
| EXCITER | The signal that sets the object vibrating. Noise = pluck / stick, mallet = soft hit, impulse = sharp tap, brush = scraped. | Noise burst; Impulse (click); Mallet (soft pulse); Brush (long noise); Stick click (default: noise) |
| EXCITER LENGTH (MS) | How long the object is driven. Short = a sharp strike, long = a scrape or a soft push. | 0.2 to 80 (6) |
| EXCITER BRIGHTNESS (HZ) | Low-pass of the exciter: dark rubber to bright wood or metal. Harder hits (velocity) are brighter. | 200 to 16000 (6000) |
| EXCITER LEVEL | How hard the object is driven. | 0 to 1.5 (0.9) |
| STRIKE POSITION | Where the object is struck. Near the end (small) is bright and thin, the middle (0.5) is round and hollow: it notches out the modes that have a node there. | 0.04 to 0.5 (0.25) |
BODY (HOW IT VIBRATES)
| Control | What it does | Range / choices (default) |
|---|---|---|
| DAMPING | How fast the highs die compared with the lows. More = muffled, dull; 0 = rings bright. | 0 to 1 (0.35) |
| STIFFNESS (WAVEGUIDE) | Waveguide only: makes the overtones sharper than harmonic, the way thick strings and bars sound (towards bell-like). | 0 to 1 (0.1) |
| WAVEGUIDE TYPE | String: all harmonics. Closed tube: only the odd harmonics, hollow like a clarinet or a wood block. | String (all harmonics); Closed tube (odd harmonics) (default: string) |
| MODE SET (MODAL) | The overtone pattern of the resonator bank: where the modes sit relative to the pitch. | Drum skin (membrane); Bar (marimba / vibes); Plate (cymbal / gong); Bell; Closed tube; Harmonic string; Wood block; Glass; Random (free) (default: membrane) |
| MODES (MODAL) | Number of resonators. More modes = richer, more CPU. | 2 to 32 (16) |
| MODE SPREAD (MODAL) | Stretches the mode frequencies upwards: more metallic, more inharmonic. | 0 to 1 (0) |
| MODE DETUNE (MODAL) | Gives each mode a slightly detuned twin that beats against it: living, imperfect, shimmering. | 0 to 1 (0.1) |
| DECAY TILT (MODAL) | Do the high modes die faster (positive) or ring on longer (negative) than the low ones? | -1 to 1 (0.5) |
SKIN, WIRES & STEREO
| Control | What it does | Range / choices (default) |
|---|---|---|
| TENSION BEND (ST) | The pitch starts this many semitones high and relaxes: the "boing" of a tom or a taiko, a laser tom. | 0 to 24 (0) |
| BEND TIME (MS) | How fast the tension bend relaxes. | 5 to 600 (60) |
| RATTLE / SNARE WIRES | Adds buzzing noise that follows the loudness of the object, like snare wires, a sizzle cymbal rivet or a rattle. | 0 to 1 (0) |
| RATTLE LENGTH | How long the rattle keeps buzzing after the strike. | 0 to 1 (0.3) |
| STEREO WIDTH | Spreads the modes (or a tiny delay for the waveguide) across the stereo field. | 0 to 1 (0.3) |
| RATTLE BRIGHTNESS (HZ) | Low-pass of the rattle noise: snare wires sit around 2-5 kHz, a sizzle is brighter. 20000 = open. | 300 to 20000 (20000) |
| FUNDAMENTAL WEIGHT (MODAL) | Boosts the lowest mode against the overtones: round, pitched toms and kicks that do not jump to a higher mode. | 0 to 1 (0) |
| NOISE WASH | Adds a band-limited noise layer that rings on with the object: the broadband wash of a cymbal, ride or crash on top of the tonal metal. | 0 to 1 (0) |
| WASH BRIGHTNESS (HZ) | Brightness of the noise wash. | 500 to 18000 (7000) |
| WASH LENGTH | Length of the wash compared with the decay of the object. | 0.1 to 3 (0.8) |
WAVESHAPER
INPUT
| Control | What it does | Range / choices (default) |
|---|---|---|
| INPUT | What is shaped. "Own tone" is the oscillator below. Any other choice sends that engine's sound through the shaper (that tab lights up; the looper pad lights up while this pad is selected). With the sampler as input, a render replaces the pad's sample; the previous version stays in PREVIOUS SAMPLES. | Own tone (below); Sampler (the pad's sample); Subtractive synth; Additive synth; Physical model; Wavetable; Looper tool (loop slicer slot) (default: own) |
| OWN TONE MIX (WITH INPUT) | When an input is chosen, how much of the own tone is added to it before shaping. | 0 to 1 (0) |
OWN TONE
| Control | What it does | Range / choices (default) |
|---|---|---|
| OSCILLATOR | Waveform that goes into the shaper. | Sine; Triangle; Saw; Square; Noise (default: sine) |
| PITCH START (HZ) | Starting pitch of the tone. | 20 to 2000 (80) |
| PITCH END (HZ) | Pitch the tone drops to. | 20 to 2000 (50) |
| PITCH DROP (MS) | How fast the pitch falls. | 2 to 2000 (40) |
| ATTACK (MS) | Fade-in of the tone. | 0.3 to 400 (1) |
| DECAY (S) | Length of the tone. | 0.03 to 4 (0.5) |
THE SHAPER
| Control | What it does | Range / choices (default) |
|---|---|---|
| SHAPE | The curve the signal goes through. Each makes different overtones: clips are buzzy, folds are metallic and bell-like, Chebyshev adds exactly the harmonics you set. | Soft clip (tanh); Hard clip; Wavefolder; Sine fold; Chebyshev harmonics; Asymmetric (even harmonics); Phase distortion (own tone); Bit / rate crusher (default: tanh) |
| DRIVE / INDEX | How hard the signal hits the curve. Low = nearly clean, high = bright and dense. The brightness moves with the loudness (see DRIVE FOLLOWS LEVEL). | 0.5 to 60 (6) |
| DRIVE FOLLOWS LEVEL | How much the drive dies away with the sound: the classic waveshaping effect of a bright attack that turns into a clean tone. | 0 to 1 (0.6) |
| BIAS (ASYMMETRY) | Shifts the signal before the curve: adds even harmonics and a different character. | -1 to 1 (0) |
| FOLD THRESHOLD | Wavefolder: the level where the wave is folded back. Lower = more folds. | 0.1 to 1 (0.5) |
| HARMONIC 2 (CHEBYSHEV) | Chebyshev shape: level of the 2nd harmonic. | 0 to 1 (0.5) |
| HARMONIC 3 (CHEBYSHEV) | Chebyshev shape: level of the 3rd harmonic. | 0 to 1 (0.5) |
| HARMONIC 4 (CHEBYSHEV) | Chebyshev shape: level of the 4th harmonic. | 0 to 1 (0.3) |
| HARMONIC 5 (CHEBYSHEV) | Chebyshev shape: level of the 5th harmonic. | 0 to 1 (0.2) |
| HARMONIC 6 (CHEBYSHEV) | Chebyshev shape: level of the 6th harmonic. | 0 to 1 (0.1) |
| PHASE DISTORTION | Phase-distortion shape: bends the phase of the oscillator (like a Casio CZ). More = a sharper, more resonant tone. | 0 to 1 (0.5) |
| BITS (CRUSHER) | Crusher shape: number of bits. Fewer = coarser, grittier. | 2 to 16 (8) |
| RATE DIVIDER (CRUSHER) | Crusher shape: holds every Nth sample. Higher = more aliasing, lo-fi. | 1 to 40 (4) |
OUTPUT
| Control | What it does | Range / choices (default) |
|---|---|---|
| TONE (LOW-PASS, HZ) | Darkens the result after the shaper. | 200 to 20000 (12000) |
| DRY / WET | Blend of the unshaped input and the shaped sound. | 0 to 1 (1) |
| LEVEL | Output level of the engine. | 0 to 1.5 (1) |
WAVETABLE
TABLES
| Control | What it does | Range / choices (default) |
|---|---|---|
| TABLE A | First wavetable (the main voice). | Kick body (sine to punch); Sub thump; Tom resonance; Snare shell + wires; Wood block; Metal bell; Glass; Metallic noise (hat); Noise (periodic); Soft noise; Zap sweep; Laser; Formant sweep (ah-oh-ee); Vocal ah; FM bell; FM metal; Saw stack; Pulse width morph; Organ drawbars; Plucked string; Click transient; Digital harsh; Chaos (logistic); Hollow pipe; Analog perc thunk; Band noise (mid, snare / clap body) (default: kick) |
| POSITION A | Which of the 16 waveforms of table A is playing (they morph into each other). | 0 to 1 (0) |
| SWEEP A | The position of table A starts this far away and moves to POSITION A during the hit (time: SWEEP TIME). | -1 to 1 (0.4) |
| TABLE B | Second wavetable, played together with table A. | Kick body (sine to punch); Sub thump; Tom resonance; Snare shell + wires; Wood block; Metal bell; Glass; Metallic noise (hat); Noise (periodic); Soft noise; Zap sweep; Laser; Formant sweep (ah-oh-ee); Vocal ah; FM bell; FM metal; Saw stack; Pulse width morph; Organ drawbars; Plucked string; Click transient; Digital harsh; Chaos (logistic); Hollow pipe; Analog perc thunk; Band noise (mid, snare / clap body) (default: metalhat) |
| POSITION B | Position of table B. | 0 to 1 (0.5) |
| SWEEP B | Sweep of table B's position. | -1 to 1 (0) |
| SWEEP TIME (MS) | How fast the sweeps settle. | 5 to 800 (80) |
| MIX A / B | 0 = only table A, 1 = only table B. | 0 to 1 (0.3) |
| PITCH RATIO B | Table B plays at this multiple of the pitch (2 = an octave up, 1.5 = a fifth). Non-whole ratios give metal. | 0.25 to 8 (1) |
| DETUNE B (CENTS) | Detunes B against A so they beat. | -100 to 100 (7) |
PITCH & ENVELOPE
| Control | What it does | Range / choices (default) |
|---|---|---|
| PITCH START (HZ) | Starting pitch. | 10 to 4000 (110) |
| PITCH END (HZ) | Pitch it falls to. | 10 to 4000 (55) |
| PITCH DROP (MS) | Speed of the fall. | 2 to 2000 (60) |
| ATTACK (MS) | Fade-in. | 0.3 to 400 (1) |
| DECAY (S) | Length of the sound. | 0.03 to 6 (0.5) |
| ENVELOPE SNAP | Bends the decay: 0 = natural fade, 1 = fast drop with a short tail. | 0 to 1 (0.3) |
SOUND SHAPING
| Control | What it does | Range / choices (default) |
|---|---|---|
| HARD SYNC | Resets the tables several times per cycle: a tearing, screaming overtone sweep when moved. | 1 to 8 (1) |
| WARP (PHASE BEND) | Bends the playback phase: pushes the sound towards pinched, nasal or hollow. | 0 to 1 (0) |
| FM (B INTO A) | Table B modulates the phase of table A: bells and metal. | 0 to 1 (0) |
| UNISON VOICES | Several detuned copies for a wide, thick sound. | 1 to 5 (1) |
| UNISON DETUNE (CENTS) | How far the unison copies are detuned. | 0 to 60 (12) |
| SUB OSCILLATOR | A sine one octave below. | 0 to 1 (0) |
| NOISE | Adds filtered noise. | 0 to 1 (0) |
| BIT DEPTH | Lowers the bit depth: crunch. | 2 to 16 (16) |
| LEVEL | Output level of the engine. | 0 to 1.5 (1) |
| TONE (LOW-PASS, HZ) | Darkens the sound after the tables (20000 = open). | 200 to 20000 (20000) |
| HIGH-PASS (HZ) | Removes the low end (10 = off). | 10 to 2000 (10) |
VOCODER (REVERSE ADDITIVE)
CARRIER (THE SOUND THAT IS SHAPED)
| Control | What it does | Range / choices (default) |
|---|---|---|
| CARRIER | The sound that goes through the bands. Saw / pulse follow the CHORD strip and the PITCH below; the others use the sound of that engine, the sampler or the looper. | Saw (plays the chord); Pulse (plays the chord); White noise; Pink noise; Sampler (the pad's sample); Subtractive synth; Additive synth; Physical model; Wavetable; Looper tool (loop slicer slot); Waveshaper (default: saw) |
| CARRIER PITCH (HZ) | Pitch of the saw / pulse carrier. | 40 to 2000 (110) |
| PULSE WIDTH | Width of the pulse carrier. | 0.05 to 0.95 (0.5) |
| LOOP A SHORT CARRIER | If the carrier (a sample or engine sound) is shorter than the longest band, repeat it. | on / off (default on) |
BANDS (FROM THE ADDITIVE TAB)
| Control | What it does | Range / choices (default) |
|---|---|---|
| MODE | Vocoder: only the bands are heard, opened by the partials. EQ sculpt: the carrier is heard in full and the partials lift (up) or cut (down) their band. | Vocoder (band-pass bank); EQ sculpt (the bands boost and cut the carrier) (default: vocoder) |
| NUMBER OF BANDS | How many of the additive synth's partials are used (the strongest first, at most 18). | 2 to 18 (18) |
| BAND WIDTH (Q) | Narrow bands (high Q) ring and sing; wide bands blur into one colour. | 0.7 to 40 (8) |
| EQ RANGE (DB) | EQ sculpt: how many dB a band can boost or cut. | 3 to 48 (24) |
| FORMANT SHIFT (ST) | Moves every band up or down in pitch, like changing the size of the mouth. | -24 to 24 (0) |
| BAND STRETCH | Spreads (above 1) or squeezes (below 1) the bands around their middle. | 0.5 to 2 (1) |
| LEVEL SLOPE | Tilts the level of the bands: positive = brighter, negative = darker. | -1 to 1 (0) |
| DECAY SCALE | Multiplies the decay of every band (the additive synth's own decays). | 0.1 to 6 (1) |
| BAND ATTACK (MS) | How fast the bands open. | 0.5 to 120 (2) |
| CARRIER BLEED | A little of the unfiltered carrier (vocoder mode) for consonants and air. | 0 to 1 (0.1) |
| BURSTS (CLAP) | Number of rapid hits before the main one, like the hands of a clap. 1 = a single swell. | 1 to 8 (1) |
| BURST GAP (MS) | Time between the bursts. | 3 to 60 (10) |
CUTS & OUTPUT
| Control | What it does | Range / choices (default) |
|---|---|---|
| HIGH-PASS (HZ) | Cuts the bottom before the bands (30 Hz by default). | 20 to 400 (30) |
| LOW-PASS (HZ) | Cuts the top before the bands (18 kHz by default). | 4000 to 20000 (18000) |
| LEVEL | Output level of the engine. | 0 to 1.5 (1) |
MIDI IN
| Control | What it does | Range / choices (default) |
|---|---|---|
| MIDI IN PLAYS THIS PAD | While this pad is selected with the vocoder open, MIDI notes play it: the note sets the carrier pitch (relative to the ROOT NOTE) and the chord of the CHORD strip is built on it. | on / off (default off) |
| ROOT NOTE | The MIDI note that plays the pitch set above. | C2; C3; C4 (middle C); C5 (default: 60) |
CHORD strip
| Control | What it does | Range |
|---|---|---|
| CHORD | Plays the pad as a chord with every engine. | on / off |
| Note 1-4 | Semitones above the pad's pitch for each chord note, or off. | -12 to +24 st, off |
| TRANSPOSE | Shifts the whole pad and chord. | -24 to +24 st |
06 - Added controls (v11 checklist)
Controls added or relabelled in version 11 with the text shown on screen. Their behaviour is described in part 4.
| On screen | What it does |
|---|---|
| 4 AUX FX BAYS | Shows the 2 shared AUX FX bays (a reverb and a delay) that the pad sends feed. |
| Plays the pad as a chord: up to 4 notes at once, each shifted by the semitones s | Plays the pad as a chord: up to 4 notes at once, each shifted by the semitones set here, all moved by TRANSPOSE. Works with every engine. |
| Note 1 of the chord in semitones above the pad's pitch (off = silent). | Note 1 of the chord in semitones above the pad's pitch (off = silent). |
| Note 2 of the chord in semitones above the pad's pitch (off = silent). | Note 2 of the chord in semitones above the pad's pitch (off = silent). |
| Note 3 of the chord in semitones above the pad's pitch (off = silent). | Note 3 of the chord in semitones above the pad's pitch (off = silent). |
| Note 4 of the chord in semitones above the pad's pitch (off = silent). | Note 4 of the chord in semitones above the pad's pitch (off = silent). |
| Shifts the whole pad (and the chord) up or down in semitones: the main key. | Shifts the whole pad (and the chord) up or down in semitones: the main key. |
| Also print the pad's FX sends (reverb, delay, FX 3, FX 4) into the sample when y | Also print the pad's FX sends (reverb, delay, FX 3, FX 4) into the sample when you render. |
| → EDIT THE BANDS (ADDITIVE TAB) | Opens the ADDITIVE tab: its partials are the bands of the vocoder. |
| Restart the LFO at the start of every hit, so each hit is the same. | Restart the LFO at the start of every hit, so each hit is the same. |
| Unipolar: the LFO only goes up from the current value (0 to +1) instead of both | Unipolar: the LFO only goes up from the current value (0 to +1) instead of both ways. |
| SEND 3 (DRV) | How much of this pad is sent to AUX bay 3, 0 (none) to 1. The effect type of the bay is set in the AUX FX BAYS tab. |
| SEND 4 (DYN) | How much of this pad is sent to AUX bay 4, 0 (none) to 1. The effect type of the bay is set in the AUX FX BAYS tab. |
| AUX 3 | Edit AUX FX bay 3: its effect, parameters and return level appear below. Pads feed it with the SEND 3 knob. |
| AUX 4 | Edit AUX FX bay 4: its effect, parameters and return level appear below. Pads feed it with the SEND 4 knob. |
| FX 3 DRV | Aux Return 3 (Multi-Distortion). Level of this FX return in the master mix, 0 to 1. |
| FX 4 DYN | Aux Return 4 (5-Band EQ). Level of this FX return in the master mix, 0 to 1. |
| 💾 SAVE SET | Saves the whole loop set as a .axloops file. |
| Name of this loop | Name of this loop |
| ⇣ SEQ → LOOP | Renders the active sequence into the next free loop slot (and the loop slicer). |
| ⇣⇣ ALL → LOOPS | Renders all 16 sequences into the 16 loop slots. |
| 1-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 2-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 3-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 4-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 5-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 6-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 7-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 8-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 9-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 10-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 11-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 12-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 13-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 14-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 15-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 16-empty | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| ■ STOP LOOP | Stops the playing loop on the next bar line. |
| FX 3 [KEY 7]MULTI-DISTORTION | Hold to let AUX bay 3 through (key 7); release to fade it out. Only works while TRIGGER MODE is ON. |
| Inverts bay 3 in trigger mode: the effect is audible normally and is cut while y | Inverts bay 3 in trigger mode: the effect is audible normally and is cut while you hold the pad. |
| FX 4 [KEY 8]5-BAND EQ | Hold to let AUX bay 4 through (key 8); release to fade it out. Only works while TRIGGER MODE is ON. |
| Inverts bay 4 in trigger mode: the effect is audible normally and is cut while y | Inverts bay 4 in trigger mode: the effect is audible normally and is cut while you hold the pad. |
07 - Version 11.3: two loopers, storage folder, render sequence, DJ / LOOP
This part describes what was added after part 4. It replaces part 4's PADS | LOOPS switch: loop playing is now the DJ / LOOP mode.
1. The three sections of the app
The three big buttons at the left of the top bar choose the section. The app opens in PERFORM (the pads, with the kit built in the background).
| Section (top bar) | What it is for |
|---|---|
| EDIT (F9) | Editing sounds and making kits: sampler, subtractive, additive, physical model, waveshaper, wavetable, vocoder, LFOs, final filters, 4 FX, rendering to the sampler, loop set tools. No sequencer. |
| PERFORM (F9) | Jamming: the 16 pads and the two loopers (A and B, on / off switches next to them), the sequencer (patterns, bars, the 16 steps; the TOOLS button opens the track tools, the value lane and the 18 rows), the pad sound basics. Every pad plays its rendered sample. |
| DJ / LOOP (F10) | The pads and the sequencer are off. Two turntables (decks A and B) play the loops (or whole songs) in the middle list; play buttons, the scratch tools, EQ and level under each deck, the crossfader between them. EXPORT PACK makes sample packs and kits from here. |
The workflow: build pads and kits in EDIT; play and sequence in PERFORM (RENDER SEQUENCE turns the sequences into loops); DJ the loops on the two decks in DJ / LOOP, and export packs.
2. Two loopers (A and B)
The loop tool exists twice. Looper A is sequencer row 17, Looper B is row 18. Each has its own 8 loop slots, level, pan, FX sends and on / off switch, and each can hold a short loop or a whole song.
- Looper pads: two pads, the same size as the drum pads, under the 4x4 matrix: LP A and LP B. Next to each pad is its LOOP A: ON / LOOP B: ON switch (off frees its CPU and silences its sequencer row). Tap a pad to select that looper (the loop rack then edits it) and play it. While the sequencer is playing, the loop starts on the next bar line (the pad pulses until it does); with the sequencer stopped it starts at once.
- 8-SLOT LOOP SLICER tab: the buttons LOOPER A | LOOPER B at the top choose which looper the rack, the waveform and the PAD CONTROLS (volume, pan, sends, final filter) edit.
- THIS SLOT IS A loop / song: Loop follows the project tempo (time-stretched). Song plays once as it is, with no stretching: load a whole mp3 / wav / aiff and use the looper as a player.
- RENDER AT TEMPO: stretches the loop to the project tempo once, offline, and keeps the result as a plain sample: afterwards it plays with no stretching and no CPU cost. UNDO RENDER brings the original back.
- Sequencer row 18 is the extra row for Looper B (EXPAND 18 ROWS shows all rows). Patterns made before the second looper simply have an empty row 18.
3. Tempo syncs: straight, dotted, triplet, bars
Every tempo-synced time (the delay / modulation TEMPO SYNC of the FX bays, the LFO TEMPO SYNC) offers 1/2, 1/4, 1/8, 1/16, 1/32 as straight, dotted and triplet note values (written 1/8 dotted, 1/8 triplet), plus 1/64, 1/128 (FX) and 1, 2 and 4 bars. A dotted note lasts one and a half times, a triplet two thirds, of the straight note.
4. Editing while you play
- The page you are working on stays open when you press a pad: the 4 AUX FX BAYS page, the LOOP SET page and so on only hand over to the pad editor when you were on the pad editor itself (or the loop rack). So you can edit an effect and keep triggering pads.
- The RENDER TO SAMPLER and RENDER KIT buttons are repeated at the top of every synth page (subtractive, additive, physical model, waveshaper, wavetable, vocoder), with the state "SAMPLE = THIS ENGINE" / "EDITED SINCE RENDER". (The old "BAKE PAD WAV" item of the FILE menu is a separate command.)
- The CHORD (VOCODER) strip (4 notes + transpose) is part of the VOCODER page: the chord belongs to the vocoder. (Factory pads that were built with a chord on another engine keep playing it.)
5. Sequencer toolbar
The toolbar at the top of the sequencer (patterns, bars, STYLE and RANDOM PATTERN) stays in view while the track rows scroll underneath. EXPAND 18 ROWS shows the 16 pads and the two loopers.
6. RENDER SEQUENCE
The RENDER SEQUENCE... button (in the sequencer area in PERFORM) opens a window:
- Render the active sequence as a loop, into the loop you choose in a drop-down of the 16 loops (a loop that has a sound is replaced).
- Render all sequences to all loops: discards all 16 loops and replaces them with the 16 sequences rendered in order (empty sequences leave their loop empty). Asks first.
- Render to file: the active sequence, or all of them (one file each), as a WAV file (16 or 24 bit), saved into AXIOM Data / renders, a folder you pick, or downloaded. MP3 appears in the list only when an MP3 encoder (lamejs) is added to the app.
The renders use the pads' samples and the FX 1 / FX 2 effects as PERFORM plays them; the tail of the last bar is folded onto the start, so a loop repeats without a gap. The loops are what DJ / LOOP plays.
7. RECORD MIX
FILE > RECORD MIX records everything you hear (pads, loopers, the DJ decks, effects) as a stereo WAV until you click it again (or the red bar). The file is saved in AXIOM Data / renders and also offered as a download.
8. Storage: the app comes without samples
The app folder holds no audio. The factory kits are rendered from their synth settings the first time you use them (about a second per kit) and kept; the next time the kit loads instantly. A kit whose settings change is rebuilt automatically.
The first time the app starts it asks where to keep its files:
- Choose a folder: a folder called AXIOM Data is made in the folder you pick (Chrome / Edge). It contains
kits(the rendered kits),loops,loopsets,sequences,midi(copies of MIDI files you import),renders(rendered sequences, mix recordings) andprojects. Copy it together with the app to a thumb drive. - Use browser storage: nothing to pick; the files live inside this browser.
- Ask me later: browser storage now; ask again from SETTINGS.
SETTINGS > STORAGE FOLDER... changes it later. Move the existing files copies what is there into the new place; switched off, the new place starts empty and the kits are rebuilt there when you use them. After a restart the browser may ask for one click to let the app use the folder again (a button appears: CLICK TO RECONNECT THE AXIOM DATA FOLDER).
9. DJ / LOOP mode
Open it with the DJ / LOOP button (third of the big mode buttons, top left) or F10. The pads and the sequencer switch off (the clock only keeps time) and the DJ rig opens: two turntables (deck A left, deck B right, which are the two loopers), the list of the 16 loops between them, and under each deck its 3-band EQ with kill buttons and its level fader with a meter. The crossfader is under the loop list, between the decks. The 16 loops are the ones you made with RENDER SEQUENCE (or loaded from files); loops that are not loops (songs) work too. Only one loop plays on a deck at a time: starting or loading another one replaces it, and a loop started by a sequencer row or a looper pad takes the deck over.
Loading a deck. Click the deck's platter (or its name) to select the deck, then click a loop pad: that loop loads into the selected deck. The pad shows which deck holds it (A / B). Selecting a deck does not play it: the deck's own PLAY button (also MIDI learnable) starts it, so a deck can be chosen from a controller without being triggered. LOAD opens an audio file (wav, mp3, aiff...) straight into the deck as a song; drop a file on a deck for the same. With the box STORE FILES IN A PAD ticked, a loaded file is also kept in a free loop pad.
While the clock runs (the transport is playing) a started or loaded loop waits for the next bar line. With the transport stopped it starts at once.
| Deck control | What it does |
|---|---|
| Platter | Spins with the speed. Drag it with the mouse to scratch or move the record (it follows your hand like a record under the hand). |
| PLAY / CUE | Play / pause; CUE sets (when stopped) or jumps back to (when playing) the cue point. |
| SYNC | Locks the deck to the project tempo (speed = project BPM / the loop's BPM). Loops are sync-locked by default, songs are not. |
| KEY LOCK | Keeps the pitch while the speed changes (a stretched copy is built in the background, for items up to 150 s). |
| LOOP | Loop on / off. Songs load with loop off. LEN 1 2 4 8 repeats the last 1, 2, 4 or 8 bars. |
| Pitch fader and range | +-8% or +-16%; nudge - / + bends the speed briefly. |
| BPM, TAP | The loop's BPM (editable; TAP sets it by tapping). TEMPO makes the project tempo equal to this deck's speed. |
| Waveform | Shows the whole item with the playhead and the cue mark; click to jump. |
| REV / FWD | The scratch buttons: FWD moves the record forward like a person scratching it (a sharp attack, a hold, a halt); REV does the same backwards. |
| Gear button | The scratch tool (below). |
EQ and levels (under each deck). HI / MID / LOW knobs with a KILL button each (a true cut), a level fader and a level meter. The crossfader blends the decks; the CURVE in the top bar chooses full (both open in the middle), constant power or hard cut. The EQ and crossfader also shape the loops the sequencer triggers on rows 17 and 18.
Scratch tool. The gear button opens a pop-up with ATTACK, SUSTAIN (the length of the hold), DECAY, RELEASE and DISTANCE, with a drawing of the stroke. The setting stays until you change it. Three preset buttons hold settings: a click recalls one, holding it about a second saves the current setting into it (both scratch buttons use it). A SLIP option keeps the groove in time under the scratch. To scratch with a controller, map a knob or wheel to the platter (JOG: absolute or relative encoder) or map the REV / FWD buttons.
MIDI. Every control of the rig (play, cue, sync, loop pads, EQ, kill, level, crossfader, pitch, scratch buttons, jog) can be learned with MIDI LEARN like any other control; the mappings are kept with the others.
Keyboard (DJ / LOOP only): Q A Z W S control deck A (play, cue, sync, scratch forward, scratch reverse), P L M O K deck B; digits 1-9 and 0 load loops 1-10 into the selected deck; Tab switches the selected deck; [ and ] move the crossfader.
Decks in PERFORM. In pad mode a small DECK A / DECK B button sits next to each looper's switch. It opens a small window with play / stop, the loop list, the three EQ sliders with kill buttons, the level and the crossfader, so the loops can be mixed while you play and sequence.
Limits: the EQ crossovers are steep (24 dB/octave), so a kill leaves about -32 dB right next to a crossover frequency; the tempo of a song is detected roughly (use TAP); the loop length buttons assume 4/4; big songs are not kept in the loop set after a restart.
DJ rig: small controls
| Control | What it does |
|---|---|
| Master BPM (top of the rig) | The project tempo (the master clock). Type a value or use TAP. Synced decks follow it. |
| CURVE | Crossfader curve: FULL keeps both decks open in the middle, CONSTANT POWER keeps the loudness even, HARD CUT closes a deck at once. |
| STORE FILES IN A PAD | When ticked, a file loaded into a deck is also kept in a free loop pad of the loop set. |
| BPM field of a deck | The BPM of the item in deck A or B (type to correct it). SYNC uses it. |
| SLIP (scratch tool) | Slip: the record keeps its place in time under the scratch, so the groove is not lost. |
| Move the existing files (storage dialog) | Copies the files saved now into the new place. Off: the new place starts empty and the kits are rebuilt there when used. |
| BPM field of deck A | The BPM of the item in deck A (type to correct it). SYNC uses it. |
| BPM field of deck B | The BPM of the item in deck B (type to correct it). SYNC uses it. |
10. EXPORT PACK (the final window)
EXPORT PACK... (top bar of the DJ / LOOP rig, also FILE > EXPORT SAMPLE PACK) makes sample packs from what you built: the 16 loops (one WAV each, with the BPM in the name), the 16 sounds of the kit in the pads (one-shot WAV files and a kit.json with names, levels and pan) and every kit built so far (each factory kit you have opened once). Choose WAV 16 or 24 bit and a ZIP file (download, also kept in AXIOM Data / renders / packs), files in AXIOM Data / renders / packs, or files in a folder you pick.
11. Stereo
Factory kits get a natural stereo image: toms, hats, cymbals, rim and percussion are panned across the field as on a drum kit (kick, snare and bass stay in the middle) and the noisy or metallic sounds (hats, cymbals, claps, rims, effects) are widened with a short, high-passed side signal (the low end stays mono). Loops rendered from a sequence therefore have a real stereo picture. The pad STEREO PAN and the looper PAN work as before.
12. The PERFORM layout
The pads stay big: the sequencer shows the pattern buttons, the bar buttons, STYLE and RANDOM PATTERN, and the 16 steps. The TOOLS button opens the rest (pattern copy / paste / dupe / clear, the track tools, the value lane and EXPAND 18 ROWS). The two looper pads with their on / off switches and DECK buttons are a slim row under the pads.
| Control | What it does |
|---|---|
| TOOLS (sequencer) | Shows or hides the track tools (random, velocity ramp, shift, reverse ... ), the value lane, pattern copy / paste / dupe / clear and the full 18-row grid. Closed, the pads stay big. |
| EXPORT PACK... | Makes sample packs from the loops and kit sounds: a ZIP file, files in the AXIOM Data folder, or files in a folder you pick. |
13. Decks, the transport and CUE
PLAY on a deck starts the main transport when everything has stopped, so one press starts the loops and the clock together. The switch STOP CLOCK WHEN DECKS STOP (top bar of the DJ rig, on by default) makes the transport stop again when the last deck stops and nothing else is playing; switched off, the transport keeps running. A transport you started yourself in PERFORM is never stopped by a deck.
CUE: while a deck plays, CUE stops it and returns to the cue point. Stopped away from the cue point, CUE sets the cue point here. Stopped on the cue point, CUE plays a preview for as long as you hold it (the deck goes back on release); press PLAY while holding CUE to keep playing.
| Control | What it does |
|---|---|
| STOP CLOCK WHEN DECKS STOP | On: the main transport stops when the last deck stops and nothing else plays (and PLAY on a deck starts it). Off: the transport keeps running. |
14. Compatibility: Mac, Windows, phone
- Chrome, Edge, Brave (Windows, macOS, Linux): everything works, including Web MIDI (macOS uses CoreMIDI: USB class-compliant devices and network MIDI show up), the audio output choice and the storage folder. This was checked by reading the code, it has not been run on a Mac here.
- Safari (macOS, iOS) and every iPhone browser: sound and the whole app work; there is no Web MIDI, no folder picker and no output choice (Apple does not offer them). Firefox: no Web MIDI.
- Android, Chrome: sound, touch and USB MIDI (with an OTG cable) work; the storage folder is not offered (the browser storage is used).
- Web MIDI needs a secure address: a file, localhost or an https:// address.
- macOS keys: F9 / F10 belong to Mission Control. Use Alt+1 EDIT, Alt+2 PERFORM, Alt+3 DJ / LOOP, Alt+4 COMPACT / FULL.
- Sound card: SETTINGS > SOUND CARD > SAMPLE RATE (AUTO follows the card; 44.1 / 48 / 88.2 / 96 kHz can be forced, reload to apply). SETTINGS > COMPATIBILITY lists what the browser you use lacks.
- UI SIZE (SETTINGS > DISPLAY): on large monitors the whole unit, panels, pads and editing windows, grows together (AUTO), or you fix 100 - 250 %.
| Control | What it does |
|---|---|
| SAMPLE RATE (settings) | The sample rate of the audio engine. AUTO follows the sound card; a fixed rate is used after a reload. |
| UI SIZE (settings) | How big the whole unit is drawn. AUTO grows with the window on large monitors; or fix it at 100 - 250 %. |
15. COMPACT (phone) layout
On a phone, or a small or touch window, the app opens in the COMPACT layout; the COMPACT button next to the mode buttons (and FULL in the compact top bar, and Alt+4) switches on any device. Top: the menu, EDIT | PERFORM | DJ. Below: the page tabs, and 16 big pads that become what the tab says:
- KIT: the 16 drum pads (touch higher on a pad = louder). EDIT: also selects the pad for the sound editor.
- SEQ: the 16 steps of the track (left to right, then the next row down) and the bar; arrows pick the track (including LOOP A / B) and the bar, M / S mute and solo.
- PATTERNS (PERFORM): the 16 pattern presets: tap = next bar, double tap = at once. LOOPS (DJ): the 16 loops: tap loads the selected deck, hold loads the other deck.
- USER: 4 banks (A - D) of 16 pads you set: ASSIGN (or hold a pad) opens the list of about 130 functions: transport, tempo, kit and pattern changes, any pad / step / pattern / loop, loopers, the pad sound (volume, pan, tune, filter, drive, sends), deck play / cue / sync / scratch / level / EQ / kill / crossfader and the modes. A trigger runs when pressed; a switch toggles; a + / - function moves the value in small steps with a tap and runs to its maximum or minimum while you hold it.
Under the pads: PLAY, STOP, REC, TAP, BPM - / +, the two loopers (PERFORM) or the deck buttons (DJ), and the sheet button (EDIT / MORE / MIXER) that opens the bottom sheet: SYNTH, LFO, FINAL, FX, LOOPERS, LOOP SET, TOOLS, 18 ROWS (DJ: MIXER with scratch, EQ, kill, level, pitch and crossfader, FX, LOOP SET, EXPORT). The menu holds the kit, set and style lists, project save / load, render sequence, export pack, record mix, MIDI and storage.
On a phone: serve the folder over https (or localhost) and open it in Chrome; with "Add to Home screen" / "Install app" it runs full screen and keeps working offline after the first visit.
| Control | What it does |
|---|---|
| COMPACT / FULL (mode bar) | Switches between the compact phone layout and the full desktop layout. |
16. The song layout of the 16 patterns (build 11.6)
Every sequence style is now one song of 16 parts, in this order, colour coded on the pattern buttons:
| Buttons | Part | Colour |
|---|---|---|
| 1-4 | Verse 1 - 4 (layered: each verse adds to the one before) | red |
| 5-7 | Chorus 1 - 3 (layered, Chorus 3 is the peak) | orange |
| 8 | Bridge (contrast: space, or a build-up) | orange-yellow |
| 9-10 | Long Intro (4 bars, fill based) and Short Intro (2 bars) | bright yellow |
| 11-12 | Fill 1 and Fill 2 | bright yellow |
| 13-16 | Percussion loops 1 - 4 (no kick) | white |
The percussion loops are made to be layered by the two DJ decks over the verse and chorus patterns: in DJ / LOOP mode render them (RENDER SEQUENCE > RENDER ALL) and load them onto a deck while the other deck plays a verse or chorus loop.
FOLLOW. After an intro, fill or the bridge has played through once, the sequencer goes on to the part set for it: by default Long Intro and Short Intro go to Verse 1, Fill 1 to Verse 2, Fill 2 to Verse 3 and the Bridge to Verse 4. The FOLLOW button next to the pattern buttons switches this on or off (off: the part loops until you choose another). GOES TO... opens a small panel where each of the five parts gets its own target (any verse, chorus, bridge, intro or fill). CHAIN plays the song order Long Intro, V1, V2, C1, V3, V4, C2, Bridge, C3 and starts again at Verse 1.
17. Velocity and the pads
The sequencer steps carry a velocity (1-127) and the patterns use it: accents, soft off-beat hats, ghost notes, rising rolls. Each pad can compensate: VELOCITY RESPONSE (PAD CONTROLS) sets how much the velocity matters (100% = full, 0% = every hit equally loud) and VELOCITY CURVE lifts the soft hits (positive) or makes the pad more dynamic (negative). Factory kits give hats, rim and small percussion a slight lift so soft 8th / 16th notes stay audible.
18. Main transport and the decks
Stopping the main transport (STOP or PAUSE) now stops everything: the loopers, the loop set and both DJ decks. The first time you enter DJ / LOOP mode with empty decks, the app renders the Long Intro and Percussion Loop 1 of the current kit and style and loads them on deck A (intro) and deck B (percussion loop), so there is something to play at once.
| Control | What it does |
|---|---|
| FOLLOW | After an intro, fill or the bridge has played through once, go on to the part set for it (a verse by default). Click to switch on or off. |
| GOES TO... | Opens the panel where you choose where each intro, fill and the bridge goes after it has played through once. |
| VELOCITY RESPONSE | How much the played velocity changes this pad. 100% = full dynamics, 0% = every hit the same level. |
| VELOCITY CURVE | Shapes how velocity maps to loudness for this pad: positive lifts soft hits, negative is more dynamic. |
19. The kits and the pad order (build 11.10)
Every kit lists its 16 pads in the role order below (the same order as the pattern data, so every pattern row plays the right sound in every kit). A pad controller or keyboard plays pad 1 on C1 (note 36), pad 2 on C#1 ... pad 16 on D#2 (note 51); that is the order of the pads, not a General MIDI drum map (section 21 explains how GM notes reach the right pads).
| Pad | Note | Sound | Pad | Note | Sound |
|---|---|---|---|---|---|
| 1 | C1 (36) | kick | 9 | G#1 (44) | low tom |
| 2 | C#1 (37) | sub kick | 10 | A1 (45) | mid tom |
| 3 | D1 (38) | snare | 11 | A#1 (46) | high tom |
| 4 | D#1 (39) | snare 2 | 12 | B1 (47) | crash |
| 5 | E1 (40) | clap | 13 | C2 (48) | ride |
| 6 | F1 (41) | rim | 14 | C#2 (49) | percussion 1 |
| 7 | F#1 (42) | closed hat | 15 | D2 (50) | percussion 2 |
| 8 | G1 (43) | open hat | 16 | D#2 (51) | one effect hit |
The genre kits were redesigned with the physical-model, waveshaper, wavetable and vocoder engines, and all sounds that are played as 8th or 16th notes (closed and open hat, rim, percussion, ride, crash, sub kick, effect hits) are short and light: closed hats about 50-80 ms, open hats under 300 ms, crashes under 800 ms. Projects saved by builds 11.8 - 11.10 in the short-lived General MIDI pad order are converted back to this order when they are opened.
20. The sample strip and tempo drag (build 11.6)
In PERFORM the pad window shows the sample strip of the selected pad: the waveform of its sample with one rubber-band tool. The two vertical handles set where the sample starts and stops; the two round points on the band set the fade in and the fade out (the band rises from the start to the left point, runs flat, and falls from the right point to the stop). The read-out under the band shows the start and stop in seconds and the fades in milliseconds. The settings are saved with the pad and used at every hit. The strip only repaints while you move a handle, and the waveform is calculated once per sample, so it costs almost no CPU.
The tempo can be dragged: press the big BPM number and move up or down (one BPM per 4 pixels, hold Shift for steps of 0.1). The number box and its arrows stay.
| Control | What it does |
|---|---|
| Sample strip (PERFORM) | The sample of the selected pad. Drag the two vertical handles for where it starts and stops; drag the two round points for the fade in and the fade out. |
| BPM number (drag) | Drag the big tempo number up or down to change the tempo; Shift = fine steps. |
21. MIDI note layout and General MIDI drums (build 11.7)
The 16 pads start on a C: the pad controller profile "General MIDI drum layout" is the default, pad 1 = C1 = note 36, pad 2 = C#1, pad 3 = D1 ... pad 16 = D#2 (note 51), exactly the notes of a General MIDI drum kit. (The note numbers use C3 = 60; Ableton shows them one octave lower.) The ROOT MIDI NOTE of the playable pads and the sequencer steps (steps 1-16 start on E2 = 52, above the pads) can be shifted by octaves in MIDI SETUP; -OCT / +OCT moves the pads up to C2 = 48, etc.
General MIDI drum map (channel 10) as AXIOM reads and writes it. The pad number is the pad that carries that drum role (section 19):
| GM note | Name | AXIOM pad |
|---|---|---|
| 36 (C1) | Bass drum 1 | 1 kick |
| 35 (B0) | Acoustic bass drum (the B right below the C kick: many kits put the sub kick here) | 2 sub kick |
| 37 (C#1) | Side stick | 6 rim |
| 38 (D1) | Acoustic snare | 3 snare |
| 39 (D#1) | Hand clap | 5 clap |
| 40 (E1) | Electric snare | 4 snare 2 |
| 41, 43 (F1, G1) | Floor toms | 9 low tom |
| 42, 44 (F#1, G#1) | Closed / pedal hi-hat | 7 closed hat |
| 45, 47 (A1, B1) | Low, low-mid tom | 10 mid tom |
| 46 (A#1) | Open hi-hat | 8 open hat |
| 48, 50 (C2, D2) | Hi-mid, high tom | 11 high tom |
| 49, 57 (C#2, A2) | Crash cymbals | 12 crash |
| 51, 53, 59 (D#2, F2, B2) | Ride, ride bell | 13 ride |
| 54, 69, 70, 73, 74, 80-83 | Tambourine, cabasa, maracas, guiro, triangle, shaker, jingle bell | 15 percussion 2 |
| 56, 60-68, 75-77 | Cowbell, bongos, congas, timbales, agogo, claves, wood blocks | 14 percussion 1 |
| 52, 55, 58, 71, 72, 78, 79 | China, splash, vibraslap, whistles, cuica | 16 effect |
Playing the pad grid from a controller (NOTE MAP "pads in order") puts pad n on note 35 + n, and note 35 (B0) plays the sub kick pad as well; the table above is used by import, export, audition, network notes and the NOTE MAP "General MIDI drums". On export every pad writes the note that means what the pad is (kick 36, sub kick 35, snare 38, snare 2 40, clap 39, rim 37, closed hat 42, open hat 46, low tom 41, mid tom 45, high tom 48, crash 49, ride 51, percussion 1 cowbell 56, percussion 2 tambourine 54, effect splash 55), so a General MIDI module plays the right instrument.
MIDI import (FILE > MIDI IMPORT) uses this table to route a drum part onto the pad roles (you can still change every note in the routing matrix; AUTO-DETECT GM resets it). MIDI export writes each pad as its GM note (the sub kick as 35); the two loopers are written as notes 84 and 85. The same table is used for audition and for notes received over the network sync.
NOTE MAP (MIDI SETUP): "Pads in order from C" (default) plays pad 1, 2, 3 ... from note 36 upwards; "General MIDI drums" plays the pad with the same drum ROLE as the GM note, so a GM drum keyboard or a GM drum track plays kick, snare, toms and hats on the right pads whatever the layout of your controller.
| Control | What it does |
|---|---|
| NOTE MAP (MIDI setup) | PADS IN ORDER: notes 36, 37, 38 ... play pads 1, 2, 3 ... (pad 1 = C). GENERAL MIDI: a drum note plays the pad with that drum role. |
22. NETWORK SYNC (build 11.7)
The SYNC button in the top bar opens the sync window. It connects AXIOM with other AXIOM windows and with any other synth, sampler or sequencer that uses the sync library (docs/SYNC_PROTOCOL.md), so that they play together.
- Windows of the same browser on the same computer need nothing else: switch SYNC on in each and give them the same ROOM name.
- Other devices (laptops, tablets, phones on the same Wi-Fi / network) connect through the AXIOM server: run
python axiom_server.py(macOS / Linux:python3), open the printed address on every device, tick OTHER DEVICES (network) and use the same ROOM. The server only forwards messages; it stores nothing. - Roles. MASTER: this app sets tempo, swing, play / stop and the KEY / SCALE / CHORD for the others. SLAVE: follows the master: tempo and swing at once, start / stop, and the bar position (it starts on the master's next bar line and is kept locked, the window shows the phase error). PEER: only shares notes. The boxes under "A SLAVE FOLLOWS" switch each kind of data on or off.
- Notes. SEND my notes sends every pad hit as a General MIDI drum note; PLAY notes from the others plays incoming drum notes on the pad with that role.
- RESET SYNC forgets the others, measures the clock again and lets a slave lock onto the master's next bar line. COPY LINK (SLAVE) copies a link that opens this app as a slave in the same room; NEW WINDOW AS SLAVE opens one.
- Pressing PLAY on a slave while the master plays waits for the master's next bar line. Stopping a slave by hand keeps it stopped until the master stops and starts again.
- Ableton Link cannot run inside a web page. To follow Ableton Live or a hardware master use SETTINGS > MIDI CLOCK SYNC (FOLLOW CLOCK).
| Control | What it does |
|---|---|
| SYNC (top bar) | Opens the network sync window: roles, room, devices, what a slave follows, notes, key / scale / chord and the peer list. |
| SYNC: ON / OFF (window) | Switches the sync on or off. |
| RESET SYNC | Forgets the others, measures the clock again and lets a slave lock onto the master's next bar line. |
The pad notes always win: a MIDI-learned control that sits on one of the pad notes (36-51, and 35) no longer takes the pad over. The pad plays, the learned mapping is ignored, and the app says which mapping it was (a message when the app starts and in the MIDI monitor). Learn that control again on another note, or use RESET DEFAULT MIDI in MIDI SETUP to clear all learned mappings.
23. Reverb and delay (build 11.9)
FX 1 is the reverb and FX 2 the delay, on both the EDIT and the PERFORM side. They were rebuilt as real studio effects in one light audio-worklet node each (a few percent of one processor core: the old low-load reverb is still in the list as "Light Room"). Moving a knob changes the sound at once and never cuts the tail. They are wet-only returns: the pad SEND (SEND 1 REV / SEND 2 DLY in PAD CONTROLS) sets how much of the pad goes in, the bay's RETURN LEVEL how much comes back.
Reverbs: Plate (default), Studio Hall, Chamber, Cathedral (each is a starting character; every control stays yours): PRE-DELAY, SIZE, DECAY (0.2 - 15 s), DAMPING / HIGH CUT, LOW CUT, DIFFUSION, MODULATION, STEREO WIDTH, EARLY REFLECTIONS. Delays: Stereo Delay (default), Ping-Pong+, Tape Echo: TIME (or TEMPO SYNC), RIGHT TIME (ratio to the left), FEEDBACK, PING-PONG, LOW CUT and HIGH CUT inside the repeats, WOBBLE and WOBBLE RATE, DRIVE (saturation) and STEREO WIDTH; changing the time glides like tape. Where the browser has no AudioWorklet (a page opened over plain http from another device) the older node-based reverb and delay play instead.
Effects that seemed to stick. Two things could silence an effect by themselves and are fixed: (1) the FX trigger gate (TRIGGER MODE on the EDIT side's aux tab) stays closed until a trigger pad / key 5-8 is held, and it was saved with the project and kept in PERFORM, where it cannot be seen: in PERFORM and DJ / LOOP the effects now always pass and the trigger mode only exists on the EDIT side (it is switched back on when you return to EDIT); keys 5-8 no longer fire the FX triggers in PERFORM. (2) The CPU auto-mute switched the reverb out for 8 seconds when the computer stalled: it is now off unless you tick SETTINGS > CPU > FX AUTO-MUTE ON OVERLOAD. A send that is turned up now always connects its effect at once.
| Control | What it does |
|---|---|
| FX AUTO-MUTE ON OVERLOAD (settings) | Off by default. On: when the computer keeps falling behind, the reverb is switched out for 8 seconds. Only for slow computers. |
24. DJ pads (build 11.9)
In DJ / LOOP mode there are 16 DJ pads: two rows of four under each deck (deck A = pads 1-8, deck B = pads 9-16), looking like the regular pads, with their pad key in the corner. They are a separate set of sample pads for effects and shouts: air horn, siren, laser, rewind, scratch, spin down, "hey!", "yeah!", bass drop, riser, boom, radio tuning, news sting, brass hit, crowd, boing (synthesised by the app: no sound file is shipped or downloaded). They answer to the normal pad keys (1 2 3 4 / Q W E R and A S D F / Z X C V), to MIDI notes 36-51 (pad 1 = C1), to a click or touch and to the compact layout. Your kit is not touched: its pads keep their sounds and play again as soon as you leave DJ / LOOP (the pads only play these samples while DJ / LOOP is active). A new hit of a pad cuts its previous hit; very light on the processor.
Your own sounds: right-click (or hold) a DJ pad, or open DJ PADS... in the DJ top bar: LOAD puts a sound file (wav, mp3, aiff ... up to 12 seconds) into a pad, RESET brings the built-in sound back, LOAD 16 FILES... fills pads 1-16 in file-name order. Your sounds are kept in the AXIOM Data folder (djpads/) and loaded every time.
Keys in DJ / LOOP: because the plain letter keys now play the DJ pads, the deck commands are Shift + letter: Shift+Q / A / Z / W / S = deck A play, cue, sync, scratch forward, reverse; Shift+P / L / M / O / K = deck B; Shift+1 ... 0 load loops 1-10 into the selected deck. Tab and [ ] are unchanged.
| Control | What it does |
|---|---|
| DJ PADS... (DJ top bar) | Opens the list of the 16 DJ pads: play, LOAD your own sound, RESET, LOAD 16 FILES, RESET ALL. |
| DJ pads (under each deck) | Sample pads for DJ effects. Keys 1 2 3 4 Q W E R (deck A) and A S D F Z X C V (deck B), MIDI notes 36-51. Right-click or hold to load your own sound. |
25. GRID CONTROLLER: Akai APC Key 25 and Launchpad (build 11.10)
MIDI SETUP > GRID CONTROLLER (AKAI APC / LAUNCHPAD) lights the pad grid of a controller with this app's pads, in the app's colours, and lets you play them: the idea is "hit a grid pad = activate a pattern". Supported: Akai APC Key 25 mk2 (40 RGB pads: the exact colours of the app), APC Key 25 first generation (3 colours: green / red / yellow, blinking = playing or cued; the pad layout is not verified, use LEARN FIRST PAD), Novation Launchpad X (RGB) and, experimental, the 16 pads of a Launchkey MK2 49 (on / off only). I could not test with real hardware: press LIGHT TEST first.
What lights up (tick under THIS APP PUTS ON THE GRID): PATTERNS (the 16 pattern pads, 8 x 2, in the colours of the pattern buttons: verse red, chorus orange, bridge amber, intro and fill yellow, percussion white). A pattern with notes is lit at normal level, an empty one is dim, the playing one is bright, and a pattern you just selected flashes for a moment and then stays bright; a pattern that is cued (waiting for the next bar) keeps blinking until it starts. A tap on a pad cues that pattern, a quick second tap = at the next measure. In DJ / LOOP the 16 pads are the 16 loops and a tap loads the selected deck. STEPS (optional, off by default) shows the 16 steps of the selected track and bar: lit = on, white = the playhead; a tap switches the step.
Placing the blocks. The table WHERE EACH BLOCK STARTS ON THE GRID lists every block (also those of other apps): give each its ROW (1 = top) and COL (1 = left), or order them with the arrows and press PACK IN THIS ORDER (top first), for example the drum patterns on the top two rows, the bass patterns under them, the steps below. RESET PLACES starts again. The PREVIEW shows the grid as the controller shows it (click a cell to press it, handy without a controller).
Connecting. Press CONNECT (the browser asks once for MIDI access with SysEx). The app finds the controller's grid port by name (the second USB MIDI port: Control, MIDIIN2 or MIDI 2); the controller's keyboard keeps going through the normal MIDI input, only the grid port is used here and its pads never play drum notes. DISCONNECT switches the lights off. On an Android phone (Chrome, USB OTG) Web MIDI works the same, but needs a secure page: use adb reverse tcp:8765 tcp:8765 and open http://localhost:8765, or the Chrome flag "Insecure origins treated as secure".
Several apps on one controller. The controller belongs to the one app that connected it; every other app (a bass synth, a second AXIOM) only shares its blocks and receives the pad presses. Apps with the same ROOM share, in windows of the same browser at once, between devices through OTHER DEVICES (the AXIOM server relay). If two apps both connect, the lower session id keeps the controller. Developers: docs/GRID_HANDOFF_BASS_SYNTH.md describes the protocol and the two small files to copy.
| Control | What it does |
|---|---|
| GRID ON | Switches the grid on: this app shares its blocks with the controller and with other apps in the room. |
| PATTERNS / STEPS (grid tab) | The blocks of this app that are drawn on the grid: the 16 pattern pads (default) and, optionally, the 16 steps. |
| CONNECT / DISCONNECT / LIGHT TEST / LEARN FIRST PAD | Connect the controller, release it, light every pad in turn, teach the app the bottom-left pad (first generation APC Key 25). |
| DEVICE / IN / OUT (grid tab) | Which controller and which MIDI ports; AUTO finds them. |
| ROOM / OTHER DEVICES (grid tab) | Apps with the same room share the controller; OTHER DEVICES reaches apps on other computers through the relay. |
| ROW / COL / arrows / PACK IN THIS ORDER | Where each block starts on the grid and in what order they are stacked. |
The APC Key 25 mk2 also wants its start-up message (a short introduction message the Akai protocol asks for before other messages): it is sent when you connect and can be switched off with the start-up message box.
Control index
Every operable control in the app, generated from the running app by tools/docs/gen_control_index.py (1219 controls). The same text appears as the tooltip when you hover over the control. Regenerate after changing controls.
Top bar
| Control | Type | Id | What it does |
|---|---|---|---|
| input-bpm | number box | input-bpm | Project tempo, 40 to 300 BPM (decimals allowed). Presets never change it; TAP, MATCH BPM TO LOOP and incoming MIDI clock can. |
| ↺ PRESET 128 | button | btn-original-tempo | Presets never change your tempo. Press to play at the tempo and swing "Chorus 2" was saved with: 128 BPM, swing 50%. |
| ▶ PLAY | button | btn-transport-play | Starts the sequencer, or pauses it while it plays (the space bar does the same). STOP rewinds, pause keeps the position. |
| ⏹ STOP | button | btn-transport-stop | Stops the sequencer and rewinds to bar 1, step 1. |
| ⏺ REC | button | btn-transport-record | Arms live recording: pads you hit (mouse, keys or MIDI) while the sequencer plays are written into the current pattern. Starts playback if stopped; refused while the pattern is locked. |
| ⚙ | button | btn-record-setup | Opens the recording setup: target pattern slot, length, overdub or overwrite, quantize strength and metronome. |
| 🔔 OFF | button | btn-transport-click | Turns the audible metronome click on or off while the sequencer plays. The first beat of each bar is higher pitched. |
| TAP | button | btn-transport-tap | Tap at least twice to set the tempo from the average gap of your last 5 taps. A pause longer than 2 seconds starts the count again. |
| MASTER VOL | slider | slider-master-vol | Overall output level, 0 to 1.5. Values above 1 boost the whole mix and can clip. |
| FILE ▾ | menu | menu-file-2 | FILE menu: save and load projects, patches and songs, import MIDI files, undo or redo, and render WAV files. |
| 💾 SAVE PROJECT | button | btn-project-save | Save full project state (.axiomproject file) |
| 📂 LOAD PROJECT | button | btn-project-load | Load full project (.axiomproject file) |
| ↶ UNDO | button | btn-undo | Undo last change (Ctrl+Z / Cmd+Z) |
| ↷ REDO | button | btn-redo | Redo change (Ctrl+Shift+Z / Cmd+Shift+Z) |
| 💾 SAVE PATCH | button | btn-save-patch | Export current 16 pads and FX bays as JSON |
| 📁 SAVE SONG | button | btn-save-song | Export complete 16-sequence bank and song layout as JSON |
| 📂 LOAD | button | btn-load-state | Import patch or song JSON file |
| 🎹 MIDI IMPORT | button | btn-open-midi-import | Import General MIDI (.mid) files directly into the 16 tracks |
| ⏺ BAKE LOOP WAV | button | btn-render-loop | Render active sequencer loop to high-fidelity 16-bit PCM WAV |
| ⏺ BAKE PAD WAV | button | btn-render-pad-wav | Render selected pad voice one-shot to isolated 16-bit PCM WAV |
| ⏺ BAKE 16-PAD STRIP WAV | button | btn-render-16-strip | Render full 16-pad drum kit sequential strip (50ms gap) to WAV |
| ∿ FFT BENCHMARK | button | btn-fft-benchmark | Run Automated FFT Acoustic Comparator and Export Benchmark Report |
| ⏺ RECORD MIX | button | btn-mix-rec | Records everything you hear (pads, loopers, DJ decks, effects) as a WAV file until you click again. Saved to AXIOM Data / renders. |
| 📦 EXPORT SAMPLE PACK... | button | btn-export-pack | Makes a sample pack from your loops and kit sounds (a ZIP file or files in a folder). |
| MIDI ▾ | menu | menu-midi-2 | MIDI menu: MIDI Learn, the MIDI setup window and the MIDI input, channel and output devices. |
| 🎹 MIDI LEARN | button | btn-midi-learn | Toggle MIDI Learn Mode: Click any screen control and move hardware knob/key to bind! |
| ⚙ MIDI SETUP | button | btn-open-midi-config | Open MIDI Device Manager & MIDI Mapping Matrix |
| ↻ RESCAN | button | btn-midi-rescan | Looks for MIDI devices again. Use it after plugging in a controller. |
| MIDI IN (USB) | dropdown | select-midi-in | Hardware MIDI input whose notes and knobs play the pads and move mapped controls. |
| IN CH | dropdown | select-midi-in-channel | MIDI channel to listen on; Omni accepts every channel. Channel 10 is the General MIDI drum channel. |
| MIDI OUT | dropdown | select-midi-out | Device that receives a MIDI note for every sequencer hit, to drive external gear. Internal sends nothing out. |
| ⇄ SYNC | button | btn-sync | Network sync: tempo, start / stop, swing, key and scale shared with other windows or devices (other AXIOM windows, or any synth that uses the sync library). |
| ⚙ SETTINGS ▾ | menu | menu-settings-2 | SETTINGS menu: audio output device, CPU saving switches, voice limit, audio buffer and MIDI clock sync. |
| select-audio-output | dropdown | select-audio-output | Select Audio Output Device (Speakers, Headphones, Interface) |
| ↻ | button | btn-refresh-audio-devices | Refresh connected sound output devices |
| 🔊 TEST SOUND | button | btn-test-sound | Play instant stereo test chime to verify sound output |
| ⚡ UNMUTE | button | btn-force-audio-resume | Force un-mute or restart Web Audio engine |
| ⚡ SLOW CPU: OFF | button | btn-toggle-low-cpu | Saves CPU on slow computers: lighter graphics and engine work. While ON the full 17-track grid is hidden and its expander is locked. |
| 💡 PAD LIGHTS: ON | button | btn-toggle-pad-lights | Toggle Sequencer Pad Lighting & Active Step Flashes |
| OFF 9-12: ACTIVE | button | btn-toggle-off-9-12 | Disable Drum Cells 9-12 (Toms/Cymbals) to free CPU |
| OFF 13-16: ACTIVE | button | btn-toggle-off-13-16 | Disable Drum Cells 13-16 (Percussion/SFX) to free CPU |
| 🥁 KITS LOAD AS: SAMPLES | button | btn-toggle-kit-samples | Factory kits ship with their sounds already rendered. SAMPLES: kits load those sounds instantly (light on the CPU; click the pad's UNBAKE / ↩ SYNTHS to edit the synth behind it). SYNTHS: kits load as live, editable synths. |
| ✂ MONO PADS: ON | button | btn-toggle-mono-pads | A pad cuts its own previous hit when it is struck again (like hardware drum machines). Far fewer overlapping voices = much lighter on the CPU. |
| VOICE LIMIT | number box | input-max-voices | Most voices allowed to sound at once, 8 to 96. When the limit is hit the engine drops quiet hats and percussion first. |
| AUDIO BUFFER | dropdown | select-latency | Audio output buffer: LOW LATENCY, BALANCED or SAFE (slow PC). The choice is saved and takes effect after you reload the page. |
| ⏱ FOLLOW CLOCK: OFF | button | btn-toggle-follow-clock | Slave workstation tempo to incoming MIDI Clock (24 PPQN) |
| CLOCK OFFSET (ms) | number box | input-clock-offset | Timing trim in ms, -80 to +80, used when following an external MIDI clock. Positive values make our beats land later. |
| UI SIZE | dropdown | sel-ui-size | How big the whole unit is drawn. AUTO makes it grow with the window on large monitors; or fix it. |
| 📁 STORAGE FOLDER... | button | btn-storage-folder-menu | Where AXIOM keeps its rendered kits, loops, loop sets, sequences, MIDI imports and renders: a folder you choose, or this browser. You can move the files. |
| SAMPLE RATE | dropdown | sel-sample-rate | The sample rate of the audio engine. AUTO follows the sound card (the usual choice). Change it only if your interface works best at a fixed rate; takes effect after a reload. |
| EDIT | button | btn-mode-full | EDIT side: the sampler and every synth engine, LFOs, final filters, send FX 1-4, loop slicer. Nothing of the sequencer. Render what you like to the sampler (F9) |
| PERFORM | button | btn-mode-perf | PERFORM side: every pad plays its rendered sample (no synth engines), basic level / pan / FX 1-2 sends, the sequencer and the looper with its loop buttons. Much lighter on the CPU (F9) |
| DJ / LOOP | button | btn-mode-dj | DJ / LOOP mode (F10): the pads and the sequencer give way to a DJ rig: two decks that play your loops (or whole songs), 16 loop pads, a 3-band EQ per deck and a crossfader. |
| COMPACT | button | btn-compact-toggle | Switches to the compact layout made for phones and small / touch screens: one set of 16 pads for the kit, the steps, the patterns / loops and your own USER pads (Alt+4). |
| PADS | button | btn-view-pads | PADS view: big drum pads with the sound editor beside them (F1) |
| SEQ | button | btn-view-seq | SEQ view (PERFORM): the sequencer gets the whole screen: 16 steps, 16 pattern presets, all edit tools and the 17 rows (F3) |
| SOUND | button | btn-view-sound | SOUND view: pads shrink to a strip, synth / sampler editor gets the whole screen (F2) |
| PADS ▾ | button | btn-view-toggle-pads | Hide / show the pad strip in SOUND view (F8) |
| SWING | slider | slider-swing | Swing amount, 50% (straight) to 75% (strongly shuffled). It delays the off-beat notes of the groove type chosen next to it. |
| SWING | dropdown | select-groove | Which notes the swing delays: 16th notes, 8th notes, or a quintuplet feel. |
| ★ MASTER FULL SET | dropdown | select-master-set | Tier 1: Complete song arrangement, 16 pattern slots, 16-pad drum kit, FX bays, tempo & swing |
| 🥁 KIT ONLY (40+) | dropdown | select-kit-only | Tier 2: Swap drum sounds across all 16 pads without altering current sequencer pattern |
| 🥁 KIT ONLY (40+) | dropdown | select-kit-preset | Older duplicate of KIT ONLY: loads a drum kit onto the 16 pads without changing the sequencer patterns. |
| 🎼 SEQUENCE STYLE (30+) | dropdown | select-sequence-style | Tier 3: Load 16 musically linked genre patterns without overwriting active drum sound patches |
| UNIQ | slider | slider-global-uniqueness | Chaos for every random button (kit, pad, pattern, FX), 0 to 100%. 0 keeps strict genre conventions, 100 is wild; linked with the CHAOS slider of the sound editor. |
| 🎲 RANDOM KIT | button | btn-master-random-kit | Procedurally generate a completely new kit across all 16 pads simultaneously using style guardrails |
Pads
| Control | Type | Id | What it does |
|---|---|---|---|
| LOOP A: ON | button | btn-looper-pad-power | Switches the loop player on or off. Off frees its CPU and silences the LP track. |
| DECK A ▾ | button | dj-min-0 | Opens a small window for deck A: play, loop, EQ with kill, level and the crossfader. |
| LOOP B: ON | button | btn-looper-pad-power-b | Switches looper B on or off. Off frees its CPU and silences sequencer row 18. |
| DECK B ▾ | button | dj-min-1 | Opens a small window for deck B: play, loop, EQ with kill, level and the crossfader. |
| 🎲 RANDOM KIT | button | btn-pads-random-kit | Randomize the whole kit (same as RANDOM KIT in the top bar) |
| 🎲 RANDOM PAD | button | btn-pads-random-pad | Randomize the selected pad's sound |
| 🎛 EDIT SOUND | button | btn-pads-edit-sound | Open the full-size sound editor (SOUND view) |
| ⚡ RENDER KIT | button | btn-pads-bake-all | Render every pad (each on its own engine) into its sampler, so PERFORM plays the kit as samples |
Pad editor: sample engine
| Control | Type | Id | What it does |
|---|---|---|---|
| SAMPLE PACK: | dropdown | select-sample-preset | Loads a built-in synthesized drum hit into the selected pad as its sample, replacing the current one. |
| 📂 LOAD SAMPLE FILE | button | btn-upload-sample | Load custom audio sample (.wav, .mp3, .ogg, .flac) |
| input-sample-file | file picker | input-sample-file | File chooser used by LOAD SAMPLE FILE (wav, mp3, ogg or flac). |
| ▶ AUDITION | button | btn-audition-sample | Plays the selected pad once so you can hear the current settings. |
| ⚡ AUTO-TRIM | button | btn-sample-autotrim | Automatically analyze audio transient threshold and snap crop boundaries to hit |
| 🔮 CONVERT SAMPLE TO ADDITIVE SYNTH | button | btn-sample-to-additive | Send currently cropped/isolated sound to Additive Synth FFT resynthesizer |
| 🎯 CONVERT SAMPLE TO SUBTRACTIVE SYNTH | button | btn-convert-sample-to-sub | Acoustic FFT Comparative Re-Synthesis: Convert active sample into calibrated Subtractive Synth parameters |
| 🎯 MATCH SUBTRACTIVE SYNTH TO SAMPLE | button | btn-match-sample-to-synth | Acoustic FFT Comparative Re-Synthesis: Analyze current sample buffer and optimize Subtractive Synth parameters to match |
| ⚡ NORM | button | btn-sample-normalize | Normalize sample peak to 0 dB |
| ◀ REVERSE | button | btn-sample-reverse | Reverse sample audio buffer |
| 🎲 RANDOM | button | btn-random-sample | Randomize sample pitch, envelope, and filter |
| ATTACK | slider | sample-attack | Fade-in time of the sample, 1 ms to 0.2 s. |
| DECAY | slider | sample-decay | Time for the level to fall from the peak to the SUSTAIN level, 0.02 to 2 s. |
| SUSTAIN | slider | sample-sustain | Level held after the decay, 0 to 1. At 1 the sample plays out fully. |
| RELEASE | slider | sample-release | How long the sound takes to fade to silence after the decay, when SUSTAIN is below full. At full SUSTAIN the sample plays to its end. |
| CUTOFF | slider | sample-filter-cutoff | Sample filter cutoff, 200 Hz to 20 kHz. At 20 kHz the filter is wide open. |
| RESONANCE | slider | sample-filter-res | Sample filter resonance (Q), 0.1 to 18. High values ring around the cutoff. |
| FILTER TYPE | dropdown | sample-filter-type | Lowpass removes highs above the cutoff; Highpass removes lows below it. |
Pad editor: subtractive synth
| Control | Type | Id | What it does |
|---|---|---|---|
| ⚡ RENDER TO SAMPLER | button | (no id) | Renders this pad's sound from this page into the SAMPLER (with the LFOs, final filter and drive; add the send FX with the + SEND FX box at the top). PERFORM plays that sample. |
| ⚡ RENDER KIT | button | (no id) | Renders every pad of the kit (each on its own engine) into its sampler. |
| RECIPE CATEGORY: | dropdown | select-pad-category | Instrument recipe of the selected pad. Choosing one loads that category's default synth patch into the pad, replacing its current settings, and steers RANDOMIZE. |
| slider-sub-uniqueness | slider | slider-sub-uniqueness | Chaos for RANDOMIZE, 0 to 100%: 0 stays close to the genre rules, 100 is experimental. Same value as the UNIQ slider in the top bar. |
| 🎲 RANDOMIZE SUB SYNTH | button | btn-pad-dice | Generate procedural variation for this pad adhering to category guardrails |
| sub-mix-osc1-gain | slider | sub-mix-osc1-gain | Level of OSC 1 (hidden mixer copy, same value as the OSC 1 LEVEL control), 0 to 1. |
| sub-mix-osc1-pan | slider | sub-mix-osc1-pan | Stereo position of OSC 1 (hidden mixer copy, same value as the OSC 1 PAN control). |
| sub-mix-osc2-gain | slider | sub-mix-osc2-gain | Level of OSC 2 (hidden mixer copy, same value as the OSC 2 LEVEL control), 0 to 1. |
| sub-mix-osc2-pan | slider | sub-mix-osc2-pan | Stereo position of OSC 2 (hidden mixer copy, same value as the OSC 2 PAN control). |
| sub-mix-osc3-gain | slider | sub-mix-osc3-gain | Level of OSC 3 (hidden mixer copy, same value as the OSC 3 LEVEL control), 0 to 1. |
| sub-mix-osc3-pan | slider | sub-mix-osc3-pan | Stereo position of OSC 3 (hidden mixer copy, same value as the OSC 3 PAN control). |
| sub-mix-noise1-gain | slider | sub-mix-noise1-gain | Level of NOISE 1 (hidden mixer copy, same value as the NOISE 1 LEVEL control), 0 to 1. |
| sub-mix-noise1-pan | slider | sub-mix-noise1-pan | Stereo position of NOISE 1 (hidden mixer copy, same value as the NOISE 1 PAN control). |
| sub-mix-noise2-gain | slider | sub-mix-noise2-gain | Level of NOISE 2 (hidden mixer copy, same value as the NOISE 2 LEVEL control), 0 to 1. |
| sub-mix-noise2-pan | slider | sub-mix-noise2-pan | Stereo position of NOISE 2 (hidden mixer copy, same value as the NOISE 2 PAN control). |
| OSC 1 (PRIMARY) | button | btn-sub-tab-osc1 | Shows the controls of OSC 1 (primary sound source). |
| OSC 2 (LAYER) | button | btn-sub-tab-osc2 | Shows the controls of OSC 2 (layer sound source). |
| OSC 3 (ACCENT) | button | btn-sub-tab-osc3 | Shows the controls of OSC 3 (accent sound source). |
| NOISE 1 (BODY) | button | btn-sub-tab-noise1 | Shows the controls of NOISE 1 (body sound source). |
| NOISE 2 (METALLIC) | button | btn-sub-tab-noise2 | Shows the controls of NOISE 2 (metallic sound source). |
| FM SYNTH | button | btn-sub-tab-fm | The FM stage: an extra oscillator whose pitch is driven by the sources you send into it. Off until you switch it on. |
| SUM & SHAPING | button | btn-sub-tab-shaper | Shows the master envelope, filters and drive that process the sum of all five sound sources. |
| OSC 1 LEVEL | slider | sub-osc1-gain | Level of OSC 1 before the master envelope, 0 to 1. If all five levels add up to more than about 1.8 the engine scales them down. |
| OSC 1 PAN | slider | sub-osc1-pan | Stereo position of OSC 1, -1 full left to +1 full right. |
| MUTE | button | btn-sub-mix-osc1-mute | Silences OSC 1 in this pad's sound. The button reads MUTED while it is silenced; click again to unmute. |
| OSC 1 WAVEFORM | dropdown | sub-osc1-type | Waveform of OSC 1: basic shapes, noise-like, bell, or 808/909 hardware models (bridged-T, hybrid, Schmitt cluster) for kicks, snares and metal. |
| START FREQ (HZ) | slider | sub-osc1-freq | Start frequency of OSC 1, 30 to 600 Hz. The pitch glides from here down to PITCH DROP over PITCH DECAY. |
| PITCH END (HZ) | slider | sub-osc1-drop | End frequency of the pitch glide of OSC 1, 0 to 400 Hz (not a drop amount). Set equal to START FREQ for a fixed pitch. |
| PITCH DECAY | slider | sub-osc1-decay | How fast the pitch of OSC 1 glides from start to end frequency, 5 ms to 0.5 s. Short = click and punch, long = laser sweep. |
| TONE DECAY | slider | sub-osc1-tone-decay | How long OSC 1 takes to die away, 0.01 to 2 s. The audible tail is about half of this and shortens further with the master decay. |
| FINE TUNE (CENTS) | slider | sub-osc1-fine | Fine tuning of OSC 1 in cents, -100 to +100 (100 cents = 1 semitone). |
| OSC 2 LEVEL | slider | sub-osc2-gain | Level of OSC 2 before the master envelope, 0 to 1. If all five levels add up to more than about 1.8 the engine scales them down. |
| OSC 2 PAN | slider | sub-osc2-pan | Stereo position of OSC 2, -1 full left to +1 full right. |
| MUTE | button | btn-sub-mix-osc2-mute | Silences OSC 2 in this pad's sound. The button reads MUTED while it is silenced; click again to unmute. |
| OSC 2 WAVEFORM | dropdown | sub-osc2-type | Waveform of OSC 2: basic shapes, noise-like, bell, or 808/909 hardware models (bridged-T, hybrid, Schmitt cluster) for kicks, snares and metal. |
| START FREQ (HZ) | slider | sub-osc2-freq | Start frequency of OSC 2, 30 to 800 Hz. The pitch glides from here down to PITCH DROP over PITCH DECAY. |
| PITCH END (HZ) | slider | sub-osc2-drop | End frequency of the pitch glide of OSC 2, 0 to 400 Hz (not a drop amount). Set equal to START FREQ for a fixed pitch. |
| PITCH DECAY | slider | sub-osc2-decay | How fast the pitch of OSC 2 glides from start to end frequency, 5 ms to 0.5 s. Short = click and punch, long = laser sweep. |
| TONE DECAY | slider | sub-osc2-tone-decay | How long OSC 2 takes to die away, 0.01 to 2 s. The audible tail is about half of this and shortens further with the master decay. |
| FINE TUNE (CENTS) | slider | sub-osc2-fine | Fine tuning of OSC 2 in cents, -100 to +100 (100 cents = 1 semitone). |
| OSC 3 LEVEL | slider | sub-osc3-gain | Level of OSC 3 before the master envelope, 0 to 1. If all five levels add up to more than about 1.8 the engine scales them down. |
| OSC 3 PAN | slider | sub-osc3-pan | Stereo position of OSC 3, -1 full left to +1 full right. |
| MUTE | button | btn-sub-mix-osc3-mute | Silences OSC 3 in this pad's sound. The button reads MUTED while it is silenced; click again to unmute. |
| OSC 3 WAVEFORM | dropdown | sub-osc3-type | Waveform of OSC 3: basic shapes, noise-like, bell, or 808/909 hardware models (bridged-T, hybrid, Schmitt cluster) for kicks, snares and metal. |
| START FREQ (HZ) | slider | sub-osc3-freq | Start frequency of OSC 3, 30 to 1200 Hz. The pitch glides from here down to PITCH DROP over PITCH DECAY. |
| PITCH END (HZ) | slider | sub-osc3-drop | End frequency of the pitch glide of OSC 3, 0 to 600 Hz (not a drop amount). Set equal to START FREQ for a fixed pitch. |
| PITCH DECAY | slider | sub-osc3-decay | How fast the pitch of OSC 3 glides from start to end frequency, 5 ms to 0.5 s. Short = click and punch, long = laser sweep. |
| TONE DECAY | slider | sub-osc3-tone-decay | How long OSC 3 takes to die away, 0.01 to 2 s. The audible tail is about half of this and shortens further with the master decay. |
| FINE TUNE (CENTS) | slider | sub-osc3-fine | Fine tuning of OSC 3 in cents, -100 to +100 (100 cents = 1 semitone). |
| NOISE 1 LEVEL | slider | sub-noise1-gain | Level of NOISE 1 before the master envelope, 0 to 1. If all five levels add up to more than about 1.8 the engine scales them down. |
| NOISE 1 PAN | slider | sub-noise1-pan | Stereo position of NOISE 1, -1 full left to +1 full right. |
| MUTE | button | btn-sub-mix-noise1-mute | Silences NOISE 1 in this pad's sound. The button reads MUTED while it is silenced; click again to unmute. |
| NOISE 1 TYPE | dropdown | sub-noise1-type | Colour of NOISE 1: white (bright), pink, brown (dark), metallic cluster or velvet (sparse clicks). |
| HP CUTOFF (HZ) | slider | sub-noise1-hp | High-pass cutoff of NOISE 1, 20 to 12000 Hz. Raise it to remove lows; keep it below LP CUTOFF for a band-pass. |
| LP CUTOFF (HZ) | slider | sub-noise1-lp | Low-pass cutoff of NOISE 1, 100 to 20000 Hz. Lower it for a duller, darker noise. |
| PRE-ADSR ATTACK | slider | sub-noise1-attack | Fade-in time of NOISE 1 before the master envelope, up to 0.5 s. Larger values delay and soften the noise. |
| PRE-ADSR RELEASE | slider | sub-noise1-decay | Decay time of the NOISE 1 burst, 5 ms to 2 s. Short for hats and snaps, long for tails and swooshes. |
| NOISE 2 LEVEL | slider | sub-noise2-gain | Level of NOISE 2 before the master envelope, 0 to 1. If all five levels add up to more than about 1.8 the engine scales them down. |
| NOISE 2 PAN | slider | sub-noise2-pan | Stereo position of NOISE 2, -1 full left to +1 full right. |
| MUTE | button | btn-sub-mix-noise2-mute | Silences NOISE 2 in this pad's sound. The button reads MUTED while it is silenced; click again to unmute. |
| NOISE 2 TYPE | dropdown | sub-noise2-type | Colour of NOISE 2: white (bright), pink, brown (dark), metallic cluster or velvet (sparse clicks). |
| HP CUTOFF (HZ) | slider | sub-noise2-hp | High-pass cutoff of NOISE 2, 50 to 15000 Hz. Raise it to remove lows; keep it below LP CUTOFF for a band-pass. |
| LP CUTOFF (HZ) | slider | sub-noise2-lp | Low-pass cutoff of NOISE 2, 100 to 20000 Hz. Lower it for a duller, darker noise. |
| PRE-ADSR ATTACK | slider | sub-noise2-attack | Fade-in time of NOISE 2 before the master envelope, up to 0.5 s. Larger values delay and soften the noise. |
| PRE-ADSR RELEASE | slider | sub-noise2-decay | Decay time of the NOISE 2 burst, 5 ms to 2 s. Short for hats and snaps, long for tails and swooshes. |
| sub-fm-enable | checkbox | sub-fm-enable | Switches the FM stage on: one carrier oscillator whose pitch is bent by the sources ticked below. Off by default. |
| sub-fm-in-1 | checkbox | sub-fm-in-1 | Sends OSC 1 into the FM stage as a modulator instead of playing it directly; its level sets how strongly it bends the carrier. |
| sub-fm-in-2 | checkbox | sub-fm-in-2 | Sends OSC 2 into the FM stage as a modulator instead of playing it directly; its level sets how strongly it bends the carrier. |
| sub-fm-in-3 | checkbox | sub-fm-in-3 | Sends OSC 3 into the FM stage as a modulator instead of playing it directly; its level sets how strongly it bends the carrier. |
| sub-fm-in-4 | checkbox | sub-fm-in-4 | Sends NOISE 1 into the FM stage as a modulator instead of playing it directly; its level sets how strongly it bends the carrier. |
| sub-fm-in-5 | checkbox | sub-fm-in-5 | Sends NOISE 2 into the FM stage as a modulator instead of playing it directly; its level sets how strongly it bends the carrier. |
| CARRIER WAVE | dropdown | sub-fm-wave | Waveform of the carrier oscillator. Sine gives classic FM. |
| CARRIER RATIO | slider | sub-fm-ratio | Pitch of the carrier as a multiple of OSC 1's pitch (it follows OSC 1's pitch drop). 1 = the same note, 2 = an octave up. |
| FM INDEX | slider | sub-fm-index | How far the sources bend the carrier's pitch (as a multiple of its own pitch). 0 = no FM, high values = harsh, bell-like or metallic. |
| INDEX DECAY (S) | slider | sub-fm-index-decay | How fast the FM depth dies away. Short = a bright click that turns into a clean tone. |
| CARRIER DECAY (S) | slider | sub-fm-decay | How long the carrier rings before the main ADSR. |
| CARRIER LEVEL | slider | sub-fm-level | Loudness of the FM carrier in the sum. |
| ADSR ATTACK (S) | slider | sub-adsr-a | Attack of the master envelope on the summed sound, 1 ms to 0.5 s. |
| ADSR DECAY (S) | slider | sub-adsr-d | Decay of the master envelope, 0.01 to 2 s. It multiplies with each source's own decay, so keep it at least as long as the longest source. |
| ADSR SUSTAIN | slider | sub-adsr-s | Sustain level of the master envelope, 0 to 1. Use 0 for drum hits so they die away by themselves. |
| ADSR RELEASE (S) | slider | sub-adsr-r | Release of the master envelope, 0.01 to 3 s. |
| SHAPING HP (HZ) | slider | sub-shape-hp | High-pass filter on the summed sound, 20 Hz to 10 kHz. Raise it to thin out the low end. |
| SHAPING LP (HZ) | slider | sub-shape-lp | Low-pass filter on the summed sound, 200 Hz to 20 kHz. Lower it for a darker sound. |
| RESONANT CUTOFF | slider | sub-res-cutoff | Cutoff of the resonant filter, 50 Hz to 20 kHz. This filter is always in the chain, so keep it at 20 kHz for bright sounds. |
| FILTER RESONANCE (Q) | slider | sub-res-q | Resonance (Q) of the resonant filter, 0.1 to 18. Higher values add a ringing peak at the cutoff. |
| DRIVE ALGORITHM | dropdown | sub-drive-type | Distortion flavour: regular, fuzz, overtone excite or reduce, crunch (bit-crush), ring modulator, or compression plus distortion. |
| DRIVE AMOUNT | slider | sub-drive | Amount of drive, 0 to 100. 0 is clean, high values saturate hard. |
| DRIVE MIX (WET %) | slider | sub-drive-mix | Wet/dry balance of the drive, 0 (clean) to 1 (fully driven). |
Pad editor: additive synth
| Control | Type | Id | What it does |
|---|---|---|---|
| ⚡ RENDER TO SAMPLER | button | (no id) | Renders this pad's sound from this page into the SAMPLER (with the LFOs, final filter and drive; add the send FX with the + SEND FX box at the top). PERFORM plays that sample. |
| ⚡ RENDER KIT | button | (no id) | Renders every pad of the kit (each on its own engine) into its sampler. |
| 🔮 CONVERT FROM SAMPLE | button | btn-convert-additive | Analyses the sample on this pad and rebuilds it as a bank of sine partials, with the level and decay of each one. Needs a sample on the pad. |
| ad-count | dropdown | ad-count | How many partials the conversion keeps. More partials are more accurate but cost more CPU when played live. |
| 🎲 RANDOMIZE | button | btn-random-additive | Creates a new random harmonic set and spectral settings within musical limits. |
| ad-series | dropdown | ad-series | Replaces the harmonic bank with a classic waveform or a bell-like series built on the current fundamental. |
| A | button | ad-target-a | Edit the pad's own harmonic bank (A) with the bar editor and the tools. |
| B | button | ad-target-b | Edit the morph layer (B) with the bar editor and the tools instead of the pad's own bank. |
| ↶ | button | ad-undo | Undo the last bar edit or tool (keeps the last 20 steps). Shortcut: Ctrl+Z. |
| ↷ | button | ad-redo | Redo the step you just undid. Shortcut: Ctrl+Y. |
| NORM | button | ad-tool-normalize | Scales all partials so the loudest one is at full level. |
| SMOOTH | button | ad-tool-smooth | Averages each partial with its neighbours to soften sharp spectral peaks. |
| FLAT | button | ad-tool-flatten | Sets every partial to the same average level for a dense, noise-like spectrum. |
| INVERT | button | ad-tool-invert | Flips the spectrum: loud partials become quiet and quiet ones become loud. |
| +H | button | ad-tool-up | Moves every partial up by one harmonic of the fundamental. |
| -H | button | ad-tool-down | Moves every partial down by one harmonic of the fundamental. |
| SNAP | button | ad-tool-quantize | Snaps every partial to the nearest whole harmonic of the fundamental, removing detuned and inharmonic partials. |
| + PARTIAL | button | ad-tool-add | Adds a new partial one harmonic above the highest one. Drag its bar to set the level. |
| - PARTIAL | button | ad-tool-del | Deletes the selected partial (click a bar first). |
| UNMUTE ALL | button | ad-tool-unmute | Clears every mute and solo flag so all partials sound again. |
| COMMIT TOOLS | button | ad-tool-commit | Prints the effect of all the shaping sliders into the partial bars and resets the sliders, so you can keep editing the sound you hear. |
| ad-audition | checkbox | ad-audition | Plays the pad after every edit so you hear the change straight away. |
| SPECTRAL SHAPING (ODD / EVEN, LOW END, TOP END, FORMANT, COMB, STRETCH | menu | menu-spectral-shaping-odd-even-lo | Spectral shaping tools: they work on the harmonic numbers, not on the list order. Use COMMIT to print them into the partial bars. |
| SPECTRAL TILT | slider | add-tilt | Tilts the whole spectrum by up to 12 dB per octave of harmonics. Negative values darken the sound, positive values brighten it. |
| ODD / EVEN HARMONICS | slider | add-oddeven | Centre = untouched. Towards 0 it keeps the hollow odd harmonics (square-like), towards 1 it keeps the warm even harmonics. |
| LOW END (BOTTOM HARMONICS) | slider | ad-lowShelfDb | Raises or lowers only the harmonics below the corner number. Use it to thicken or thin the bottom of the harmonic series. |
| LOW END CORNER (HARMONIC #) | slider | ad-lowCorner | The harmonic number where the low-end control stops working. Harmonics below this number are affected. |
| TOP END (UPPER HARMONICS) | slider | ad-highShelfDb | Raises or lowers only the harmonics above the corner number. Brighten or darken the top end without touching the body. |
| TOP END CORNER (HARMONIC #) | slider | ad-highCorner | The harmonic number where the top-end control starts working. Harmonics above this number are affected. |
| FORMANT BUMP (dB) | slider | ad-formantDb | Boosts or cuts a band of partials around the formant frequency, like a vowel or a resonant body. Zero turns it off. |
| FORMANT FREQUENCY (Hz) | slider | ad-formantHz | The centre frequency of the formant bump. Move it to pick which part of the spectrum is emphasised. |
| FORMANT WIDTH (Q) | slider | ad-formantQ | How narrow the formant bump is. Higher values pick out only a few partials. |
| COMB (NOTCHES) | slider | ad-combDepth | Cuts a notch every few harmonics for hollow, flanged or vocal-like spectra. Zero turns it off. |
| COMB SPACING (HARMONICS) | slider | ad-combSpacing | How many harmonics lie between the comb notches. Small values give many fine notches. |
| COMB SHIFT | slider | ad-combShift | Slides the comb notches up the harmonic series. Sweep it for a phaser-like spectral movement. |
| HARMONIC STRETCH | slider | ad-harmStretch | Pushes the harmonics further apart (+) or closer together (-). Positive values give a bell or piano-like detune. |
| INHARMONICITY (METALLIC) | slider | add-inharm | Stretches the upper partials out of tune with the fundamental for bells, cymbals and metallic percussion. |
| SHIMMER, SIZZLE, DIVE & BLOOM (METAL, GLASS, CYMBALS, ZAPS) | menu | menu-shimmer-sizzle-dive-bloom-me | What only an additive synth does well: beating partials, random detune, sizzling levels, pitch dives and sounds that bloom open. Good for bells, metal, glass, cymbals, zaps and risers. |
| SHIMMER (BEATING TWINS) | slider | ad-shimmer | Gives the loudest partials a twin a few cents away. The pair beats slowly against each other, the living shimmer of a bell or cymbal. Uses extra oscillators (up to 40% more). |
| SCATTER (RANDOM DETUNE, CENTS) | slider | ad-scatter | Detunes every partial by its own fixed random amount, up to this many cents. Small values thicken, large ones turn a harmonic tone into clanging metal. |
| SIZZLE (RANDOM LEVEL FLUTTER) | slider | ad-flutter | Every partial wobbles in level at random every 10 to 30 ms, more for the higher ones. Turns a clean bank into the restless surface of a cymbal or a hat. Different on every hit. |
| PITCH DIVE (SEMITONES) | slider | ad-dive | All partials start this many semitones above (or below, if negative) their pitch and glide to it. Zaps, kicks, laser drops and risers. |
| DIVE TIME (ms) | slider | ad-diveMs | How long the glide of the pitch dive takes. |
| BLOOM (HIGHS ENTER LATER) | slider | ad-stagger | The higher a partial, the later it fades in (up to 60 ms per octave). The sound opens like a bowed or swelling tone instead of hitting all at once. |
| TIME, LEVEL & NOISE | menu | menu-time-level-noise | Timing, level and extra layers of the additive voice. |
| ad-phaseMode | dropdown | ad-phaseMode | Start phase of the partials. Spread lowers the peak level of the sum (cleaner, punchier); Sine and Cosine start every partial together. |
| DURATION SCALE | slider | add-duration | Multiplies every partial decay time. Lower is shorter and punchier, higher rings longer. |
| DECAY TILT (HIGHS vs LOWS) | slider | ad-decayTilt | Positive makes the high partials die faster than the low ones, like a real struck object. Negative makes the highs ring on. |
| ATTACK (ms) | slider | ad-attackMs | How fast the partials fade in at the start of each hit. Conversions from a sample set this to match the original. |
| PUNCH (TRANSIENT) | slider | add-punch | Adds a brief level overshoot on every partial at the start of the hit for a harder attack. |
| SUB-OCTAVE | slider | add-lowend | Adds a sine one octave below the fundamental of the harmonic series. Zero removes it. |
| NOISE (RESIDUAL) | slider | ad-noiseMix | Mixes in the noise that the analysis found between the partials, or plain noise if none was found. Good for the breath and snap of converted drums. |
| FLOOR (dB) | slider | ad-floorDb | Partials quieter than this, relative to the loudest, are left out. Raising it thins the sound and saves CPU. |
| MORPH LAYER B (COPY A TONE FROM ANOTHER PAD AND BLEND) | menu | menu-morph-layer-b-copy-a-tone-fr | A second harmonic set (B), copied from any other pad, that can be blended with this pad's own tone (A) during every hit for morphing sounds. |
| ad-morph-src | dropdown | ad-morph-src | Choose the pad whose tone is copied into layer B. The looper is not available. |
| COPY TONE → B | button | ad-morph-copy | Analyses the chosen pad (additive, sample or synth) and stores its harmonics in layer B. Takes a moment for synth pads. |
| ad-morph-align | checkbox | ad-morph-align | Transposes the copied tone so its fundamental matches this pad's fundamental. |
| ad-morphMode | dropdown | ad-morphMode | Cross-fade fades A out and B in. Glide slides each partial of A towards the nearest partial of B while it fades. |
| B → A | button | ad-morph-b2a | Replaces this pad's own harmonics (A) with the harmonics of layer B. |
| SWAP A/B | button | ad-morph-swap | Exchanges the pad's own harmonics (A) with layer B. |
| COMMIT BLEND → A | button | ad-morph-commit | Prints the blend at the MORPH END amount into the pad's own harmonics and resets the morph amounts. |
| CLEAR B | button | ad-morph-clear | Empties layer B and turns the morph off. |
| MORPH START (A..B) | slider | ad-morphStart | How much of the B tone is heard at the start of each hit: 0 is all A, 1 is all B. |
| MORPH END (A..B) | slider | ad-morphEnd | How much of the B tone is heard after the ramp time. Set start and end to different values to make every hit morph. |
| MORPH RAMP TIME (s) | slider | ad-morphTime | How long the blend takes to move from the start amount to the end amount. |
| MORPH CURVE | slider | ad-morphCurve | Bends the ramp: negative moves quickly at first, positive moves slowly at first. |
Pad editor
| Control | Type | Id | What it does |
|---|---|---|---|
| PAD SOUND ENGINE | button | tab-deep-pad-editor | Shows the sound editor of the selected pad: the sampler, the subtractive synth or the additive synth, plus the PAD CONTROLS window. |
| 8-SLOT LOOP SLICER | button | tab-deep-loop-rack | Shows the 8-slot loop rack: load audio loops, detect transients, slice them and send slices to pads. |
| 4 AUX FX BAYS | button | tab-deep-aux-bays | Shows the 4 shared AUX FX bays (reverb, delay, FX 3, FX 4) that the pad sends feed. PERFORM uses only the first two. |
| LOOP SET | button | tab-deep-loopset | The LOOP SET: 16 loops made from your sequences (or loaded from files) that PERFORM plays like clips. |
| SAMPLER | button | tab-engine-sample | The sampler: the pad's voice in PERFORM. Load or drop a sample, crop, shape it, or RENDER any other engine into it. |
| SUBTRACTIVE SYNTH | button | tab-engine-sub | Switches the selected pad to the subtractive synth (3 oscillators, 2 noise generators, filters, drive) and shows its controls. |
| ADDITIVE SYNTH | button | tab-engine-additive | Switches the selected pad to the additive synth (a bank of sine partials you can draw, shape and morph) and shows its editor. |
| PHYSICAL MODEL | button | tab-engine-phys | PHYSICAL MODEL: A struck or plucked object calculated from physics: a vibrating string / tube (waveguide, Karplus-Strong) or a bank of resonating modes (membrane, bar, plate, bell ...). Needs very little CPU. |
| WAVESHAPER | button | tab-engine-shaper | WAVESHAPER: Non-linear waveshaping and distortion synthesis: a simple tone is pushed through a curve that folds, clips or bends it into rich harmonics. It can also process ANOTHER engine, the sampler or the looper (choose the INPUT). |
| WAVETABLE | button | tab-engine-wave | WAVETABLE: Two wavetables play together and are mixed. Each table is a set of 16 waveforms that morph from one to the next (the POSITION), built for kicks, snares, metal, wood, noise and effects. Sweeping the position during a hit makes a sound evolve. |
| VOCODER | button | tab-engine-vocal | VOCODER (REVERSE ADDITIVE): A vocoder turned around: instead of listening to a voice, it listens to the ADDITIVE synth. Each of its strongest partials (up to 18) becomes a filter band; the partial's level and decay open and close that band. The filter bank then shapes ANOTHER sound (the carrier): a saw or noise, another engine, the sampler or the looper. Design the spectrum on the ADDITIVE tab. |
| ⚡ RENDER TO SAMPLER | button | btn-render-pad | Plays this pad's current engine once, offline, and puts the result into the SAMPLER (with the LFOs, final filter and drive; without the send FX). PERFORM plays that sample. You stay on this tab. |
| 🔮 CONVERT TO ADDITIVE | button | btn-sub-to-additive | Measures this pad's subtractive sound and rebuilds it as an additive synth (a bank of sine partials you can then draw, shape and morph). The pad volume is adjusted to keep the level. The SUBTRACTIVE SYNTH tab switches back. |
| chk-render-sends | checkbox | chk-render-sends | Also print the pad's FX sends (reverb, delay, FX 3, FX 4) into the sample when you render. |
| 🖨 PRINT SEND FX | button | btn-print-fx | Prints the pad's FX sends (the selected reverb / delay / FX 3 / FX 4, at the send levels below) into the SAMPLER, then sets the sends to 0. A heavy reverb then costs CPU once, not on every hit. |
| 1 | button | btn-sample-hist-0 | empty |
| 2 | button | btn-sample-hist-1 | empty |
| 3 | button | btn-sample-hist-2 | empty |
| 4 | button | btn-sample-hist-3 | empty |
| 5 | button | btn-sample-hist-4 | empty |
| ⚡ RENDER TO SAMPLER | button | (no id) | Renders this pad's sound from this page into the SAMPLER (with the LFOs, final filter and drive; add the send FX with the + SEND FX box at the top). PERFORM plays that sample. |
| ⚡ RENDER KIT | button | (no id) | Renders every pad of the kit (each on its own engine) into its sampler. |
| 🎲 RANDOMIZE | button | btn-phys-random | Sets new random values within musical limits for this engine. |
| ↺ DEFAULTS | button | btn-phys-reset | Puts every setting of this engine back to its default. |
| MODEL | dropdown | phys-model | Waveguide: a delay line with loss, like a string or an air column. Modal: a bank of resonators at the vibration modes of a drum skin, bar, plate or bell. |
| PITCH (HZ) | slider | phys-pitch | Fundamental frequency of the object. |
| DECAY (S) | slider | phys-decay | Time for the sound to die away by 60 dB. |
| LEVEL | slider | phys-level | Output level of the engine (before the pad volume). |
| EXCITER | dropdown | phys-exType | The signal that sets the object vibrating. Noise = pluck / stick, mallet = soft hit, impulse = sharp tap, brush = scraped. |
| EXCITER LENGTH (MS) | slider | phys-exLen | How long the object is driven. Short = a sharp strike, long = a scrape or a soft push. |
| EXCITER BRIGHTNESS (HZ) | slider | phys-exColor | Low-pass of the exciter: dark rubber to bright wood or metal. Harder hits (velocity) are brighter. |
| EXCITER LEVEL | slider | phys-exLevel | How hard the object is driven. |
| STRIKE POSITION | slider | phys-position | Where the object is struck. Near the end (small) is bright and thin, the middle (0.5) is round and hollow: it notches out the modes that have a node there. |
| DAMPING | slider | phys-damping | How fast the highs die compared with the lows. More = muffled, dull; 0 = rings bright. |
| STIFFNESS (WAVEGUIDE) | slider | phys-stiffness | Waveguide only: makes the overtones sharper than harmonic, the way thick strings and bars sound (towards bell-like). |
| WAVEGUIDE TYPE | dropdown | phys-ksType | String: all harmonics. Closed tube: only the odd harmonics, hollow like a clarinet or a wood block. |
| MODE SET (MODAL) | dropdown | phys-modeSet | The overtone pattern of the resonator bank: where the modes sit relative to the pitch. |
| MODES (MODAL) | slider | phys-modes | Number of resonators. More modes = richer, more CPU. |
| MODE SPREAD (MODAL) | slider | phys-spread | Stretches the mode frequencies upwards: more metallic, more inharmonic. |
| MODE DETUNE (MODAL) | slider | phys-detune | Gives each mode a slightly detuned twin that beats against it: living, imperfect, shimmering. |
| DECAY TILT (MODAL) | slider | phys-tilt | Do the high modes die faster (positive) or ring on longer (negative) than the low ones? |
| TENSION BEND (ST) | slider | phys-bend | The pitch starts this many semitones high and relaxes: the "boing" of a tom or a taiko, a laser tom. |
| BEND TIME (MS) | slider | phys-bendTime | How fast the tension bend relaxes. |
| RATTLE / SNARE WIRES | slider | phys-rattle | Adds buzzing noise that follows the loudness of the object, like snare wires, a sizzle cymbal rivet or a rattle. |
| RATTLE LENGTH | slider | phys-rattleDecay | How long the rattle keeps buzzing after the strike. |
| STEREO WIDTH | slider | phys-width | Spreads the modes (or a tiny delay for the waveguide) across the stereo field. |
| RATTLE BRIGHTNESS (HZ) | slider | phys-rattleColor | Low-pass of the rattle noise: snare wires sit around 2-5 kHz, a sizzle is brighter. 20000 = open. |
| FUNDAMENTAL WEIGHT (MODAL) | slider | phys-fundamental | Boosts the lowest mode against the overtones: round, pitched toms and kicks that do not jump to a higher mode. |
| NOISE WASH | slider | phys-wash | Adds a band-limited noise layer that rings on with the object: the broadband wash of a cymbal, ride or crash on top of the tonal metal. |
| WASH BRIGHTNESS (HZ) | slider | phys-washColor | Brightness of the noise wash. |
| WASH LENGTH | slider | phys-washDecay | Length of the wash compared with the decay of the object. |
| ⚡ RENDER TO SAMPLER | button | (no id) | Renders this pad's sound from this page into the SAMPLER (with the LFOs, final filter and drive; add the send FX with the + SEND FX box at the top). PERFORM plays that sample. |
| ⚡ RENDER KIT | button | (no id) | Renders every pad of the kit (each on its own engine) into its sampler. |
| 🎲 RANDOMIZE | button | btn-shaper-random | Sets new random values within musical limits for this engine. |
| ↺ DEFAULTS | button | btn-shaper-reset | Puts every setting of this engine back to its default. |
| INPUT | dropdown | shaper-source | What is shaped. "Own tone" is the oscillator below. Any other choice sends that engine's sound through the shaper (that tab lights up; the looper pad lights up while this pad is selected). With the sampler as input, a render replaces the pad's sample; the previous version stays in PREVIOUS SAMPLES. |
| OWN TONE MIX (WITH INPUT) | slider | shaper-ownLevel | When an input is chosen, how much of the own tone is added to it before shaping. |
| OSCILLATOR | dropdown | shaper-wave | Waveform that goes into the shaper. |
| PITCH START (HZ) | slider | shaper-pitch | Starting pitch of the tone. |
| PITCH END (HZ) | slider | shaper-pitchEnd | Pitch the tone drops to. |
| PITCH DROP (MS) | slider | shaper-pitchTime | How fast the pitch falls. |
| ATTACK (MS) | slider | shaper-ampAttack | Fade-in of the tone. |
| DECAY (S) | slider | shaper-ampDecay | Length of the tone. |
| SHAPE | dropdown | shaper-shape | The curve the signal goes through. Each makes different overtones: clips are buzzy, folds are metallic and bell-like, Chebyshev adds exactly the harmonics you set. |
| DRIVE / INDEX | slider | shaper-drive | How hard the signal hits the curve. Low = nearly clean, high = bright and dense. The brightness moves with the loudness (see DRIVE FOLLOWS LEVEL). |
| DRIVE FOLLOWS LEVEL | slider | shaper-driveEnv | How much the drive dies away with the sound: the classic waveshaping effect of a bright attack that turns into a clean tone. |
| BIAS (ASYMMETRY) | slider | shaper-bias | Shifts the signal before the curve: adds even harmonics and a different character. |
| FOLD THRESHOLD | slider | shaper-thresh | Wavefolder: the level where the wave is folded back. Lower = more folds. |
| HARMONIC 2 (CHEBYSHEV) | slider | shaper-harm2 | Chebyshev shape: level of the 2nd harmonic. |
| HARMONIC 3 (CHEBYSHEV) | slider | shaper-harm3 | Chebyshev shape: level of the 3rd harmonic. |
| HARMONIC 4 (CHEBYSHEV) | slider | shaper-harm4 | Chebyshev shape: level of the 4th harmonic. |
| HARMONIC 5 (CHEBYSHEV) | slider | shaper-harm5 | Chebyshev shape: level of the 5th harmonic. |
| HARMONIC 6 (CHEBYSHEV) | slider | shaper-harm6 | Chebyshev shape: level of the 6th harmonic. |
| PHASE DISTORTION | slider | shaper-pdAmount | Phase-distortion shape: bends the phase of the oscillator (like a Casio CZ). More = a sharper, more resonant tone. |
| BITS (CRUSHER) | slider | shaper-bits | Crusher shape: number of bits. Fewer = coarser, grittier. |
| RATE DIVIDER (CRUSHER) | slider | shaper-rateDiv | Crusher shape: holds every Nth sample. Higher = more aliasing, lo-fi. |
| TONE (LOW-PASS, HZ) | slider | shaper-tone | Darkens the result after the shaper. |
| DRY / WET | slider | shaper-mix | Blend of the unshaped input and the shaped sound. |
| LEVEL | slider | shaper-level | Output level of the engine. |
| ⚡ RENDER TO SAMPLER | button | (no id) | Renders this pad's sound from this page into the SAMPLER (with the LFOs, final filter and drive; add the send FX with the + SEND FX box at the top). PERFORM plays that sample. |
| ⚡ RENDER KIT | button | (no id) | Renders every pad of the kit (each on its own engine) into its sampler. |
| 🎲 RANDOMIZE | button | btn-wave-random | Sets new random values within musical limits for this engine. |
| ↺ DEFAULTS | button | btn-wave-reset | Puts every setting of this engine back to its default. |
| TABLE A | dropdown | wave-tableA | First wavetable (the main voice). |
| POSITION A | slider | wave-posA | Which of the 16 waveforms of table A is playing (they morph into each other). |
| SWEEP A | slider | wave-sweepA | The position of table A starts this far away and moves to POSITION A during the hit (time: SWEEP TIME). |
| TABLE B | dropdown | wave-tableB | Second wavetable, played together with table A. |
| POSITION B | slider | wave-posB | Position of table B. |
| SWEEP B | slider | wave-sweepB | Sweep of table B's position. |
| SWEEP TIME (MS) | slider | wave-sweepTime | How fast the sweeps settle. |
| MIX A / B | slider | wave-mix | 0 = only table A, 1 = only table B. |
| PITCH RATIO B | slider | wave-ratioB | Table B plays at this multiple of the pitch (2 = an octave up, 1.5 = a fifth). Non-whole ratios give metal. |
| DETUNE B (CENTS) | slider | wave-detuneB | Detunes B against A so they beat. |
| PITCH START (HZ) | slider | wave-pitch | Starting pitch. |
| PITCH END (HZ) | slider | wave-pitchEnd | Pitch it falls to. |
| PITCH DROP (MS) | slider | wave-pitchTime | Speed of the fall. |
| ATTACK (MS) | slider | wave-attack | Fade-in. |
| DECAY (S) | slider | wave-decay | Length of the sound. |
| ENVELOPE SNAP | slider | wave-snap | Bends the decay: 0 = natural fade, 1 = fast drop with a short tail. |
| HARD SYNC | slider | wave-sync | Resets the tables several times per cycle: a tearing, screaming overtone sweep when moved. |
| WARP (PHASE BEND) | slider | wave-warp | Bends the playback phase: pushes the sound towards pinched, nasal or hollow. |
| FM (B INTO A) | slider | wave-fm | Table B modulates the phase of table A: bells and metal. |
| UNISON VOICES | slider | wave-unison | Several detuned copies for a wide, thick sound. |
| UNISON DETUNE (CENTS) | slider | wave-uniSpread | How far the unison copies are detuned. |
| SUB OSCILLATOR | slider | wave-sub | A sine one octave below. |
| NOISE | slider | wave-noise | Adds filtered noise. |
| BIT DEPTH | slider | wave-bits | Lowers the bit depth: crunch. |
| LEVEL | slider | wave-level | Output level of the engine. |
| TONE (LOW-PASS, HZ) | slider | wave-tone | Darkens the sound after the tables (20000 = open). |
| HIGH-PASS (HZ) | slider | wave-hp | Removes the low end (10 = off). |
| ⚡ RENDER TO SAMPLER | button | (no id) | Renders this pad's sound from this page into the SAMPLER (with the LFOs, final filter and drive; add the send FX with the + SEND FX box at the top). PERFORM plays that sample. |
| ⚡ RENDER KIT | button | (no id) | Renders every pad of the kit (each on its own engine) into its sampler. |
| 🎲 RANDOMIZE | button | btn-vocal-random | Sets new random values within musical limits for this engine. |
| ↺ DEFAULTS | button | btn-vocal-reset | Puts every setting of this engine back to its default. |
| → EDIT THE BANDS (ADDITIVE TAB) | button | btn-vocal-open-additive | Opens the ADDITIVE tab: its partials are the bands of the vocoder. |
| chord-on | checkbox | chord-on | Vocoder chord: the carrier plays up to 4 notes at once, each shifted by the semitones set here, all moved by TRANSPOSE. |
| chord-n1 | dropdown | chord-n1 | Note 1 of the chord in semitones above the pad's pitch (off = silent). |
| chord-n2 | dropdown | chord-n2 | Note 2 of the chord in semitones above the pad's pitch (off = silent). |
| chord-n3 | dropdown | chord-n3 | Note 3 of the chord in semitones above the pad's pitch (off = silent). |
| chord-n4 | dropdown | chord-n4 | Note 4 of the chord in semitones above the pad's pitch (off = silent). |
| chord-transpose | dropdown | chord-transpose | Shifts the whole pad (and the chord) up or down in semitones: the main key. |
| CARRIER | dropdown | vocal-carrier | The sound that goes through the bands. Saw / pulse follow the CHORD strip and the PITCH below; the others use the sound of that engine, the sampler or the looper. |
| CARRIER PITCH (HZ) | slider | vocal-carrierPitch | Pitch of the saw / pulse carrier. |
| PULSE WIDTH | slider | vocal-pulseWidth | Width of the pulse carrier. |
| vocal-loopCarrier | checkbox | vocal-loopCarrier | If the carrier (a sample or engine sound) is shorter than the longest band, repeat it. |
| MODE | dropdown | vocal-mode | Vocoder: only the bands are heard, opened by the partials. EQ sculpt: the carrier is heard in full and the partials lift (up) or cut (down) their band. |
| NUMBER OF BANDS | slider | vocal-bands | How many of the additive synth's partials are used (the strongest first, at most 18). |
| BAND WIDTH (Q) | slider | vocal-q | Narrow bands (high Q) ring and sing; wide bands blur into one colour. |
| EQ RANGE (DB) | slider | vocal-eqRange | EQ sculpt: how many dB a band can boost or cut. |
| FORMANT SHIFT (ST) | slider | vocal-shift | Moves every band up or down in pitch, like changing the size of the mouth. |
| BAND STRETCH | slider | vocal-stretch | Spreads (above 1) or squeezes (below 1) the bands around their middle. |
| LEVEL SLOPE | slider | vocal-slope | Tilts the level of the bands: positive = brighter, negative = darker. |
| DECAY SCALE | slider | vocal-decayScale | Multiplies the decay of every band (the additive synth's own decays). |
| BAND ATTACK (MS) | slider | vocal-attackMs | How fast the bands open. |
| CARRIER BLEED | slider | vocal-dry | A little of the unfiltered carrier (vocoder mode) for consonants and air. |
| BURSTS (CLAP) | slider | vocal-bursts | Number of rapid hits before the main one, like the hands of a clap. 1 = a single swell. |
| BURST GAP (MS) | slider | vocal-burstGap | Time between the bursts. |
| HIGH-PASS (HZ) | slider | vocal-hp | Cuts the bottom before the bands (30 Hz by default). |
| LOW-PASS (HZ) | slider | vocal-lp | Cuts the top before the bands (18 kHz by default). |
| LEVEL | slider | vocal-level | Output level of the engine. |
| vocal-midiIn | checkbox | vocal-midiIn | While this pad is selected with the vocoder open, MIDI notes play it: the note sets the carrier pitch (relative to the ROOT NOTE) and the chord of the CHORD strip is built on it. |
| ROOT NOTE | dropdown | vocal-midiRoot | The MIDI note that plays the pitch set above. |
| SHAPE | dropdown | lfo1-shape | Waveform of LFO 1. The random shapes pick a new value every cycle (per hit when retrigger is on). |
| RATE (HZ) | slider | lfo1-rate | Speed of LFO 1 in cycles per second. Ignored while a TEMPO SYNC division is chosen. |
| TEMPO SYNC | dropdown | lfo1-sync | Locks the LFO speed to the tempo: one cycle per note division. |
| DEPTH | slider | lfo1-depth | How far the LFO moves its target: 1 = plus or minus half of the target slider range (by octaves for frequencies). Negative flips the LFO upside down. 0 = LFO off. |
| TARGET | dropdown | lfo1-target | The parameter this LFO moves. Any slider of the pad editor can be chosen, in every engine. Pitch, filter cutoffs, levels, pan and FM index move continuously inside the hit; all other values are shifted once per hit. |
| START PHASE | slider | lfo1-phase | Where in its cycle the LFO is at the start of a hit (with retrigger on) or an offset of the running LFO. |
| lfo1-retrig | checkbox | lfo1-retrig | Restart the LFO at the start of every hit, so each hit is the same. |
| lfo1-uni | checkbox | lfo1-uni | Unipolar: the LFO only goes up from the current value (0 to +1) instead of both ways. |
| SHAPE | dropdown | lfo2-shape | Waveform of LFO 2. The random shapes pick a new value every cycle (per hit when retrigger is on). |
| RATE (HZ) | slider | lfo2-rate | Speed of LFO 2 in cycles per second. Ignored while a TEMPO SYNC division is chosen. |
| TEMPO SYNC | dropdown | lfo2-sync | Locks the LFO speed to the tempo: one cycle per note division. |
| DEPTH | slider | lfo2-depth | How far the LFO moves its target: 1 = plus or minus half of the target slider range (by octaves for frequencies). Negative flips the LFO upside down. 0 = LFO off. |
| TARGET | dropdown | lfo2-target | The parameter this LFO moves. Any slider of the pad editor can be chosen, in every engine. Pitch, filter cutoffs, levels, pan and FM index move continuously inside the hit; all other values are shifted once per hit. |
| START PHASE | slider | lfo2-phase | Where in its cycle the LFO is at the start of a hit (with retrigger on) or an offset of the running LFO. |
| lfo2-retrig | checkbox | lfo2-retrig | Restart the LFO at the start of every hit, so each hit is the same. |
| lfo2-uni | checkbox | lfo2-uni | Unipolar: the LFO only goes up from the current value (0 to +1) instead of both ways. |
| ⇣ RENDER ACTIVE SEQUENCE | button | btn-loopset-render | Renders the active sequence (all its bars, the pads' samples and the FX 1-2 effects) into the next free loop slot, and also copies it into the loop slicer to audition. The tail is folded onto the start so the loop repeats without a gap. |
| ⇣⇣ CONVERT ALL SEQUENCES TO LOOPS | button | btn-loopset-convert-all | Renders all 16 sequences (pattern slots) into the 16 loops. Empty patterns are skipped. It takes a little while. |
| 💾 SAVE SET | button | btn-loopset-save | Saves the whole loop set as a .axloops file. |
| 📂 LOAD SET | button | btn-loopset-load | Loads a .axloops loop set file. |
| 🗑 CLEAR ALL | button | btn-loopset-clear | Empties all 16 loop slots. |
| input-loopset-set | file picker | input-loopset-set | (no tooltip) |
| input-loopset-file | file picker | input-loopset-file | (no tooltip) |
| loopset-name-0 | text box | loopset-name-0 | Name of this loop |
| ▶ | button | loopset-play-0 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-0 | Render the active sequence into this slot |
| 📂 | button | loopset-file-0 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-0 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-0 | Empty this slot |
| loopset-name-1 | text box | loopset-name-1 | Name of this loop |
| ▶ | button | loopset-play-1 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-1 | Render the active sequence into this slot |
| 📂 | button | loopset-file-1 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-1 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-1 | Empty this slot |
| loopset-name-2 | text box | loopset-name-2 | Name of this loop |
| ▶ | button | loopset-play-2 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-2 | Render the active sequence into this slot |
| 📂 | button | loopset-file-2 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-2 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-2 | Empty this slot |
| loopset-name-3 | text box | loopset-name-3 | Name of this loop |
| ▶ | button | loopset-play-3 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-3 | Render the active sequence into this slot |
| 📂 | button | loopset-file-3 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-3 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-3 | Empty this slot |
| loopset-name-4 | text box | loopset-name-4 | Name of this loop |
| ▶ | button | loopset-play-4 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-4 | Render the active sequence into this slot |
| 📂 | button | loopset-file-4 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-4 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-4 | Empty this slot |
| loopset-name-5 | text box | loopset-name-5 | Name of this loop |
| ▶ | button | loopset-play-5 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-5 | Render the active sequence into this slot |
| 📂 | button | loopset-file-5 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-5 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-5 | Empty this slot |
| loopset-name-6 | text box | loopset-name-6 | Name of this loop |
| ▶ | button | loopset-play-6 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-6 | Render the active sequence into this slot |
| 📂 | button | loopset-file-6 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-6 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-6 | Empty this slot |
| loopset-name-7 | text box | loopset-name-7 | Name of this loop |
| ▶ | button | loopset-play-7 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-7 | Render the active sequence into this slot |
| 📂 | button | loopset-file-7 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-7 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-7 | Empty this slot |
| loopset-name-8 | text box | loopset-name-8 | Name of this loop |
| ▶ | button | loopset-play-8 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-8 | Render the active sequence into this slot |
| 📂 | button | loopset-file-8 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-8 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-8 | Empty this slot |
| loopset-name-9 | text box | loopset-name-9 | Name of this loop |
| ▶ | button | loopset-play-9 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-9 | Render the active sequence into this slot |
| 📂 | button | loopset-file-9 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-9 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-9 | Empty this slot |
| loopset-name-10 | text box | loopset-name-10 | Name of this loop |
| ▶ | button | loopset-play-10 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-10 | Render the active sequence into this slot |
| 📂 | button | loopset-file-10 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-10 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-10 | Empty this slot |
| loopset-name-11 | text box | loopset-name-11 | Name of this loop |
| ▶ | button | loopset-play-11 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-11 | Render the active sequence into this slot |
| 📂 | button | loopset-file-11 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-11 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-11 | Empty this slot |
| loopset-name-12 | text box | loopset-name-12 | Name of this loop |
| ▶ | button | loopset-play-12 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-12 | Render the active sequence into this slot |
| 📂 | button | loopset-file-12 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-12 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-12 | Empty this slot |
| loopset-name-13 | text box | loopset-name-13 | Name of this loop |
| ▶ | button | loopset-play-13 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-13 | Render the active sequence into this slot |
| 📂 | button | loopset-file-13 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-13 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-13 | Empty this slot |
| loopset-name-14 | text box | loopset-name-14 | Name of this loop |
| ▶ | button | loopset-play-14 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-14 | Render the active sequence into this slot |
| 📂 | button | loopset-file-14 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-14 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-14 | Empty this slot |
| loopset-name-15 | text box | loopset-name-15 | Name of this loop |
| ▶ | button | loopset-play-15 | Play / stop this loop here (EDIT side audition, in time with the current tempo) |
| ⇣ SEQ | button | loopset-render-15 | Render the active sequence into this slot |
| 📂 | button | loopset-file-15 | Load an audio file into this slot |
| → SLICER | button | loopset-tolooper-15 | Copy this loop into the loop slicer (the looper tool's active slot) to audition, slice and edit it there |
| ✕ | button | loopset-del-15 | Empty this slot |
Pad controls
| Control | Type | Id | What it does |
|---|---|---|---|
| PAD VOLUME | slider | final-pad-vol | Volume of the selected pad, 0 to 1.5. |
| STEREO PAN | slider | final-pad-pan | Stereo position of the selected pad, -1 left to +1 right. |
| OVERALL PITCH | slider | final-pad-tune | Pitch shift of the whole pad in semitones, -24 to +24. |
| FILTER MODE | dropdown | final-filter-mode | Filter applied after the sound engine: Off (bypass), Lowpass or Highpass. |
| FILTER CUTOFF | slider | final-filter-cutoff | Cutoff of the pad filter, 0 to 20 kHz. Has no effect while the mode is Off. |
| FILTER RES (Q) | slider | final-filter-res | Resonance (Q) of the pad filter, 0.1 to 18. |
| ATTACK (S) | slider | final-pad-attack | Fade-in time of the finished pad sound, 0 to 1 s. |
| RELEASE (S) | slider | final-pad-release | Length of the fade at the very end of the pad sound. Low values end the quiet tail sharply, high values let it die away smoothly. |
| VELOCITY RESPONSE | slider | final-vel-sens | How much the played velocity changes this pad. 100% = full dynamics (soft notes quiet, hard notes loud), 0% = every hit plays at the same level. |
| VELOCITY CURVE | slider | final-vel-curve | Shapes how the velocity maps to loudness for this pad. Positive lifts the soft hits (good for hats and percussion played as 8ths / 16ths), negative makes it more dynamic. |
| DRIVE / OD | slider | final-pad-drive | Overdrive on the finished pad sound, 0 (clean) to 1. |
| SEND 1 (REV) | slider | final-pad-send1 | How much of this pad is sent to AUX bay 1, 0 (none) to 1. The effect type of the bay is set in the AUX FX BAYS tab. |
| SEND 2 (DLY) | slider | final-pad-send2 | How much of this pad is sent to AUX bay 2, 0 (none) to 1. The effect type of the bay is set in the AUX FX BAYS tab. |
| SEND 3 (DRV) | slider | final-pad-send3 | How much of this pad is sent to AUX bay 3, 0 (none) to 1. The effect type of the bay is set in the AUX FX BAYS tab. |
| SEND 4 (DYN) | slider | final-pad-send4 | How much of this pad is sent to AUX bay 4, 0 (none) to 1. The effect type of the bay is set in the AUX FX BAYS tab. |
Loop slicer
| Control | Type | Id | What it does |
|---|---|---|---|
| LOOPER A | button | (no id) | Work on looper A (sequencer row 17, deck A of the DJ view) |
| LOOPER B | button | (no id) | Work on looper B (sequencer row 18, deck B of the DJ view) |
| LOOP A: ACTIVE | button | btn-toggle-loop-power | Completely enable or disable the loop player engine to save CPU |
| ▶ PLAY LOOP | button | btn-loop-preview-play | Plays the active loop slot from its start, using the playback mode chosen next to it. |
| ⏹ STOP | button | btn-loop-preview-stop | Stops the loop that is playing. |
| 🎯 DETECT TRANSIENTS | button | btn-loop-detect-trans | Finds the drum hits in the loop and sets a slice marker on each. Click the waveform to select and hear a slice. |
| select-loop-playback-mode | dropdown | select-loop-playback-mode | Time-Synced Stretch follows the project tempo without changing pitch; Selected Slice Only plays just the chosen slice; Original Pitch/Speed plays the audio as recorded. |
| + LOAD AUDIO | button | btn-upload-loop | Loads an audio file into the active loop slot and detects its tempo and slices. |
| input-loop-file | file picker | input-loop-file | File chooser used by LOAD AUDIO (loop audio). |
| AUTO-PLAY MEASURE: OFF | button | btn-loop-measure-sync | Auto-Play Loop at Measure Start: plays cleanly at measure start bypassing track 17 steps, bounded by max 32 bars |
| ½x | button | btn-loop-speed-half | Half speed (split) relative to project BPM |
| 1x | button | btn-loop-speed-1x | Normal 1x speed |
| 2x | button | btn-loop-speed-2x | Double speed relative to project BPM |
| MANUAL OVERRIDE | checkbox | chk-loop-manual | Overrides the detected tempo, time signature and length of this loop with the values entered on the right. |
| input-loop-manual-bpm | number box | input-loop-manual-bpm | Tempo of the loop file, 40 to 320 BPM, used to stretch it to the project tempo (needs MANUAL OVERRIDE). |
| select-loop-manual-timesig | dropdown | select-loop-manual-timesig | Time signature of the loop: 4/4, 3/4 or 6/8. Needs MANUAL OVERRIDE. |
| input-loop-manual-bars | number box | input-loop-manual-bars | Length of the loop in bars, 1 to 32. Needs MANUAL OVERRIDE. |
| ⚡ MATCH BPM TO LOOP | button | btn-loop-match-bpm | Apply this loop's BPM to the project master tempo |
| THIS SLOT IS A | dropdown | select-loop-kind | Loop: follows the project tempo (time-stretched) and repeats on the sequencer. Song: a full track that plays once at its own speed, with no tempo stretching. |
| RENDER AT TEMPO | button | btn-loop-render-tempo | Renders the time-stretched loop at the current project tempo into a plain sample: after that it plays without any tempo stretching, with no CPU cost. |
| UNDO RENDER | button | btn-loop-undo-tempo | Brings back the original loop (before RENDER AT TEMPO). |
| select-target-pad-export | dropdown | select-target-pad-export | Pad that receives the slice when you press EXPORT SLICE TO PAD. |
| EXPORT SLICE TO PAD | button | btn-export-slice-to-pad | Copies the selected slice into the chosen pad as a sample, replacing that pad's sound, and selects the pad. |
Aux effects
| Control | Type | Id | What it does |
|---|---|---|---|
| AUX 1 | button | btn-aux-bay-0 | Edit AUX FX bay 1: its effect, parameters and return level appear below. Pads feed it with the SEND 1 knob. |
| AUX 2 | button | btn-aux-bay-1 | Edit AUX FX bay 2: its effect, parameters and return level appear below. Pads feed it with the SEND 2 knob. |
| AUX 3 | button | btn-aux-bay-2 | Edit AUX FX bay 3: its effect, parameters and return level appear below. Pads feed it with the SEND 3 knob. |
| AUX 4 | button | btn-aux-bay-3 | Edit AUX FX bay 4: its effect, parameters and return level appear below. Pads feed it with the SEND 4 knob. |
| FX 1 REV | slider | slider-master-aux1 | Aux Return 1 (Plate). Level of this FX return in the master mix, 0 to 1. |
| FX 2 DLY | slider | slider-master-aux2 | Aux Return 2 (Stereo Delay). Level of this FX return in the master mix, 0 to 1. |
| FX 3 DRV | slider | slider-master-aux3 | Aux Return 3 (Multi-Distortion). Level of this FX return in the master mix, 0 to 1. |
| FX 4 DYN | slider | slider-master-aux4 | Aux Return 4 (5-Band EQ). Level of this FX return in the master mix, 0 to 1. |
| FX CATEGORY | dropdown | select-aux-category | Effect family of the selected bay: channel 1 is the reverb channel and channel 2 the delay channel. |
| ALGORITHM | dropdown | select-aux-algorithm | Specific effect inside the family, for example Hall, Ping-Pong or Chorus. |
| TEMPO SYNC | dropdown | select-aux-sync | Lock this bay's delay time / modulation rate to the global BPM: straight, dotted and triplet note values, or whole bars (reverbs, dynamics and drive have no time control) |
| RETURN LEVEL | slider | slider-aux-return | Output level of the selected bay, 0 to 1.5. Separate from the FX 1 to 4 return faders above. |
| 🎲 RANDOMIZE AUX FX | button | btn-random-aux-fx | Randomize the four Aux FX bays and their algorithms |
| PARAM 1 (DECAY/TIME) | slider | slider-aux-p1 | Effect parameter 1, 0 to 1: decay or time. Its meaning follows the chosen effect. |
| PARAM 2 (DAMP/FB) | slider | slider-aux-p2 | Effect parameter 2, 0 to 1: damping or feedback. Its meaning follows the chosen effect. |
| PARAM 3 (TONE/DEPTH) | slider | slider-aux-p3 | Effect parameter 3, 0 to 1: tone or depth. Its meaning follows the chosen effect. |
| PARAM 4 (RATE/DIFFUSE) | slider | slider-aux-p4 | Effect parameter 4, 0 to 1: rate or diffusion. Its meaning follows the chosen effect. |
| PRE-DELAY | slider | axfx-rvPre | Gap between the dry sound and the start of the reverb. A longer pre-delay keeps the sound clear in front of the reverb. |
| SIZE | slider | axfx-rvSize | The size of the space: scales all the delay lines and the early reflections. Small = a room, large = a hall. |
| DECAY | slider | axfx-rvDecay | How long the tail takes to die away by 60 dB (RT60). |
| DAMPING (HIGH CUT) | slider | axfx-rvDamp | Darkens the tail: the highs die away faster than the lows, like soft walls. Lower = darker, warmer. |
| LOW CUT | slider | axfx-rvLow | Removes the lows before the reverb so kicks and basses do not turn to mud. |
| DIFFUSION | slider | axfx-rvDiff | How smooth the tail is: high = a dense, smooth wash, low = more separate echoes. |
| MODULATION | slider | axfx-rvMod | Slowly moves the delay lines so the tail shimmers and never rings metallic. |
| STEREO WIDTH | slider | axfx-rvWidth | Stereo spread of the reverb: 0 = mono, 100% = full stereo, above = extra wide. |
| EARLY REFLECTIONS | slider | axfx-rvEarly | Level of the first reflections off the walls: they give the sense of the room before the tail starts. |
| ⚡ TRIGGER MODE: OFF | button | btn-aux-trigger-mode | ON: each bay is silent until you hold its FX pad (key 5 to 8), fading with ATT and REL. OFF: bays are always audible. |
| FX 1 [KEY 5]PLATE | button | pad-aux-trigger-1 | Hold to let AUX bay 1 through (key 5); release to fade it out. Only works while TRIGGER MODE is ON. |
| chk-aux-invert-1 | checkbox | chk-aux-invert-1 | Inverts bay 1 in trigger mode: the effect is audible normally and is cut while you hold the pad. |
| slider-aux-att-1 | slider | slider-aux-att-1 | Fade-in time in ms, 0 to 500, when the FX pad of bay 1 is pressed in trigger mode. |
| slider-aux-rel-1 | slider | slider-aux-rel-1 | Fade-out time in ms, 0 to 2000, after the FX pad of bay 1 is released in trigger mode. |
| FX 2 [KEY 6]STEREO DELAY | button | pad-aux-trigger-2 | Hold to let AUX bay 2 through (key 6); release to fade it out. Only works while TRIGGER MODE is ON. |
| chk-aux-invert-2 | checkbox | chk-aux-invert-2 | Inverts bay 2 in trigger mode: the effect is audible normally and is cut while you hold the pad. |
| slider-aux-att-2 | slider | slider-aux-att-2 | Fade-in time in ms, 0 to 500, when the FX pad of bay 2 is pressed in trigger mode. |
| slider-aux-rel-2 | slider | slider-aux-rel-2 | Fade-out time in ms, 0 to 2000, after the FX pad of bay 2 is released in trigger mode. |
Sequencer
| Control | Type | Id | What it does |
|---|---|---|---|
| TOOLS ▾ | button | btn-seq-tools-toggle | Shows or hides the track tools (random, velocity ramp, shift, reverse ... ), the value lane, pattern copy / paste / dupe / clear and the full 18-row grid. Closed, the pads stay big. |
| ⇇ RENDER SEQUENCE... | button | btn-render-sequence | Opens the render window: the active sequence into a chosen loop, all sequences into all 16 loops, or to a WAV file. |
| PADS | button | btn-seqmode-pads | PADS: the 16 pattern buttons and the pad step sequencer. |
| LOOPS | button | btn-seqmode-loops | LOOPS: the pad sequencer is off and the 16 loop buttons (dark to light grey) play the loops of the LOOP SET like clips, on bar lines. |
| ⇣ SEQ → LOOP | button | btn-seq-to-loop | Renders the active sequence into the next free loop slot (and the loop slicer). |
| ⇣⇣ ALL → LOOPS | button | btn-seqs-to-loops | Renders all 16 sequences into the 16 loop slots. |
| 1-empty | button | loopset-btn-0 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 2-empty | button | loopset-btn-1 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 3-empty | button | loopset-btn-2 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 4-empty | button | loopset-btn-3 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 5-empty | button | loopset-btn-4 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 6-empty | button | loopset-btn-5 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 7-empty | button | loopset-btn-6 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 8-empty | button | loopset-btn-7 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 9-empty | button | loopset-btn-8 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 10-empty | button | loopset-btn-9 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 11-empty | button | loopset-btn-10 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 12-empty | button | loopset-btn-11 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 13-empty | button | loopset-btn-12 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 14-empty | button | loopset-btn-13 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 15-empty | button | loopset-btn-14 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| 16-empty | button | loopset-btn-15 | Empty loop slot. Make loops on the EDIT side (LOOP SET tab) or render a sequence. |
| ■ STOP LOOP | button | btn-loopset-stop | Stops the playing loop on the next bar line. |
| 1Verse 1 | button | seq-slot-0 | Verse 1 (4 bars) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 2Verse 2 | button | seq-slot-1 | Verse 2 (4 bars) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 3Verse 3 | button | seq-slot-2 | Verse 3 (4 bars) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 4Verse 4 | button | seq-slot-3 | Verse 4 (4 bars) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 5Chorus 1 | button | seq-slot-4 | Chorus 1 (4 bars) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 6Chorus 2 | button | seq-slot-5 | Chorus 2 (4 bars) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 7Chorus 3 | button | seq-slot-6 | Chorus 3 (4 bars) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 8Bridge | button | seq-slot-7 | Bridge (4 bars - then goes to Verse 4) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 9Long Intro | button | seq-slot-8 | Long Intro (4 bars - then goes to Verse 1) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 10Short Intro | button | seq-slot-9 | Short Intro (2 bars - then goes to Verse 1) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 11Fill 1 | button | seq-slot-10 | Fill 1 (2 bars - then goes to Verse 2) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 12Fill 2 | button | seq-slot-11 | Fill 2 (1 bar - then goes to Verse 3) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 13Perc Loop 1 | button | seq-slot-12 | Perc Loop 1 (2 bars) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 14Perc Loop 2 | button | seq-slot-13 | Perc Loop 2 (2 bars) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 15Perc Loop 3 | button | seq-slot-14 | Perc Loop 3 (2 bars) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| 16Perc Loop 4 | button | seq-slot-15 | Perc Loop 4 (2 bars) - click to cue. Click starts it after the current pattern ends; double-click or double-tap starts it at the next measure. |
| FOLLOW: ON | button | btn-follow | FOLLOW: after an intro, fill or bridge has played through once, the sequencer goes on to the part set for it (a verse unless you change it). Click to switch it on or off. |
| ⚙ GOES TO... | button | btn-follow-set | Opens the panel where you choose where each intro, fill and the bridge goes after it has played through once. |
| 📋 COPY PATTERN | button | btn-seq-pat-copy | Copy entire 18-track active pattern bank to clipboard |
| 📥 PASTE PATTERN | button | btn-seq-pat-paste | Pastes the copied pattern over the active slot, replacing its steps and bar count. Refused if the slot is locked. |
| ⏩ DUPE PATTERN | button | btn-seq-pat-dupe | Copies the active pattern into the next slot that is not locked, and switches to it. That slot is overwritten. |
| 🔓 UNLOCKED | button | btn-seq-pat-lock | Write-protects the active pattern slot: recording, paste, clear and dupe into it are refused while locked. |
| 🗑 CLEAR PATTERN | button | btn-seq-pat-clear | Clear all tracks across all measures for active pattern slot |
| 🗑 CLEAR ACTIVE PAD | button | btn-seq-clear-pad | Clear active selected pad track across all measures |
| 💾 EXPORT MIDI | button | btn-export-seq-midi | Export active 18-track pattern as Type 0 Standard MIDI File (.mid) |
| ⚡ SYNC GRID | button | btn-sync-tracks | Resets every track to its first step so tracks that drifted apart (different lengths, skip notes) line up again. |
| ◀ PREV | button | btn-prev-scene | Shows the previous bar (1 to 8, wraps around) in the step editor. |
| BAR 1 | button | btn-bar-0 | Switch to Measure 1 (16 Steps). Shows this bar in the step editor and the 17-track grid. |
| BAR 2 | button | btn-bar-1 | Switch to Measure 2 (16 Steps). Shows this bar in the step editor and the 17-track grid. |
| BAR 3 | button | btn-bar-2 | Switch to Measure 3 (16 Steps). Shows this bar in the step editor and the 17-track grid. |
| BAR 4 | button | btn-bar-3 | Switch to Measure 4 (16 Steps). Shows this bar in the step editor and the 17-track grid. |
| BAR 5 | button | btn-bar-4 | Switch to Measure 5 (16 Steps). Shows this bar in the step editor and the 17-track grid. |
| BAR 6 | button | btn-bar-5 | Switch to Measure 6 (16 Steps). Shows this bar in the step editor and the 17-track grid. |
| BAR 7 | button | btn-bar-6 | Switch to Measure 7 (16 Steps). Shows this bar in the step editor and the 17-track grid. |
| BAR 8 | button | btn-bar-7 | Switch to Measure 8 (16 Steps). Shows this bar in the step editor and the 17-track grid. |
| NEXT ▶ | button | btn-next-scene | Shows the next bar (1 to 8, wraps around) in the step editor. |
| LIMIT: | dropdown | select-sequencer-loop-len | How many bars, 1 to 8, the pattern plays before it loops or, in CHAIN mode, moves on to the next pattern. |
| select-pattern-style | dropdown | select-pattern-style | Style used by RANDOM PATTERN. Choosing one also loads that style's 16 genre patterns into the pattern slots. |
| 🎲 RANDOM PATTERN | button | btn-random-pattern | Fills all 16 drum tracks of the shown bar with a new random pattern in the chosen style. The chaos slider sets how wild it gets. |
| 📋 COPY | button | btn-seq-copy-measure | Copy 16 steps of active instrument in this measure |
| 📥 PASTE | button | btn-seq-paste-measure | Paste copied sequence into current measure |
| ⏩ DUPE | button | btn-seq-duplicate-measure | Copies the shown bar of the selected track into the next bar and moves to it. On bar 8 there is no next bar and the button says LAST BAR. |
| 🗑 CLEAR | button | btn-seq-clear-measure | Clear 16 steps of active instrument in this measure |
| ⊞ EXPAND 18 ROWS | button | btn-toggle-seq-collapse | Shows or hides the full grid of all 17 tracks (16 pads plus loop) for the shown bar. Locked while SLOW CPU is on. |
| MUTE | button | btn-track-mute | Mutes the selected track's steps during playback. Click again to unmute. |
| SOLO | button | btn-track-solo | Plays only the soloed track or tracks in the sequence; all others stay silent. |
| 🔗 CHAIN: OFF | button | btn-seq-chain-mode | Song mode: after a pattern has played its bar limit, the next slot (1 to 16, then back to 1) starts automatically. |
| ▶ AUDITION | button | btn-audition-active | Plays the selected track's sound once (the loop for the LP track). |
| 🎲 RANDOM | button | btn-seq-random-track | Writes a random rhythm for the selected track into the shown bar. The chaos slider sets how adventurous it is. |
| 📈 VEL RAMP | button | btn-seq-vel-ramp | Click: the velocity of the active steps of the shown bar rises from 40 to 127. Shift+click: it falls from 127 to 40. |
| 🔀 HUMANIZE | button | btn-seq-vel-human | Randomly shifts the velocity of each active step in the shown bar by up to 15 up or down (kept between 20 and 127). |
| ⚡ FLAMS | button | btn-seq-auto-flams | In the shown bar, adds a roll to active steps 15 and 16 and a flam to about half of the active steps 3, 7, 11 and 15. |
| ↔ PAN SWEEP | button | btn-seq-pan-sweep | Sets the pan of the 16 steps of the shown bar. Each click moves to the next shape: ping-pong, left to right, right to left, centre. |
| ◀ SHIFT | button | btn-seq-shift-left | Moves every step of the shown bar one step earlier. The first step wraps round to the end. |
| SHIFT ▶ | button | btn-seq-shift-right | Moves every step of the shown bar one step later. The last step wraps round to the start. |
| ⇄ REVERSE | button | btn-seq-reverse | Plays the shown bar backwards: step 1 swaps with step 16, step 2 with step 15, and so on. |
| ◐ INVERT | button | btn-seq-invert | Swaps hits and rests in the shown bar. The new hits get velocity 100. |
| ⇉ MIRROR | button | btn-seq-mirror | Copies steps 1 to 8 of the shown bar onto steps 9 to 16. |
| ❗ ACCENT | button | btn-seq-accent | Sets the velocity of the active steps by their place in the beat: the beats loudest, the 8ths medium, the 16ths softest. |
| 🕑 HUMAN TIME | button | btn-seq-human-time | Moves each active step a few milliseconds early or late (up to 10 ms). The beats stay exactly on the grid. |
| 🎲 CHANCE | button | btn-seq-chance | Gives the active off-beat steps a chance of playing: each click cycles 75, 50, 25 percent and back to always. A single step can also be set in its inspector. |
| ⇶ COPY TO ALL BARS | button | btn-seq-fill-bars | Copies the shown bar of this track onto all 8 bars. |
| input-euclidean-hits | number box | input-euclidean-hits | Number of hits, 1 to 16, that FILL spreads evenly over the 16 steps. |
| ⭕ FILL | button | btn-seq-euclidean | Replaces the shown bar of the selected track with an evenly spread (Euclidean) rhythm using the hit count on the left. |
| 1 | button | active-step-btn-N | Step 1 (Bar 1) - Click/Drag to toggle; right-click for full inspector. Drag across steps to paint or erase several at once; the badge shows a hit modifier. |
| ⚙ EDIT | button | active-step-edit-btn-0 | Open the step inspector for Step 1: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-1 | Open the step inspector for Step 2: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-2 | Open the step inspector for Step 3: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-3 | Open the step inspector for Step 4: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-4 | Open the step inspector for Step 5: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-5 | Open the step inspector for Step 6: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-6 | Open the step inspector for Step 7: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-7 | Open the step inspector for Step 8: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-8 | Open the step inspector for Step 9: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-9 | Open the step inspector for Step 10: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-10 | Open the step inspector for Step 11: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-11 | Open the step inspector for Step 12: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-12 | Open the step inspector for Step 13: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-13 | Open the step inspector for Step 14: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-14 | Open the step inspector for Step 15: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| ⚙ EDIT | button | active-step-edit-btn-15 | Open the step inspector for Step 16: velocity, micro-timing, pan, chance, step modifier and MIDI note. |
| VEL | button | seq-lane-tab-vel | Velocity lane: press and drag across the bars below to draw the loudness of each step, 1 to 127. |
| PAN | button | seq-lane-tab-pan | Pan lane: press and drag across the bars below to draw each step's stereo position, -1 left to +1 right. |
| MICRO | button | seq-lane-tab-micro | Micro-timing lane: press and drag across the bars below to nudge each step earlier or later, -50 to +50 ms. |
| MOD | button | seq-lane-tab-mod | Modifier lane: click a step below to cycle its hit type (ratchet, flam, burst, ghost, choke, hold, skip); Shift-click cycles backwards. |
| step-btn-0 | button | step-btn-0-N | Track 1, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-1 | button | step-btn-1-N | Track 2, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-2 | button | step-btn-2-N | Track 3, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-3 | button | step-btn-3-N | Track 4, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-4 | button | step-btn-4-N | Track 5, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-5 | button | step-btn-5-N | Track 6, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-6 | button | step-btn-6-N | Track 7, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-7 | button | step-btn-7-N | Track 8, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-8 | button | step-btn-8-N | Track 9, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-9 | button | step-btn-9-N | Track 10, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-10 | button | step-btn-10-N | Track 11, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-11 | button | step-btn-11-N | Track 12, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-12 | button | step-btn-12-N | Track 13, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-13 | button | step-btn-13-N | Track 14, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-14 | button | step-btn-14-N | Track 15, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-15 | button | step-btn-15-N | Track 16, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-16 | button | step-btn-16-N | Track LP A, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
| step-btn-17 | button | step-btn-17-N | Track LP B, Step 1 (Right-click to Inspect). Click toggles the step on or off. |
MIDI
| Control | Type | Id | What it does |
|---|---|---|---|
| SKIP ▶ | button | btn-learn-skip | Skips the current control of the learn set and moves to the next one. |
| EXIT LEARN | button | btn-exit-midi-learn | Leaves MIDI Learn mode. The bindings you already made are kept. |
| MIDI NOTE NUMBER (0-127) | number box | inspector-midi-note | MIDI note number, 0 to 127, sent for this step to external MIDI out. |
| ✕ | button | btn-close-midi-modal | Closes the MIDI import window and stops any audition. |
| SELECT MIDI FILE | file picker | input-midi-file | Choose a Standard MIDI file (.mid or .midi) to analyse. |
| DETECTED TRACK / CHANNEL | dropdown | select-midi-track | Which track of the MIDI file to import. All Tracks reads every drum note in the file. |
| BARS TO COMMIT (SCENES 1-8) | dropdown | select-midi-bars | How many bars (1, 2, 4 or 8) of the file are written into the sequencer. |
| ▶ AUDITION | button | btn-midi-audition-play | Audition MIDI groove using current kit |
| ⏹ STOP | button | btn-midi-audition-stop | Stop audition playback |
| ⚡ AUTO-DETECT GM | button | btn-midi-autodetect-gm | Reset routing to General MIDI standard |
| ✓ COMMIT TO SEQUENCER | button | btn-commit-midi | Writes the notes into the sequencer tracks of the current pattern using the routing below, then closes this window. |
| ✕ | button | btn-close-midi-config | Closes the MIDI setup window. |
| GRID CONTROLLER (AKAI APC / LAUNCHPAD) | button | tab-midi-grid | Light up the pad grid of an Akai APC Key 25 (or a Launchpad) with this app's pattern pads and steps, and share the grid with other apps. |
| DEVICES & LIVE MONITOR | button | tab-midi-devices | MIDI input and output devices, channels and the live MIDI monitor. |
| MIDI LEARN & MAPPING TABLE | button | tab-midi-mappings | Table of MIDI Learn bindings, with import and export. |
| PAD CONTROLLERS (AKAI / NOVATION SPLIT) | button | tab-midi-controllers | Pad controller setup: AKAI APC or Novation Launchpad layouts, note ranges and LED feedback. |
| grid-on | checkbox | grid-on | (no tooltip) |
| grid-s-patterns | checkbox | grid-s-patterns | (no tooltip) |
| grid-s-steps | checkbox | grid-s-steps | (no tooltip) |
| grid-s-bars | checkbox | grid-s-bars | (no tooltip) |
| grid-s-pads | checkbox | grid-s-pads | (no tooltip) |
| DEVICE | dropdown | grid-profile | Which controller. AUTO-DETECT looks at the names of the MIDI ports. |
| IN | dropdown | grid-in | The input port of the controller's pads (the second USB MIDI port: 'Control', MIDIIN2 or MIDI 2). AUTO picks it. |
| OUT | dropdown | grid-out | The output port that lights the pads. |
| CONNECT | button | grid-connect | Connects the controller (the browser asks for MIDI and SysEx access once). |
| DISCONNECT | button | grid-disconnect | Releases the controller and switches its lights off. |
| LIGHT TEST | button | grid-test | Lights every pad one after the other: check that the right pads light. |
| LEARN FIRST PAD | button | grid-learn | First generation APC Key 25: press the BOTTOM-LEFT pad to teach the app where the grid starts. |
| grid-intro | checkbox | grid-intro | (no tooltip) |
| grid-base | number box | grid-base | Note of the bottom-left pad (try 32; use LEARN FIRST PAD). |
| grid-stride | number box | grid-stride | Note difference between two rows (8). |
| ROOM | text box | grid-room | Apps with the same grid room share the controller. Windows of this browser need nothing else. |
| grid-net | checkbox | grid-net | (no tooltip) |
| grid-ws | text box | grid-ws | Address of the relay. Empty = this page's server. |
| PACK IN THIS ORDER | button | grid-pack | Stacks the blocks one under the other in the order shown (top first), at the left edge. |
| RESET PLACES | button | grid-reset | Forgets the places and puts every block where it fits first. |
| INPUT DEVICE (USB / DIN) | dropdown | config-midi-input-select | Hardware MIDI input whose notes and knobs play the pads and move mapped controls. |
| RECEIVE CHANNEL | dropdown | config-midi-input-channel | MIDI channel to receive on; Omni accepts every channel. Channel 10 is the General MIDI drum channel. |
| OUTPUT DEVICE (TRIGGER OUT) | dropdown | config-midi-output-select | Device that receives a MIDI note for every sequencer hit and, if supported, LED messages. |
| ↻ RESCAN USB CONTROLLERS | button | btn-config-midi-rescan | Looks for MIDI devices again. Use it after plugging in a controller. |
| CLEAR LOG | button | btn-clear-midi-log | Empties the live MIDI monitor list. |
| 🎹 ENGAGE MIDI LEARN | button | btn-config-toggle-learn | Starts or stops MIDI Learn: click an on-screen control, then move a hardware knob or press a key to bind it. |
| RESET GM DRUMS | button | btn-reset-default-midi | Puts the pads back on the General MIDI drum notes (kick 36, snare 38, ...) and clears every learned MIDI mapping. Use it to start the MIDI setup again from scratch. |
| CLEAR ALL | button | btn-clear-all-midi | Deletes every MIDI Learn mapping. |
| EXPORT MAP | button | btn-export-midi-map | Saves the mapping table as a JSON file. |
| IMPORT MAP | button | btn-import-midi-map | Loads a mapping table from a JSON file. |
| input-import-midi-map | file picker | input-import-midi-map | File chooser used by IMPORT MAP (.json). |
| select-learn-set | dropdown | select-learn-set | What to learn. Mixer sets (volume, pan, sends, mute, solo, select) work for every pad, also the ones that are not on screen. |
| select-learn-index | dropdown | select-learn-index | Which one for LEARN ONE: pad 1-16 or 17 for the looper (slot, bar or step number for the other sets). |
| LEARN ONE | button | btn-learn-one | Learns just the chosen one: press a key, pad or knob on your controller. |
| LEARN ALL IN ORDER | button | btn-learn-all | Learns the whole set in order, starting with the first. Touch one control on your controller per step. SKIP in the top banner leaves one out. |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| ✕ | button | (no id) | Remove mapping |
| CONTROLLER PROFILE | dropdown | select-controller-profile | Layout of your hardware pad controller: AKAI APC, Novation Launchpad, a plain 4x4 grid or a custom split. |
| KEYBOARD & DUAL ROUTING | dropdown | select-keyboard-route-mode | Ignore the keys of a MIDI keyboard (to keep the pad grid separate) or play them chromatically on the drum cells. |
| NOTE MAP (WHAT A NOTE PLAYS) | dropdown | select-midi-note-map | PADS IN ORDER: notes 36, 37, 38 ... play pads 1, 2, 3 ... (pad 1 = C, pad 2 = C#, pad 3 = D). GENERAL MIDI: a drum note from a GM drum track or keyboard plays the pad with the same drum role (kick C1, snare D1, toms F1 / G1 / A1, hats F#1 / G#1 / A#1, crash C#2, ride D#2). |
| SECONDARY MIDI INPUT (DUAL DEVICE) | dropdown | config-midi-input-2-select | Optional second MIDI input for a dual-controller setup, for example pads plus a keyboard. |
| SECONDARY RECEIVE CHANNEL | dropdown | config-midi-input-2-channel | MIDI channel the second input listens on. |
| -OCT | button | btn-play-oct-down | Shift Playable Pads Down 1 Octave |
| +OCT | button | btn-play-oct-up | Shift Playable Pads Up 1 Octave |
| ROOT MIDI NOTE: | number box | input-play-pads-root | MIDI note of the first playable pad, 0 to 111. The other pads follow in rising note numbers. |
| -OCT | button | btn-seq-oct-down | Shift Sequencer Pads Down 1 Octave |
| +OCT | button | btn-seq-oct-up | Shift Sequencer Pads Up 1 Octave |
| ROOT MIDI NOTE: | number box | input-seq-steps-root | MIDI note of step 1 on the controller's step section, 0 to 111. Steps 2 to 16 follow in rising note numbers. |
| FX 3 [KEY 7]MULTI-DISTORTION | button | pad-aux-trigger-3 | Hold to let AUX bay 3 through (key 7); release to fade it out. Only works while TRIGGER MODE is ON. |
| chk-aux-invert-3 | checkbox | chk-aux-invert-3 | Inverts bay 3 in trigger mode: the effect is audible normally and is cut while you hold the pad. |
| slider-aux-att-3 | slider | slider-aux-att-3 | Fade-in time in ms, 0 to 500, when the FX pad of bay 3 is pressed in trigger mode. |
| slider-aux-rel-3 | slider | slider-aux-rel-3 | Fade-out time in ms, 0 to 2000, after the FX pad of bay 3 is released in trigger mode. |
| FX 4 [KEY 8]5-BAND EQ | button | pad-aux-trigger-4 | Hold to let AUX bay 4 through (key 8); release to fade it out. Only works while TRIGGER MODE is ON. |
| chk-aux-invert-4 | checkbox | chk-aux-invert-4 | Inverts bay 4 in trigger mode: the effect is audible normally and is cut while you hold the pad. |
| slider-aux-att-4 | slider | slider-aux-att-4 | Fade-in time in ms, 0 to 500, when the FX pad of bay 4 is pressed in trigger mode. |
| slider-aux-rel-4 | slider | slider-aux-rel-4 | Fade-out time in ms, 0 to 2000, after the FX pad of bay 4 is released in trigger mode. |
| chk-midi-led-feedback | checkbox | chk-midi-led-feedback | Sends LED colour messages back to the controller to show active pads and steps. |
| LED PROTOCOL: | dropdown | select-midi-led-protocol | LED colour protocol to send: AKAI APC velocity colours or Novation Launchpad RGB. |
| 💡 TEST LEDS | button | btn-test-controller-leds | Runs a light chase over the controller pads to check LED feedback. Needs a MIDI output device. |
Dialogs
| Control | Type | Id | What it does |
|---|---|---|---|
| × | button | dj-sc-close | Closes the scratch tool. The settings stay as they are. |
| dj-sc-attack | slider | dj-sc-attack | ATTACK: Time the record takes to get up to its peak speed. It stays until you change it. |
| dj-sc-sustain | slider | dj-sc-sustain | SUSTAIN: How long the peak speed is held. It stays until you change it. |
| dj-sc-decay | slider | dj-sc-decay | DECAY: Time the record takes to come to a halt. It stays until you change it. |
| dj-sc-release | slider | dj-sc-release | RELEASE: Time to get from the halt back to the normal speed. It stays until you change it. |
| dj-sc-dist | slider | dj-sc-dist | DISTANCE: How far the record moves in one stroke, in beats of the loaded item. It stays until you change it. |
| P1 | button | dj-sc-p1 | Click to recall preset 1; hold for about a second to save the current setting into it. It applies to both scratch buttons. |
| P2 | button | dj-sc-p2 | Click to recall preset 2; hold for about a second to save the current setting into it. It applies to both scratch buttons. |
| P3 | button | dj-sc-p3 | Click to recall preset 3; hold for about a second to save the current setting into it. It applies to both scratch buttons. |
| dj-sc-slip | checkbox | dj-sc-slip | Slip: the record keeps its place in time under the scratch, so the groove is not lost. |
Other
| Control | Type | Id | What it does |
|---|---|---|---|
| dj-master-bpm | number box | dj-master-bpm | The project tempo (the master clock). Type a value or use TAP. Synced decks follow it. |
| TAP | button | dj-master-tap | Tap the project tempo. Two taps or more set it. |
| ▶ CLOCK | button | dj-clock | Starts or stops the project clock. Decks start on its next bar line while it runs. |
| dj-xf-curve | dropdown | dj-xf-curve | Crossfader curve: FULL keeps both decks open in the middle, CONSTANT POWER keeps the loudness even, HARD CUT closes a deck at once. |
| 📦 EXPORT PACK... | button | dj-export | Makes sample packs from here: the 16 loops, the sounds of the current kit (16 WAV files) or every factory kit, as a ZIP or into a folder. |
| 🎧 DJ PADS... | button | dj-padsbtn | The 16 DJ pads (eight under each deck): effect sounds you play with the pad keys. Opens the list where you can load your own sounds into them. |
| dj-autostop | checkbox | dj-autostop | On: the main transport stops when the last deck stops and nothing else plays. Off: it keeps running. |
| dj-store-file | checkbox | dj-store-file | When ticked, a file loaded into a deck is also kept in a free loop pad of the loop set. |
| DECK A | button | dj-sel-0 | Selects deck A: the next loop pad you press loads into it. Selecting does not start anything. |
| LOAD | button | dj-load-0 | Loads an mp3 / wav / aiff file into deck A as a song. Files can also be dropped on the deck. |
| TEMPO | button | dj-tomaster-0 | Sets the project tempo to the speed deck A plays at now. Use it to make the sequencer follow a song. |
| dj-pitch-0 | slider | dj-pitch-0 | Pitch fader of deck A: speeds the deck up (up) or slows it down. Double-click centres it. |
| ±8% | button | dj-range-0 | Switches the pitch fader range between plus/minus 8 % and 16 %. |
| - | button | dj-nudge-m-0 | Nudge back: slows the deck a little while held, to line up beats by hand. |
| + | button | dj-nudge-p-0 | Nudge forward: speeds the deck up a little while held, to line up beats by hand. |
| dj-bpm-0 | number box | dj-bpm-0 | The BPM of the item in deck A (type to correct it). SYNC uses it. |
| TAP | button | dj-tap-0 | Tap the beat of the song to set the BPM of this deck. |
| CUE | button | dj-cue-0 | Playing: back to the cue point and stop. Stopped away from the cue point: sets the cue point here. Stopped on the cue point: hold to preview, release to go back (press PLAY while holding to keep playing). |
| ▶ PLAY | button | dj-play-0 | Plays or pauses deck A. When everything is stopped it starts the main transport too; while the clock runs it starts on the next bar line. |
| SYNC | button | dj-sync-0 | Plays the item at the project tempo (varispeed: pitch follows). Follows tempo changes while on. |
| KEY | button | dj-key-0 | Keeps the pitch while the tempo changes (rendered in the background, up to 150 s). Slightly less clean than varispeed. |
| LOOP | button | dj-looponoff-0 | Loops the item (or the chosen bars). Off: it plays once, like a song. |
| 1 | button | dj-len-0-1 | Loops the 1 bar that contain the playhead. Press again to loop the whole item. |
| 2 | button | dj-len-0-2 | Loops the 2 bars that contain the playhead. Press again to loop the whole item. |
| 4 | button | dj-len-0-4 | Loops the 4 bars that contain the playhead. Press again to loop the whole item. |
| 8 | button | dj-len-0-8 | Loops the 8 bars that contain the playhead. Press again to loop the whole item. |
| ◀◀ REV | button | dj-scr-rev-0 | Scratch stroke backwards: a sharp push and a halt, shaped by the gear settings. |
| FWD ▶▶ | button | dj-scr-fwd-0 | Scratch stroke forwards: a sharp push and a halt, shaped by the gear settings. |
| ⚙ | button | dj-sc-gear-0 | Opens the scratch tool: attack, sustain, decay, release and distance of the FWD / REV strokes, with 3 presets. |
| 1AIR HORN1 | button | djp-0 | DJ pad 1: a sample (effect, shout, siren ...). Key 1, MIDI note 36. Right-click or hold to load your own sound into it. |
| 2SIREN2 | button | djp-1 | DJ pad 2: a sample (effect, shout, siren ...). Key 2, MIDI note 37. Right-click or hold to load your own sound into it. |
| 3LASER3 | button | djp-2 | DJ pad 3: a sample (effect, shout, siren ...). Key 3, MIDI note 38. Right-click or hold to load your own sound into it. |
| 4REWIND4 | button | djp-3 | DJ pad 4: a sample (effect, shout, siren ...). Key 4, MIDI note 39. Right-click or hold to load your own sound into it. |
| 5SCRATCHQ | button | djp-4 | DJ pad 5: a sample (effect, shout, siren ...). Key Q, MIDI note 40. Right-click or hold to load your own sound into it. |
| 6SPIN DOWNW | button | djp-5 | DJ pad 6: a sample (effect, shout, siren ...). Key W, MIDI note 41. Right-click or hold to load your own sound into it. |
| 7HEY!E | button | djp-6 | DJ pad 7: a sample (effect, shout, siren ...). Key E, MIDI note 42. Right-click or hold to load your own sound into it. |
| 8YEAH!R | button | djp-7 | DJ pad 8: a sample (effect, shout, siren ...). Key R, MIDI note 43. Right-click or hold to load your own sound into it. |
| dj-eq-hi-0 | slider | dj-eq-hi-0 | HI band of deck A, 0 to 150 %. At 0 the band is cut completely; double-click resets to flat. |
| KILL | button | dj-kill-hi-0 | Kills the HI band of deck A completely. Click again to bring it back. |
| dj-eq-mid-0 | slider | dj-eq-mid-0 | MID band of deck A, 0 to 150 %. At 0 the band is cut completely; double-click resets to flat. |
| KILL | button | dj-kill-mid-0 | Kills the MID band of deck A completely. Click again to bring it back. |
| dj-eq-lo-0 | slider | dj-eq-lo-0 | LOW band of deck A, 0 to 150 %. At 0 the band is cut completely; double-click resets to flat. |
| KILL | button | dj-kill-lo-0 | Kills the LOW band of deck A completely. Click again to bring it back. |
| dj-level-0 | slider | dj-level-0 | Channel level of deck A (also for the loop the sequencer plays on row 17). Double-click for 80 %. |
| 1-empty | button | dj-loop-0 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 2-empty | button | dj-loop-1 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 3-empty | button | dj-loop-2 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 4-empty | button | dj-loop-3 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 5-empty | button | dj-loop-4 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 6-empty | button | dj-loop-5 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 7-empty | button | dj-loop-6 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 8-empty | button | dj-loop-7 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 9-empty | button | dj-loop-8 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 10-empty | button | dj-loop-9 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 11-empty | button | dj-loop-10 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 12-empty | button | dj-loop-11 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 13-empty | button | dj-loop-12 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 14-empty | button | dj-loop-13 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 15-empty | button | dj-loop-14 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| 16-empty | button | dj-loop-15 | Empty loop slot. Render loops in PERFORM (sequence to loop) or use FILE->PAD. |
| KIND | button | dj-pad-kind | Switches the selected pad between LOOP (follows the tempo) and SONG (plays as it is). |
| FILE→PAD | button | dj-pad-load | Loads an audio file into the selected pad (a free pad if it is empty). |
| CLEAR | button | dj-pad-clear | Empties the selected pad. |
| dj-xfader | slider | dj-xfader | Crossfader: blends deck A (left) and deck B (right). Double-click centres it. |
| DECK B | button | dj-sel-1 | Selects deck B: the next loop pad you press loads into it. Selecting does not start anything. |
| LOAD | button | dj-load-1 | Loads an mp3 / wav / aiff file into deck B as a song. Files can also be dropped on the deck. |
| TEMPO | button | dj-tomaster-1 | Sets the project tempo to the speed deck B plays at now. Use it to make the sequencer follow a song. |
| dj-pitch-1 | slider | dj-pitch-1 | Pitch fader of deck B: speeds the deck up (up) or slows it down. Double-click centres it. |
| ±8% | button | dj-range-1 | Switches the pitch fader range between plus/minus 8 % and 16 %. |
| - | button | dj-nudge-m-1 | Nudge back: slows the deck a little while held, to line up beats by hand. |
| + | button | dj-nudge-p-1 | Nudge forward: speeds the deck up a little while held, to line up beats by hand. |
| dj-bpm-1 | number box | dj-bpm-1 | The BPM of the item in deck B (type to correct it). SYNC uses it. |
| TAP | button | dj-tap-1 | Tap the beat of the song to set the BPM of this deck. |
| CUE | button | dj-cue-1 | Playing: back to the cue point and stop. Stopped away from the cue point: sets the cue point here. Stopped on the cue point: hold to preview, release to go back (press PLAY while holding to keep playing). |
| ▶ PLAY | button | dj-play-1 | Plays or pauses deck B. When everything is stopped it starts the main transport too; while the clock runs it starts on the next bar line. |
| SYNC | button | dj-sync-1 | Plays the item at the project tempo (varispeed: pitch follows). Follows tempo changes while on. |
| KEY | button | dj-key-1 | Keeps the pitch while the tempo changes (rendered in the background, up to 150 s). Slightly less clean than varispeed. |
| LOOP | button | dj-looponoff-1 | Loops the item (or the chosen bars). Off: it plays once, like a song. |
| 1 | button | dj-len-1-1 | Loops the 1 bar that contain the playhead. Press again to loop the whole item. |
| 2 | button | dj-len-1-2 | Loops the 2 bars that contain the playhead. Press again to loop the whole item. |
| 4 | button | dj-len-1-4 | Loops the 4 bars that contain the playhead. Press again to loop the whole item. |
| 8 | button | dj-len-1-8 | Loops the 8 bars that contain the playhead. Press again to loop the whole item. |
| ◀◀ REV | button | dj-scr-rev-1 | Scratch stroke backwards: a sharp push and a halt, shaped by the gear settings. |
| FWD ▶▶ | button | dj-scr-fwd-1 | Scratch stroke forwards: a sharp push and a halt, shaped by the gear settings. |
| ⚙ | button | dj-sc-gear-1 | Opens the scratch tool: attack, sustain, decay, release and distance of the FWD / REV strokes, with 3 presets. |
| 9BASS DROPA | button | djp-8 | DJ pad 9: a sample (effect, shout, siren ...). Key A, MIDI note 44. Right-click or hold to load your own sound into it. |
| 10RISERS | button | djp-9 | DJ pad 10: a sample (effect, shout, siren ...). Key S, MIDI note 45. Right-click or hold to load your own sound into it. |
| 11BOOMD | button | djp-10 | DJ pad 11: a sample (effect, shout, siren ...). Key D, MIDI note 46. Right-click or hold to load your own sound into it. |
| 12RADIOF | button | djp-11 | DJ pad 12: a sample (effect, shout, siren ...). Key F, MIDI note 47. Right-click or hold to load your own sound into it. |
| 13NEWSZ | button | djp-12 | DJ pad 13: a sample (effect, shout, siren ...). Key Z, MIDI note 48. Right-click or hold to load your own sound into it. |
| 14BRASS HITX | button | djp-13 | DJ pad 14: a sample (effect, shout, siren ...). Key X, MIDI note 49. Right-click or hold to load your own sound into it. |
| 15CROWDC | button | djp-14 | DJ pad 15: a sample (effect, shout, siren ...). Key C, MIDI note 50. Right-click or hold to load your own sound into it. |
| 16BOINGV | button | djp-15 | DJ pad 16: a sample (effect, shout, siren ...). Key V, MIDI note 51. Right-click or hold to load your own sound into it. |
| dj-eq-hi-1 | slider | dj-eq-hi-1 | HI band of deck B, 0 to 150 %. At 0 the band is cut completely; double-click resets to flat. |
| KILL | button | dj-kill-hi-1 | Kills the HI band of deck B completely. Click again to bring it back. |
| dj-eq-mid-1 | slider | dj-eq-mid-1 | MID band of deck B, 0 to 150 %. At 0 the band is cut completely; double-click resets to flat. |
| KILL | button | dj-kill-mid-1 | Kills the MID band of deck B completely. Click again to bring it back. |
| dj-eq-lo-1 | slider | dj-eq-lo-1 | LOW band of deck B, 0 to 150 %. At 0 the band is cut completely; double-click resets to flat. |
| KILL | button | dj-kill-lo-1 | Kills the LOW band of deck B completely. Click again to bring it back. |
| dj-level-1 | slider | dj-level-1 | Channel level of deck B (also for the loop the sequencer plays on row 18). Double-click for 80 %. |
| dj-file | file picker | dj-file | (no tooltip) |
| ✕ | button | btn-close-inspector | Closes the step inspector. |
| VELOCITY | slider | inspector-velocity | Velocity of this step, 1 (soft) to 127 (hard). |
| MICRO-TIMING OFFSET | slider | inspector-microtiming | Shifts this step earlier (negative) or later (positive) by up to 50 ms. |
| PAN | slider | inspector-pan | Pans this step left or right of the pad's own pan. |
| CHANCE | slider | inspector-prob | Chance that this step plays each time round: 100 always, 50 every other time on average. |
| STEP MODIFIER | dropdown | inspector-modifier | Hit type of this step: single, double or triple ratchet, flam grace note, 4-hit burst, ghost note, note off, hold (tie to the previous hit) or skip. |
| ✕ | button | btn-close-match-modal | Closes the synth match report. |
| 🔄 RETRY | button | btn-match-modal-retry | Re-run search algorithm with expanded parameter bounds |
| 📥 EXPORT RECOMMENDATIONS | button | btn-match-modal-export | Download SYNTH_MATCH_RECOMMENDATIONS.md for manual/AI refinement |
| ✓ OK | button | btn-match-modal-ok | Closes the report and keeps the synth settings as they are now. |
| ✕ | button | btn-close-record-setup | Closes the window without recording. |
| record-setup-slot | dropdown | record-setup-slot | Pattern slot, 1 to 16, that receives the recording. |
| record-setup-role | dropdown | record-setup-role | Song role stored with the slot (Intro, Verse, Chorus ...). It is shown on the slot button. |
| record-setup-name | text box | record-setup-name | Optional name for the pattern slot. Leave empty to keep the current name. |
| record-setup-bars | dropdown | record-setup-bars | Length of the recording loop: 1, 2, 4 or 8 bars. |
| record-setup-mode | dropdown | record-setup-mode | Overdub keeps the notes already in the loop and adds yours; Overwrite replaces the loop's notes as you play. |
| record-setup-quantize | slider | record-setup-quantize | How strongly recorded hits snap to the grid. 100% puts them exactly on the step, 0% keeps your own timing (up to 50 ms off). |
| Quarter-note click | checkbox | record-setup-metronome | Plays the metronome click while recording. |
| CANCEL | button | btn-record-setup-cancel | Closes the window without starting a recording. |
| ⏺ START RECORDING | button | btn-record-setup-start | Applies these settings, arms recording and starts playback. |
| input-project-file | file picker | input-project-file | File chooser used by LOAD PROJECT (.axiomproject or .json). |
| input-load-json | file picker | input-load-json | File chooser used by LOAD (patch or song .json). |
| ✕ | button | btn-storage-close | Close |
| chk-storage-move | checkbox | chk-storage-move | Copies the files saved now into the new place. Off: the new place starts empty and the kits are rebuilt there when used. |
| CHOOSE A FOLDER... | button | btn-storage-folder | Pick a folder; AXIOM makes a folder called AXIOM Data in it. |
| USE BROWSER STORAGE | button | btn-storage-idb | Keep everything inside this browser (nothing to pick). |
| ASK ME LATER | button | btn-storage-later | Browser storage for now; ask again from SETTINGS > STORAGE FOLDER. |
| RECONNECT THE FOLDER | button | btn-storage-reconnect | The browser needs one click to let AXIOM use the saved folder again. |