With the advent of small, portable, MIDI enabled analog synthesizers, computer musicians now have the option of controlling a lot more than VSTs. If you have a USB MIDI interface (or other means of getting MIDI from your computer to 5 Pin MIDI connections), you can leverage the sequencing power of Live to control all of the MIDI enabled parameters on your synth. In this article, we’ll look at how to create a MIDI device using M4L that allows us to access all of the parameters on the Meeblip Anode, as well as how to add modulation sources to allow for more sonic options.
I recently purchased the Anode during a sale I heard about, and immediately started thinking of ways to integrate it into my computer based, Live-centric workflow. Being handy with M4L, I decided to create a device that gives access to the knobs and switches on the Anode, and also exposes the MIDI only parameters. You can find the device HERE. This process can be applied to any MIDI device that you’d like to control. All you need is the MIDI implementation and some patience for laying out an interface.
Most synthesizers that have a MIDI implementation respond to MIDI note messages (a pitch and velocity pair) for producing notes, and MIDI CC messages (a CC number, and value pair) to control various parameters on the device. The CC#s vary greatly from manufacturer to manufacturer, but there are often some ‘standard’ mappings as well (Mod Wheel, Pitch Bend, Volume etc.). If you have the connections required to send MIDI from Live out to the real word, it’s a simple matter of sending out the proper CC’s from a MIDI channel in Live (In this case I am sending MIDI out to a QuNexus, but you would send it to whatever MIDI interface you are using). You could actually do this without a M4L device, just using a MIDI clip and Live’s clip automation, but that can be tedious, and doesn’t offer as many control possibilities. Among the advantages of creating a device are an enhanced user experience, much quicker workflow, and the ability to manipulate these parameters from any MIDI controller. Controllers like Push, and the APC40 make this really convenient and rewarding (although you could map any controller with knobs and sliders).
Once you have your device’s MIDI implementation handy, you can drag a default Max MIDI Effect from Live’s browser and start creating live.dial objects that send the appropriate CC out of Live. Set the range to 0-127 (the range of most MIDI data) and then send the output through a [prepend] object that attaches the desired CC number to the front of the value. For switch’s, Max provides you with some handy toggle buttons that can also display useful information in the form of the live.text object. I’ve used these to create controls for all of the On/Off parameters of the Anode.
One thing to keep in mind if you want this to function as any normal Live device would, is the naming, and annotating of your UI elements. This is a tedious part of creating a device with a lot of controls. Each knob needs to have a unique name, so that Live knows what to call it. There are three main name parameters for knobs and other UI elements. Scripting Name, Long Name, and Short Name. For the sake of simplicity, I try to keep all of them the same when I can. Without taking the time to name your automatable parameters, automation will be a mess. Once they are named, you should define the AutoMapping Index. This tells Live what order to automatically assign parameters to a control surface. You can group the parameters into meaningful categories, and any that don’t get assigned an index will be excluded from the automapping. Finally you should add an annotation to any UI elements. Annotations are snippets of text that appear in Live’s info view when hovered over. You can use this to provide useful information to the user. You can access all these properties from the inspector (cmd+i Mac, ctrl+i Windows), along with many other properties of the object (or attributes, as they are commonly referred to), like color, data ranges, and value types.
Along with exposing all the controls on the Anode to a Live set, I’ve also added quite a bit of Modulation options. Over to the right of the device you will find the Modulation section. You can expose the editing window by clicking the ‘MODULATION’ button. You get two LFOs and two Envelope Generators. These can be assigned to quite a few destinations using the ‘MOD SOURCE’ dropdown menu next to a parameter.
This device could easily be modified to be used with a wide variety of MIDI hardware, simply by changing the argument of the [prepend] objects, and renaming the UI elements. It’s quite a simple patch, and shows some ways of adding modulation, and some UI tricks with the buttons indicating LFO level, as well as dynamically showing or hiding UI elements. As always, direct any questions/comments/concerns to firstname.lastname@example.org.