Guide for using the Line 6 Helix Floor/LT/Rack device library in MMD files. Use when the user mentions Helix, Line 6 Helix guitar processor, Helix Floor, Helix LT, Helix Rack, or needs help with setlist/preset loading, 8-snapshot control, expression automation, footswitch control, or looper functionality.
Expert guidance for using the Helix device library in MIDI Markdown files.
Invoke this skill when working with:
@import "devices/helix.mmd"
[00:00.000]
# Load Setlist 1 (CC32=0), Preset 6 (PC=5)
- helix_load 1 0 5
# Load preset and switch to snapshot
- helix_load_snapshot 1 0 5 2 # Setlist 1, Preset 6, Snapshot 3
[00:00.000]
# Named snapshots (1-8)
- helix_snap_1 1
- helix_snap_2 1
- helix_snap_3 1
# Parameterized (0-7)
- helix_snapshot 1 3 # Snapshot 4
CRITICAL: Add 350ms delay after ALL Program Change messages before sending CC
# ❌ WRONG - No delay (firmware 3.5x)
[00:00.000]
- pc 1.10
- cc 1.69.2 # Snapshot might be ignored!
# ✅ CORRECT - Use helper with delays
[00:00.000]
- helix_load_snapshot 1 0 10 2 # Built-in 350ms delay
Improvement: CC69 (snapshot) messages are buffered during preset load
Still recommended: Use 350ms delay for safety with complex presets
Known Issue: MIDI Clock Rx doesn't apply on preset change
Workaround: Use Tap Tempo (CC64) after preset changes if tempo sync is critical
Structure: 8 Setlists × 128 Presets = 1024 total presets
Addressing:
[00:00.000]
# Load Setlist 3, Preset 20
- helix_load 1 2 19 # CC32=2, PC=19 (0-indexed)
# With specific snapshot
- helix_load_snapshot 1 2 19 3 # Snapshot 4
# Direct setlist selection
- helix_setlist 1 2 # Setlist 3
# Direct preset within current setlist
- helix_preset 1 19 # Preset 20
The Helix Floor/LT/Rack has 8 snapshots (0-7), providing maximum flexibility for live performance.
[00:00.000]
# Named snapshots
- helix_snap_1 1 # Snapshot 1
- helix_snap_2 1 # Snapshot 2
- helix_snap_3 1 # Snapshot 3
- helix_snap_4 1 # Snapshot 4
- helix_snap_5 1 # Snapshot 5
- helix_snap_6 1 # Snapshot 6
- helix_snap_7 1 # Snapshot 7
- helix_snap_8 1 # Snapshot 8
# Parameterized
- helix_snapshot 1 7 # Snapshot 8
[00:00.000]
- helix_load 1 0 5 # Load song preset
# Intro - Clean
- helix_snap_1 1
# Verse - Rhythm
[00:16.000]
- helix_snap_2 1
# Pre-Chorus - Add delay
[00:28.000]
- helix_snap_3 1
# Chorus - Drive + reverb
[00:32.000]
- helix_snap_4 1
# Bridge - Ambient
[00:48.000]
- helix_snap_5 1
# Solo - Lead tone
[01:04.000]
- helix_snap_6 1
# Breakdown - Clean + tremolo
[01:20.000]
- helix_snap_7 1
# Final chorus - Epic lead
[01:36.000]
- helix_snap_8 1
Helix Floor/Rack models have 3 expression pedals (EXP1, EXP2, EXP3).
[00:00.000]
# Direct MIDI values (0-127)
- line6_exp1 1 64 # From common library
- line6_exp2 1 100
- helix_exp3 1 80 # EXP3 is Helix-specific
# With modulation curves
- line6_exp_swell 1 1 0 127 # Smooth EXP1 swell
- helix_exp3_swell 1 0 127 # Smooth EXP3 swell
[00:00.000]
# Vibrato effect
- line6_exp_vibrato 1 1 64 2.5 20
# Params: ch, exp_num, center, freq(Hz), depth(%)
# Tremolo effect
- line6_exp_tremolo 1 1 64 4.0 30
# ADSR envelope
- line6_exp_envelope 1 1
# Attack-Release envelope
- line6_exp_ar 1 1 0.5 1.0
Full Helix models have 11 footswitches (FS1-5, FS7-11). FS6 is reserved for internal use.
[00:00.000]
# Toggle footswitches (ALWAYS toggle, can't force on/off)
- line6_fs1 1
- line6_fs2 1
- line6_fs3 1
- line6_fs4 1
- line6_fs5 1
# FS6 is RESERVED
- line6_fs7 1
- line6_fs8 1
- line6_fs9 1
- line6_fs10 1
- line6_fs11 1
Important: Helix footswitches ALWAYS toggle. Cannot force on/off via MIDI.
[00:00.000]
# Start recording
- line6_looper_start_recording 1
[+8s]
# Switch to playback
- line6_looper_playback 1
[+16s]
# Overdub
- line6_looper_overdub 1
[+24s]
# Stop and exit
- line6_looper_stop_exit 1
[00:00.000]
# Record/Overdub/Play
- line6_looper_rec_play 1
- line6_looper_overdub 1
- line6_looper_playback 1
# Reverse and half speed
- line6_looper_reverse 1
- line6_looper_halfspeed 1
# Undo/redo
- line6_looper_undo 1
# Stop and clear
- line6_looper_stop_exit 1
[00:00.000]
# Send 4 taps at 120 BPM (500ms intervals)
- line6_tap 1
[+500ms]
- line6_tap 1
[+500ms]
- line6_tap 1
[+500ms]
- line6_tap 1
Command Center allows Helix to send MIDI to external devices.
[00:00.000]
# Load Helix preset and switch external amp channel
- helix_preset_with_amp_switch 1 0 5 2 10
# Params: ch, setlist, preset, amp_channel, delay_preset
# Load Helix preset, send PC to amp, PC to delay
# Snapshot change with external reverb mix
- helix_snapshot_with_reverb 1 3 64
# Params: ch, snapshot, reverb_mix_value
[00:00.000]
# Complete section: preset + snapshot + tempo
- helix_song_section 1 10 2 120
# Params: ch, section_preset, snapshot, tempo_bpm
[00:00.000]
# Song 1: Load preset, use snapshots for sections
- helix_load 1 0 0 # Setlist 1, Preset 1
# Intro
- helix_snap_1 1
# Verse
[00:16.000]
- helix_snap_2 1
# Chorus
[00:32.000]
- helix_snap_3 1
# Solo
[00:48.000]
- helix_snap_4 1
Recommended:
CC0 - Bank Select MSB
CC3 - Expression Pedal 3 (Helix Floor/Rack only)
CC32 - Bank Select LSB (Setlist selector)
CC64 - Tap Tempo
CC68 - Amp/Cab toggle
CC69 - Snapshot select
CC70-76 - Reserved for future use
All other CC numbers (4-31, 33-48, 77-127) are available for:
# ✅ Add 350ms after ALL PC messages
[00:00.000]
- pc 1.10
[+350ms]
- cc 1.69.2 # Now snapshot will work
# ✅ Add 100ms between rapid CC messages
[00:00.000]
- cc 1.51.64
[+100ms]
- cc 1.52.80
# ✅ Use snapshot-based workflow to avoid PC delays
# ✅ CC69 is buffered - can reduce delays to +50ms
[00:00.000]
- pc 1.10
[+50ms]
- cc 1.69.2
# ✅ Still recommend +350ms for safety with complex presets
# ✅ Use Tap Tempo after preset changes if tempo sync critical
[00:00.000]
- pc 1.10
[+350ms]
- line6_tap 1 # Sync tempo
Helix Floor/LT/Rack has both:
For MIDI Clock (sync):
For general control:
For live performance:
# ❌ WRONG
[00:00.000]
- pc 1.10
- cc 1.69.2 # Ignored!
# ✅ CORRECT
[00:00.000]
- helix_load_snapshot 1 0 10 2 # Built-in delay
# ❌ WRONG - Footswitches always toggle
[00:00.000]
- cc 1.51.0 # Trying to force off
- cc 1.51.127 # Trying to force on
# ✅ CORRECT - Use toggle commands
[00:00.000]
- line6_fs1 1 # Toggles state
# ⚠️ SUBOPTIMAL - USB has jitter
# Use 5-pin DIN for MIDI Clock instead
| Issue | Solution |
|---|---|
| Snapshots don't switch | Add 350ms delay after PC (firmware 3.5x) or use 3.10+ |
| Footswitches don't work | Helix footswitches toggle only, can't force on/off |
| Expression is glitchy | Send smooth CC curves, check MIDI rate limiting |
| MIDI timing is sloppy | Use 5-pin DIN instead of USB for clock |
| Preset changes ignored | Check MIDI Base Channel in Global Settings |
| Tempo doesn't sync on PC | Use Tap Tempo (CC64) after preset change (firmware 3.80) |
devices/helix.mmddevices/line6_common.mmd (imported automatically)3.80 (current as of library version)