Claude Code Plugins

Community-maintained marketplace

Feedback

mmd-device-h90

@cjgdev/midi-markdown
0
0

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.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

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!

  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

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