[PD-dev] Creating delayed functions in Pd external?

Christof Ressi info at christofressi.com
Mon Jun 7 03:59:45 CEST 2021


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 <msp at ucsd.edu 
> <mailto:msp at ucsd.edu>> 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 <msp at ucsd.edu
>     <mailto:msp at ucsd.edu>> 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 <msp at ucsd.edu
>     <mailto:msp at ucsd.edu>> 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
>     > > > > > Pd-dev at lists.iem.at <mailto:Pd-dev at lists.iem.at>
>     > > > > >
>     > > > >
>     > >
>     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
> Pd-dev at lists.iem.at
> https://lists.puredata.info/listinfo/pd-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20210607/4151aede/attachment-0001.htm>


More information about the Pd-dev mailing list