There are many amazing midi sequencers on iOS. They come in all different shapes and sizes. Some are simple and some extremely complex. Some can transpose the sequenced notes via a midi controller and some can’t. Other apps can transpose but only using on screen controls, which may not be the best option in a live situation. After searching for a solution, I finally found one that works really well.
So first off, lets define a couple of terms just in case you are not familiar with exactly what I am doing.
Transposing notes is basically moving a note or set of notes up and down semitones but keeping the same interval between the notes.
This is really useful for changing the key of a sequence without having to re-enter the sequence in a time-line.
So what are intervals. Intervals are the distance between 2 notes. Example, if you move back and forth from one note to the next note on a chromatic scale, that is a minor 2nd. C to a C#. Similar to the Jaws theme. Another common interval is if you move from 1 note up 12 semitones. Say Middle C to the next C note up, that is called an octave. Think of “Some-where over the rainbow.”
Now that we have that covered, let’s dive into a solution to the initial problem.
If you have a sequence going but you want to change the key or move the notes up or down a few semitones you might find it difficult to do, especially if you want to use a midi controller to do it. Some apps have transpose features built in, and some, while having transpose features can’t do it via a midi controller. It requires doing it on screen. Which is fine for some situations but not really good for live situations where you might be using several apps and having to switch back and forth just doesn’t work well.
The main app I am want to do this with is FugueMachine but there are other apps out there that could benefit from this feature as well.
Luckily we have an app that can help. StreamByter by Audeonic. Its not exactly a plug and play app, but with the right script it works really well. I contacted the developer, Nic, and he was very responsive. After a few emails back and forth, he presented me with a script that did exactly what I was after. Here is a link to his website https://audeonic.com/ if you want to go check out more of his amazing apps.
Now, using StreamByter and the script below, we have the ability to transpose FugueMachine and any other sequencer with a midi controller. And let me tell you, it’s amazing.
So how do we set this all up. First off, you need to purchase the StreamByter app from the App Store, $8.99 currently. Then you need to copy this script and paste it into the app.
Once the script is pasted into the text area of the app, tap the Install Rules and you are up and running.
Download the Script
I tried to paste the script directly into this blog post but it would not copy and paste correctly into StreamByter. So to make it easier, I have uploaded the script into a plain text file. Please click on the button below to open up the script.
In the script you need to make note of the top portion. StreamByter takes sequenced notes from channel 1 and transpose notes from channel 2. Both of these can be easily changed to the desired channel. Please note that they must be different MIDI channels.
The way you set it up with Fugue Machine is to:
- send midi from FugueMachine (it could be any sequencer app) to StreamByter on channel 1.
- Send midi note information to StreamByter on channel 2 via a midi controller or other app.
- Next, setup a synth app to receive midi from StreamByter.
StreamByter will take in the sequenced midi data, transpose it, and send it out to the desired app.
In the picture to the left, you will see how everything is setup inside of AUM. To include the flow of midi to and from each app. I have also included a snippet of the actual midi routing matrix inside of AUM to give you a better understanding of the routing.
In the video to the right, you will see an actual demonstration of this as well as a walk through of the setup.
If you would like a video showing this same setup using Audiobus or ApeMatrix let me know.
4 Instances of StreamByter
To the left is a demo showing how you can use 4 instances of StreamByter to transpose 4 different synths. All being sequenced with the 4 different playheads from FugueMachine. The possibilities with this seams limitless. I was only pushing 40-50% CPU usage on my iPad Pro 12.9 Gen 2.