by Ryan Webber
This article will discuss how MIDI can be sent from Ableton Live to Isadora when running on a single computer, and how this MIDI might be used to control Isadora.
In Ableton Live there are a number of ways to send MIDI out. We will cover three methods, each has specific characteristics that make it suitable for different uses. It is also important to note that Ableton Live offers both a session and arrangement view, where MIDI can be sent from. This article will focus on the Session view to help limit its length, however; the arrangement view offers most of the same features/controls.
It is recommended that you read the described methods in order Method 1: MIDI Notes, Method 2: MIDI Program Change Messages, Method 3: MIDI Control Change. We have taken the liberty to limit step by step details in methods 2 and 3 since they are covered earlier in method 1.
Ableton Live 10 Studio is shown below, but the same method works with Ableton Live Lite, Ableton Live, and Ableton Live Studio. A few changes in the user interface have been made in Ableton Live 11, these have been noted below.
Why Would You Want to Control Isadora From Ableton Live?
If you want to synchronize Isadora and Ableton or utilize other Ableton Live features like session scenes, you will likely want to either control Isadora from Ableton Live, or control Ableton Live from Isadora. One way of achieving both of these things is through the use of MIDI. Although other methods exist, MIDI is the most flexible method available in all versions of Ableton Live, including Ableton Live Lite. Depending on the type of project you are developing and the functionality it requires, one approach may be better suited. The three MIDI methods covered in this article provide a range of options that can be adapted to most projects.
Setup Virtual MIDI Port
One thing that needs to be done before you can send any MIDI between applications running on the same machine is to ensure you have a Virtual MIDI Port available.
Isadora makes this very easy on Apple computers, but there are a few additional steps for Windows users.
Please review this article on Using Virtual MIDI Ports before continuing.
Setup Ableton Live to Send MIDI
Once you open Ableton Live (or the Ableton Set you wish to have control Isadora) you will need to open the Preferences dialog.
On Windows: Go to the Ableton Live menu and select Options > Preferences.
On Mac: Go to the Ableton Live menu and select Live > Preferences.
- Change the Output settings for the new virtual MIDI port to include 'Track'. Track allows us to send Notes, Control Change messages, and Program Change messages. Set Track to On.
(In the image below, the virtual port is highlighted in pink) - Once the 'Track' input is activated you can close the preferences dialog.
Setup Isadora to Receive MIDI Messages
The first thing to do in Isadora is to select the MIDI output port to be used.
- From the Isadora top menu select Communications > Midi Setup...
- On Windows:
In the Midi Setup dialog set the input port for 'Port 1' to the virtual port you created.
see: Using Virtual MIDI Ports
On Mac:
In the Midi Setup dialog set the input port for 'Port 1' to the supplied virtual input port 'Isadora Virtual In'. - Next from the Isadora top menu select Windows > Show Monitor to open the Monitor Window
The Monitor window is the easiest place to see exactly what messages Isadora is receiving because it will list all incoming MIDI messages. It is the easiest place to see exactly what messages Isadora is receiving. Make sure the "MIDI" option is checked, as well as the "Input" option since we are looking for incoming MIDI messages.
Method 1: MIDI Notes
To send MIDI notes you need to have a MIDI track. By default Ableton Live opens with a MIDI track available, but if this is not the case, a MIDI track can be added by choosing Create > Insert MIDI Track.
Be sure you are in the Session view (the arrangement view will not be covered in this article). You can change the view by choosing the menu View > Toggle Arrangement/Session View.
Session View has the tracks labeled horizontally across the top, while the Arrangement view has them labeled vertically down the right side. There is an Icon on the right side (3 vertical lines) that indicates you are in Session view.
Next, you need a MIDI Clip where you will program the MIDI Notes to send from Ableton Live to Isadora. Create a MIDI Clip by double-clicking in the MIDI track you are using, or by choosing menu option Create > Insert MIDI Clips(s). Here I have named the new clip "NEW CLIP".
Along the bottom of Ableton Live, you will see a few panels related to the selected Clip. Toward the left side is a panel labeled 'Clip', to the far right of this panel will be the 'MIDI Note Editor', this panel is not labeled. There may be other panels between these since they can be toggled visible/hidden by small icons located at the bottom of the Clip panel section (these are now tabs in Ableton Live 11). In the image above the 'Notes' panel is activated by the small music note icon (highlighted in orange) located right of the 'L' icon at the bottom left of the image.
The MIDI Note Editor is where you enter the note values and velocities that will be sent over time. The piano roll (located along the left edge of the MIDI Note Editor) is used to display the notes. In the above image, the top-most note is C4, and the bottom-most note is C3. Time is represented horizontally to the right. Notes are added by double-clicking into the grid area. Velocity ranges from 1-127 and is adjusted by the vertical bar that is shown along the bottom below each note.
Above you see four notes entered into a 1 bar loop in the MIDI Note Editor. The first C4 has a velocity of 64, the second note a C3 has a velocity of 120.
Before Ableton Live will send these notes to Isadora, we need to route the track MIDI signals to our MIDI port.
Once again there is a slight difference here between Mac and Windows.
- On Mac, Isadora provides a couple of virtual MIDI ports, one for Input and one for Output.
Here we select 'Isadora Virtual In'. - On Windows, we use the bi-directional virtual MIDI port we set up earlier.
NOTE: MIDI Tracks with a MIDI instrument added to the track will have the MIDI To setting replaced with Audio To (Audio Tracks will have an Audio To setting rather than MIDI To as well) . This means that it is important to use a pure MIDI Track without a MIDI instrument attached in Ableton Live so that you can assign the MIDI routing.
If we push the play button located on the MIDI Clip (colored green in the image above) we will be able to see the MIDI messages being received in Isadora by looking at the Monitor window.
By default Session Clips in Ableton play as loops, so you can see here that the MIDI notes repeat.
Pitch 72 is C4, and pitch 60 is C3. Each Note sends a Note OFF also when the note ends on the timeline.
In our example, each note sends a Note OFF before the next note plays.
NOTE: Note OFF messages are sent with Velocity = 64 (this value is not important, but depending on what you are creating, you may need to be aware of this)
Inside Isadora, we use the 'Note On Watcher' actor and the 'Note Off Watcher' actor to receive these values.
The actors' default values allow us to look at all incoming Notes, but we can be much more specific as to which values are received by which actors.
Since we set up our MIDI input on Port 1, we can safely limit messages to Port 1, additionally, we can see in the Monitor window that all messages are coming in on Channel 1. Limiting the pitch range in the Isadora actors to 60-72 will narrow things down to only notes between C4 and C3 (we could enter only 1 pitch if we want to only see one specific note).
NOTE: In order to change the Channel on which Ableton Live is transmitting MIDI Notes, go to the Ableton Live Track I/O section and change the MIDI To channel selector (pulldown menu located below the selected MIDI Port).
Method 2: MIDI Program Change Messages
To send MIDI Program Change Messages you need to have a MIDI Track in the same way as with MIDI Notes. (Please review the above section, Method 1: MIDI Notes, if you are unclear on how to set up MIDI routing using the track MIDI To setting).
Unlike MIDI Notes, MIDI Program Change Messages are assigned per Session Clip and sent once when the clip is launched.
Each Program Change Message has three values that it can include. These include Bank, Sub-Bank, and Program Change. You can see the MIDI Notes Box in the image above with the MIDI Program Change area highlighted in pink. These pull-down selectors are where you adjust these three values.
Isadora receives these MIDI messages as a mix of one Program Change message and two Control Change messages. The Bank value sent from Ableton Live is received in Isadora as Control 0, using a Control Watcher actor. The Sub-Bank value sent from Ableton Live is received in Isadora as Control 32, using a Control Watcher actor. The Program Change value sent from Ableton Live is received in Isadora as Program Change 12, using the Program Change Watcher actor.
TroikaTronix Team Member Ryan Webber has made a simple Isadora User Actor that can be used to simplify working with MIDI Program Change Messages sent from Ableton Live. (download the User Actor from the Troikatronix Add-ons page)
Ableton allows you to set Program Change values to whole numbers (integers) 1 through 128, and reserves '---' as no selection.
Since MIDI sends values (integers) 0 through 127, the value received in Isadora will be one less than the value entered in Ableton Live. So for example setting the Program Change value in Ableton to 13, will send the MIDI value 12 to Isadora.
Method 3: MIDI Control Change
To send MIDI Control Change Messages you need to have a MIDI track in the same way as with MIDI Notes. (please review the above section, Method 1: MIDI Notes, if you are unclear on how to set up MIDI routing using the track MIDI To setting).
MIDI Control Change Messages are assigned from Midi Session Clip envelopes. These envelopes are by default the same length of time as the Midi Session Clip; however, this timing can be adjusted so that the envelope is either longer of shorter than the MIDI notes in the clip. The flexibility of MIDI envelopes in Ableton Live is beyond the scope of this tutorial, we will look at the basic setup in the steps below.
The image above shows the MIDI Session Clips settings for a MIDI clip that has an envelope linked to MIDI Control Change Pitch Bend. The right side of the image is the Envelope Editor, this is where the envelope values are defined. The envelope shown within the Envelope Editor in light blue, has been drawn in using a variety of draw options. It is these drawn shapes that define the values sent by MIDI over time.
Ableton Live offers a number of ways to create envelope modulations. You can use the Draw Mode Switch turned On to use the pencil tool to draw modulations by hand using the currently selected Grid resolution (eg: ⅛ notes, or Off for fine detail). With Draw Mode Switch turned Off, you can use the mouse cursor to add points to the envelope creating smooth ramps of values. (To toggle the Draw Mode Switch press the 'B' key on your keyboard, or click the small pencil icon in the upper right corner of the Ableton Live window.) Finally, Ableton Live offers Insert Shape from right-click (PC) or CTRL - click (Mac) inside the Envelope area. This will insert smooth curved envelopes of different types to the time region currently selected.
Lets take a look at each section outlined in a pink box and numbered above.
- In the Envelopes Box section a small area is outlined in pink. This is the location of the two menus which allow you to define the target of the envelope. The top pulldown menu with a default value of 'Mixer' will allow you to select 'MIDI ctrl'. To send a MIDI Control Change Message you must select 'MIDI Ctr'. Once selected the pulldown menu located below it will update to list the available MIDI controls. The default is 'Pitch Bend'. Many are labeled as generic 'Controller', while others have MIDI specified mean such as Pitch Bend. It is worth noting that some of these named controls have dedicated Actors available for them in Isadora.
- In the Envelope Editor the region labelled '2' shows a section of envelope drawn in using the default mouse pointer. This allows you to select points, move points and add points.
- The next region labelled '3' was drawn with the Draw Mode Switch set to On, and the Grid set to Off (this allows the highest draw resolution). Notice how many points are added creating a freehand effect.
- Region '4' was also drawn with the Draw Mode Switch set to On, but with the Grid set to ⅛ (eight notes). This allows the creation of a 'stepped' path, where each horizontal segment is a ⅛ note.
- The final Region '5' was drawn using some built in automation shapes.
Envelopes are linked to your MIDI Clip by default, and your MIDI Clip is looped by default. These defaults provide a tight correlation between the MIDI Clips note data and the Envelope. Much more complex relationships can be created by Unlinking the Envelopes and adjusting the Length and/or Position Envelope parameters. For example, Unlinking an Envelope from a 1 Bar MIDI loop, and then setting the Envelope Length to 4, will create an envelope that is exactly 4 times longer than the MIDI notes clip, where the MIDI notes will loop 3 times before finally looping in sync with the envelope at the end of the 4th Bar. Ableton Live has many great tutorials available online, if you are interesting in learning more they are a great resource.
In Isadora receiving the MIDI Control Change values is easy, Isadora has a number of MIDI watcher actors that can be tuned to watch for your specific values. In general it is easiest and best practice to use the numbered 'controller' controls for envelopes. These numbered controls will be received in Isadora by the Control Watcher actor using the listed number as the 'controller' input of the actor. If you have specific reasons for using MIDI specific controls then Isadora may have special actors for those specific control. The Pitch Bend Watcher actor will receive the Pitch Bend data and the Channel Pressure envelope setting will be seen in Isadora using the Mono Pressure Watcher.
If you are using a named Control Change Message in Ableton Live, it is best practice to check Isadora Actor Toolbox for a matching MIDI Watcher actor.