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

Reply via email to