Hi Dan et al - I gave this a try:
git clone https://github.com/libpd/libpd.git [copies pd sources into libpd/pure-data] cd libpd make cd samples/c_samples/multi/ make ./multi_pdtest multi_test.pd `pwd` and got output: print: 0 1003-frequency: bang print: 0 1004-frequency: bang 1003-frequency: 1 1004-frequency: 2 1.000000 1.000000 0.999999 0.999999 0.999998 0.999998 0.999997 0.999997 1.000000 1.000000 0.999998 0.999998 0.999996 0.999996 0.999995 0.999995 print: 1 0.999944 0.999944 0.999943 0.999943 0.999942 0.999942 0.999941 0.999941 print: 1 0.999815 0.999815 0.999810 0.999810 0.999804 0.999804 0.999799 0.999799 print: 2 print: 2 This on Fedora 21, 64 bits, Intel hardware. I guess something subtle is happening, maybe in Pd and unrelated to libpd? cheers Miller On Tue, Apr 21, 2015 at 06:00:15PM -0400, Dan Wilcox wrote: > Howdy Miller, > > Following up from the dev list last year, I added your multi instance test to > the c samples included with libpd: > https://github.com/libpd/libpd/tree/master/samples/c_samples/multi > <https://github.com/libpd/libpd/tree/master/samples/c_samples/multi> > > The one thing I want to double check is the changes to z_libpd.c you > mentioned in http://lists.puredata.info/pipermail/pd-dev/2014-05/019832.html: > <http://lists.puredata.info/pipermail/pd-dev/2014-05/019832.html:> > > > Here's how I modified libpd_wrapper/z_libpd.c: > > > > 55d54 > > < sys_time = 0; > > 110c109 > > < sched_tick(sys_time + sys_time_per_dsp_tick); > > --- > > > > > sched_tick(); > > > > 130c129 > > < sched_tick(sys_time + sys_time_per_dsp_tick); \ > > --- > > > > > sched_tick(); \ > > > Currently, that line is > https://github.com/libpd/libpd/blob/master/libpd_wrapper/z_libpd.c#L171 > <https://github.com/libpd/libpd/blob/master/libpd_wrapper/z_libpd.c#L171> and > I’m getting a segfault if I replace it with sched_tick(); AND set gcc > optimization to -O3 > > Here’s a gdb backtrace: > > #0 0x0000000100091f2f in outlet_float (x=0x3f7ffc2a3f7ffc38, f=0.999937057) > at m_obj.c:388 > #1 0x00000001000ac572 in pdfloat_bang (x=0x10021ac20) at x_connective.c:89 > #2 0x0000000100093d58 in pd_bang (x=0x10021ac20) at m_pd.c:267 > #3 0x0000000100091ddd in outlet_bang (x=0x10021ae20) at m_obj.c:363 > #4 0x00000001000c45e4 in metro_tick (x=0x10021ada0) at x_time.c:162 > #5 0x0000000100095021 in sched_tick () at m_sched.c:418 > #6 0x00000001000c5d4d in libpd_process_float (ticks=1, > inBuffer=0x7fff5fbffa50, outBuffer=0x7fff5fbff750) at z_libpd.c:173 > #7 0x0000000100000d18 in main () > > If I don’t optimize, it works fine: > > print: 0 > 1003-frequency: bang > print: 0 > 1004-frequency: bang > 1003-frequency: 1 > 1004-frequency: 2 > 1.000000 1.000000 0.999999 0.999999 0.999998 0.999998 0.999997 0.999997 > 1.000000 1.000000 0.999998 0.999998 0.999996 0.999996 0.999995 0.999995 > print: 1 > 0.999944 0.999944 0.999943 0.999943 0.999942 0.999942 0.999941 0.999941 > print: 1 > 0.999815 0.999815 0.999810 0.999810 0.999804 0.999804 0.999799 0.999799 > print: 2 > print: 2 > > -------- > Dan Wilcox > @danomatika > danomatika.com <http://danomatika.com/> > robotcowboy.com <http://robotcowboy.com/> > > On Apr 21, 2015, at 10:56 AM, Kjetil Matheussen <[email protected]> > > wrote: > > > > But for libpd, are you sure you need to add anything? Can't just the user > > call the pdinstance_new and pd_setinstance functions directly? > > > > http://lists.puredata.info/pipermail/pd-dev/2014-05/019832.html > > <http://lists.puredata.info/pipermail/pd-dev/2014-05/019832.html> > > > > > > (BTW. When I wrote about libpds, I hadn't forgotten about the support for > > pd instances, > > but since I didn't have all details in my head then, I didn't mention it. I > > should have though.) > > > > > > On Tue, Apr 21, 2015 at 4:42 PM, Dan Wilcox <[email protected] > > <mailto:[email protected]>> wrote: > > This should be possible with the current version of libpd which includes > > Miller’s multiple instance updates, see > > http://lists.puredata.info/pipermail/pd-dev/2014-05/019839.html > > <http://lists.puredata.info/pipermail/pd-dev/2014-05/019839.html> > > > > I just haven’t gotten around to adding libpd-specific wrapper functions for > > this yet, but Miller provides code in that dev list exchange. > > > > -------- > > Dan Wilcox > > @danomatika > > danomatika.com <http://danomatika.com/> > > robotcowboy.com <http://robotcowboy.com/> > >> On Apr 21, 2015, at 6:00 AM, [email protected] > >> <mailto:[email protected]> wrote: > >> > >> From: Oliver Greschke <[email protected] <mailto:[email protected]>> > >> Subject: [PD-dev] Can somebody help to create a desktop / VST / AU version > >> of a PD / libPD / app ? > >> Date: April 21, 2015 at 3:15:44 AM EDT > >> To: [email protected] <mailto:[email protected]> > >> > >> > >> Hi, > >> I am the creator of the Elastic Drums iOS app (with great PD help from > >> Matt Davey). > >> It’s made with PureData, libPD and Objective-C. > >> I got asked a couple of times now, if there will be ever a standalone > >> desktop version or even better Plugin (VST, AU) version of the app. > >> > >> As far as I know, there are not ready to use workarounds to do so. Which > >> is sad, because I can imagine a lot of fantastic plugins emerging from PD > >> > >> Has somebody here some experience with doing such ports? > >> Then please contact me. > >> > >> Cheers, > >> Oliver > >> > >> [email protected] <mailto:[email protected]> > > > > _______________________________________________ > > Pd-dev mailing list > > [email protected] <mailto:[email protected]> > > http://lists.puredata.info/listinfo/pd-dev > > <http://lists.puredata.info/listinfo/pd-dev> > > > > > > _______________________________________________ > Pd-dev mailing list > [email protected] > http://lists.puredata.info/listinfo/pd-dev _______________________________________________ Pd-dev mailing list [email protected] http://lists.puredata.info/listinfo/pd-dev
