Guide for using the Eventide H90 Harmonizer device library in MMD files...
Expert guidance for using the Eventide H90 device library in MIDI Markdown files.
Invoke this skill when working with:
THE H90 HAS NO DEFAULT MIDI CC MAPPINGS!
You MUST manually configure each CC mapping in:
This library provides aliases for all parameters, but they won't work until you configure the CC assignments on your H90.
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:
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
@import "devices/eventide_h90.mmd"
[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
[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
YOU MUST configure CC mappings on your H90 first!
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
Toggle Mode (no "(M)"):
Momentary Mode (with "(M)"):
[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
[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
[00:00.000]
# Toggle insert loops
- h90_insert1_bypass 2
- h90_insert2_bypass 2
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
[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
[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
[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)
[00:00.000]
# Control Quick Knobs 1-6
- h90_quick_knob1 2 100
- h90_quick_knob2 2 80
- h90_quick_knob3 2 64
Eventide's Recommended Approach:
[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
[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 are algorithm-specific functions:
[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
[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
QUIRK: Tuner has unusual behavior!
[00:00.000]
# Activate tuner
- h90_tuner 2
# Deactivate tuner (send 127 again)
- h90_tuner 2
[00:00.000]
- h90_tap_tempo 2
[+500ms]
- h90_tap_tempo 2
[+500ms]
- h90_tap_tempo 2
[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
# β 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
[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
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
[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
Solution: Downgrade to 1.8.6 OR add 100ms delays
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
Problem: Insufficient current causes MIDI issues
Solution:
Problem: 700ms to 2 seconds via MIDI PC
Factors:
Optimization:
Cannot change via MIDI:
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
CC#11 = Expression Pedal β Map to HotKnob P globally
Configure HotKnob P per-Program for different parameters.
CC#70-75 = PERFORM 1-6 (algorithm-specific functions)
CC#12-17 = Quick Knobs 1-6
# β WRONG
[00:00.000]
- pc 2.10
- h90_program_bypass 2 # IGNORED!
# β
CORRECT
[00:00.000]
- h90_load_with_bypass 2 10 127
The H90 has NO defaults! You must configure everything.
# β 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
devices/eventide_h90.mmd
1.8.6 (recommended for MIDI) / 1.9.4+ (latest, has PC+CC bug)
| 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) |