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

Reply via email to