Hi Virginie, There was actually an issue with the definition of modalModel which I just fixed. This change might take some time to be reflected on the main repository. Also, it seems that ir2dsp doesn't use that function properly (no need to place the array a value in a take since modalModel already takes care of it).
For reference, here's a working of the code that you sent: import("stdfaust.lib"); nModes = 16; modeFrequencies=(510.0,622.0,916.6666666666666,1029.3333333333333,1212.6666666666665,1315.3333333333333,1496.6666666666665,1657.3333333333333,1820.6666666666665,2019.3333333333333,2358.6666666666665,2534.0,2652.0,2802.6666666666665,2946.6666666666665,3319.333333333333); massEigenValues=(0.7632999698692908,0.16355214794579387,0.2437629599769164,0.4669077030163351,0.5936267149823993,0.11437497826055203,0.12382368293629044,0.3220633399108091,0.13414751105069078,0.4434567262810993,0.20548994992757408,0.4203015037799922,1.0,0.18643409371607567,0.14579377779794966,0.11911179255542446); t60=(0.20955657477432674,0.20955657477432674,0.29334786011825087,0.24446961010177806,0.24446961010177806,0.20955657477432674,0.14671311285932173,0.20955657477432674,0.14671311285932173,0.18337179862758657,0.0978348684239287,0.06117619242259182,0.14671311285932173,0.09172508839273395,0.14671311285932173,0.0978348684239287); modalModel(n,modeFreqs,modeRes,modeGains) = _ <: par(i,n,gain(i)*pm.modeFilter(freqs(i),res(i))) :> _ with{ freqs(i) = ba.take(i+1,modeFreqs); res(i) = ba.take(i+1,modeRes); gain(i) = ba.take(i+1,modeGains); }; test_model2 = modalModel(nModes,modeFrequencies,t60,massEigenValues); gate = button("gate"); process = pm.impulseExcitation(gate) : test_model2 <: _,_; @PA Grumiaux <pierreamaury.grumi...@gmail.com> : could you send me the updated version of ir2dsp once it will include these fixes so that I can add it to the Faust repo? Thanks! Romain On Mon, Jan 21, 2019 at 8:51 AM Virginie YK <virginie...@gmail.com> wrote: > > Thanks a lot Sebastien. Well, all the dependancies are installed ... > > In between, Pierre Amaury Grumiaux - who wrote the script - answered me > and gave me a new version of the ir2dsp file, that I attach to this mail. > He encountered the same problem as me, and I am very surprised that you > didn't encounter it and could make the creation I could here on Soundcloud > (thanx for the link). > > So, with this new Python file, I can create my dsp file now. > > But now, when I run it (on the Faust Online Editor ... I'm a windows user > ;-) .... ) the following error message appears : > > *BoxIdent[take] is defined here : > https://faust.grame.fr/tools/editor/libraries/basics.lib:589 > <https://faust.grame.fr/tools/editor/libraries/basics.lib:589>* > > As I understand it, the compiler is trying to redefine *ba.take *which is > a function already known in the standard lib. > So, it doesn't want to do it.... but I can't see why the compiler is > considering that using a loop is re-defining a function !!! > The only time ba.take is used is in this case : > > modeT60 = par(i,nModes,ba.take(i+1,t60)); > > I attached the (simple) dsp file. > > Any Faust-user has an idea ? > Thanks > Virginie > > > > Le lun. 21 janv. 2019 à 00:05, Sébastien Clara <sebastiencl...@no-log.org> > a écrit : > >> Hi, >> >> Make sure you have installed dependencies : >> >> pip install scipy >> pip install matplotlib >> pip install peakutils >> >> Then you will be able to execute the script : python ir2dsp.py test.wav >> test_model >> -20 100. You will find attached the script that allowed me to build dsp >> files for cabinet impulses. >> >> With the Guitarix project on Faust, you will have opportunities to work >> on your timbre and make cool sounds. If you wish, you can listen to my >> latest creation : https://soundcloud.com/s-bastien-clara/phantom-limb >> >> Cheers, >> >> Sébastien >> >> >> Le 13/01/2019 à 23:13, Virginie YK a écrit : >> >> Hi >> >> I'm trying to use ir2dsp although I don't know Python at all. >> Anyway, I could finally install it on my PC. Now, in the Windows command >> line, I type : >> python ir2dsp.py test.wav test_model.dsp -20 100 >> >> where test.wav is a short file supposed to be a kind of Impusionnal >> Response, test_model.dsp is the resulting model file ; -20 ("Minimum value >> of peaks in dB (between -infinity and 0)" and 100 Hz (Minimum distance >> between two peaks in Hertz). >> >> The result is the following message : >> >> C:\Users\User\AppData\Roaming\Python\Python37\site-packages\scipy\io\wavfile.py:273: >> *WavFileWarning: Chunk (non-data) not understood, skipping it.* >> WavFileWarning) >> Traceback (most recent call last): >> >> >> * File "ir2dsp.py", line 32, in <module> x = x/max(x) ValueError: >> The truth value of an array with more than one element is ambiguous. Use >> a.any() or a.all()* >> >> Is it a bug or are there any condition on the input file (the wave file) >> that I don't know ? I chose a very short and easy input file of 345 Ko. >> >> In fact, I can't use ir2dsp ........ could you help me please ? >> >> Thanks >> Virginie >> >> > > > _______________________________________________ > Faudiostream-users mailing list > Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users > -- Romain Michon +33 (0)7 67 39 72 40http://grame.fr/~michon
_______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users