SEQOMD turns your Ableton Move into a MIDI step sequencer. You get 16 tracks, each with 16 steps and 16 patterns. Steps can hold up to 7 notes with individual velocities, two CC values, probability, loop-based conditions, ratchets, and micro-timing offsets. There's a built-in arpeggiator with 15 modes that can be set per-track or overridden per-step. Tracks run at independent speeds and swing amounts. A transpose sequence lets you automate key changes across the pattern. Everything saves to 32 set slots on disk. It outputs MIDI over USB to control synths, drum machines, or your DAW.
| Feature | Capacity |
|---|---|
| Tracks | 16 (independent MIDI channels, speeds, swing) |
| Steps per Pattern | 16 (adjustable loop points) |
| Patterns per Track | 16 (with snapshot recall) |
| Sets | 32 (complete states saved to disk) |
| Notes per Step | 7 (polyphonic with individual velocities) |
| Scheduled Notes | 512 simultaneous |
Each step supports:
- Notes & Velocities: Up to 7 polyphonic notes with per-note velocity
- Note Length: 1-16 steps
- CC1 & CC2: Two CC values per step with track defaults
- Micro-timing: ±24 ticks offset (half-step resolution)
- Probability: 5-100% trigger chance
- Conditions: Loop-based triggers (1:2, 2:3, 1:4, etc. - 72 total)
- Ratchets: 1x-8x with velocity ramp up/down modes (22 options)
- Jump: Non-linear sequencing to any step
Full per-track arpeggiator with per-step overrides:
- 15 Modes: Up, Down, Up-Down, Random, Chord, Converge, Diverge, Thumb, Pinky, Outside-In, Inside-Out, etc.
- 10 Speeds: 1/32 to whole notes
- Octave Extension: None, ±1, ±2 octaves
- Play Steps: Binary skip patterns for complex rhythms
- Continuous Mode: Arp continues across triggers
- Layer Modes: Layer (overlap), Cut (monophonic), Legato
Three independent condition layers per step:
- Trigger Spark: When does the step play?
- Parameter Spark: When do CC locks apply?
- Component Spark: When do ratchets/jumps apply?
Create evolving patterns like "play every loop, but filter sweep only every 4th."
- 16-step transpose sequence with duration and conditions per step
- Live transpose: Piano pads for instant ±24 semitone shifts
- Chord follow: Per-track toggle for transpose response
- Scale detection: Auto-detects scale from played notes
- Speed: 1/4x to 4x multipliers (polyrhythms)
- Swing: 0-100% per track
- MIDI Channel: 1-16 per track
- Mute: Per-track control
| Action | Result |
|---|---|
| Pad tap (set view) | Load set, enter track view |
| Menu | Toggle pattern view |
| Shift + Menu | Toggle master view (transpose) |
| Loop (hold) | Edit loop points |
| Capture + Step | Edit spark conditions |
| Shift + Step 1 | Return to set view |
| Shift + Step 2 | Channel mode |
| Shift + Step 5 | Speed mode |
| Shift + Step 7 | Swing mode |
| Shift + Step 11 | Arp mode |
| Shift + Step 14 | Generate pattern mode |
| Track buttons | Select tracks 1-4 |
| Shift + Track | Select tracks 5-8 |
| Jog wheel | Scroll tracks (in 4-track groups) |
| Control | Function |
|---|---|
| Pads | Toggle notes (up to 7) |
| Knob 1 | CC1 value (tap to clear) |
| Knob 2 | CC2 value (tap to clear) |
| Knob 3 | Arp override (tap to cycle modes) |
| Knob 6 | Ratchet 1x-8x (tap to reset) |
| Knob 7 | Probability/Condition (tap to clear) |
| Knob 8 | Velocity (tap to reset to 100) |
| Jog wheel | Micro-timing offset |
| Tap another step | Set note length |
Algorithmic pattern generation with 8 styles and full parameter control. Enter via Shift + Step 14.
Styles (select with jog wheel):
- Random: Pure random within constraints
- Euclidean: Mathematically even note distribution (Bjorklund algorithm)
- Rising: Notes trend from low to high
- Falling: Notes trend from high to low
- Arc: Low → high → low melodic contour
- Pulse: Emphasis on downbeats (1, 5, 9, 13)
- Offbeat: Syncopated, avoids downbeats
- Clustered: Groups of notes with gaps between
Parameters (Knobs 1-8):
| Knob | Parameter | Range |
|---|---|---|
| 1 | Length | 1-64 steps |
| 2 | Density | 5-100% |
| 3 | Voices | 1-7 notes per step |
| 4 | Scale | Detected, Chromatic, + 15 scales |
| 5 | Root | Auto + C through B |
| 6 | Octave | 1-6 (base octave) |
| 7 | Range | 1-4 octaves |
| 8 | Variation | Style-specific (rotation, steepness, etc.) |
Usage: Adjust parameters, press jog to generate. Keep pressing to regenerate until satisfied. Press Back to exit.
seqomd/
module.json # Module metadata
ui.js # Main UI entry point
lib/
constants.js # Sequencer constants (speeds, conditions, etc.)
state.js # Mutable state + view transitions
helpers.js # Utility functions
data.js # Track/pattern data structures
persistence.js # Save/load sets to disk
generator.js # Pattern generation algorithms
scale_detection.js # Scale detection from notes
shared-constants.js # Colors, MIDI constants, button mappings
shared-input.js # LED control functions
views/
set.js # Set selection (32 sets on pads)
track.js # Track view coordinator
pattern.js # Pattern selection grid
master.js # Master settings (transpose, sync)
track/
normal.js # Main step editing mode
loop.js # Loop start/end editing
spark.js # Spark conditions
arp.js # Arpeggiator settings
channel.js # MIDI channel adjustment
speed.js # Track speed multiplier
swing.js # Track swing amount
generate.js # Pattern generator mode
dsp/
seq_plugin.c # Main DSP entry point
track.c # Track playback and scheduling
scheduler.c # Note scheduling
arpeggiator.c # Arpeggiator implementation
transpose.c # Transpose sequence
scale.c # Scale detection
params.c # Parameter handling
midi.c # MIDI output
Sets are saved to /data/UserData/move-anything-data/seqomd/sets.json
Each set contains 16 tracks × 16 patterns × 16 steps with full parameter data.