End-of-event OSC messages

Hi, I would like to send an OSC message at the end of each Tidal event, conceptually the equivalent of lifting your finger off the key, or sending a MIDI note off message. My start-of-event message setup is successful and is driving hardware synths via an OSC โ‡„ MIDI gateway for great delight and benefit. I believe on the MIDI side sustain achieves what I have in mind this. Is there an equivalent for OSC?

Why route via an OSC โ‡„ MIDi gateway? Good question, since Tidal has good MIDI support. I'm running TidalCycles on monome norns, a little GNU/Linux based sound computer whose software stack reserves all MIDI ports but listens to OSC. The Tidal side is complemented by a Lua program which parses OSC and sends MIDI note on, note off and cc to hardware via the norns stack.


Edit: maybe sometimes an OSC message with amp 0 follows the note, sometimes precedes it... in any case not all notes get stuck, some do.

re: โ€œsometimes .. follows the note, sometimes precedes itโ€ - Do you mean in terms of OSC timestamps or something else?

Good clarifying question actually, thanks. The log in the latter photo prints all norns receives, with following pattern:

MIDI device name (channel) :musical_keyboard: note number :loud_sound: velocity

The Tidal Cycle pattern was a simple note "33 44 55", and I observe that the velocity, the final field, is sometimes 127 (a note on) and sometimes 0 (effectively a note off, I figure). From the above we observe

Elektron Digitone (2) ๐ŸŽน 44 ๐Ÿ”Š 127
Elektron Digitone (2) ๐ŸŽน 44 ๐Ÿ”Š 0

But also

Elektron Digitone (2) ๐ŸŽน 44 ๐Ÿ”Š 0
Elektron Digitone (2) ๐ŸŽน 44 ๐Ÿ”Š 127

Which would understandably lead to a stuck note which I'm experiencing. Your question is good, because if this is a timing issue, I honestly no idea where it might be happening. I tried slowing Tidal down with slow 10and messing with sustain, but didn't make sense of it.

This still looks like absent/errant OSC timestamp handling (and/or issues with state management stitching related messages back together) on the receiving end. I mention this because it is unlikely that Tidal is shipping bad timestamps, otherwise everyoneโ€™s setups would be exploding all over the place.

A good next step would be to start including the OSC timestamp information in that output.

1 Like

Good idea, I'll try to figure out how to extract it from the norns OSC API.

Would anyone be able to confirm my hunch that Tidal sends an # amp 0 message at the end of an event. If yes, then this should be a matter of keeping track of them.

No tidal doesn't send messages at the end of an event.

1 Like

Got it, thanks. I'll work around, doing AR envelopes for starters, next sending some default note lengths with optional sustain, aligning with Tidal synths

My current contraption takes straight upnotes absolute MIDI notes and plays what it gets. I will want to also be able to do the relative ns with scales and all that but that's another thing for me to figure out.

Cheers happy raving!

(Though Iโ€™ve admittedly not dug into it deeply myself, only a targeted look here or there) it might be good to spend some time looking at the midi-related code in SuperDirt, as it is already doing the kind of OSC handling, state management, etc. that youโ€™re likely needing.

1 Like