Thanks Christof, will hack further on this today! iain
On Sun, Jun 6, 2021 at 7:00 PM Christof Ressi <[email protected]> wrote: > getbytes() + freebytes() > > Christof > On 07.06.2021 03:56, Iain Duncan wrote: > > Ah, ok. I also just realized (necessity being the mother of and all that) > that I can probably be storing these on the scheme side too, as the actual > function object is stored there anyway in a hash-table. > > Related: in Max they recommend using sysmem_newptr instead of malloc, is > there a recommended cross-platform Pd replacement for malloc I should be > using? > > thanks! > iain > > On Sun, Jun 6, 2021 at 6:52 PM Miller Puckette <[email protected]> wrote: > >> Well, Pd's own scheduler for clocks keeps them in a linked list and chases >> down it to set and unset them. So if you did anything smart for the >> scheme callbacks Pd would see to it that it's still linear time in the >> number of active callbacks. >> >> cheers >> M >> >> On Sun, Jun 06, 2021 at 06:22:41PM -0700, Iain Duncan wrote: >> > Thanks Miller. That brings up one more question.. ;-) >> > >> > In Scheme for Max, the way I do it is I keep a hash-table in C going >> > with keys that are created on Scheme delay calls, so that one can cancel >> > clocks by fetching them from the hashtable. In Max, there's a >> > cross-platform hash-table implementation that I'm using. Is there >> something >> > similar for Pd, or if not, is there an approach you would recommend for >> > keeping a key-value store in C for the clocks by a symbolic key? I >> guess a >> > good question might be if this is even necessary, given there can't be >> > *that* many clocks scheduled for the future. And association list type >> > thing might do just as well. >> > >> > thanks for the help, it's going well, now that I can finally work on it! >> > ought to have a first alpha folks can play with in the next couple of >> weeks. >> > iain >> > >> > >> > >> > On Sun, Jun 6, 2021 at 5:36 PM Miller Puckette <[email protected]> wrote: >> > >> > > clock() is the only mechanism - for repeats, the easiest thing is >> often >> > > to just re-use a clock() and re-set it each time it goes off (as in >> > > the metro obejct). You can indeed create clock obejcts on the fly - >> > > that's what pipe does. But you'll want to keep track of them so you >> can >> > > cancel them if the owning object goes away. >> > > >> > > cheers >> > > M >> > > >> > > On Sun, Jun 06, 2021 at 05:16:09PM -0700, Iain Duncan wrote: >> > > > Ah fantastic, thanks. I was looking in pipe and not seeing it, but >> was >> > > > probably just lost in other new details and not seeing the forest >> for the >> > > > trees. :-) >> > > > >> > > > Couple of follow ups: >> > > > - is there a separate facility for making a repeated callback (ie >> not >> > > > one-shot), or does one just do both with clock? >> > > > - is it safe to make clocks as we need them (ie during a method >> call, not >> > > > necessarily at object instantiation time), or is this the kind of >> thing >> > > > where for real time use one needs to make a clock pool and a pool >> manager >> > > > and all that? >> > > > >> > > > thanks! >> > > > iain >> > > > >> > > > On Sun, Jun 6, 2021 at 5:12 PM Miller Puckette <[email protected]> >> wrote: >> > > > >> > > > > Yep, clock_delay() . Simples example is in Pd's "delay" object, >> > > x_time.c >> > > > > >> > > > > cheers >> > > > > Miller >> > > > > >> > > > > On Sun, Jun 06, 2021 at 04:21:46PM -0700, Iain Duncan wrote: >> > > > > > Hi folks, I'm hoping someone can point me in the right direction >> > > here. >> > > > > I'm >> > > > > > porting Scheme for Max to pure data and I'm stuck figuring out >> how >> > > to get >> > > > > > delayed functions going. In Max, the SDK has a facility to make >> > > register >> > > > > a >> > > > > > callback to executed at some point in the future, a few >> different >> > > ways. >> > > > > Is >> > > > > > there a Pd equivalent, and if so, could anyone point me at >> resources >> > > or >> > > > > > code for it? I basically just need to be able to have a >> callback >> > > fire >> > > > > off >> > > > > > at the right time with one argument, which can be void pointer >> to the >> > > > > rest >> > > > > > of the stuff i want to get. >> > > > > > >> > > > > > thanks! >> > > > > > iain >> > > > > >> > > > > > _______________________________________________ >> > > > > > Pd-dev mailing list >> > > > > > [email protected] >> > > > > > >> > > > > >> > > >> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.puredata.info_listinfo_pd-2Ddev&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=uekrR-wLMB9CDNku0beRkRmoSJoExinRbBSlb0UQknQ&s=98jkGlO1FFE0Ea5fhSopCbZt6bmZH580Y0IUfgX4Rwk&e= >> > > > > >> > > > > >> > > > > -- >> > > > > >> > > >> > > -- >> > > >> >> -- >> > > _______________________________________________ > Pd-dev mailing > [email protected]https://lists.puredata.info/listinfo/pd-dev > > _______________________________________________ > Pd-dev mailing list > [email protected] > https://lists.puredata.info/listinfo/pd-dev >
_______________________________________________ Pd-dev mailing list [email protected] https://lists.puredata.info/listinfo/pd-dev
