Back to skills
extension
Category: Development & EngineeringNo API key required

mmd-device-h90

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.

personAuthor: jakexiaohubgithub

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!

  1. Access: System Menu → MIDI → Global Control
  2. For each parameter, assign a CC number
  3. 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:

  1. Map algorithm parameters to HotKnob P per-Program
  2. Map HotKnob P globally to one CC (e.g., CC#34)
  3. Your expression pedal always sends CC#34
  4. 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) |

See Also