| name | mmd-device-quad-cortex |
| description | Guide for using the Neural DSP Quad Cortex device library in MMD files. Use when the user mentions Quad Cortex, QC, Neural DSP guitar processor, or needs help with preset loading, scene switching, expression control, or stomp automation for the Quad Cortex. |
Neural DSP Quad Cortex Usage Guide
Expert guidance for using the Quad Cortex device library in MIDI Markdown files.
When to Use This Skill
Invoke this skill when working with:
- Neural DSP Quad Cortex guitar processor
- Quad Cortex preset loading and scene switching
- QC expression pedal automation
- Stomp footswitch control
- Looper X control
- Quad Cortex MIDI timing issues
- Live performance automation for QC
Quick Start
Import the Library
@import "devices/quad_cortex.mmd"
Basic Preset Loading
[00:00.000]
# Load Setlist 1, Group 0, Preset 5
- qc_load_preset 1 0 0 5
# Or use simplified version (first 128 presets)
- qc_load_preset_simple 1 0 5
Scene Switching
[00:16.000]
# Switch to Scene B
- qc_scene_b 1
# Or use parameterized version
- qc_scene 1 1
Critical Known Issues
1. Scene Switching Latency (100-130ms)
Problem: MIDI scene changes via CC#43 have significant latency in CorOS 2.0+
Symptoms:
- Scene changes lag behind backing tracks
- Timing sync issues in DAW automation
Workarounds:
# Workaround 1: Send scene change early (in DAW)
[00:15.900] # 100ms before the beat
- qc_scene 1 2
# Workaround 2: Use expression swell to mask latency
[00:16.000]
- qc_scene_with_swell 1 2 # Fades expression to hide latency
# Workaround 3: Enable "Ignore Duplicate PC" in device settings
System Recommendations:
- Enable "Ignore Duplicate PC" in Quad Cortex MIDI Settings
- Use -50ms track delay compensation on MIDI tracks in DAW
- Send scene changes 1/16 note early
2. Rapid MIDI Messages Can Freeze Device
Problem: Sending rapid successive CC messages can freeze the device
Critical: ALWAYS add minimum 100ms delays between CC messages
Safe Expression Automation:
# ❌ WRONG - No delays, can freeze device
[00:00.000]
- cc 1.1.0
- cc 1.1.42
- cc 1.1.85
- cc 1.1.127
# ✅ CORRECT - Use safe helper with enforced delays
[00:00.000]
- qc_exp1_step_automation 1
# ✅ CORRECT - Use safe ramp helper
[00:00.000]
- qc_exp1_safe_ramp 1 0 127
3. MIDI Thru is Broken
Problem: When MIDI Thru is enabled, device stops sending its own MIDI messages
Solution:
- Keep MIDI Thru OFF
- Use external MIDI merger if you need to combine signals
4. Preset Loading Timing Requirements
Critical: Must wait 100ms between Bank/Setlist/PC messages
# ✅ CORRECT - qc_load_preset includes proper delays
[00:00.000]
- qc_load_preset 1 0 0 5
# This expands to:
# - cc 1.0.0 # Bank group
# [+100ms]
# - cc 1.32.0 # Setlist
# [+100ms]
# - pc 1.5 # Preset
Never manually construct this sequence without delays!
5. Expression Pedal MIDI Latency
Problem: CC#1/CC#2 have noticeable lag compared to physical pedals
Recommendations:
- ❌ Avoid MIDI for real-time wah or volume control
- ✅ Use physical expression pedals connected to EXP 1/2 jacks
- ✅ Use MIDI expression for slow parameter changes only
- ✅ Pre-programmed automation is acceptable
Preset and Scene Management
Complete Preset Load Sequence
[00:00.000]
# Full preset load (group 0, setlist 2, preset 10)
- qc_load_preset 1 0 2 10
# Simplified (first 128 presets)
- qc_load_preset_simple 1 2 10
# Preset + Scene combo
- qc_load_preset_scene 1 2 10 3 # Load preset 10, scene D
Scene Control
[00:00.000]
# Named scenes (A-H)
- qc_scene_a 1
- qc_scene_b 1
- qc_scene_c 1
# Parameterized (0-7 for scenes A-H)
- qc_scene 1 3 # Scene D
# Scene change with expression swell (masks latency)
- qc_scene_with_swell 1 4 # Scene E with crossfade
Stomp Footswitch Control
Basic Footswitch Control
[00:00.000]
# Explicit on/off (64+ = active, 0-63 = bypass)
- qc_stomp_a_on 1
- qc_stomp_b_on 1
[00:08.000]
- qc_stomp_a_off 1
# Toggle mode (any value toggles)
- qc_stomp_c 1 127 # Toggles footswitch C
Emergency Cutoff
[02:00.000]
# Bypass all footswitches (song ending)
- qc_all_stomps_off 1
Expression Pedal Control
Basic Expression
[00:00.000]
# Direct MIDI value (0-127)
- qc_exp1 1 64
# Percentage (0-100)
- qc_exp1_percent 1 50
# With modulation curves
- qc_exp1_swell 1 0 127 # Smooth swell with ease-in-out
- qc_exp1_fade_in 1 # 0 to 127 with exponential curve
- qc_exp1_fade_out 1 # 127 to 0 with logarithmic curve
Advanced Expression Modulation
[00:00.000]
# Vibrato effect using wave modulation
- qc_exp1_vibrato 1 64 5.5 10 # Center=64, freq=5.5Hz, depth=10%
# Tremolo effect
- qc_exp1_tremolo 1 64 4.0 30 # Center=64, freq=4Hz, depth=30%
# ADSR envelope
- qc_exp1_envelope 1
# Attack-Release envelope
- qc_exp1_ar 1 0.5 1.0 # Attack=0.5s, Release=1.0s
Looper X Control
Basic Looper Workflow
[00:00.000]
# Open looper
- qc_looper_open 1
[+150ms]
# Start recording (momentary: send 127 then 0)
- qc_looper_record 1
[+100ms]
- qc_looper_stop 1
# Switch to playback
[+4s]
- qc_looper_play 1
# Close when done
[+8s]
- qc_looper_close 1
Safe Looper Workflow
[00:00.000]
# Complete workflow with safe timing
- qc_looper_safe_workflow 1
Looper Features
[00:00.000]
# Toggle features
- qc_looper_reverse 1 # Enable/disable reverse
- qc_looper_halfspeed 1 # Enable/disable half speed
- qc_looper_oneshot 1 # Enable/disable one shot
- qc_looper_undo 1 # Undo/redo
# Set quantize (0=off, 1-8=beats, 9=16 beats)
- qc_looper_quantize 1 4 # 4 beat quantize
Tempo and Tuner
Tempo Control
[00:00.000]
# MIDI value (0-127)
- qc_tempo 1 64
# BPM (40-300)
- qc_tempo_bpm 1 120
Tuner Control
[00:00.000]
# Toggle tuner
- qc_tuner_on 1
[+5s]
- qc_tuner_off 1
Mode Switching
[00:00.000]
# Switch modes
- qc_mode_preset 1 # Preset mode
- qc_mode_scene 1 # Scene mode
- qc_mode_stomp 1 # Stomp mode
# Temporary mode switch
- qc_temp_stomp_mode 1 35 0 # Switch to stomp, toggle FS A, return to preset
Advanced Workflow Macros
Complete Song Section Change
[00:00.000]
# Load preset, scene, and set expression
- qc_song_section 1 2 10 3 100
# Params: channel, setlist, preset, scene, exp1_value
DAW Initialization
[00:00.000]
# Configure QC for DAW control
- qc_daw_init 1
# This enables:
# - Ignore Duplicate PC
# - Stomp mode
# - Closes Gig View
# - Disables tuner
Connection Recommendations
MIDI Connection Best Practices
Preferred: 5-pin DIN MIDI cables
- More reliable than USB MIDI
- Lower latency
- Better isolation
If using both:
- Disconnect USB when using DIN to prevent conflicts
- Turn off MIDI Thru when using with DAWs
DAW Integration:
- Disable MIDI Timecode (MTC) to prevent random preset changes
- Disable MIDI Chase for CC messages
- Enable "Ignore Duplicate PC" in Quad Cortex
- Use specific MIDI channels, not "All"
Common Mistakes and Fixes
Mistake 1: Rapid CC Updates Without Delays
# ❌ WRONG - Can freeze device
[00:00.000]
- cc 1.1.0
- cc 1.1.32
- cc 1.1.64
- cc 1.1.96
- cc 1.1.127
# ✅ CORRECT - Use safe helper
[00:00.000]
- qc_exp1_safe_ramp 1 0 127
Mistake 2: Scene Change Without Latency Compensation
# ❌ WRONG - Will be late
[00:16.000]
- qc_scene 1 2
# ✅ CORRECT - Send early or use crossfade
[00:15.900] # 100ms early
- qc_scene 1 2
# Or use crossfade helper
[00:16.000]
- qc_scene_with_swell 1 2
Mistake 3: Missing Delays in Preset Load
# ❌ WRONG - Manual sequence without delays
[00:00.000]
- cc 1.0.0
- cc 1.32.2
- pc 1.10
# ✅ CORRECT - Use helper with built-in delays
[00:00.000]
- qc_load_preset 1 0 2 10
Performance Tips
Reliability Checklist
✅ Enable "Ignore Duplicate PC" in device settings ✅ Use MIDI DIN cables instead of USB for live performance ✅ Turn off MIDI Thru on the device ✅ Add 100ms spacing between all CC messages ✅ Keep firmware updated but test before gigs ✅ Use safe expression automation aliases
Mode Strategy
Recommended: Stay in Stomp Mode
- Use CC#43 for scene changes even while in Stomp Mode
- Creates "8x8 hybrid" control (8 stomps × 8 scenes)
- Use temporary mode switching for specific needs
Expression Strategy
Connect physical expression pedals directly:
- Avoid MIDI CC#1/CC#2 for real-time wah/volume
- Use MIDI expression for slow parameter changes only
- Always include timing delays between expression updates
- Use
qc_exp1_safe_rampand similar helpers
Reference
Device Library Location
devices/quad_cortex.mmd
Documentation
- Official MIDI Spec: https://support.neuraldsp.com/hc/en-us/articles/360014480320-MIDI-Specification
- MIDI PC Calculator: https://support.neuraldsp.com/help/quad-cortex-midi-pc-calculator
Firmware Version
CorOS 3.2.1 (as of library version 1.0.0)
Troubleshooting
| Issue | Solution |
|---|---|
| Scene changes are late | Enable "Ignore Duplicate PC", send early, or use crossfade |
| Device freezes with CC | Add 100ms delays, use safe automation helpers |
| Expression pedal is laggy | Use physical pedals, not MIDI CC |
| Preset won't load | Check timing delays (100ms minimum) |
| MIDI conflicts | Disable MIDI Thru, use specific channels |
| Random preset changes | Disable MIDI Timecode in DAW |