makingthenoise.com : music, art, code
January 2, 2012 , ,

A treatise on MLRv & Workflow (Part 2)

In my last post, I suggested that MLRv could be used to enhance your production workflow, outside of its abilities as a live performance tool.  In this post I’ll cover the configuration necessary to get MLRv set up for automation with Ableton.  In the post following this, I’ll give an example of how this setup was used to create a remix of Edison’s “My ex fan Gary”.

Setup

To get started, you’ll need:

  1. Max/MSP installed.  A free runtime version is available for Mac/PC here
  2. MLRv downloaded and extracted
  3. Ableton Live installed
  4. (PC Only) Virtual MIDI software such as LoopBe
Notice that I didn’t mention that you need a monome!  That’s because for this first task, we’re replacing the monome and controlling MLRv with Ableton.  Later on I’ll talk about how you can incorporate a monome for additional sound mangling.

Audio Configuration

Before we start remotely controlling MLRv, we need to make sure Ableton can play the audio coming from MLRv.  To do this,  we must fist enable Rewire:

  1. Open Ableton
  2. Open Max/MSP
  3. Load MLRv by opening “_mlrV.maxpat”
  4. Enable rewire mode by clicking on the “Setup” icon in MLRv and then turning Rewire to “On”

    Rewire mode for MLRv

  5. Add 4 tracks to Ableton to capture the audio from the 4 groups in MLRv.  Set their “Audio From” source to “Max” channels “1/2″, “3/4″, “5/6″, and “7/8″.  Then, set their monitor mode to “In”.  (view image)

At this point, audio should be able to flow from MLRv to Ableton.  However, you can’t test this until you’ve configured the MIDI routing.

MIDI Configuration (PC)

The MIDI configuration for the PC is a little different than with a Mac.  Mac’s, by default, have a virtual MIDI port that can share data between Max and Ableton while PC’s need a separate virtual MIDI utility that must be configured.  The following steps are how to configure Ableton to send clip launch commands to MLRv from MIDI clips on a PC.

  1. In Ableton, set a MIDI output port with the “Track” option enabled in the MIDI preferences dialog.  In my screen shot below, I’m using “Internal MIDI port 3″. (view image)
  2. Create a MIDI track in Ableton and set its “MIDI To” setting to the same port you selected in step 1.  Then make sure you set the output channel to 15. (view image)
  3. Set up the corresponding input port in Max to receive the MIDI data from Ableton.  Go to “Options -> MIDI Setup”.  Make sure that the port you chose in step 1 has its input enabled.  I’ve also given this port an abbreviation of “b” which I’ll explain in a minute.Max MIDI setup
  4. Open up the MLRv settings dialog and turn the “Remote control via MIDI” option on.
  5. There is one last crucial step for PC’s.  MLRv was hard-coded to send/receive MIDI data from a virtual MIDI port that exists on Mac OSX, but does not exist on PC’s.  Before any MIDI can be routed, we need to change this to match the input port we selected in step 3.  To do this, you can either follow the instructions below to edit the necessary patch yourself (which will require the full version of Max/MSP), or you can download a modified version of MLRv here.
    1.  In MLRv, turn off presentation mode so you can see the guts of the patch.  Double click on “p 40h_osc” (view image)
    2. In this sub-patch, you’ll see that the monome button presses are being captured from a UDPReceive object, being passed to the “p rmidi” sub-patch, and then continuing on to do work in the application like launching clips and stopping groups.  Open up the “p rmidi” sub-patch.
    3. In this sub-patch, we see that the incoming column/row data from the button presses are being converted into MIDI notes sent over channel 15.  Similarly, incoming MIDI notes from channel 15 are being converted into column/row numbers and then passed to the application.  However, because the ports selected by default are “MAXMSP2″ which doesn’t exist on a PC, this won’t work unless we update the ports.  Here, I’ve changed the output port to “a” and the input port to “b”.  These abbreviations can be set up under “Options -> MIDI options”
    4. Save the sub-patch and re-enable presentation mode

MIDI Configuration (Mac)

Note: This configuration is untested as I don’t have a Mac.  However, I’m fairly certain this will work and will update the post once I can confirm.

  1. Open the Ableton MIDI preferences and make sure that the “Track” option is enabled for the MAXMSP2 input and output ports
  2. Create a MIDI track in Ableton and set its “MIDI To” setting to the MAXMSP port.  Then make sure you set the output channel to 15.
  3. Open up the MLRv setup dialog and turn the “Remote control via MIDI” option on.

Testing the Setup

At this point, you should able to create a MIDI clip in Ableton that launches events in MLRv.  To test your setup:

  1. Drag an audio file into the first row of MLRv.
  2. Create a MIDI clip in Ableton that plays any notes between D#7 and C6 (these notes correspond to the first row in MLRv)
  3. Play the MIDI clip

You should notice that as the MIDI notes are triggered, so is the clip in MLRv.  The 16 notes between C6 and D#7 correspond to the 16 segments of the loop.  Also, because MLRv thinks that these MIDI notes are actual button presses on the monome, we can send MIDI notes that correspond to the top row of MLRv as well, triggering the group stop and pattern record buttons.  The note mappings are as follows:

  • Top Row Functions – G8 to E7
  • Row 1 – D#7 to C6
  • Row 2 – B5 to G#4
  • Row 3 – G4 to E3
  • Row 4 – D#3 to C2
  • Row 5 – B1 to G#0
  • Row 6 – G0 to E-1
  • Row 7 – D#-1 to C-2

Here’s a video showing what this looks like:

Adding the Monome

At this point, we have 1 direction of MIDI communication with Ableton sending fake button presses to MLRv.  To get the most out of our  setup, we’ll also capture real button presses on the monome and send them to Ableton so our jam sessions can be recorded and played back.

To do this on a PC:

  1. In Ableton’s MIDI preferences, enable the “Track” input of another virtual MIDI port
  2. Create a new MIDI track that is listening to channel 15 of that port
  3. In Max/MSP, enable the output of the port chosen in step 1.  Give this the abbreviation “a” as that is the abbreviation used by the modified MLRv patch I described earlier.

To do this on a Mac:

  1. In Ableton’s MIDI preferenes, enable the “Track” input for the “MAXMSP2″ MIDI port
  2. Create a new MIDI track that is listening to channel 15 of that port

Now run MLRv with your monome plugged in and when you press buttons on the monome, you should see that MIDI events are captured into the Ableton MIDI track. This allows you to record your button presses and play the recorded MIDI clip back into MLRv.  Here’s a video of what that looks like:

This post was necessarily a little dry, but in the next post I’ll show some more concrete examples of the interesting things you can do with this setup.

7 to “A treatise on MLRv & Workflow (Part 2)”

Trackbacks/Pingbacks

  1. [...] post 1 and post 2 of this series, I talked about why it’s worth trying MLRv as a production tool, as opposed to [...]

  1. martin says...

    Great!
    I’ve never recorded the midi from the monome in Live before. It’s so evident…
    Please continue posting!

    Thanx

  2. Noah says...

    Very inspiring.

  3. A treatise on MLRv & Workflow (Part 3) | Flooooooader Music says...

    [...] post 1 and post 2 of this series, I talked about why it’s worth trying MLRv as a production tool, as opposed to [...]

  4. Dexter says...

    nice tutorial~

    my ableton can send midi to mlrv but can’t record the midi from mlrv (mac & launchpad)~how can i fix it?

    thx~~

    • sebP says...

      I’m having the same problem but on Windows. I tried everything, I did the changes in the patch. I spent a lot of time on this. I can send data back to mlrv from Ableton(I also tried in Renoise and Bidule, through Rewire or not) but I can’t record button presses from Mlrv to Ableton through a virtual midi port. I assigned by using abbreviations or the port name. Nothing. I’m desperate. I want my workflow augmented by this wonderful process(!)… I’m desperate, I need a rope.. lol

  5. Nick says...

    You’re a life saver. I’ve been trying to set this up for a while and couldn’t figure out how to connect the two. One question. Under “Testing the setup” When you load your audio track and then arm a MIDI track in ableton are they the same track? Or does the audio track not matter? I can’t get the monome to trigger ableton, but i can use it as a MIDI controller, which makes me feel like i’m close. Perhaps i have a setting incorrect in the newer mlrv?

    Thanks!

  6. Nick says...

    Another question, it looks like the MIDI clip you have loaded is empty? Am i correct? I’m having a hard time triggering MLRV with the monome through abelton. I have OSX and have all settings the exact same. I can control abelton with the monome as a midi controller, but cannot get MLRV to communicate with the two.

Leave a Reply