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 40http://grame.fr/~michon
_______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users