| name | mmd-device-h90 |
| description | Guide for using the Eventide H90 Harmonizer device library in MMD files. Use when the user mentions Eventide H90, H90 effects processor, H90 reverb/delay/modulation, or needs help with H90 program changes, HotSwitches, bypass control, expression automation, or firmware workarounds. |
Eventide H90 Harmonizer Usage Guide
Expert guidance for using the Eventide H90 device library in MIDI Markdown files.
When to Use This Skill
Invoke this skill when working with:
- Eventide H90 Harmonizer effects processor
- H90 program loading and bypass control
- HotSwitch parameter snapshots
- H90 expression pedal automation
- Performance parameters (Freeze, Warp, Repeat, Infinity)
- Dual algorithm control (Preset A/B)
- Firmware 1.9.4+ PC+CC bug workarounds
⚠️ CRITICAL: Read This First
Zero Default MIDI CC Assignments
THE H90 HAS NO DEFAULT MIDI CC MAPPINGS!
You MUST manually configure each CC mapping in:
- System Menu → MIDI → Global Control (on H90)
- OR H90 Control software
This library provides aliases for all parameters, but they won't work until you configure the CC assignments on your H90.
Critical Firmware Bug (1.9.4+)
FIRMWARE 1.9.4 AND LATER HAS A SEVERE BUG:
Sending Program Change and Control Change messages simultaneously causes the H90 to IGNORE ALL CC MESSAGES.
Symptoms:
- PC + CC sent together → CC messages ignored
- Internal logs show "Ignoring inbound message" errors
- Makes MIDI switcher integration extremely problematic
RECOMMENDED SOLUTION: Downgrade to firmware 1.8.6 for professional MIDI control applications.
Contact support@eventide.com to request firmware 1.8.6 and H90 Control v1.7.11.
Trade-off: Cannot use algorithms added after v1.8.6 (Aggravate, Sticky Tape)
Workarounds if staying on 1.9.4+:
# Add 100ms delay between PC and CC
[00:00.000]
- pc 2.10 # Load program
[+100ms]
- h90_program_active 2 # Now CC works
# Or use helper macros
- h90_load_with_bypass 2 10 127
- h90_load_with_hotswitch 2 10 1
Quick Start
Import the Library
@import "devices/eventide_h90.mmd"
Basic Program Loading
[00:00.000]
# Load Program 10 (with PC Offset ON: 0-99)
- h90_program 2 10
# Or specify offset mode explicitly
- h90_program_offset 2 10 # PC Offset ON: 0-99
- h90_program_default 2 11 # PC Offset OFF: 1-100
Program Navigation
[00:00.000]
# Increment to next program
- h90_increment 2
# Decrement to previous
- h90_decrement 2
# Increment and load immediately
- h90_inc_load 2
# Bank up/down (3 programs at a time)
- h90_bank_up 2
- h90_bank_down 2
Configuration Requirements
Before Using This Library
YOU MUST configure CC mappings on your H90 first!
- Access: System Menu → MIDI → Global Control
- For each parameter, assign a CC number
- Either:
- Update CC numbers in this library to match YOUR config
- OR configure H90 to match recommended mappings below
Recommended Global CC Mappings
Program Navigation (CC#20-26):
CC#20 = Load (cue + toggle Act/Byp)
CC#21 = Increment
CC#22 = Decrement
CC#23 = Inc + Load
CC#24 = Dec + Load
CC#25 = Bank Up
CC#26 = Bank Down
Active/Bypass (CC#102-109):
CC#102 = P Act/Byp (toggle)
CC#103 = P Act/Byp (M) (momentary)
CC#104 = A Act/Byp (Preset A toggle)
CC#105 = A Act/Byp (M) (momentary)
CC#106 = B Act/Byp (Preset B toggle)
CC#107 = B Act/Byp (M) (momentary)
CC#108 = Insert 1 Act/Byp
CC#109 = Insert 2 Act/Byp
System Functions (CC#27, 30-33, 80):
CC#27 = Tuner (quirky toggle-only)
CC#80 = Tap Tempo
CC#30 = Mode Toggle
CC#31 = SELECT Mode
CC#32 = PERFORM Mode
CC#33 = BANK Mode
HotSwitches (CC#110-115):
CC#110 = HS1 (toggle)
CC#111 = HS1 (M) (momentary)
CC#112 = HS2 (toggle)
CC#113 = HS2 (M) (momentary)
CC#114 = HS3 (toggle)
CC#115 = HS3 (M) (momentary)
Continuous Controls (CC#11-17, 34-36, 84):
CC#11 = Expression Pedal
CC#12-17 = Quick Knobs 1-6
CC#34 = P HotKnob (Program)
CC#35 = A HotKnob (Preset A)
CC#36 = B HotKnob (Preset B)
CC#84 = P Mix (wet/dry)
Performance Parameters (CC#70-75):
CC#70-75 = PERFORM 1-6
Active/Bypass Controls
Understanding Toggle vs Momentary Modes
Toggle Mode (no "(M)"):
- Any CC value ≥64 toggles the state
- Each message toggles regardless of value
- Simpler for basic on/off control
Momentary Mode (with "(M)"):
- CC 0-63 = Force BYPASS state
- CC 64-127 = Force ACTIVE state
- Enables discrete on/off commands
- Requires controller that sends single values only
Program-Level Bypass
[00:00.000]
# Toggle mode
- h90_program_bypass 2
# Momentary mode (discrete control)
- h90_program_active 2 # Force ACTIVE
- h90_program_bypass_force 2 # Force BYPASS
Preset-Level Bypass
[00:00.000]
# Preset A controls
- h90_preset_a_bypass 2 # Toggle
- h90_preset_a_active 2 # Force active
- h90_preset_a_bypass_force 2 # Force bypass
# Preset B controls
- h90_preset_b_bypass 2
- h90_preset_b_active 2
- h90_preset_b_bypass_force 2
Insert Loop Controls
[00:00.000]
# Toggle insert loops
- h90_insert1_bypass 2
- h90_insert2_bypass 2
HotSwitch Control
Basic HotSwitch Usage
HotSwitches are Program-level parameter snapshots. Only one HotSwitch can be active at a time.
[00:00.000]
# Toggle HotSwitch 1
- h90_hotswitch1 2
# Force HS1 active (momentary mode)
- h90_hotswitch1_active 2
# Force HS1 off
- h90_hotswitch1_off 2
# Same for HS2 and HS3
- h90_hotswitch2 2
- h90_hotswitch3 2
HotSwitch Workflow Example
[00:00.000]
- h90_program 2 10
# Verse - base tone (no HotSwitch)
[00:16.000]
- h90_hotswitch1 2 # Chorus - engage HS1
[00:32.000]
- h90_hotswitch2 2 # Bridge - engage HS2
[00:48.000]
- h90_hotswitch1_off 2 # Back to base tone
Expression and Continuous Controls
Expression Pedal
[00:00.000]
# Direct MIDI value
- h90_expression 2 64
# Percentage
- h90_expression_percent 2 50
# Smooth swell with curve
- h90_expression_swell 2 0 127
# Fade effects
- h90_expression_fade_in 2
- h90_expression_fade_out 2
Advanced Expression Modulation
[00:00.000]
# Vibrato with wave modulation
- h90_expression_vibrato 2 64 3.0 20
# Params: ch, center, freq(Hz), depth(%)
# ADSR envelope
- h90_expression_envelope 2
# Attack-Release envelope
- h90_expression_ar 2 0.5 1.0
# Params: ch, attack(s), release(s)
Quick Knobs
[00:00.000]
# Control Quick Knobs 1-6
- h90_quick_knob1 2 100
- h90_quick_knob2 2 80
- h90_quick_knob3 2 64
HotKnobs (Recommended Strategy)
Eventide's Recommended Approach:
- Map algorithm parameters to HotKnob P per-Program
- Map HotKnob P globally to one CC (e.g., CC#34)
- Your expression pedal always sends CC#34
- Different Programs respond with different parameter changes
[00:00.000]
# Program HotKnob (controls different params per-Program)
- h90_hotknob_program 2 64
# Preset-specific HotKnobs
- h90_hotknob_a 2 100
- h90_hotknob_b 2 80
# Smooth HotKnob automation
- h90_hotknob_program_swell 2 0 127
Mix Control
[00:00.000]
# Direct value
- h90_mix 2 64
# Percentage (0% dry, 100% wet)
- h90_mix_percent 2 50
# Smooth transitions
- h90_mix_fade_in 2 # Dry to wet
- h90_mix_fade_out 2 # Wet to dry
- h90_mix_swell 2 0 127
# Tremolo effect (rhythmic wet/dry)
- h90_mix_tremolo 2 64 4.0 50
Performance Parameters
PERFORM 1-6
Performance Parameters are algorithm-specific functions:
- Prism Shift: Freeze
- Wormhole: Warp
- Delay algorithms: Repeat
- Reverb algorithms: Infinite, Freeze
[00:00.000]
# Direct control
- h90_perform1 2 127
- h90_perform2 2 100
# With modulation
- h90_perform1_swell 2 0 127
- h90_perform1_vibrato 2 64 2.0 30
- h90_perform1_envelope 2
Gain Controls
[00:00.000]
# Input/Output gain (0-127)
- h90_program_in_gain 2 64
- h90_program_out_gain 2 100
# Output gain in dB (-24dB to +24dB)
- h90_program_out_gain_db 2 6 # +6dB
# Preset-specific gains
- h90_preset_a_in_gain 2 64
- h90_preset_a_out_gain 2 100
- h90_preset_b_in_gain 2 64
- h90_preset_b_out_gain 2 100
System Functions
Tuner Control
QUIRK: Tuner has unusual behavior!
- CC value 127 activates tuner
- CC value 0 does NOTHING
- Must send 127 again to deactivate (toggle-only)
[00:00.000]
# Activate tuner
- h90_tuner 2
# Deactivate tuner (send 127 again)
- h90_tuner 2
Tap Tempo
[00:00.000]
- h90_tap_tempo 2
[+500ms]
- h90_tap_tempo 2
[+500ms]
- h90_tap_tempo 2
Mode Switching
[00:00.000]
# Switch modes
- h90_mode_select 2 # SELECT mode
- h90_mode_perform 2 # PERFORM mode
- h90_mode_bank 2 # BANK mode
- h90_mode_toggle 2 # Toggle between modes
Firmware 1.9.4+ Workarounds
Safe Program Loading with CC
# ❌ WRONG - PC + CC together (firmware 1.9.4+ bug)
[00:00.000]
- pc 2.10
- cc 2.103.127 # This will be IGNORED!
# ✅ CORRECT - Use helper with delay
[00:00.000]
- h90_load_with_bypass 2 10 127
# ✅ CORRECT - Use helper for HotSwitch
[00:00.000]
- h90_load_with_hotswitch 2 10 1 # Load program, engage HS1
# ✅ CORRECT - Use helper for expression
[00:00.000]
- h90_load_with_expression 2 10 64
Dual Algorithm Control
Controlling Both Algorithm Paths
[00:00.000]
# Load dual reverb with balanced mix
- h90_dual_reverb_setup 2 10
# Serial FX chain with custom mix
- h90_serial_fx_chain 2 15 80
# A-only processing (bypass B)
- h90_a_only 2
# B-only processing (bypass A)
- h90_b_only 2
# Both active
- h90_both_active 2
Delay Warping Workarounds
Problem: Program Changes Cause Pitch/Time Warping
Affected Algorithms: Tape Echo, Head Space, Reverse delays
Symptoms: Audible pitch/time warping on delay trails during Program changes
Solutions:
# Solution 1: Crossfade to hide warping
[00:00.000]
- h90_program_change_crossfade 2 15
# Fades to dry, changes program, fades back to wet
# Solution 2: Fast crossfade
[00:00.000]
- h90_program_change_fast_crossfade 2 15
# Solution 3: Use HotSwitches within Program (no warping)
[00:00.000]
- h90_hotswitch_delay_transition 2 1 # Change delay via HS1
# Solution 4: Wait for spillover to complete
[00:00.000]
- h90_load_after_spillover 2 20 # Waits 5.5s for spillover
Live Performance Initialization
[00:00.000]
# Initialize H90 for live performance
- h90_live_init 2 10
# This sets:
# - PERFORM Mode
# - Load starting program
# - Ensure active (not bypassed)
# - Reset expression to neutral
# - All HotSwitches off
Known Issues and Limitations
Issue 1: PC + CC Simultaneous Bug (Firmware 1.9.4+)
Solution: Downgrade to 1.8.6 OR add 100ms delays
Issue 2: Insert Loop Latency
Problem: 5ms latency per A/D/A conversion
Impact: Insert loops = double conversion = noticeable delay
Solution: Run drives before H90 instead of in insert loops
Issue 3: Power Supply Requirements
Problem: Insufficient current causes MIDI issues
Solution:
- Fender Engine Room 12V @ 375mA is INSUFFICIENT
- Use two 9V 500mA outputs with current doubler cable
Issue 4: Program Loading Latency
Problem: 700ms to 2 seconds via MIDI PC
Factors:
- Spillover time settings
- DSP complexity
Optimization:
- Reduce spillover to minimum needed
- Load Programs outside spillover window
Issue 5: Routing/Algorithm Limitations
Cannot change via MIDI:
- ❌ Series/parallel routing mode
- ❌ Insert/Dual global routing modes
- ❌ Individual Algorithm Presets
- ✅ Must create Programs with desired configurations
Recommended Configuration Strategy
Step 1: Start with Global Mappings
CC#102-109 = Bypass controls
CC#20-26 = Navigation
CC#27 = Tuner
CC#80 = Tap Tempo
CC#30-33 = Mode switching
CC#110-115 = HotSwitches
Step 2: Add Expression Control
CC#11 = Expression Pedal → Map to HotKnob P globally
Configure HotKnob P per-Program for different parameters.
Step 3: Add Performance Parameters
CC#70-75 = PERFORM 1-6 (algorithm-specific functions)
Step 4: Add Quick Knobs if Needed
CC#12-17 = Quick Knobs 1-6
Common Mistakes and Fixes
Mistake 1: Sending PC + CC Together (Firmware 1.9.4+)
# ❌ WRONG
[00:00.000]
- pc 2.10
- h90_program_bypass 2 # IGNORED!
# ✅ CORRECT
[00:00.000]
- h90_load_with_bypass 2 10 127
Mistake 2: Expecting Default CC Mappings
The H90 has NO defaults! You must configure everything.
Mistake 3: Not Accounting for Spillover
# ❌ WRONG - Switching during spillover is slow
[00:00.000]
- pc 2.10
[+1s] # Still in spillover window
- pc 2.11 # This will be SLOW
# ✅ CORRECT - Wait for spillover
[00:00.000]
- pc 2.10
[+6s] # Outside spillover window
- pc 2.11 # This is faster
Reference
Device Library Location
devices/eventide_h90.mmd
Documentation
- Official Manual: https://cdn.eventideaudio.com/manuals/h90/1.1/content/
- Eventide Website: https://www.eventideaudio.com/h90
Firmware Version
1.8.6 (recommended for MIDI) / 1.9.4+ (latest, has PC+CC bug)
Troubleshooting
| Issue | Solution |
|---|---|
| CC messages ignored after PC | Firmware 1.9.4+ bug - add 100ms delay or downgrade to 1.8.6 |
| No MIDI control | Configure CC mappings in System Menu → MIDI → Global Control |
| Delay warping on Program change | Use crossfade helpers or HotSwitches |
| Slow Program loading | Reduce spillover time, wait outside spillover window |
| Tuner won't turn off | Quirky behavior - send CC#27 value 127 again |
| Power-related MIDI issues | Use proper power supply (not Fender Engine Room single output) |