HackYourDaw (Tidal+Ableton)

For some reason I am not able to record the midi notes sent by tidal. I've never used osc with ableton. Is there something i am missing?

In order to record midi notes, the procedure is a little more complex than it might seem, as the communication takes place via osc and only later messages are converted into midi. In general, recording midi loses most of the advantages of using this system, and at that point it would be the same as using SuperDirt midi.

Hi @Francesco_Corvi
Your devices are amazing. I'm using it in a piece with an VST pluggin (kontakt) running Ableton. I'm using your synth device. My question is: how can I deal with noteoff and velocity? Legato, cut or even sustain seems that doesn't works. I dream about to be able to play smoothy long notes.
Sorry if this question has been already answered (I didn't found it in this thread).
Thank you very much!!

1 Like

hey @nuntxaku
Sorry for late reply I somehow miss your comment.
Both of the things you said are doable and already implemented :slight_smile:
To control velocity just use #vel with values from 0 to 127 (default is 100)
To make longer notes you need to assign to #legato a value corresponding to the duration of the note in milliseconds.

So for example:

$ n "c'maj"
# s "synth"
# vel 127
# legato 3000

will play a chord with max velocity that last for 3 second
(ofc you have to consider how the synth you are controlling handles note on and note off)

I personally don't like the fact that legato works differently compared to SuperDirt and I am open to suggestion on how to make this more close to the original, or how to use a total different strategy


Thank you.

1 Like

Hey @Francesco_Corvi,

Thanks a bunch for these devices, they're working well here under windows.

I was experiencing what felt like a jittery clock, but lowering my ASIO buffer mostly fixed this.
I'm wondering if this is just how it's supposed to work or if it's a bug. FWIW communicating over a virtual midi cable doesn't seem to be affected by buffer size.

Attached is an example of the worst-case, 2048 buffer size:

edit: behaviour persists with or without using Carabiner for Link.

1 Like

Hi @Francesco_Corvi and all HackYourDaw users.

I installed the project, launched Tidal with new boot file.
In Live 11, created an instrument rack including TidalSynth2.0 device and a Live instrument.
Mapped macro 1 on the second knob of Live instrument.

But when using this test:

$ n "c4 e4 g4 e5"-- this will trigger a midi note
# s "synth" -- this will send to every device named synth
# macro1 (slow 16 "0 127") -- controlling the first macro of the instrument rack that contains the device

only midi notes are played in Live, macro1 knob doesn't work, same for pitch and others parameters.
I"m on Windows 10 and Live 11 Suite.
In the OSC monitor in Live, I can see OSC messages. Unfortunately I can see only the beginning of the message.

generally this gets fixed by deleting the device and hitting undo. Have you tried that?

@Francesco_Corvi Thanks for your response.
Deleting then undoing the synth device worked but when i change the values of macro1 in tidal, the macro knob get the old values.
For the drums device, I ear the sound the first time I evaluate tidal code then after it stops.
I observe also regularly huge picks of cpu usage with only these two devices and two instruments.
I'm using Windows 10 / Live 11 / Max 8.1.11 (64 bits)

I monitored OSC message with another application and i can see the whole message. Everything seems ok. Value of macro1 is updated when i change it in tidal. I tried to increase interpolation time but nothing.

I'm throwing my second bottle into the sea:
I try this time another M4L device find on maxforlive.com that catch OSC messages and can map params with knobs.
I run same code in tidal.
In the device a filter allows to catch OSC messages and displays they accordingly (see image below).
I use /dirt/play as path, and i can see messages changing every times. I select #9 param (corresponding to macro1) and updated value is well displayed in the interface. Now I map this filtered param with first instrument rack and filter cutoff knob is moving depending on param value.
So, adding now TidalSynth2.0 device on top of that, works as it should work. Tidal code is processed by TidalSynth2.0 device (notes, cps,.....) and macros by the second one.

Rem: In this case I have no need to group instrument rack with M4L device.

I hope a solution for Christmas Day :wink:

This def needs some more investigation. My guess is that since the messages scheduling happens inside a poly the precision could somehow be affected by the buffer size? We have to do some tests

Hi Francesco, thanks to reply. I have questions. The OSC message begins by /dirt/play_id_2 for the synth device.
Where come from the _id_2 ? and how this message formatted?

Now I can't test this. Which tidal version are you using? Possibly something has been changed in the osc path.

t> [TidalCycles version 1.7.8]
Installed in C:\Users\cyberik\AppData\Roaming\cabal\x86_64-windows-ghc-8.10.2\tidal-1.7.8
Listening for external controls on
Is there a thing to do on Live side?
/dirt/play is the signature of superdirt osc message. Is superdirt must be up? Sorry for all these questions but it's confuse for me.

Do you know if the Live Object Model changed in Live 11?

This has completely revolutionized the way I approach Tidal. Thanks so much!

1 Like

So this wouldn’t be a viable studio device for writing / recording music ? Only for live performance?

You can record the audio in Ableton Live, then if you really want to work with midi there is the built in audio to midi feature

Just wanted to send a shoutout to @Francesco_Corvi for this project! I just stumbled upon it and this seems so handy. Since I mainly use TidalCycles with VSTs and Ableton Instrument/Drum Racks these days, these tools are such a nice shortcut. Up until now, I've been doing a lot of MIDI CC mappings before playing. So this HackYourDAW seems like a really nice shortcut. Thanks!

1 Like

hi, do you have this device? their website is down... i'm having same problems with hackdaw... the lom is changed in live 11

Thanks for this @Francesco_Corvi . I'm currently trying to use this with Ableton 12. Triggering is working great, but Sends and Macros are not working. Any idea what this could be?

1 Like

Hello everyone. I am happy to see so many people using these devices over the years, and writing me to report bugs and request new features.

Since 2022 I have stopped using HackYourDAW and I have moved back fully to SuperCollider for a variety of reasons. Also, I feel quite happy with my Ableton Live 10 license and I have no reason to pay for updates. This means that is quite impractical and time consuming for me to test HackYourDaw for future versions of Live and keep it working smoothly. That being said, the software is open source and you are welcome to make pull requests. In general the problem with newer versions of Live is just the changes they made to the LOM, it should an easy fix if you have some time to spend on it. I encourage you all to share the improvements you do to the devices in the repo and to open issues on github instead of writing me personally. The patch should be quite clean so hopefully what I made makes sense and is a good starting point to create more advanced Tidal/Live and Tidal/MaxMSP integrations. Much love to all of you