MIDIHub Use Cases

Quick recipes for MIDI routing and processing with MIDIHub.

Basic Routing Patterns

Use cases for connectivity and routing options

USB to Virtual Ports

Connect a USB MIDI keyboard to Android music apps. Swipe from USB input to Virtual Output ports to make your keyboard available to any MIDI-capable Android app.

Make Any Device Wireless

Turn wired USB MIDI devices into wireless ones. Connect your USB device to MIDIHub, enable BLE Host to broadcast a Bluetooth signal that other devices can connect to.

Expand Android App Connectivity

Give any Android music app more MIDI options. Apps that only support USB can now use Bluetooth, network, or virtual MIDI through MIDIHub's routing.

BLE to USB

Bridge wireless Bluetooth MIDI devices to wired USB gear. Enable BLE Host, connect your Bluetooth device, then route to USB outputs.

Virtual to RTP-MIDI

Send Android app MIDI over your network to computers or iOS devices. Route Virtual Input ports to RTP-MIDI outputs for network connectivity.

Multi-routing

Send one input to multiple outputs simultaneously. Swipe from one input to multiple outputs to duplicate MIDI to several destinations.

Common Ruleset Patterns

Channel Operations

Layer Instruments (Channel Doubling)

Remap Rule: Channel 1 → "1,2"

Every note on channel 1 also plays on channel 2.

Remove Drum Channel

Remap Rule: Channel 10 → ""

Filter out channel 10 (typically drums).

Redirect to Different Instrument

Remap Rule: Channel 1 → 3

Move all channel 1 messages to channel 3.

Triple Layer

Remap Rule: Channel 1 → "1,2,3"

One input triggers three different instruments.

Keyboard Splits

Simple Split at Middle C (C4)

Create two rulesets:

Ruleset 1: Custom Rule: IF note < 60 THEN discard
Ruleset 2: Custom Rule: IF note >= 60 THEN discard
           Remap: Channel 1 → 2

Upper keys on channel 1, lower keys on channel 2.

Three-Zone Split (Bass/Chords/Lead)

Zone 1 (Bass): IF note >= 48 THEN discard, Channel → 2
Zone 2 (Chords): IF note < 48 OR note >= 72 THEN discard
Zone 3 (Lead): IF note < 72 THEN discard, Channel → 3

Three independent zones across the keyboard.

Split with Transpose

Upper: IF note < 60 THEN discard, Transpose -12
Lower: IF note >= 60 THEN discard, Transpose +12

Adjust octaves for each split zone.

Message Filtering

Notes Only Mode

Filter Rule: ✓ all except Note On/Off

Block everything except note messages.

No System Exclusive

Filter Rule: ✓ System Exclusive

Prevent SysEx from passing through.

Block Pitch Bend

Filter Rule: ✓ Pitch Bend

Remove pitch bend messages.

No Sustain Pedal

Remap Rule: Control Change 64 → ""

Filter out sustain pedal (CC64).

Velocity Control

Limit Maximum Velocity

Custom Rule: IF velocity > 100 THEN velocity = 100

Prevent overly loud notes.

Fixed Velocity (No Dynamics)

Custom Rule: SET velocity = 80

All notes at same velocity.

Minimum Velocity

Custom Rule: IF velocity < 40 THEN velocity = 40

Ensure notes aren't too quiet.

Velocity Scaling

Custom Rule: SET velocity = velocity * 0.7

Reduce overall dynamics by 30%.

Note Transformations

Octave Doubling

Ruleset 1: Pass through
Ruleset 2: Transpose +12

Every note plays in two octaves.

Major Chord Generator

Ruleset 1: Original
Ruleset 2: Transpose +4 (major third)
Ruleset 3: Transpose +7 (perfect fifth)

Single note creates major triad.

Drum Pad Layering

Remap Rule: Note 36 → "36,38,42"

One pad triggers kick + snare + hi-hat.

Note Range Limit

Custom Rule: IF note < 36 OR note > 84 THEN discard

Only allow C2 to C6.

Timing & Delay

Add MIDI Delay

Delay Rule: 100ms

Delay all MIDI messages by 100 milliseconds. Useful for creating echo effects or compensating for latency.

Staggered Chord

Ruleset 1: Pass through
Ruleset 2: Delay 50ms, Transpose +4
Ruleset 3: Delay 100ms, Transpose +7

Create a strummed chord effect from single notes.

Custom Message Creation

Add Sustain to Every Note

Custom Rule: IF Note On THEN ADD Control Change 64 = 127, Delay 10ms
Custom Rule: IF Note Off THEN ADD Control Change 64 = 0, Delay 10ms

Automatically add sustain pedal on/off with every note. The delay ensures the sustain arrives just after the note.

Note to CC Converter

Custom Rule: IF Note On THEN ADD Control Change 1 = velocity
Custom Rule: IF Note On THEN DISCARD

Convert note messages to modulation wheel (CC1) control. Useful for triggering effects.

Auto Program Change

Custom Rule: IF Note 36 THEN ADD Program Change = 1
Custom Rule: IF Note 38 THEN ADD Program Change = 2

Trigger program changes with specific notes. Great for switching patches with drum pads.

Velocity to Aftertouch

Custom Rule: IF Note On THEN ADD Channel Aftertouch = velocity * 0.8

Generate aftertouch from note velocity for synths that respond better to aftertouch.

Double Note with Different Velocity

Custom Rule: IF Note On THEN COPY AND SET velocity = velocity * 0.5

Create a softer duplicate of every note for natural doubling effects.

Advanced Routing Patterns

Multi-Device Merge

Combine multiple MIDI devices into a single output. Route all inputs to the same output port, optionally remapping channels to prevent conflicts.

MIDI Thru with Processing

Pass MIDI through while applying transformations. Use one ruleset to pass unchanged, another to add processed version.

Crossfade Between Instruments

Use velocity to crossfade between two sounds. Low velocity to channel 1, high velocity to channel 2 with adjusted velocities.

Smart Sustain

Apply sustain to only certain channels or note ranges. Filter CC64 and recreate it conditionally based on note values.

Tips & Best Practices

Get the most out of MIDIHub's routing and rules

Where to Apply Rulesets

Apply rulesets at input ports when multiple outputs need the same processing. Use output rulesets for destination-specific changes.

Testing Your Setup

Use the built-in test generator to send random notes through your rulesets. Monitor the log to see exactly what messages come out.

Rule Order Matters

Within a ruleset, rules apply sequentially. Place filters before transformations. Drag to reorder rules as needed.

Save Complex Setups

Always save complex routing and rulesets as presets. Set a default preset to load your preferred setup on app start.

Ready to Route Your MIDI?

Download MIDIHub and start using these patterns in your setup