MIDI
More actions
MIDI functionality
JustChords offers comprehensive MIDI support that allows you to send MIDI messages when songs load, sections change, or other events occur. This powerful feature lets you automate and control external MIDI devices such as synthesizers, drum machines, guitar processors, lighting systems and more directly from your setlist.
Enabling MIDI
MIDI is disabled by default. To enable it:
- Open the main menu (tap the menu icon).
- Tap MIDI.
- Toggle Enable MIDI on.
Once enabled, JustChords will start listening for connected MIDI devices and Bluetooth MIDI controllers.
MIDI connections
Wired and network MIDI devices
When MIDI is enabled, JustChords automatically detects all connected MIDI sources and destinations — including USB MIDI interfaces, network MIDI sessions, and virtual ports from other apps. Go to Main Menu → MIDI → Connected MIDI Devices to see what is detected and configure each device as:
- Source + Destination — both send and receive MIDI.
- Source — only receive MIDI from this device.
- Destination — only send MIDI to this device.
- Disconnect — ignore this device.
Bluetooth MIDI
To pair a Bluetooth MIDI controller or device:
- Go to Main Menu → MIDI.
- Tap Add Bluetooth MIDI.
- Select your device from the list of available devices.
You can also advertise your iOS device as a Bluetooth MIDI peripheral so other apps or devices can connect to it: toggle Advertise this device as BLE MIDI in the same section.
Virtual MIDI ports
JustChords can create virtual MIDI ports so other apps on the same device can exchange MIDI messages with it:
- Go to Main Menu → MIDI.
- Toggle Enable Virtual MIDI In & Out on.
This creates two system-wide ports — JustChords Out (for other apps to receive from JustChords) and JustChords In (for other apps to send to JustChords).
MIDI Library
The MIDI Library is a collection of reusable, named MIDI action presets. Each preset contains one or more MIDI messages that can be assigned to songs or triggered by events.
To manage the MIDI Library, go to Library → MIDI Library (accessible from the Library sidebar).
In the MIDI Library you can:
- Add new presets manually or by capturing messages live from a connected device.
- Edit existing presets.
- Duplicate presets.
- Test a preset by tapping Send to immediately transmit its messages.
- Delete presets you no longer need.
Each MIDI message in a preset can have an optional Send Delay (in milliseconds) to stagger the timing of messages in sequence.
Supported MIDI message types include: Note On, Note Off, Control Change, Program Change, Pitch Bend, Aftertouch, Channel Pressure, SysEx, and more.
MIDI in songs
MIDI Library presets can be attached to individual songs with specific triggers controlling when they fire.
Song MIDI triggers
Each MIDI action in a song's structure can fire on one of four triggers:
- Song Appear — fired automatically when the song loads into the viewer.
- Section Select — fired when that section becomes the active section (with an optional delay in beats).
- Section Deselect — fired when navigating away from that section (useful for sending "note off" or cleanup messages).
- MIDI Button — displayed as a tappable orange button directly in the song viewer, so you can fire the action manually at any time.
Assigning MIDI actions to a song
- Open the song in the Song Editor.
- Open Structure & MIDI (the song arrangement editor).
- Add a MIDI structure item and select a preset from the MIDI Library.
- Choose the trigger type and optional beat delay.
MIDI actions assigned to Song Appear are shown as small labels at the top of the song content in the viewer. MIDI Button actions are shown as prominent orange buttons inline in the song content.
MIDI controller mappings
You can map incoming MIDI messages from foot pedals or controllers to JustChords actions.
To configure mappings, go to Song Settings → MIDI → MIDI Controller.
Available actions that can be triggered by MIDI input:
| Category | Action |
|---|---|
| Setlist navigation | Next Song, Previous Song, Jump to Song (by index or MIDI Custom ID) |
| Section navigation | Next Section, Previous Section, First Section, Last Section, Jump to Section |
| Scrolling | Scroll Down, Scroll Up |
| Autoscroll | Start/Pause, Toggle, Speed Up, Speed Down |
| Transpose | Transpose Up, Transpose Down |
| Zoom | Zoom In, Zoom Out |
| Audio track | Toggle playback |
| Projection | Blackout toggle |
| Metronome | Toggle |
| Chord Beats Sync | Loop toggle (AUv3) |
For Jump to Song and Jump to Section, the MIDI Data 2 byte value selects the target song index or section index respectively. For Jump to Song by MIDI ID, Data 2 matches a custom MIDI ID you set in the Song Editor.
You can configure Data 2 as a fixed value, as an On/Off switch (0 = off, 1–127 = on), or as a wildcard that passes the received value directly to the action.
MIDI Clock
Sending MIDI Clock
JustChords can send MIDI Clock to synchronize external devices to a song's tempo. Go to Song Settings → MIDI → MIDI Tempo and enable Send on song appear under the MIDI Clock section.
You can configure how many seconds the clock runs after the song appears (1–30 seconds).
Receiving MIDI Clock
JustChords can receive MIDI Clock from an external source (such as a DAW or drum machine) to drive Chord Beats Sync — the feature that highlights chords in sync with playback. Go to Song Settings → Control → Chord Beats Sync and set the Beats Source to MIDI Clock, then select your clock source device.
JustChords handles Start, Stop, Continue, and Song Position Pointer (SPP) messages automatically.
MIDI Tempo message
When a song appears, JustChords can send a custom MIDI message carrying the song's BPM value, so external devices can follow the song's tempo automatically.
Go to Song Settings → MIDI → MIDI Tempo and enable Send on song appear under the MIDI Message section.
Options:
- Status — choose the message type (e.g. Control Change).
- Channel — MIDI channel 1–16.
- Data 1 — the controller number or parameter.
- Data 2 — automatically set to the song's BPM (with optional offset and divider).
- BPM Offset — subtract a fixed value from the BPM before sending.
- BPM Divider — divide the BPM (e.g. divide by 2 for half-tempo).
Chord Beats Sync and MIDI output
The Chord Beats Sync feature highlights chords in the song viewer in time with the beat. It can also output the current chord as MIDI data so external instruments follow along.
Go to Song Settings → Control → Chord Beats Sync to configure:
- Beats Source — Off, Metronome, or MIDI Clock.
- MIDI Out → Song MIDI — controls when section-change MIDI messages are sent: Always, Only when transport is running, or Only when transport is not running.
- MIDI Out → Chords — sends the current chord as MIDI data. Options: Off, Chords (Note On/Off), or Tone Packet Protocol.
- Chord Anticipation — send chord MIDI slightly early (1/4, 1/8, or 1/16 beat) to compensate for device latency.
- Send first chord on song display / section select — immediately outputs the first chord when a song loads or a section is navigated to.
- Loop Song — loops the song's chord timeline continuously.
MIDI use cases
MIDI integration in JustChords enables many creative and professional workflows:
- Automated patch changes – Switch sounds on synthesizers and guitar processors when a song loads.
- Drum machine control – Start backing tracks or change patterns automatically.
- Lighting control – Trigger lighting cues synchronized with your setlist.
- Multi-device synchronization – Control bass players, synths, and other MIDI-enabled gear from one central setlist.
- Foot controller input – Use MIDI foot pedals to navigate songs, transpose or trigger projection sections.
- Tempo sync – Broadcast the song's BPM as a MIDI Clock or custom MIDI message so every device stays in time.
- Chord output – Feed chord data in real time to synthesizers or backing-track apps via MIDI Note On/Off or Tone Packet Protocol.
For a real-world example, see how Greg from Seattle uses MIDI messages to control his entire band setup from JustChords: Greg's MIDI story