[PD] vbap 1.0.3.2 fails when sent longer "define_loudspeakers" messages

katja katjavetter at gmail.com
Wed Jan 9 03:19:41 CET 2013


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 <hans at 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 at iem.at mailing list
>>>>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>>>>
>>>
>>> _______________________________________________
>>> Pd-list at iem.at mailing list
>>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>>
>
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list



More information about the Pd-list mailing list