This is an excerpt from the full 📖ChartBuilder User Guide.
UPDATE: External Controllers are now supported on all platforms where ChartBuilder is available, including Bluetooth MIDI controllers on iOS, Android, Mac, and Windows. 🎉
Requires ChartBuilder Version 4.3.0 or higher.
Introduction
There are several powerful features available for using ChartBuilder during a live performance. From MIDI control with wired or Bluetooth devices to keyboard control, multiple wired and wireless connections are possible for hands-free control of Charts so you can focus on performing your part. Use an external controller to navigate hands-free through Charts and songs in a setlist. You can connect several controllers at once.
External Controller Settings
In the Account section of ChartBuilder, select "External Controller." Once here, select any control to highlight it, and arm that control to be mapped to. Press your MIDI controller button to map that MIDI note or message to the control in the ChartBuilder app. Select a new control to map that one next. Each MIDI value can only be mapped to a single control.
MIDI Mapping and Keyboard Mapping tabs at the top allow you to toggle between MIDI mapping options and keyboard mapping options.
Previous/Next Page controls allow you to flip between the pages of a Chart in a setlist. Make sure that paging layout is selected in the Chart Customization menu. At the first/last page of a Chart, the page controls will then page through the adjacent song in the opened setlist.
Previous/Next Song controls bypass the pages of a Chart and move directly from one song to the next.
RehearsalMix Controls allow you to control the audio playback of the songs in the ChartBuilder app.
Play/Pause to start and stop the audio
Restart, to jump to the start of the song's audio and chart
Up/Minus Mix to toggle whether you're listening to the "Up Mix" or "Minus Mix" of the RehearsalMix file
Loop to toggle on and off the loop for a song section.
Reset Mapping button will remove all mappings from the controls.
Nearby Devices scans for available Bluetooth devices. Connect them from the options below to start mapping with a Bluetooth controller. ChartBuilder remembers the devices you connect and reconnects to them automatically.
Bluetooth Settings link, next to Nearby Devices, is always available and takes you straight to your device's Bluetooth settings.
Supported External Controllers
ChartBuilder uses a standard MIDI protocol to work seamlessly with numerous types of controllers. Some controllers may require additional setup or configuration to work with ChartBuilder. Below is a list of the specific MIDI data types that are compatible with the ChartBuilder app:
✅ All MIDI Note ON events with a velocity between 0-127
Non-compatible MIDI data types:
❌ MIDI Note OFF events
❌ MIDI CC Events
❌ MIDI PC Events
AirTurn and other page-turner pedals
AirTurn AirDirect is no longer supported. AirTurn and other page-turner pedals can still be used: if your pedal sends keyboard keystrokes, use the Keyboard Mapping tab; if it sends MIDI, use the MIDI Mapping tab.
Connect Your External Bluetooth Controller
Most Bluetooth Controllers are connected to devices a similar way.
Put your controller in pairing mode, then connect it from Nearby Devices at the bottom of the "External Controller" settings in the ChartBuilder app.
You can also tap Bluetooth Settings to open your device's Bluetooth settings and connect your devices together there.
Repeat for any additional controllers. You can connect several at once, and ChartBuilder will reconnect to remembered devices automatically.
Assign Your External Controller to ChartBuilder
Tap on the action (i.e., page controls and song controls) in ChartBuilder you would like to map first.
With the action highlighted, tap the control on the external controller and a confirmation icon will signify which controller message is mapped to that action.
Repeat this process for any actions, and tap reset mapping if you would like to start over.
Button mappings carry over between devices of the same kind, so you don't need to re-map when you switch to another controller of that type.


