Here you can see how I've mapped and automated the cutoff and resonance for my X-Station:
Important to note is that, because the macros aren't actually mapped to anything, they don't appear in the macro mapping window:
Don't let this throw you off: the macros are indeed receiving and transmitting MIDI, they simply aren't controlling anything within Live. Try adjusting a macro knob in Live: you should see/hear the change reflected on the synth.
But what if your synth receives CC data but doesn't transmit it? In this case you'd need some sort of intermediary hardware or software sitting between Live and the synth. Essentially, something that can send control changes to Live and allow MIDI messages sent from Live to pass through to the synth. I'm not going to explore this as part of this post as it's quite the complex solution, but technically speaking it's feasible with the right hardware or software.
Max for Live
The other, more elegant, solution is to create a custom UI for your synth in Max for Live--essentially rigging up virtual knobs and faders and mapping them to CCs. This is not for the faint of heart, however, as Max does has a fairly steep learning curve.
At a high level here's what the process looks like:
add an appropriate control for each parameter you'd like to automate (knob, fader, button etc.)
use the ctlout object to wire up CC control changes. Alternatively you can use pack alongside midi midiformat and midiout. The benefit of using pack is that you can "bang" it to force it to send its value--useful for a crude form of "total recall"
it greatly helps to use the "Presentation" layout to separate your wiring from your presentation
if you are controlling many parameters I would suggest embedding the low-level MIDI wiring into a sub-patch
Here you can see the two approaches side by side, controlling CCs 74 and 75 respectively. You can also see a send object that remotely bangs the pack.
Some synths, such as my Roland JX-10, only support SysEx for remote control. Unfortunately this is a shortcoming of Live: no SysEx support.
Luckily there is a tool called Bome's MIDI translator (Mac and PC) that can convert CC data to SysEx. The free version requires a 1:1 mapping (1 CC to 1 SysEx message) which can be quite cumbersome, but the paid version allows you to create expressions (say, CC X maps to SysEx X)
I won't go into detail on the specifics of how this is done, but suffice to say it is indeed doable. Here you can see the work of a frugal and obsessive individual:
(contact me if you'd like to chat about my Max for Live/Bome's JX-10 editor--I don't feel it's quite ready to share with the world but I would be happy to review privately)
Thank you so much for this article. It's exactly what I've been looking for. I've had a completely unhealthy obsession with integrating my Virus C synth with Live 9. Up until now, I've only been successful at clip envelopes, but thanks to your article, I've now learned how to address automation using the midi-mapped instrument rack. That is amazing! I have a question though. It basically boils down to this... Instead of mapping just 8 parameters with the instrument rack, is it possible to map all/most of the synth's parameters onto an instrument rack? I've done this with some of my vsts (Synth1) using the 'configure' option in Live and am hoping there is some way to do it similarly with an external instrument. Why, you might ask? Well, when designing sounds, my process has been to improvise on a loop--tweaking things on the fly. I'd like to record the midi information as I tweak so that I can go back through the track and edit out the best parts, save any great presets, etc. Thanks again. Any help is greatly appreciated.
12-Jan-14 11:01 PM
Also, I'm not sure if it'll help or not but there are a couple additional things that might help facilitate this process. I'm not really sure though? There is an editor here: http://echolevel.co.uk/virusctrlr/ and there are also a couple max for live devices people have built: http://www.maxforlive.com/library/device/1614/virus-c-sysex-contoller-osc Thanks again! Much appreciated!
12-Jan-14 11:15 PM
I think I figured out how to do it using a maxforlive template and the external instrument. Thanks for giving me the spark!
14-Jan-14 12:22 AM