Using Tidal with Ableton Live

Nice sounds. Any tips on controlling Ableton from Tidal?


@tamlyn it's actually there maybe too many tips to share... but I shoud say why I use Ableton Live with Tidal.

I love dub music but long echo is not working well on Tidal due to using many memory (maybe only for me). Since, I started to use VST plugins on Tidal but it was troublesome to "store" effector's values on SuperCollider even if I created the code to store the values (because each VST plugin has different parameters.. and each "song" needs different suitable values..).

Ableton Live is good at using VST plugins (they surprisingly store the all values automatically by clicking "save"!). So, I am just using Ableton Live as a digital "mixer". I am using OSC to communicate Ableton Live (ofcouse via Max for Live (I am also a Max Lover... )).

A long journey for getting good dub echos on Tidal. I am willing to help (if possible..) when someone have trouble with Ableton in this group.

I am using OSC to communicate Ableton Live (ofcouse via Max for Live (I am also a Max Lover... )).

I'd love to read more about this :slight_smile:

FWIW, I've been using the Tidal x Live combo from the begining (Tidal to sequence, Live to host softsynths/FX and to record), I'd just recommend to keep things organised and simple, and to explore Carabiner for syncronisation between both apps : GitHub - Deep-Symmetry/carabiner: A loose connector for interacting with Ableton Link

Besides, I've spent quite some time working on a relevant Live template, pre-routed, and editing my BootTidal.hs file with utilitarian yet super useful functions like :

  syn n = s "midi" # midichan n

Switching endlessly between to apps + plugins, you'll want to be able to understand what's going on in your session in a second, and to reduce friction between your idea and its execution.


In the past months I have been working on a few Max4Live devices to control stuff in Live from tidal using Osc without any supercollider involved. Gonna share the device soon, in the mean time this video should give an idea of the final result


@nilhartman I've heard of your stuff on Soundcloud before. I was very impressed, especially usage of compressor and resonance!

@Francesco_Corvi oh,.. I communicate with Ableton from SuperCollider to Max for Live device. I was cleaning up my code because it's only used for me.
I am very intereted in how you communicate with Ableton without SuperCollider code because maybe your stuff is more efficient than mine :sweat_smile:


one question for you @nilhartman : I experimented a bit with Tidal + Ableton Live and every time I seem to have massive problems when I want to send #ccn and #ccv, in that I am unable to correctly map between what I send from Tidal and what I am mapping in Live (mostly, Arturia instruments).
Have you experienced anything similar?

PS: interestingly enough, I do not get such problems when using VSTPlugin, it takes a little code to do that though.

1 Like

@mattia.paterna If you have a more specific exemple, I'll happily help. I rely a lot on Live Rack's macros.

2 exemples taken from my tidal files :slight_smile:

  pat = "1(3,8,<0 2>"
  mod p = ccv p # ccn 1 # syn 1
  lfo = struct (pat1) $ (range 0 127 $ rand) # syn 1

which allows me to do stuff like :

d1 $
  stack [
    struct pat $ n "0",
    mod "1 0 1*3",
  ] # syn 1

(untested, but it should work as is)

@Francesco_Corvi that looks absolutely fantastic ! If you need testers :wink:


@Francesco_Corvi @nilhartman

Ah, I see. Sending ccn, ccv and receive it by Ableton Live Rack macros (or probably, it can be Max4Live devices also). I made code to create OSC message on SuperCollider and receive the message by my Max4Live device. Certainly using ccn, ccv sounds more convenient and easy to make versatile device because it just send/ recevie number. I also try to explore using ccn, ccv. Thanks for your sharing!

1 Like

In my approach Tidal sends osc messages directly to the device, then I am using LOM to control specific parameters inside Live. With the same approach I also build a series of devices where the sound synthesis happens directly inside the device.

@nilhartman ok thanks, I will get back to you soon!


well I create some virtual midi-ports (windows here) with LoopMidi. Then set up some some init file to add the midi devices to the supercollider server. Simple VST synth usage + some mappings

Thanks for your reply!

I'll try to describe what I have been experiencing as I am having mixed experiences.

I just realised that when I do MIDI mapping with Arturia instruments, I shall do it incrementally ie. I have to set one ccn at a time. Moreover, Arturia has a really handy MIDI learn section in each instrument that helps a lot.
This seems to work and I can then save the mapping configuration so I can reuse it in the future. Here is a screenshot of the configuration in the VSTi:

and this is the resulting code:

    let flutter = "1"
        tapeSaturation = "2"
        noiseFloor = "3"
    d1 $ stack [
         note "{ c'min g4'min'i f4'maj }%4"
         , ccv (segment 2 $ range 0 50 $ rand) # ccn flutter
         , ccv "0 10 40 50" # ccn tapeSaturation
         , ccv "0 100@0.5 50" # ccn noiseFloor
        ] # s "midi" # midichan "0" # legato 0.7

So far so good, the problem comes when I try to do this with e.g. Wavetable and generally all Ableton instruments and effects.
I press the MIDI button to edit the MIDI map, but nothing changes even when I send control change messages. The same applies if I try to automate parameters from audio effects.
Can you do it this way, or you have to use a different approach?

1 Like

@mattia.paterna i also have lots of trouble mapping my ccv/ccn to tidal from ableton and pretty much gave up on trying to code it. i just twist the knobs like a normal person :slight_smile:

In Live, cmd/ctrl M then click on the param you want to map, then evaluate a ccv/ccn command. hush then repeat with a new ccn. Just like you'd do regular MIDI mapping with Live really.


I do exactly as you say, and it does not happen to register the control change!
I am wondering whether my version is jinxed? :no_mouth:

PS: checked with hardware, works as expected :confounded:

I frankly believe that setting custom OSC messages might be better, easier and more powerful but I am in a bit of time constraint as I am trying to prepare for a gig this Friday and I really do not have time to explore a different strand.

1 Like

Have you checked if "Remote" is enabled (Live / Preferences / MIDI) for your virtual MIDI bus ?

1 Like

ops :no_mouth:
I owe you one.

1 Like

@kit-christopher what I am still asking myself is whether the amount of boilerplate code and the tedious process of mapping one parameter at a time is more worthy than doing it in an automation line in a DAW.
I guess it comes down to a different way of approaching music production and how much you are interested in editing this in an online fashion.

@nilhartman rejoice! this worked! holy crap, so wonderful! i did not have remote enabled and i did not know the trick to evaluate ccn / ccv in midimap mode!

now, time to get busy :slight_smile:

1 Like

This is the right approach as OSC has way higher resolution than midi. Please keep us updated!