Now for the purposes of this exercise I'm going to demonstrate in Ableton Live specifically how to build a control that can change a parameter on an external synth using SysEx. The example is very simple however all the fundamentals are there to expand the project into a full blown editor.
Going back a few steps we need to refresh our memories from the previous blog as to how we constructed a SysEx message to alter a parameter on our trusty Roland D-110.
We'll stick with this instrument for consistency however the same techniques can be used on ANY SysEx aware synth.
We are only focussing on Ableton because it's what I know, it's my DAW of choice. It also appeals to me because as of Version 9 it comes bundled with a very useful extension known as M4L or Max4Live which allows a great many Ableton features to be exposed. M4L is based on Max from Cycling 74 (http://cycling74.com/) which is a comprehensive programming specification in it's own right. As the name suggests M4L is a sub-set of Max specifically targeted to Ableton users. Out of the box M4L allows you to do a great many cool things, however for some strange reason that only Ableton can explain any M4L device running within Live that needs to use external MIDI ports needs to do so exclusively,
i.e. if Live is using a port, M4L cannot and visa-versa. There is also the issue of some sort of SysEx filtering that Live does, as to why I have absolutely no idea!! To get around these curious problems we need something that can open a MIDI port 'outside' of Live and the answer lies in these libraries from nativeKontrol that you can get from http://beatwise.proboards.com/thread/1394.
The fact that these libraries exist at all is nothing short of amazing and kudos go to the developer!! OK, so we need Ableton Live 9, M4L and the libraries above, installation instructions are provided from all the sources. Oh, and you will need the Java Runtime!!!
Live scoring of the famous surrealist film Un Chien Andalou
DJ Eric Cloutier plays with the System 700 + 808 combo
The first in a series of patch demos using the Abstract Data Octocontroller