Hey Katya, Looks like you and me are off the hook for causing this bug ;) I used svn-bisect to find the commit that introduced this issue: http://pure-data.svn.sourceforge.net/viewvc/pure-data?view=revision&revision=15871
So I I emailed the author of that patch to see if he's got any insight. Here's Zach's bug report: https://sourceforge.net/tracker/index.php?func=detail&aid=3599983&group_id=55736&atid=478070 Here's my little build/test script for use with svn-bisect: svn revert -R . ; make clean; sed -i 's|^#define \(MAX_LS_[A-Z]*\) [0-9]*|#define \1 200|' vbap.h && make && pd -noprefs -open vbap64-test.pd .hc On 01/08/2013 09:19 PM, katja wrote: > Hello, > > This issue seems somehow related to changing 'float' into Pd's type > 't_float' about a year ago. I checked a few builds to find out where > the issue started. Most changes were made 2011-11-16 (by me). The > 2011-11-25 build does not show the issue yet. > > Apparently I had overlooked a few instances of 'float', and Hans did > more changes on 2012-01-12. Most of these are in lines which are > commented out anyway, there is only one change that has effect, and it > is in line 230 of define_loudspeakers.c. Leaving commented-out lines > away, it reads: > > t_float azi = 0; > if(av[pointer].a_type == A_FLOAT) azi = av[pointer].a_w.w_float; > else { error("define-loudspeakers: direction angle #%d NaN",i+1); > x->x_ls_read = 0; return; } > > In the 20120216 build, the message 'param xxxx is not a float' pops > up. However, Pd does not crash (also not when closing the patch). So, > there may be an extra issue, introduced later. I can't imagine how > 't_float' could be a problem here, as it is perfectly equivalent to > 'float', if m_pd.h is included. Without m_pd.h it should not compile, > but m_pd.h is included via other headers. > > Also on 2012-01-12, a variable 'epsilon' of type t_float was > introduced in the same file, but this seems less related to the issue. > > Katja > > > > On Wed, Jan 9, 2013 at 1:02 AM, Hans-Christoph Steiner <h...@at.or.at> wrote: >> >> Ah, that's an important tidbit of info! If that's not in the bug report, >> please include which version is working. >> >> .hc >> >> On 01/08/2013 06:53 PM, Zack Settel wrote: >>> Hi HC- Yeah, I kind of gave up at a certain point, figuring that I was >>> poorly equipped to get to the bottom of that one quickly. I posted a >>> ticket. For now, I suppose I'll grab an earlier version that seems to >>> work, and switch back, once the bug gets sorted out. >>> >>> cheers, >>> >>> Zack >>> >>> >>> >>> >>> >>> On 2013-01-07, at 12:28 PM, Hans-Christoph Steiner wrote: >>> >>>> >>>> Hey Zach, >>>> >>>> Looks like you've gone deep into it :) Sounds like those MAX macros are >>>> set >>>> because the code can't currently handle longer lists. I won't have time to >>>> look at this for a while. Could you post a bug report to the bug tracker >>>> (Help menu --> report bug) with the info in this email? Also it might be >>>> worth your while to see if anyone has tried this when using this object in >>>> Max/MSP. Its the same code. >>>> >>>> .hc >>>> >>>> On 01/07/2013 09:45 AM, Zack Settel wrote: >>>>> Hi Hans-Christoph, >>>>> >>>>> Thanks for your previous reply before the holidays. >>>>> >>>>> Just to refresh the subject: >>>>> >>>>> using Pd-0.42.5-extended.app, Pd-0.43-3.app, and >>>>> Pd-0.43.4-extended-20121101 >>>>> on OSX 10.6x and 10.7x, >>>>> >>>>> vbap 1.0.3.2 crashes when sent longer "define_loudspeakers" messages >>>>> >>>>> >>>>> the PD console displays: vbap: Loudspeaker setup configured! pd: >>>>> getbytes() failed -- out of memory vbap: Configure loudspeakers first! >>>>> and the program crashes. >>>>> >>>>> >>>>> (It appears to be failing in the "vbap_matrix" method. But, perhaps, the >>>>> data sent to that message is already bad). >>>>> >>>>> >>>>> >>>>> >>>>> Following your suggestion, >>>>> >>>>> I tried doubling both MAX_LS_AMOUNT as well as MAX_LS_SETS. Now the >>>>> program does not crash, vbap fails each time: when sent the >>>>> define_loudspeakers, the PD console displays: >>>>> >>>>> >>>>> "vbap loudspeaker-matrices: param 475 is not a float." (from >>>>> vbap_matrix method) >>>>> >>>>> >>>>> Things I have noticed: >>>>> >>>>> --The above param number in the error message will be different each time >>>>> pd is relaunched and a new attempt is made. >>>>> --increasing MAX_LS_AMOUNT and MAX_LS_SETS 10 times introduces >>>>> intermittency: Some times the same error message above will be >>>>> displayed, sometimes it the define_loudspeakers message will succeed, >>>>> and VBAP will function correctly. >>>>> -- occasionally, a different error message in the pd console will result: >>>>> "Dimension can be only 2 or 3" (from vbap_matrix method) >>>>> >>>>> --And of course, the problem does not manifest when smaller >>>>> configurations are used (i.e. shorter define_loudspeakers messages). >>>>> >>>>> >>>>> >>>>> I wrestled with the problem for a long time without getting any further. >>>>> Maybe you, or someone out there, will have some greater insight into this >>>>> problem. Any assistance or additional suggestions would be greatly >>>>> appreciated, since the problem above comes with the latest pd-extended. >>>>> >>>>> >>>>> Below is the the vbap message that provokes the problem: >>>>> >>>>> >>>>> define_loudspeakers 3 0 90 -7.5 55 52.5 55 112.5 55 172.5 >>>>> 55 -127.5 55 -67.5 55 7.5 20 37.5 20 67.5 20 97.5 20 127.5 20 157.5 >>>>> 20 -172.5 20 -142.5 20 -112.5 20 -82.5 20 -52.5 20 -22.5 20 7.5 -15 >>>>> 37.5 -15 67.5 -15 97.5 -15 127.5 -15 157.5 -15 -172.5 -15 -142.5 -15 >>>>> -112.5 -15 -82.5 -15 -52.5 -15 -22.5 -15 >>>>> >>>>> >>>>> thanks >>>>> >>>>> Zack >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Dec 22, 2012, at 0:55, Hans-Christoph Steiner wrote: >>>>> >>>>>> >>>>>> Sounds like you are the first to try it with that many speakers! My >>>>>> guess is that something that allocates memory is hard-coded to a pretty >>>>>> short number. I've used it a lot for 6 speakers and had no crashes. >>>>>> >>>>>> Try changing this in vbap.h: >>>>>> #define MAX_LS_AMOUNT 55 >>>>>> >>>>>> .hc >>>>>> >>>>>> On Dec 21, 2012, at 6:41 PM, Zack Settel wrote: >>>>>> >>>>>>> Hi List, >>>>>>> >>>>>>> >>>>>>> It seems that VBAP v 1.0.3.2 (downloaded sources from >>>>>>> puredata.info/downloads/vbap/releases/1.0.3.2) is crashing when send >>>>>>> the define-loudspeakers message. >>>>>>> >>>>>>> When sent: >>>>>>> >>>>>>> define_loudspeakers 3 0 90 -7.5 55 52.5 55 112.5 55 172.5 >>>>>>> 55 -127.5 55 -67.5 55 7.5 20 37.5 20 67.5 20 97.5 20 127.5 20 157.5 >>>>>>> 20 -172.5 20 -142.5 20 -112.5 20 -82.5 20 -52.5 20 -22.5 20 7.5 -15 >>>>>>> 37.5 -15 67.5 -15 97.5 -15 127.5 -15 157.5 -15 -172.5 -15 -142.5 -15 >>>>>>> -112.5 -15 -82.5 -15 -52.5 -15 -22.5 -15 >>>>>>> >>>>>>> >>>>>>> the length of the list is 64 >>>>>>> >>>>>>> >>>>>>> an error appears on the PD console : >>>>>>> >>>>>>> vbap loudspeaker-matrices: param 11132 is not a float >>>>>>> pd: getbytes() failed -- out of memory >>>>>>> vbap: Configure loudspeakers first! >>>>>>> >>>>>>> >>>>>>> >>>>>>> context: pd vanilla 0.43-3 >>>>>>> vbap: 1.0.3.2 >>>>>>> >>>>>>> mac OSX 10.8.2 >>>>>>> >>>>>>> >>>>>>> Note: does not crash when same message is truncated to a length of 16, >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Pd-list@iem.at mailing list >>>>>> UNSUBSCRIBE and account-management -> >>>>>> http://lists.puredata.info/listinfo/pd-list >>>>> >>>> >>>> _______________________________________________ >>>> Pd-list@iem.at mailing list >>>> UNSUBSCRIBE and account-management -> >>>> http://lists.puredata.info/listinfo/pd-list >>> >> >> _______________________________________________ >> Pd-list@iem.at mailing list >> UNSUBSCRIBE and account-management -> >> http://lists.puredata.info/listinfo/pd-list > > _______________________________________________ > Pd-list@iem.at mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list > _______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list