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 |
Scan to join WeChat group