Carmine is Ableton user remote script for Ableton Live. It allows you to recall Instrument racks by triggering clips in session view, designed to provide streamlined workflow during both preparation and performance of live sets.
Did you ever wonder how to recall instruments per clip? Sure, there are a couple of ways to do that at the moment.
- Not much VSTs support
- program changes are not propagating through device chain,
- complete lack of support in all Ableton devices
- but you cannot be bothered to write scripts
- need to save changes to devices anytime you make some changes
- I used to do that, but Snapshot managing became a nightmare
That's why I decided to poke around Ableton Live's API and came up with this solution. Initial attempt to use one device per track and just save/restore settings was soon replaced when I discovered that you can load whole Intrument racks, including internal sends/returns & macros (which was essential due to fact that I use Push2 as the main controller).
Now Carmine tries to address these issues by following this rule:
So it's easy as this:
- Tweak/design your sound with devices way you want
- Pack all devices and vsts to Instrument rack and save it to
presets
folder in your current project - Rename clip to match name of that Instrument Rack
- Recall this Instrument rack later by triggering it.
Easy, right?
You need to change preset settings ? Save it again and overwrite old one. No need to navigate in window of our VST host or menu dive into Intrument rack chains. All your settings are persistantly saved within your project folder. No external settings or extra files.
Please refer to this official article on Ableton's website. Clear and straight forward instructions, pretty much copy paste one folder to different folder. You can confirm that Carmine is working by making a new liveset, there should be yellow message popping at the bottom like
Control surface 2 -> CARMINE
To load a Script, there has to be a folder called presets
made in your current project. Make sure there's one, as this is a place where Carmine will pull presets from.
Once Carmine is active it changes behaviour of clips in couple of certain ways:
- If clips has a name, it will automatically try to load Instrument rack (or any *.adv file so to speak) onto channel once clip starts playing.
- This means that it will replace just Instrument, not any effects that are already stacked after current Instrument or Instrument rack. That way, you can keep all your filters/effects that you might use after Intrument as they are and only replace instrument.
- If Carmine cannot find preset in your
presets
folder, it will change color of this clip to red to mark that it's unable to perform loading action. - If clip has no name at all, Carmine will disregard this clip.
- You can store clips store clips in folders, up to 5 levels deep, to better organize presets. Please keep in mind that in order for loading to work properly, presets should have unique names (eg.if presets have same name, Carmine will load first preset it will encounter during search)
- Fork, send PR to your hearts desire. I'm not fluid in Python, so this is pretty much hacked version of liveOSC (specificaly this version.
- Repo contains convinient websocket.html file, which might be used to debug script, as it communicate with outside world using websockets (on port 8000). Unfortunately, if things go south, you still have to go to Log.txt, hidden one Ableton folder, hidden in depths of your hard drive. One day, I will be able to somehow redirrect this to websockets as well. Hopefully.
- check out how to handle automation on the clips.
- check all the clips upon project loads and mark all missing presets.
- scene launching is broken, I need to find out how to schedule loading all instruments one by one.
- when retriggering already loaded clip, there should be option to change behavour to recall all original parameters, instead of just relaunching the clip. Think: using macros to mess up the sound with distortion, prolong release/reverb/delay into wall of noise and change it into original staccato mode with one push.
-
Ableton for making Live and all those endless hours of fun I had over the years.
-
Luciano for making this, and making my life much easier.
-
This project for pushing me towards right direction while poking around Live API (I actually borrowed some of the code as well).
-
Isotonik's ClyphX Pro for showing me what is possible in Live with user script.
- Websockets library is slightly modified version of this library made by Dave