ba.take ==> complexity O(n^2) I think that this kind of info should be added in the library documentation.
And also as a general rule in the « Contributing » section of https://github.com/grame-cncm/faustlibraries/blob/master/README.md, to push library writers to document this kind of things. Stéphane > Le 20 mars 2018 à 04:32, Yann Orlarey <orla...@grame.fr> a écrit : > > HI, > > I did some tests and I don't see any problem with fi.fir(), it supports very > large lists. Here is the test file I used: > > // ------- fir500.dsp ------ > > import("stdfaust.lib"); > > process = fi.fir(( > 1,2,3,4,5,6,7,8,9,10, > ...48 copies... > 1,2,3,4,5,6,7,8,9,10)); > > //--------------------------------- > > time faust fir500.dsp -o /dev/null > > real 0m0.446s > user 0m0.375s > sys 0m0.030s > > > If instead, I use the second code you mentioned > > // ------- fur500.dsp ------ > > import("stdfaust.lib"); > > fur(coeffs) = _ <: par(i, 500, @(i) * ba.take(i + 1, coeffs)) :> _; > > process = fur(( > 1,2,3,4,5,6,7,8,9,10, > ...48 copies... > 1,2,3,4,5,6,7,8,9,10)); > > //--------------------------------- > > The compilation will take a very long time because ba.take() is really not > the way to go in this case (complexity O(n^2)). Here are the results I get: > > time faust fur500.dsp -o /dev/null > > real 1m18.270s > user 1m16.947s > sys 0m0.900s > > The difference is enormous (x170)! > > If in your case you don't see any difference of performances between the two, > then there is a problem with the fi.fir implementation you are using. > > Can you try with the latest version of Faust (version 2.5.25)? > > Cheers > > Yann > > > > > > 2018-03-19 15:01 GMT-07:00 Oliver Larkin via Faudiostream-users > <faudiostream-users@lists.sourceforge.net>: > depending on what faust version you are using, a foreign function might help. > I had to do this to do a convolution in my tambura synthesiser for exactly > the same reason > > https://github.com/olilarkin/Tambura/blob/master/bridgeIR.dsp > > https://github.com/olilarkin/Tambura/blob/master/bridgeIR.h > > > it would be great if faust’s FIR didn’t bork like this > > oli > > >> On 19 Mar 2018, at 21:32, CrocoDuck o'Ducks <crocoduck.odu...@gmail.com> >> wrote: >> >> Hi again! >> >> Thank you for all your tips! >> >>> I suggest placing all of your coefficients into a large parallel signal >>> bank: >>> >>> coeffs = (b0, b1, b2, ..., b511); // FIR filter coefficients for length 512 >>> >>> and then use par() etc. >> >> I tried both of these: >> >> process = fi.fir(coeffs); >> >> process = _ <: par(i, 512, @(i) * ba.take(i + 1, coeffs)) :> _; >> >> Which, unfortunately, both suffer from the same problem. Did I got the >> suggestion right? >> >>> You can set unlimited time by adding >>> -t 0 >>> to your compile command. >> >> I am currently trying this. >> >>> Interesting ! Do you have some code to show? Is is part of an official >>> JULIA ==> Faust project? >> >> No, it isn't an official project. I just design some filters using DSP.jl >> then I try to generate Faust code that implements them. I just open a file >> for writing and I fill it with Faust code. I guess I can cook a few minimal >> examples to share, I cannot share my code right away as it is sort of >> confidential. >> >> On Mon, 19 Mar, 2018 at 8:20 AM, Stéphane Letz <l...@grame.fr> wrote: >>> >>> Le 18 mars 2018 à 23:06, CrocoDuck o'Ducks <crocoduck.odu...@gmail.com >>> > a écrit : >>> >>> Hi there! >>> >>> I currently have some Julia code producing 512 taps for an FIR filter. >>> >>> >>> Interesting ! Do you have some code to show? Is is part of an official >>> JULIA ==> Faust project? >>> >>> Stéphane >>> >> ------------------------------------------------------------------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! >> http://sdm.link/slashdot_______________________________________________ >> Faudiostream-users mailing list >> Faudiostream-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/faudiostream-users > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Faudiostream-users mailing list > Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! > http://sdm.link/slashdot_______________________________________________ > Faudiostream-users mailing list > Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users