Chord Beats Sync
More actions
Chord Beats Sync
Chord Beats Sync drives JustChords from an external clock so the app follows the music in real time. As the clock advances, JustChords highlights the active chord and section, auto-scrolls the song, and sends MIDI out to other instruments / apps based on the chord under the playhead.
This feature builds on Chord Beats — every chord must have a beat duration set, otherwise there is nothing to follow.
Clock Source
JustChords gets its timing in two different ways depending on how it's running:
- Standalone app (iOS, macOS Catalyst) — reads an external MIDI Clock source.
- AUv3 plug-in — locks to the host's transport (DAW play/stop, position, tempo).
Open Settings → Chord Beats Sync to configure the source.
- Standalone — MIDI Clock Source
- Pick a MIDI device or virtual port from the picker. Only ports that can send (sources / source-and-destination) are listed.
- Choose None to disable clock following.
- AUv3
- No clock picker — the host transport drives the sync automatically.
- Loop Song
- When the song ends, sync restarts from the beginning of the first section so the song loops indefinitely. Works in both standalone and AUv3 modes.
MIDI Out
Chord Beats Sync can broadcast what's happening in the song over MIDI. The standalone app has MIDI Out (one channel); the AUv3 plug-in has both MIDI Out 1 and MIDI Out 2, each configured independently.
- User MIDI Messages (always on for Out 1)
JustChords always emits these on the primary output:
- Song is displayed
- Section selection
- Section deselection
- MIDI Button events
These are the "user-driven" messages that don't depend on the playhead.
- Chords (per output)
Choose how chord data is sent:
- Off — no chord messages.
- Chords (Note On/Off) — sends each chord as standard MIDI Note On / Note Off events, so any synth or sampler can play along.
- Tone Packet Protocol — sends chord information as TonePacket messages, useful for receivers that understand chord identity rather than raw notes.
- Anticipation (per output)
How early chord-change messages should be sent before the beat the chord actually starts on:
- Off — fire exactly on the beat.
- 1/4 beat, 1/8 beat, 1/16 beat — send the chord change slightly ahead, useful so external instruments have time to react and don't sound late. Anticipation is ignored for the very first beat of a section (no pre-roll).
- Send first chord on song display / section select
- When enabled, opening a song or selecting a section immediately emits its first chord — handy for hearing the starting chord before the transport begins.
Shifting Section MIDI Messages (Delay / Anticipation)
The Section selection and Section deselection MIDI messages can be shifted in beats so they don't fire exactly on the section boundary. The offset is set per MIDI action in the song's Arrangement / Song Structure and only takes effect in Chord Beats Sync mode.
How to Set It
- Edit the song's Song Structure and open a MIDI action item.
- Pick a Trigger — Section selection or Section deselection.
- A stepper (0–100 beats) appears, labelled Delay or Anticipation depending on the trigger.
Behavior
- Section selection → Delay — sends the message N beats after the section starts.
- Section deselection → Anticipation — sends the message N beats before the section ends.
- 0 (default) — fires exactly on the boundary.
The offset is measured in whole beats on the Chord Beats timeline and is applied per MIDI action, so several actions on the same section can use different shifts.
What Sync Does in the UI
When the clock is running:
- The chord currently sounding is highlighted in the song view.
- The active section is highlighted, and JustChords auto-scrolls to keep it on screen.
- When the section ends, JustChords advances to the next section automatically; if Loop Song is on it wraps back to the start.
- When the transport stops, all sounding notes are released and the section selection clears.
Section Navigation Over MIDI
While sync is active you can pre-queue a different section:
- Tap a section header in the song view to set it as the "next section". When the current section ends, JustChords switches to it and emits the corresponding Section Selection MIDI message.
- Looping a single section keeps repeating it until you queue a different one or stop the transport.
Tips
- Set Chord Beats first. Without beat counts, there is nothing for the clock to follow. Enable Chord Beats in Song View settings and set beat values per chord in the Song Editor's Chord Beats syntax.
- AUv3 in a DAW is the simplest way to test the feature — start playback in the DAW and the song should follow.
- Standalone setups typically use an external sequencer, drum machine or MIDI clock app as the source.
- If anticipation makes external instruments fire too early, lower it; if they sound late, raise it.