< All Topics
Print

Use Bluetooth and MIDI devices

Control the Set list and the Songbook

The Set list and Songbook have support for Bluetooth and MIDI devices which you can configure individually.

▫ Switch between the songs in the set list
▫ Scroll up or down, page up or down
▫ Start/stop the scrolling, metronome, drum machine, audio player, or the (YouTube) video player
▫ The Bluetooth and MIDI configuration with the set list
▫ MIDI support needs Android 6.0 Marshmallow or newer

How to configure a Bluetooth pedal

There is a video about ‘How to configure a Bluetooth pedal’:

How to configure a MIDI device

There is a video about ‘How to configure a MIDI device’:

MIDI settings

Before you can use your MIDI devices, you have to select them in the settings. You also have to map the MIDI messages to the actions in the Set list and Songbook. Please check your settings. They are valid for the Songbook and the Set List. To use the MIDI integration, you need to have Android 6 or later on your device. Android supports MIDI over USB or Bluetooth.

Select a song with a MIDI command

The songbook allows you to switch the songs with a MIDI command from your MIDI device. To enable the song selection you have to do these two steps:

  • Select the MIDI device in the settings (MIDI source).
  • Insert the directive {x_sccrd_midiSongSelect:<number>} in each song you want to select by a MIDI device. The <number> has to be between 0 and 127 or 1 and 128. This depends on your device.

If your MIDI device sends the MIDI command SongSelect (0xF3), smartChord looks for the song with the x_sccrd_midiSongSelect directive and the song number. The song number is part of the command. If a song with this number is found, the songbook switches automatically to this song. If no song with the number is defined, nothing happens. If more than one song does have this number, the first found song with the number is selected.

Control a MIDI device

You can send MIDI commands from the Set List and Songbook to a MIDI device to assist you during practice or performance. These commands allow the Set List and Songbook to act as a central controller, preparing your MIDI equipment (keyboards, sound modules, effects, sequencers) automatically for each song you play.

How to use MIDI commands in the Set List

The Set List enables you to control MIDI equipment, such as effects processors or sequencers. You can assign MIDI commands to be sent when a Set List entry (including songs, PDFs, images, and breaks) is opened or closed. Each message sent to your MIDI device can contain multiple commands.

To use this functionality, first configure your MIDI device as a MIDI receiver in the settings. Once a MIDI receiver is defined and a Set List is started, the MIDI commands designated for “opening” the initially displayed entry are automatically sent to your MIDI device. When you navigate to a different entry, the MIDI commands for “closing” the current entry are sent first, followed by the “opening” commands for the newly selected entry.

To define MIDI commands for a specific Set List entry, first select the desired entry. Then, press the Edit button and choose either ‘MIDI -> MIDI on opening’ or ‘MIDI -> MIDI on closing’. A dialog box will appear where you can enter your commands.

For an overview of all MIDI commands within the Set List, you can display them in the information section. If visible there, you can conveniently click directly on a MIDI command to modify it.

How to use MIDI commands in the Songbook

To send MIDI commands, you have to:

  • Define the ‘MIDI receiver’ in the section ‘MIDI’ of the settings
  • Add special directives within the song.

The directive x_sccrd_midiOpen defines the MIDI commands which are sent to a MIDI receiver when the song is opened, the directive x_sccrd_midiClose when the song is closed. Both directives are not visible in the songbook.

The directive x_sccrd_midi defines also MIDI commands, but these directives are visible as grey ‘MIDI’ lines. They are automatically sent when the scroller scrolls the song and the line reaches the top or if you tap the line. You can give this commands a meaningful name. Put the name behind the colon and end it with a semicolon to separate it from the midiCommands.

  • {x_sccrd_midiOpen: <midiCommand1>, <midiCommand2>, …}
  • {x_sccrd_midiClose: <midiCommand1>, <midiCommand2>, …}
  • {x_sccrd_midi: Optional meaningful name; <midiCommand1>, <midiCommand2>, …}

A directive can define multiple MIDI commands. The commands have to be separated by a comma. You can have multiple MIDI directives in a song. The commands are sent according to the order in the song.

A command is defined by one or more bytes, written in two-digit hexadecimal numbers. Normally hexadecimal numbers do start with ‘0x’. For more readability, it can be omitted.

Example with two : {x_sccrd_midi: Meaningful name; 90 30 6F, 91 3A 6F}

You can get a short introduction here:
https://ccrma.stanford.edu/~craig/articles/linuxmidi/misc/essenmidi.html and http://www.music-software-development.com/midi-tutorial.html

Key MIDI Command Types & Examples:

  1. Program Change (PC) & Bank Select (CC 0/32):
    • Purpose: Automatically selects the correct instrument sound/patch.
    • Sample:
      • When you open “Song A” in the app, it sends Bank Select MSB 0, Bank Select LSB 0, then Program Change 5 to your keyboard to select the “Electric Piano 1” sound.
      • When you switch to “Song B”, it sends Bank Select MSB 0, Bank Select LSB 8, then Program Change 17 to select a “Synth Brass” sound from a different bank.
  2. Control Change (CC):
    • Purpose: Adjusts parameters like volume, effects, or expression for the selected song.
    • Sample:
      • Along with selecting the sound for “Song A”, the app sends CC 7, Value 100 to set the channel volume to about 80%.
      • For a ballad “Song C”, it might send CC 91, Value 64 to increase the reverb depth.
  3. System Real-Time (Start/Stop/Clock):
    • Purpose: Controls playback and tempo of external devices like drum machines or backing track players.
    • Sample:
      • When you select “Uptempo Song D”, the app sends a MIDI Start (FA) command to trigger the corresponding drum pattern on your drum machine.
      • It might also continuously send MIDI Clock (F8) messages based on the song’s tempo (e.g., 120 BPM) to keep the drum machine in sync. When you close the song, it sends MIDI Stop (FC).
  4. System Exclusive (SysEx):
    • Purpose: Sends complex, device-specific data to load entire setups.
    • Sample:
      • For a complex “Performance Song E”, the app could send a long SysEx message that configures keyboard splits, layers, multiple effects, and specific synth parameters all at once on your synthesizer – a complete recall of a custom setup for that song.

MIDI test

The smartChord tool ‘MIDI test’ can help you write MIDI commands, as it shows MIDI messages received from a MIDI device in the form you need for the MIDI directives. It allows you also to send messages to a MIDI device. This tool is available with version V7.17 or newer.

Table of Contents