[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