You can (ab)use Pd's own symbol table by storing the clocks in a "fake" Pd object and bind it to a symbol. But I wouldn't really recommend this...

Alternatively, you can use one of the existing hash table implementations in C, e. g. the hash table from the "stb" library: https://github.com/nothings/stb/blob/master/stb_ds.h.

Or use C++ :-)

Christof

On 07.06.2021 03:22, 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] <mailto:[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]
    <mailto:[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] <mailto:[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=
    
<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 list
[email protected]
https://lists.puredata.info/listinfo/pd-dev
_______________________________________________
Pd-dev mailing list
[email protected]
https://lists.puredata.info/listinfo/pd-dev

Reply via email to