Hi folks, I’m trying to make modular-synth helpers with the csound~ object in max, and have a question that I realized I don’t think i ever properly knew the answer to back when I csounded a decade ago… hopefully I can explain this ok.
Question, is it the case that:
On an “i” event, after the i-pass, the next thing that happens is always the next kpass, which is global. So that if a dispatching instrument numbered 0 set a k-channel (for a gate say) it is guaranteed that higher number instruments will have a chance to listen to this channel, in the order of their instrument numbers, and there is no chance of them “missing” a single k-pass cycle gate. And if the kpass is global, I think if I understand correctly, this also means audio generation of any instrument is actually quantized to the next kpass time, even if the i-event is triggered between kpasses? As in, audio event onset will be jittered off it’s “correct” time by a kpass of time, with the overall temporal accuracy correct in the long term but potentially up to ksps latent.
I believe this is what happens in Max if “audio in interrupt” is on: long term scheduling stays accurate, but short term scheduling is quantized to the size of the signal vector because the scheduler runs one queue consumption pass per signal vector.
I am hoping I can have a controller instrument triggered by i statements, and have it pulse a gate channel that another instrument is listening to, with that instrument drawing the envelope line, and being smart about “picking up where it left off” (like many analogue envelopes do), without the env instrument having to have too much reinit and tie sorting out in there.
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here