# Mmd Device Helix

> 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.

- Skill: `majiayu000/mmd-device-helix` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/mmd-device-helix`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/mmd-device-helix/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/mmd-device-helix

---


# Line 6 Helix Floor/LT/Rack Usage Guide

Expert guidance for using the Helix device library in MIDI Markdown files.

## When to Use This Skill

Invoke this skill when working with:
- Line 6 Helix Floor, LT, or Rack guitar processors
- Helix preset and setlist management
- 8-snapshot control (full range)
- Helix expression pedal automation (EXP1, EXP2, EXP3)
- 11 footswitch control (FS1-5, FS7-11)
- Helix Looper functionality
- Command Center macros for external gear

## Quick Start

### Import the Library

```mml
@import "devices/helix.mmd"
```

### Basic Preset Loading

```mml
[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
```

### Snapshot Control

```mml
[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 Firmware Timing Requirements

### Firmware 3.5x: Conservative Timing Required

**CRITICAL**: Add **350ms delay** after ALL Program Change messages before sending CC

```mml
# ❌ 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
```

### Firmware 3.10+: Improved Timing

**Improvement**: CC69 (snapshot) messages are buffered during preset load

**Still recommended**: Use 350ms delay for safety with complex presets

### Firmware 3.80 (Current): Stable

**Known Issue**: MIDI Clock Rx doesn't apply on preset change

**Workaround**: Use Tap Tempo (CC64) after preset changes if tempo sync is critical

## Preset and Setlist Management

### Understanding Helix Addressing

**Structure**: 8 Setlists × 128 Presets = 1024 total presets

**Addressing**:
- CC0 (Bank MSB) + CC32 (Bank LSB) = Setlist selector
- CC32 values 0-7 select Setlists 1-8
- PC values 0-127 select Presets 1-128 within active setlist

### Complete Preset Load

```mml
[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
```

## Snapshot Control (8 Snapshots)

### Full 8-Snapshot Range

The Helix Floor/LT/Rack has **8 snapshots** (0-7), providing maximum flexibility for live performance.

```mml
[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
```

### 8-Snapshot Song Arrangement

```mml
[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
```

## Expression Pedal Control

### Three Expression Pedals

Helix Floor/Rack models have **3 expression pedals** (EXP1, EXP2, EXP3).

```mml
[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
```

### Advanced Expression Modulation

```mml
[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
```

## Footswitch Control

### 11 Footswitches Available

Full Helix models have **11 footswitches** (FS1-5, FS7-11). FS6 is reserved for internal use.

```mml
[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.

## Looper Control

### Basic Looper Workflow

```mml
[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
```

### Complete Looper Functions

```mml
[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
```

## Tap Tempo

```mml
[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 Macros

### Controlling External Gear

Command Center allows Helix to send MIDI to external devices.

```mml
[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
```

### Complete Song Section Macro

```mml
[00:00.000]
# Complete section: preset + snapshot + tempo
- helix_song_section 1 10 2 120
# Params: ch, section_preset, snapshot, tempo_bpm
```

## Common Workflow Patterns

### Song-Based Preset Organization

```mml
[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
```

### Setlist Organization Strategy

**Recommended**:
- Setlist 1: Covers/Standards
- Setlist 2: Originals Set 1
- Setlist 3: Originals Set 2
- Setlist 4-8: Special projects, recording, etc.

## Reserved CC Numbers

### Helix-Specific Reserved CCs

```
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:
- Block bypass control (via MIDI Learn)
- Parameter control (via MIDI Learn)
- Custom assignments per preset

## Firmware-Specific Best Practices

### Firmware 3.5x

```mml
# ✅ 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
```

### Firmware 3.10+

```mml
# ✅ 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
```

### Firmware 3.80 (Current)

```mml
# ✅ Use Tap Tempo after preset changes if tempo sync critical
[00:00.000]
- pc 1.10
[+350ms]
- line6_tap 1  # Sync tempo
```

## Connection Recommendations

### 5-Pin DIN MIDI vs USB

**Helix Floor/LT/Rack has both:**
- 5-pin DIN MIDI (In/Out/Thru)
- USB MIDI

**For MIDI Clock (sync)**:
- ✅ **Prefer 5-pin DIN** - lower jitter, more reliable
- ❌ USB MIDI has higher jitter

**For general control**:
- Either works fine
- USB is more convenient for DAW integration

**For live performance**:
- 5-pin DIN is more robust
- Easier hardware daisy-chaining
- Optical isolation (no ground loops)

## Common Mistakes and Fixes

### Mistake 1: No Delay After PC (Firmware 3.5x)

```mml
# ❌ 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
```

### Mistake 2: Trying to Force Footswitch On/Off

```mml
# ❌ 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
```

### Mistake 3: Using USB MIDI for Clock

```mml
# ⚠️ SUBOPTIMAL - USB has jitter
# Use 5-pin DIN for MIDI Clock instead
```

## Comparison: Helix vs HX Models

### Helix Floor/LT/Rack (You Are Here)

- ✅ **8 snapshots** (maximum flexibility)
- ✅ **11 footswitches** (Floor/LT)
- ✅ **3 expression pedals** (Floor/Rack)
- ✅ **5-pin DIN MIDI** (hardware chaining)
- ✅ Dual DSP path
- ✅ Full Command Center
- ❌ Larger footprint

### HX Stomp XL

- ⚠️ **4 snapshots** (good for most songs)
- ⚠️ **8 footswitches** (adequate)
- ⚠️ **2 expression pedals**
- ❌ **USB MIDI only** (no 5-pin DIN)
- ❌ Single DSP path
- ✅ Command Center (enhanced vs HX Stomp)
- ✅ Smaller footprint

### HX Stomp

- ❌ **3 snapshots** (limited)
- ❌ **5 footswitches** (limited)
- ⚠️ **2 expression pedals**
- ❌ **USB MIDI only**
- ❌ Single DSP path
- ⚠️ Limited Command Center
- ✅ Smallest footprint

## Troubleshooting

| 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) |

## Reference

### Device Library Location
- Main: `devices/helix.mmd`
- Common: `devices/line6_common.mmd` (imported automatically)

### Documentation
- Official Manual: https://line6.com/support/manuals/helix
- Firmware Notes: https://line6.com/software/reaper-extension

### Firmware Version
3.80 (current as of library version)

## See Also

- [HX Stomp Usage](../hx-stomp-usage/SKILL.md) - 3 snapshots, USB only
- [HX Stomp XL Usage](../hx-stomp-xl-usage/SKILL.md) - 4 snapshots, 8 footswitches
- [HX Effects Usage](../hx-effects-usage/SKILL.md) - Effects only, 4 snapshots
- [MMD Syntax Reference](../../spec.md)
- [Line 6 Common Library](../../devices/line6_common.mmd)
- [Modulation Guide](../../docs/user-guide/generative-music.md)

