MIDI Integration
Horn provides extensive MIDI integration capabilities, acting as a MIDI broker between remote users in the system. This enables everything from synchronized musical performances to advanced control of the interface using physical MIDI controllers.
Introduction
The MIDI integration system in Horn supports:
Multiple MIDI devices per user
Synchronized MIDI and video transmission
Loop detection and prevention
MIDI shortcuts for interface control
Build-in virtual MIDI instruments (e.g. piano, guitar, drums)
Visual On Screen Keyboard to visualize MIDI activity
Ability for a Host to synchronize selected MIDI Output devices across all participants
Virtual on-screen MIDI controllers
Device Management
Each user can connect multiple MIDI input devices and assign one MIDI output device in the application. The system automatically detects available MIDI devices and allows for easy configuration though the MIDI / Select MIDI Out section:

The default setup for devices is:
MIDI Input: Merge All Inputs - by default, MIDI from any connected MIDI devices will be captured and propagated to other participants
MIDI Output: MIDIable Piano - by default, the virtual MIDIable Piano will be used as the output device
Sync With Camera Feed
Horn implements a sophisticated synchronization mechanism between MIDI data and video feeds. This ensures that:
Musical performances remain perfectly synchronized for all participants
MIDI events align precisely with visual cues
Latency is minimized for real-time collaboration
Note
The synchronization system is particularly useful for remote music education and collaborative performances where timing and precise instrument control is crucial.
If you don’t want the camera feed to be synchronized for any reason, you can disable synchronization in the Settings Panel / MIDI section. This will lower latency but will also remove synchronization between MIDI and camera feed from the user playing the instrument.

Output Synchronization
Hosts can synchronize the selected MIDI output devices across all participants. This is useful when you want to ensure that all participants are using the same MIDI output device.
To synchronize the MIDI output devices, open the MIDI menu from the bottom control bar, make sure you have the right MIDI Output selected, and hit the Sync MIDI Output With All Users button:

Note
For obvious reasons, not all MIDI output devices can be synchronized (i.e. your own local output device is not available for other users to use). If you have selected a device that cannot be synchronized, you’ll see an error message and the button will be disabled.
MIDI Shortcuts
The MIDI Shortcuts system allows users to control various aspects of the interface using physical MIDI controllers.

Basic A/V Controls
Toggle microphone
Touch to talk feature - mic is hot when button/shortcut is pressed
Changing camera
Show Mode Controls
Navigate to next/previous scene
Trigger specific scene (this is configured from the Show Settings page when hovering over a scene on the playlist)
In-Ear Monitoring Controls
Talk to all participants
Talk to all presenters
Talk to all audience members
Other Controls
Our MIDI Shortcuts system is highly flexible and can be configured to control a wide range of actions in the system. If you need to control a specific feature not yet supported, please let us know!
Set MIDI Shortcut
A Shortcut can be eithr captured from the controller using the “REC” button or specified manually by clicking on the “Note/Ch” column. Unless you precisely know the channel and note, we recommend using the “REC” button to easily capture the shortcut by simply pressing the desired button on the controller:

When you want to assign a shortcut to a specific Scene during a Show, navigate to the Show page and hover over the desired scene on the playlist.
You’ll see a keyboard icon that will allow you to assign the shortcut to the scene:

On-Screen Controllers
Horn provides an advanced feature allowing Hosts to create virtual MIDI On-Screen controllers that can be assigned to individual users.
Each of such controller can be configured to generate specific MIDI CC messages that are sent to the connected MIDI Output device on the Host side.
Horn provides virtual MIDI controllers that can be assigned to individual users:
Available Controllers
Buttons (momentary)
Sliders
XY Pads
Configuration
To configure On-Screen Controllers, navigate to the MIDI Onscreen Controllers Management button from the MIDI menu:

Once you click on the button, you’ll be able to add interfaces/groups. Here is a setup of a simple group containing XY Pad, Slider and a Button:

When the above group is created, enabled and assigned to a user, the user will then immediately see a floating dialog with the controllers:

When user will be interacting with the controllers, the Host will be getting the configured MIDI messages being sent to the connected MIDI Output device.
Loop Prevention
To maintain system stability and prevent common MIDI routing issues, Horn includes:
Automatic loop detection
Prevention of circular MIDI routing
Automatic safety cutoffs for problematic MIDI configurations