Can I send MIDI to switch to specific sections of a song?

Can I send MIDI to switch to specific sections of a song?

We Speak MIDI Here
OnSong in not only a powerful controller for integrating MIDI-capable keyboard, effects pedals and more, but can also listen for MIDI to control the OnSong interface.  OnSong can listen for incoming MIDI and perform actions via MIDI triggers.  If you need help connecting MIDI devices to OnSong via iOS CoreMIDI, watch our MIDI Setup Video Tutorial.  Keep in mind that we can't provide support for third-party hardware or software, so you may want to contact the manufacturer of your equipment to find out how to connect it to an iOS device and how to send and receive MIDI events.

A trigger in OnSong is a simple concept: an event causes another action to happen.  For instance, tapping on the bottom of the screen causes the song to scroll down.  In this example, the screen tap is the event that triggers the scroll down action.  MIDI can be used as an event to trigger actions.

OnSong can perform actions all basic MIDI events such as program changes, control changes, note events, and more.  It will not perform triggers for more complex events like NRPN or SysEx (system exclusive messages). To set this up, you'll need to first have an idea of the type of MIDI event you'll want to send.

Creating Sections
OnSong works best with text-based chord charts because it allows you to create songs using text that have basic musical meaning.  In order to scroll to and select sections of a song, we need to use a text-based format.  You create sections of your song by placing a blank line between the parts of your song.  The first section always contains "metadata" or information about the song.  Each section after that is considered a section. Each of these can be selected separately.

You can name these sections to provide OnSong some more understanding about the structure of your song.  This is useful for use with Flow, a feature for laying out a song in the order it will be performed.  This is also important for selecting sections.  To label a section, type the name of the section followed by a colon and a line break to label the section that follows.  Once a section is labeled, all sections of text underneath the label become stanzas of the section.  In order to break out of say the chorus, you will need to create another section label.  It does not matter what you call these sections.

Here is an example of how to format your songs into labeled sections with stanzas:
Song Title
Artist Name
Key: G
Tempo: 84

Verse 1:
This is my first line to sing
And I cannot wait to hear it

But I skip a line to bring
The next stanza right along side it

Chorus:
This is the chorus
Ain't it so glorious?

Once your song is in the right format and sections can be individually detected, you're ready to bring in the MIDI.

Standard MIDI
Most MIDI events you may work with send basic state changes like buttons.  For instance, you may be familiar with changing patches or effects presets using a Program Change, or you may toggle a Control Change on and off.  Of course keyboardists are familiar with Note Events when they press and release keys on a keyboard.  You can configure OnSong to switch to specific sections when these events are received.

To do this, tap on the gear icon in the Menubar to open the Utilities Menu and then open Editors and then MIDI .  This will open the MIDI Triggers screen .  OnSong will listen for incoming MIDI events so you can either send an appropriate MIDI event to OnSong to have it appear in the list automatically, or tap on the + button to open the MIDI Editor where you can add a MIDI events manually. Tap on the MIDI event in the list to open the Actions Menu . Locate the Switch Section action and select it.  This will then open the Sections Menu and pick a section.

Before we get ahead of ourselves, it would be a good time to discuss how this is going to work. The Sections Menu shows a default list of section, but you can make your own.  The list that is include is overly broad.  For instance, if you select Verse in the list, then OnSong will pick the first available section like "Verse 1".  If the action is triggered again, OnSong will pick the next verse in the song like "Verse 2" and so on.  This may work for your workflow.  If you want to more accurately switch to section, create your own, more specific sections like "Chorus 2" to only target the second chorus in the song.

When you're all done picking the right section, try it out.  OnSong will listen for that MIDI event, locate the section by label, select it, and scroll it into view.

Variable MIDI
Another way to handle MIDI sections is through a single MIDI Control Change that contains a MIDI value (0-127).  You can then use a Variable Action to switch to sections based on their position in the song.  To do this, tap on the gear icon in the Menubar to open the Utilities Menu and then open Editors and then MIDI .  This will open the MIDI Triggers screen .  OnSong will listen for incoming MIDI events so you can either send the Control Change to OnSong to have it appear in the list automatically, or tap on the + button to open the MIDI Editor where you can add a Control Change manually.

Once the Control Change is in the MIDI Triggers list, tap on the row to choose an action with the Actions Menu .  Select the Adjust Section action.  This action will receive the MIDI value that you've send and automatically select the section.  By default, the MIDI value is translated into a relative percentage like 0-100%.  What that means is that a MIDI value of zero will select the first section and a MIDI value of 127 will select the last section.

If you want to target sections precisely by their position in the song, you will need to Use Absolute Adjustments.  To turn this on, tap on the wrench icon in the MIDI Triggers screen to open the MIDI Settings Menu .  Scroll to the Control Change section and then toggle on the Use Absolute Adjustments switch.  When this is enabled, OnSong will take the MIDI value set to the Control Change and select the section at that index. If a value is sent that is outside of the number of sections available, no action will occur.

Summary
OnSong is a great addition to your on-stage presence with its ability to listen MIDI events and control your entire rig.  Automate your performance for smoother transitions, and engage with your audience without missing a beat. OnSong's powerful MIDI features make it a great companion.

    • Related Articles

    • How can I send MIDI when the song is loaded?

      OnSong has the ability to send MIDI when the song is first loaded.  This can be used to automatically configure MIDI instruments or effects on stage without manual adjustment.  This is an incredibly useful tool for automating your stage! Setting MIDI ...
    • What can the MIDI feature of OnSong do for me?

      OnSong is a powerful, context-aware MIDI control for completely automating your stage presence. While you're only limited by your imagination, and budget, you could do some of the following Connect wired MIDI devices, join network sessions over WiFI, ...
    • How can I change patches on my Nord using OnSong?

      Nord is a popular brand of piano and synthesizer for live performance and is a favorite of the OnSong staff.  What's great is that you can use OnSong to set the patch you want to play using OnSong's powerful MIDI capabilities. Connecting a Nord Piano ...
    • Is OnSong compatible with Ableton Link?

      Currently, OnSong does not support and is not compatible with Ableton Link. We have gone back and forth with Ableton to figure out why this is and to get a proper SDK working, but up to now it has been to no avail. We do hope to make OnSong ...
    • How can I send tempo to my MIDI-enabled instrument/device?

      OnSong has the ability to send MIDI events to compatible devices based on the tempo provided for each song in your library. This can be done in one or more of these ways depending on the requirements of the device.  These can be configured by opening ...