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:

../../../_images/midi-menu-select-in-out.png

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.

../../../_images/midi-sync-with-camera-setting.png

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:

../../../_images/midi-sync-output.png

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.

../../../_images/midi-shortcuts-panel.png

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:

../../../_images/midi-shortcuts-record.png

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:

../../../_images/midi-shortcuts-show-playlist.png

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:

../../../_images/onscreen-controllers-menu-button.png

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:

../../../_images/onscreen-controllers-setup.png

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

../../../_images/onscreen-controllers-display.png

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