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

Reply via email to