tightly trigger events with a phasor~ in RNBO

Johann's icon

Hi,
I am trying to build a step sequencer to trigger MIDI events in RNBO. But I'm having trouble generating tight midi messages when using a locked [phasor~] as a clock-source. It's no problem to trigger tight MIDI notes with a locked [metro]. It's also no problem to generate tightly synchronized audio signals with a locked [phasor~]. But I can't make it work using a locked [phasor~] to trigger MIDI notes. It seems to me that when moving from "signal world" into "data world" some accuracy is lost in the conversion.

I guess that the objects [edge~] and [subdiv~] (using the third outlet) themselves have somekind of internal framerate based on what they scan the incomming audio and generate messages. I mean in the case of [subdiv~], it makes somewhat sense, since it's 3rd outled puts out messages continuously, even if the value of the incomming signal doesn't change (though that's not so intuitive for me, but OK). But I can't get my head around, why the [edge~] object should behave in such a way. In fact I came accross the idea of using an [edge~] in one of the great tutorials of Philip Meyer (see link below, starting at TC 10:30). But he uses Max in that case, not RNBO. So maybe that's the issue...

I made this patch to compare all kinds of methods I could think of to trigger MIDI notes synced to the transport.

Max Patch
Copy patch and select New From Clipboard in Max.

Roman Thilenius's icon

there is a post somewhere here from the first week of rnbo where somebody said that you can not always make a 1:1 copy of your MSP patches because rnbo-phasor uses fixed point math.

Johann's icon

I think the problem is not the [phasor~]. Because when I record its signal as audio, it is sample-accuratly tight. So the error must be introduced later in the chain.

Wil's icon

I don't have a midi keyboard, so these days I'm using pure signal - midi is just an unnecessary in between thingy if no midi keyboard.

There are many ways to create sequences and pitches and rhythms using only signal.

rather than getting out of sync like data, signal just starts popping a and cracking when the load gets too heavy

edit- actually I never need transport cause I only ever use one phasor

Max Patch
Copy patch and select New From Clipboard in Max.
Johann's icon

Well, I wouldn't say one is better than the other (MIDI vs. signal). Just different usecases call for different methods. I agree, that there are great ways to created sequences using signals. In fact, that's exactly what I want to do. Only I want to create a Plugin with RNBO, that can send out MIDI events (based on those signal-based sequences). So MIDI is no in between thing here, its more "end of chain" :)

Johann's icon

I talked to the support on this and turns out, this behaviour is caused by how events are scheduled in RNBO (as far as I understood). Here's the documentation on that topic, that should explain everything better than I could :)

https://rnbo.cycling74.com/learn/sample-accurate-patching