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