It's all done via clock_new(), clock_delay(), clock_getlogicaltime(), clock_gettimesince(), clock_gettimesincewithunits() and clock_free() calls - examples in the delay and timer objects, in x_time.c.
When it's real time, stupider is better :)
cheers Miller
On Fri, Oct 23, 2020 at 04:58:09PM -0700, Iain Duncan wrote:
Oh sweeeet. Yeah so far it's looking like this will be pretty straightforward in comparison. :-)
Can anyone point me at docs or resources on that part of PD? Or do I just need to go to the code? I've read through the git repo on learning to write an external but didn't see much on how to interact with the scheduler. (the stuff that in max uses the clocks and time objects and so on)
Thanks for the feedback everyone! I'm excited to make it happen.
On Fri, Oct 23, 2020 at 4:44 PM Miller Puckette msp@ucsd.edu wrote:
Pd's a single thread - you'll have a much easier time adding stuff to Pd than to Max :)
Miller
On Fri, Oct 23, 2020 at 12:35:02PM -0700, Iain Duncan wrote:
Hi Andy, well I've ordered your book to learn PD, so I'm at least that committed! :-) My overarching goal is to make tools for composing, improvising, and sequencing, so at this point, I'm punting on signals. First I want to support everything in Rick Taubes's Notes From the Metalevel book, along with a bunch of my own ideas, for algorithmic and computer assisted composition/improvisation. But I am hoping to get
signals
into play eventually. Which makes this a good time for a question...
In Max, my understanding is that if Overdrive is on and Scheduler in Interrupt is selected, we actually get only two threads: low priority thread running who knows when, and high priority thread alternating
between
a pass of eating up the scheduler queue (up to the limit) and then a pass of the audio vector render. So given that I'm forcing all messages to run in the high priority thread (unless the user asks for danger-mode Any), I *think* I should have no problem calling into S7 and sharing data from
both
dsp perform routines and regular event scheduled messages. I have not, however, actually done this yet. Can anyone tell me what the situation in PD is there? Or point me at good docs/resources on how the threading and scheduling works in PD?
Thanks iain
On Fri, Oct 23, 2020 at 12:23 PM Andy Farnell <
padawan12@obiwannabe.co.uk>
wrote:
My last love affair with parentheses was in Racket. Although my only ever somewhat successful musical adventures in this style were with Roger Dannenberg's CLM/Nyquist
Lets see what happens if Iain brings S7 over.
Iain, how are you thinking of handling signals (or not)?
andy
On Fri, Oct 23, 2020 at 11:31:48AM +0200, Kjetil Matheussen wrote:
On Thu, Oct 22, 2020 at 10:26 AM Andy Farnell padawan12@obiwannabe.co.uk wrote:
Would love to see Scheme come to Pd.
There's also k_guile from 2004, that still compiles:
https://urldefense.com/v3/__https://github.com/kmatheussen/k_guile__;!!Mih3w...
Don't know if it still works though.
Guess there are other alternatives as well, but they all probably suffer a bit from gc non-rt performance. To fix this I later extended the code from k_guile to run in a separate thread to avoid cpu
spikes,
but this code was only added to the snd sound editor (when snd was compiled as a pd external), and that code was probably removed from snd when switching from guile to s7.
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management ->
https://urldefense.com/v3/__https://lists.puredata.info/listinfo/pd-list__;!...
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management ->
https://urldefense.com/v3/__https://lists.puredata.info/listinfo/pd-list__;!...