ah, good to know! I completely ignored the list of generated numbers...
cheers Till -- Till Bovermann https://tai-studio.org | http://lfsaw.de | https://www.instagram.com/_lfsaw/ > On 2. Feb 2021, at 18:12, Romain Michon <rmnmic...@gmail.com> wrote: > > Hi Till, > > Ha, that's probably due to the "ugly" 0.002 Hz frequency of the first mode. > That can happen when running Finite Element Analysis. Here's a version fixed > by hand : > > import("stdfaust.lib"); > > plate(exPos,t60,t60DecayRatio,t60DecaySlope) = _ <: > par(i,nModes,pm.modeFilter(modesFreqs(i),modesT60s(i),modesGains(int(exPos),i))) > :> /(nModes) > with{ > nModes = 49; > nExPos = 2; > modesFreqs(n) = > ba.take(n+1,(171.025,255.799,429.312,460.714,571.318,710.182,845.642,898.556,1258.09,1332.09,1360.07,1380.05,1528.97,1665.22,1974.83,2133.56,2261.91,2415.43,2453.02,2537.06,2733.71,2811,2893.03,3273.28,3343.56,3354.17,3493.28,3586,3872.42,3928.61,3979.98,4008.15,4094.68,4187.18,4337.48,4571.51,4638.08,4738.15,4796.93,4810.43,5103.82,5207.01,5248.51,5393.55,5651.55,5892.05,5933.95,5976.37,6111.36)); > modesGains(p,n) = > waveform{0.500274,0.778877,0.390788,0.454272,0.84763,0.341418,0.229878,0.778115,0.766427,0.387502,0.965642,0.391557,0.442017,0.773921,0.547106,0.609828,0.0955635,0.107227,0.101221,0.102989,0.499221,0.0968773,0.162533,0.0988118,0.611735,0.262805,0.255281,0.211925,0.0717038,0.481162,0.175774,0.764619,1,0.853694,0.948795,0.128231,0.42093,0.738158,0.415386,0.247273,0.505669,0.300684,0.420605,0.626225,0.279352,0.579988,0.255205,0.891992,0.732525,0.481617,0.0817163,0.198066,0.0745864,0.573063,0.337275,0.682173,0.260817,0.187831,0.264437,0.764398,0.0467526,0.398727,0.0366174,0.148264,0.455829,0.369873,0.157566,0.0194048,0.685044,0.468228,0.364459,0.280325,0.122176,0.780376,0.2102,0.607922,0.0272448,0.355414,0.0731631,0.350329,1,0.0733717,0.0554074,0.430718,0.221442,0.315456,0.44485,0.338291,0.431741,0.177744,0.431933,0.748742,0.286217,0.438398,0.744557,0.605823,0.189389,0.38477},int(p*nModes+n) > : rdtable; > modesT60s(i) = t60*pow(1-(modesFreqs(i)/6114.37)*t60DecayRatio,t60DecaySlope); > }; > > process = button("gate") : ba.impulsify : plate(0,8,1,1); > > Cheers, > > Romain > > On Mon, Feb 1, 2021 at 9:17 PM Till Bovermann <lf...@lfsaw.de> wrote: > Heya, > > a follow-up on the PM talk by romain today. Romain emailed this around and I > tried it in the faust IDE: > > ``` > import("stdfaust.lib"); > > plate(exPos,t60,t60DecayRatio,t60DecaySlope) = _ <: > par(i,nModes,pm.modeFilter(modesFreqs(i),modesT60s(i),modesGains(int(exPos),i))) > :> /(nModes) > with{ > nModes = 50; > nExPos = 2; > modesFreqs(n) = > ba.take(n+1,(0.00272449,171.025,255.799,429.312,460.714,571.318,710.182,845.642,898.556,1258.09,1332.09,1360.07,1380.05,1528.97,1665.22,1974.83,2133.56,2261.91,2415.43,2453.02,2537.06,2733.71,2811,2893.03,3273.28,3343.56,3354.17,3493.28,3586,3872.42,3928.61,3979.98,4008.15,4094.68,4187.18,4337.48,4571.51,4638.08,4738.15,4796.93,4810.43,5103.82,5207.01,5248.51,5393.55,5651.55,5892.05,5933.95,5976.37,6111.36)); > modesGains(p,n) = > waveform{0.579268,0.500274,0.778877,0.390788,0.454272,0.84763,0.341418,0.229878,0.778115,0.766427,0.387502,0.965642,0.391557,0.442017,0.773921,0.547106,0.609828,0.0955635,0.107227,0.101221,0.102989,0.499221,0.0968773,0.162533,0.0988118,0.611735,0.262805,0.255281,0.211925,0.0717038,0.481162,0.175774,0.764619,1,0.853694,0.948795,0.128231,0.42093,0.738158,0.415386,0.247273,0.505669,0.300684,0.420605,0.626225,0.279352,0.579988,0.255205,0.891992,0.732525,0.481617,0.0817163,0.198066,0.0745864,0.573063,0.337275,0.682173,0.260817,0.187831,0.264437,0.764398,0.0467526,0.398727,0.0366174,0.148264,0.455829,0.369873,0.157566,0.0194048,0.685044,0.468228,0.364459,0.280325,0.122176,0.780376,0.2102,0.607922,0.0272448,0.355414,0.0731631,0.350329,1,0.0733717,0.0554074,0.430718,0.221442,0.315456,0.44485,0.338291,0.431741,0.177744,0.431933,0.748742,0.286217,0.438398,0.744557,0.605823,0.189389,0.38477,0.127482},int(p*nModes+n) > : rdtable; > modesT60s(i) = t60*pow(1-(modesFreqs(i)/6114.37)*t60DecayRatio,t60DecaySlope); > }; > > process = button("gate") : ba.impulsify : plate(0,8,1,1); > ``` > > > It sounds great, however it seems to rapidly develop DC-offset on the > output... is this due to limited precision? Would a DC-Blocker help somehow? > What else to prevent the ultra-low blowup? > > thanks for everything! > > Till > > > > -- > Till Bovermann > > https://tai-studio.org | http://lfsaw.de | https://www.instagram.com/_lfsaw/ > > > > > > > > > > > > > > _______________________________________________ > 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 40 > > http://grame.fr/~michon _______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users