I thought this, too. I seem to (mis)remember somewhere that -O2 optimization at compile-time would help with this, which is what pd-l2ork's freeverb~ uses and still exhibits previously reported behavior. That said, I wonder if denormals would also solve potential NaNs. At any rate, I've updated freeverb~ to explicitly use denormal function's return value in pd-l2ork and will run some tests and let you know. If you'd like to test it out, download the latest deb dated 20160208 (64bit build only for the time being).

Best,

Ico

On 2/8/2016 4:44 AM, Kjetil Matheussen wrote:
Regarding denormals, if that's the problem, shouldn't it be good enough
to compile with -fpmath=sse -msse2 and run the following code one time in the dsp thread?

#ifdef __SSE__
    #ifdef __SSE2__
        #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040)
    #else
        #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000)
    #endif
#else
#   error "must compile with -fmpath=sse"
#endif




On Mon, Feb 8, 2016 at 10:28 AM, Kjetil Matheussen <[email protected] <mailto:[email protected]>> wrote:

    You could use the faust version of freeverb and compile it for pd.
    It's probably less likely to have bugs.
    For instance by pasting
    
http://sourceforge.net/p/faudiostream/code/ci/master/tree/examples/freeverb.dsp?format=raw
    into http://faust.grame.fr/onlinecompiler/


    On Sun, Feb 7, 2016 at 4:08 AM, Ivica Bukvic <[email protected]
    <mailto:[email protected]>> wrote:

        Thank you, Katja. Is there a newer version than this out there?

        Best,

-- Ivica Ico Bukvic, D.M.A.
        Associate Professor
        Computer Music
        ICAT Senior Fellow
        Director -- DISIS, L2Ork
        Virginia Tech
        School of Performing Arts – 0141
        Blacksburg, VA 24061
        (540) 231-6139 <tel:%28540%29%20231-6139>
        [email protected] <mailto:[email protected]>
        www.performingarts.vt.edu <http://www.performingarts.vt.edu>
        disis.icat.vt.edu <http://disis.icat.vt.edu>
        l2ork.icat.vt.edu <http://l2ork.icat.vt.edu>
        ico.bukvic.net <http://ico.bukvic.net>

        On Feb 6, 2016 10:25 AM, "katja" <[email protected]
        <mailto:[email protected]>> wrote:

            If the freeverb~ version you use looks like the one in
            
http://sourceforge.net/p/pure-data/svn/HEAD/tree/trunk/externals/freeverb~/freeverb~.c
            
<http://sourceforge.net/p/pure-data/svn/HEAD/tree/trunk/externals/freeverb%7E/freeverb%7E.c>,
            there's a function 'fix_denorm_nan_float() defined
            starting at line
            154. The function is called later (in line 225 and others)
            but the
            return value is never stored. Therefore freeverb~ doesn't
            flush
            denormals.

            On Sat, Feb 6, 2016 at 3:34 PM, Ivica Bukvic <[email protected]
            <mailto:[email protected]>> wrote:
            > Thank you all. Looks like I've got some troubleshooting
            to do and will
            > report what I find.
            >
            > Best,
            >
            > --
            > Ivica Ico Bukvic, D.M.A.
            > Associate Professor
            > Computer Music
            > ICAT Senior Fellow
            > Director -- DISIS, L2Ork
            > Virginia Tech
            > School of Performing Arts – 0141
            > Blacksburg, VA 24061
            > (540) 231-6139 <tel:%28540%29%20231-6139>
            > [email protected] <mailto:[email protected]>
            > www.performingarts.vt.edu <http://www.performingarts.vt.edu>
            > disis.icat.vt.edu <http://disis.icat.vt.edu>
            > l2ork.icat.vt.edu <http://l2ork.icat.vt.edu>
            > ico.bukvic.net <http://ico.bukvic.net>
            >
            > On Feb 6, 2016 9:20 AM, "IOhannes m zmölnig"
            <[email protected] <mailto:[email protected]>> wrote:
            >>
            >> On 02/06/2016 10:29 AM, katja wrote:
            >> > Possibly an inf or nan recirculating in the delay
            lines? It seems that
            >> > freeverb~ calls function fix_denorm_nan_float(float
            v) but doesn't use
            >> > the return value.
            >>
            >> you *might* be able to confirm this by sending the
            output for
            >> [freeverb~] to [print~] (the silent samples would be
            NaN or Inf rather
            >> than 0 (or some other constant value))
            >>
            >> gamds
            >> IOhannes
            >>
            >>
            >>
            >> _______________________________________________
            >> [email protected] <mailto:[email protected]>
            mailing list
            >> UNSUBSCRIBE and account-management ->
            >> http://lists.puredata.info/listinfo/pd-list
            >>
            >
            > _______________________________________________
            > [email protected] <mailto:[email protected]>
            mailing list
            > UNSUBSCRIBE and account-management ->
            > http://lists.puredata.info/listinfo/pd-list
            >


        _______________________________________________
        [email protected] <mailto:[email protected]> mailing list
        UNSUBSCRIBE and account-management ->
        http://lists.puredata.info/listinfo/pd-list




_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
http://lists.puredata.info/listinfo/pd-list

Reply via email to