Weird bug involving OSC, ReactiVision and i don't know what


    Nov 05 2007 | 6:00 pm
    Hello,
    Well, it'll be a rather long and obscure mail, but if someone go to the
    end of it, i'd love to know if he/she's got any clue...
    I made an external to calculate the distances of a tracked object moving
    inside perimeters. Is it in or out of the n perimeters, and what's the
    distance between each center of each zone it's in, that's what it does,
    basically.
    It does it well.
    I've used my mouse to simulate the object's moves, untill now. And it
    worked fine.
    I've linked ReactiVision's tracking software to it (webcam tracking
    using OSC to send the position data).
    It works well when it's only about display (drawing the position in an
    lcd, for example). But as soon as it tries to trigger my calculation
    function, i do not receive anymore data from ReactiVision through OSC.
    As data is still flowing in the Reactivision's console, i assume it's
    the OSC connection in MaxMSP that is instantaneously lost.
    How could a simple function like
    .........................................................................
    void calc_distance(t_sdmain *x, int i)
    {
    t_atom *data;
    distance[i] = (int)
    sqrt(((micro[0]-source[i][0])*(micro[0]-source[i][0]))
    +((micro[1]-source[i][1])*(micro[1]-source[i][1])));
    d_scaled = 1 - ((distance[i] / xRange) * (yRange + yMin));
    if (perimeter[i] == 0)
    dp_scaled = 0;
    else
    dp_scaled = 1 - (maxi(0, mini(pow(((distance[i] - xMin) /
    (perimeter[i] - 1)), 1) * yRange + yMin, 1)));
    if ((dp_scaled>0) && (!inside)) inside = 1; // normalement dp_scaled>0
    if ((dp_scaled
    data = x->l_data;
    SETLONG(data, i); // source ID
    SETLONG(data+1, inside); // intrusion
    if (perimeter[i]>0) SETFLOAT(data+2, dp_scaled); // perim scale
    else SETFLOAT(data+2, 0);
    SETFLOAT(data+3, d_scaled); // general scale
    outlet_list(x->t_listout, 0L, 4, data);
    }
    ......................................................................
    kill the OSC connection ?
    The OSC and my external are not directly related. I only take data from
    an OSC connection and do some stuff with it in my code.
    I add that when i simulate the tracking with my mouse instead of using
    the tracking software, everything works fine...
    Any ideas ?
    f.e
    ps: oh, if you need the maxi / mini .h file to understand better, just
    ask it
    --
    f.e chanfrault | aka | personal computer music
    >>>>>>> http://www.personal-computer-music.com
    >>>>>>> |sublime music for a desperate people|