users/daste/zanga-plugins

changeset 2:dafb1806ccf7 tip

Flanger fix
author Stefano D'Angelo <zanga.mail@gmail.com>
date Wed Mar 24 22:51:53 2010 +0200 (2010-03-24)
parents 817e77d594df
children
files src/code/flanger_v1.c src/flanger.pmf
line diff
     1.1 --- a/src/code/flanger_v1.c	Wed Mar 24 22:29:58 2010 +0200
     1.2 +++ b/src/code/flanger_v1.c	Wed Mar 24 22:51:53 2010 +0200
     1.3 @@ -50,24 +50,24 @@
     1.4  	size_t	 buf_32_cur;
     1.5  
     1.6  	/* spblmd.sp.s.o */
     1.7 -	float	 buf_41[2];
     1.8 -	size_t	 buf_41_cur;
     1.9 +	float	 buf_42[2];
    1.10 +	size_t	 buf_42_cur;
    1.11  
    1.12  	/* spblw.sp.s.o */
    1.13 -	float	 buf_49[2];
    1.14 -	size_t	 buf_49_cur;
    1.15 +	float	 buf_50[2];
    1.16 +	size_t	 buf_50_cur;
    1.17  
    1.18  	/* lfo.saw.s.o */
    1.19 -	float	 buf_59[2];
    1.20 -	size_t	 buf_59_cur;
    1.21 +	float	 buf_61[2];
    1.22 +	size_t	 buf_61_cur;
    1.23  
    1.24  	/* sgi.spbl.sp.s.o */
    1.25 -	float	 buf_66[2];
    1.26 -	size_t	 buf_66_cur;
    1.27 +	float	 buf_68[2];
    1.28 +	size_t	 buf_68_cur;
    1.29  
    1.30  	/* bdw.bsp.s.o */
    1.31 -	float	 buf_72[2];
    1.32 -	size_t	 buf_72_cur;
    1.33 +	float	 buf_74[2];
    1.34 +	size_t	 buf_74_cur;
    1.35  
    1.36  	/* Intermediate values */
    1.37  
    1.38 @@ -155,122 +155,128 @@
    1.39  	/* cgo.off_o.o */
    1.40  	float	 val_39;
    1.41  
    1.42 -	/* ssmd.samples */
    1.43 +	/* sm.o */
    1.44  	float	 val_40;
    1.45  
    1.46 -	/* spblmd.sp.s.o */
    1.47 +	/* ssmd.samples */
    1.48  	float	 val_41;
    1.49  
    1.50 -	/* spblmd.sp.d.o */
    1.51 +	/* spblmd.sp.s.o */
    1.52  	float	 val_42;
    1.53  
    1.54 -	/* spblmd.sp.b.o */
    1.55 +	/* spblmd.sp.d.o */
    1.56  	float	 val_43;
    1.57  
    1.58 -	/* spblmd.sp.gt.m.o */
    1.59 +	/* spblmd.sp.b.o */
    1.60  	float	 val_44;
    1.61  
    1.62 -	/* spblmd.sp.gt.lte.o */
    1.63 +	/* spblmd.sp.gt.m.o */
    1.64  	float	 val_45;
    1.65  
    1.66 -	/* spblmd.bl.o */
    1.67 +	/* spblmd.sp.gt.lte.o */
    1.68  	float	 val_46;
    1.69  
    1.70 -	/* cgo.m.o */
    1.71 +	/* spblmd.bl.o */
    1.72  	float	 val_47;
    1.73  
    1.74 -	/* ssw.samples */
    1.75 +	/* mw.o */
    1.76  	float	 val_48;
    1.77  
    1.78 -	/* spblw.sp.s.o */
    1.79 +	/* ssw.samples */
    1.80  	float	 val_49;
    1.81  
    1.82 -	/* spblw.sp.d.o */
    1.83 +	/* spblw.sp.s.o */
    1.84  	float	 val_50;
    1.85  
    1.86 -	/* spblw.sp.b.o */
    1.87 +	/* spblw.sp.d.o */
    1.88  	float	 val_51;
    1.89  
    1.90 -	/* spblw.sp.gt.m.o */
    1.91 +	/* spblw.sp.b.o */
    1.92  	float	 val_52;
    1.93  
    1.94 -	/* spblw.sp.gt.lte.o */
    1.95 +	/* spblw.sp.gt.m.o */
    1.96  	float	 val_53;
    1.97  
    1.98 -	/* spblw.bl.o */
    1.99 +	/* spblw.sp.gt.lte.o */
   1.100  	float	 val_54;
   1.101  
   1.102 -	/* cgo.off_c.o */
   1.103 +	/* spblw.bl.o */
   1.104  	float	 val_55;
   1.105  
   1.106 -	/* lfo.s.o */
   1.107 +	/* cgo.m.o */
   1.108  	float	 val_56;
   1.109  
   1.110 -	/* lfo.m2.o */
   1.111 +	/* cgo.off_c.o */
   1.112  	float	 val_57;
   1.113  
   1.114 -	/* lfo.m1.o */
   1.115 +	/* lfo.s.o */
   1.116  	float	 val_58;
   1.117  
   1.118 -	/* lfo.saw.s.o */
   1.119 +	/* lfo.m2.o */
   1.120  	float	 val_59;
   1.121  
   1.122 -	/* hzfr.freq_ratio */
   1.123 +	/* lfo.m1.o */
   1.124  	float	 val_60;
   1.125  
   1.126 -	/* blf.o */
   1.127 +	/* lfo.saw.s.o */
   1.128  	float	 val_61;
   1.129  
   1.130 -	/* lfo.saw.d.o */
   1.131 +	/* hzfr.freq_ratio */
   1.132  	float	 val_62;
   1.133  
   1.134 -	/* dl.mod.o */
   1.135 +	/* blf.o */
   1.136 +	float	 val_63;
   1.137 +
   1.138 +	/* lfo.saw.d.o */
   1.139  	float	 val_64;
   1.140  
   1.141 +	/* dl.mod.o */
   1.142 +	float	 val_66;
   1.143 +
   1.144  	/* sgi.m.o */
   1.145 -	float	 val_65;
   1.146 +	float	 val_67;
   1.147  
   1.148  	/* sgi.spbl.sp.s.o */
   1.149 -	float	 val_66;
   1.150 +	float	 val_68;
   1.151  
   1.152  	/* sgi.spbl.sp.d.o */
   1.153 -	float	 val_67;
   1.154 +	float	 val_69;
   1.155  
   1.156  	/* sgi.spbl.sp.b.o */
   1.157 -	float	 val_68;
   1.158 +	float	 val_70;
   1.159  
   1.160  	/* sgi.spbl.sp.gt.m.o */
   1.161 -	float	 val_69;
   1.162 +	float	 val_71;
   1.163  
   1.164  	/* sgi.spbl.sp.gt.lte.o */
   1.165 -	float	 val_70;
   1.166 +	float	 val_72;
   1.167  
   1.168  	/* sgi.spbl.bl.o */
   1.169 -	float	 val_71;
   1.170 +	float	 val_73;
   1.171  
   1.172  	/* bdw.bsp.s.o */
   1.173 -	float	 val_72;
   1.174 +	float	 val_74;
   1.175  
   1.176  	/* bdw.bsp.d.o */
   1.177 -	float	 val_73;
   1.178 +	float	 val_75;
   1.179  
   1.180  	/* bdw.bsp.b.o */
   1.181 -	float	 val_74;
   1.182 +	float	 val_76;
   1.183  
   1.184  	/* bdw.bsp.gt.m.o */
   1.185 -	float	 val_75;
   1.186 +	float	 val_77;
   1.187  
   1.188  	/* bdw.bsp.gt.lte.o */
   1.189 -	float	 val_76;
   1.190 +	float	 val_78;
   1.191  
   1.192  	/* bdw.bbl.o */
   1.193 -	float	 val_77;
   1.194 +	float	 val_79;
   1.195  
   1.196  	/* bdw.bgt.m.o */
   1.197 -	float	 val_78;
   1.198 +	float	 val_80;
   1.199  
   1.200  	/* bdw.bgt.lte.o */
   1.201 -	float	 val_79;
   1.202 +	float	 val_81;
   1.203    };
   1.204  
   1.205  static unsigned long
   1.206 @@ -392,20 +398,20 @@
   1.207  	memset(plugin->buf_32, 0, 2 * sizeof(float));
   1.208  	plugin->buf_32_cur = 0;
   1.209  
   1.210 -	memset(plugin->buf_41, 0, 2 * sizeof(float));
   1.211 -	plugin->buf_41_cur = 0;
   1.212 +	memset(plugin->buf_42, 0, 2 * sizeof(float));
   1.213 +	plugin->buf_42_cur = 0;
   1.214  
   1.215 -	memset(plugin->buf_49, 0, 2 * sizeof(float));
   1.216 -	plugin->buf_49_cur = 0;
   1.217 +	memset(plugin->buf_50, 0, 2 * sizeof(float));
   1.218 +	plugin->buf_50_cur = 0;
   1.219  
   1.220 -	memset(plugin->buf_59, 0, 2 * sizeof(float));
   1.221 -	plugin->buf_59_cur = 0;
   1.222 +	memset(plugin->buf_61, 0, 2 * sizeof(float));
   1.223 +	plugin->buf_61_cur = 0;
   1.224  
   1.225 -	memset(plugin->buf_66, 0, 2 * sizeof(float));
   1.226 -	plugin->buf_66_cur = 0;
   1.227 +	memset(plugin->buf_68, 0, 2 * sizeof(float));
   1.228 +	plugin->buf_68_cur = 0;
   1.229  
   1.230 -	memset(plugin->buf_72, 0, 2 * sizeof(float));
   1.231 -	plugin->buf_72_cur = 0;
   1.232 +	memset(plugin->buf_74, 0, 2 * sizeof(float));
   1.233 +	plugin->buf_74_cur = 0;
   1.234  
   1.235  	plugin->val_11 = 0.0;
   1.236  	plugin->val_12 = 0.0;
   1.237 @@ -458,8 +464,8 @@
   1.238  	plugin->val_60 = 0.0;
   1.239  	plugin->val_61 = 0.0;
   1.240  	plugin->val_62 = 0.0;
   1.241 +	plugin->val_63 = 0.0;
   1.242  	plugin->val_64 = 0.0;
   1.243 -	plugin->val_65 = 0.0;
   1.244  	plugin->val_66 = 0.0;
   1.245  	plugin->val_67 = 0.0;
   1.246  	plugin->val_68 = 0.0;
   1.247 @@ -474,6 +480,8 @@
   1.248  	plugin->val_77 = 0.0;
   1.249  	plugin->val_78 = 0.0;
   1.250  	plugin->val_79 = 0.0;
   1.251 +	plugin->val_80 = 0.0;
   1.252 +	plugin->val_81 = 0.0;
   1.253  }
   1.254  
   1.255  void
   1.256 @@ -499,53 +507,55 @@
   1.257  		plugin->val_24 = fmaxf(fminf(plugin->val_25, 1.000000000000000), 0.000000000000000);
   1.258  		plugin->val_27 = fmaxf(fminf(plugin->port_flanging_gain[0], 1.000000000000000), -1.000000000000000);
   1.259  		plugin->val_22 = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_24)) * (0.999000000000000))) * (plugin->val_27)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_24)) * (0.999000000000000))) * (plugin->val_23));
   1.260 -		plugin->val_42 = plugin->buf_41[pmf_delay(1.000000000000000, plugin->buf_41_cur, 1)];
   1.261 -		plugin->val_45 = copysignf(1.000000000000000, (0.000000000000000) - (plugin->port_smoothing[0]));
   1.262 -		plugin->val_44 = (plugin->val_45) * (-1.000000000000000);
   1.263 -		plugin->val_43 = fmaxf(fminf(plugin->val_44, 1.000000000000000), 0.000000000000000);
   1.264 -		plugin->val_46 = fmaxf(fminf(plugin->port_mod_min_delay[0], 0.010000000000000), 0.000000000000000);
   1.265 -		plugin->val_41 = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_43)) * (0.999000000000000))) * (plugin->val_46)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_43)) * (0.999000000000000))) * (plugin->val_42));
   1.266 -		plugin->val_40 = (plugin->val_41) * (plugin->sample_rate);
   1.267 -		plugin->val_50 = plugin->buf_49[pmf_delay(1.000000000000000, plugin->buf_49_cur, 1)];
   1.268 -		plugin->val_53 = copysignf(1.000000000000000, (0.000000000000000) - (plugin->port_smoothing[0]));
   1.269 -		plugin->val_52 = (plugin->val_53) * (-1.000000000000000);
   1.270 -		plugin->val_51 = fmaxf(fminf(plugin->val_52, 1.000000000000000), 0.000000000000000);
   1.271 -		plugin->val_54 = fmaxf(fminf(plugin->port_mod_width[0], 0.010000000000000), 0.000000000000000);
   1.272 -		plugin->val_49 = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_51)) * (0.999000000000000))) * (plugin->val_54)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_51)) * (0.999000000000000))) * (plugin->val_50));
   1.273 -		plugin->val_48 = (plugin->val_49) * (plugin->sample_rate);
   1.274 -		plugin->val_58 = (2.000000000000000) * (3.141592653589793);
   1.275 -		plugin->val_61 = fmaxf(fminf(plugin->port_mod_frequency[0], 10.000000000000000), 0.000000000000000);
   1.276 -		plugin->val_60 = (plugin->val_61) / (plugin->sample_rate);
   1.277 -		plugin->val_62 = plugin->buf_59[pmf_delay(1.000000000000000, plugin->buf_59_cur, 1)];
   1.278 -		plugin->val_59 = fmodf((plugin->val_62) + (plugin->val_60), 1.000000000000000);
   1.279 -		plugin->val_57 = (plugin->val_59) * (plugin->val_58);
   1.280 -		plugin->val_56 = sinf(plugin->val_57);
   1.281 -		plugin->val_55 = (plugin->val_56) + (0.000000000000000);
   1.282 -		plugin->val_47 = (plugin->val_55) * (plugin->val_48);
   1.283 -		plugin->val_39 = (plugin->val_47) + (plugin->val_40);
   1.284 -		plugin->val_64 = fmodf(plugin->val_39, 1.000000000000000);
   1.285 +		plugin->val_43 = plugin->buf_42[pmf_delay(1.000000000000000, plugin->buf_42_cur, 1)];
   1.286 +		plugin->val_46 = copysignf(1.000000000000000, (0.000000000000000) - (plugin->port_smoothing[0]));
   1.287 +		plugin->val_45 = (plugin->val_46) * (-1.000000000000000);
   1.288 +		plugin->val_44 = fmaxf(fminf(plugin->val_45, 1.000000000000000), 0.000000000000000);
   1.289 +		plugin->val_47 = fmaxf(fminf(plugin->port_mod_min_delay[0], 0.010000000000000), 0.000000000000000);
   1.290 +		plugin->val_42 = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_44)) * (0.999000000000000))) * (plugin->val_47)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_44)) * (0.999000000000000))) * (plugin->val_43));
   1.291 +		plugin->val_41 = (plugin->val_42) * (plugin->sample_rate);
   1.292 +		plugin->val_51 = plugin->buf_50[pmf_delay(1.000000000000000, plugin->buf_50_cur, 1)];
   1.293 +		plugin->val_54 = copysignf(1.000000000000000, (0.000000000000000) - (plugin->port_smoothing[0]));
   1.294 +		plugin->val_53 = (plugin->val_54) * (-1.000000000000000);
   1.295 +		plugin->val_52 = fmaxf(fminf(plugin->val_53, 1.000000000000000), 0.000000000000000);
   1.296 +		plugin->val_55 = fmaxf(fminf(plugin->port_mod_width[0], 0.010000000000000), 0.000000000000000);
   1.297 +		plugin->val_50 = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_52)) * (0.999000000000000))) * (plugin->val_55)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_52)) * (0.999000000000000))) * (plugin->val_51));
   1.298 +		plugin->val_49 = (plugin->val_50) * (plugin->sample_rate);
   1.299 +		plugin->val_48 = (plugin->val_49) * (0.500000000000000);
   1.300 +		plugin->val_40 = (plugin->val_48) + (plugin->val_41);
   1.301 +		plugin->val_60 = (2.000000000000000) * (3.141592653589793);
   1.302 +		plugin->val_63 = fmaxf(fminf(plugin->port_mod_frequency[0], 10.000000000000000), 0.000000000000000);
   1.303 +		plugin->val_62 = (plugin->val_63) / (plugin->sample_rate);
   1.304 +		plugin->val_64 = plugin->buf_61[pmf_delay(1.000000000000000, plugin->buf_61_cur, 1)];
   1.305 +		plugin->val_61 = fmodf((plugin->val_64) + (plugin->val_62), 1.000000000000000);
   1.306 +		plugin->val_59 = (plugin->val_61) * (plugin->val_60);
   1.307 +		plugin->val_58 = sinf(plugin->val_59);
   1.308 +		plugin->val_57 = (plugin->val_58) + (0.000000000000000);
   1.309 +		plugin->val_56 = (plugin->val_57) * (plugin->val_48);
   1.310 +		plugin->val_39 = (plugin->val_56) + (plugin->val_40);
   1.311 +		plugin->val_66 = fmodf(plugin->val_39, 1.000000000000000);
   1.312  		plugin->val_38 = floorf(plugin->val_39);
   1.313  		plugin->val_29 = plugin->buf_30[pmf_delay(plugin->val_38, plugin->buf_30_cur, plugin->buf_30_len - 1)];
   1.314 -		plugin->val_28 = (((1.000000000000000) - (plugin->val_64)) * (plugin->val_29)) + ((plugin->val_64) * (plugin->buf_29[pmf_delay(1.000000000000000, plugin->buf_29_cur, 1)]));
   1.315 +		plugin->val_28 = (((1.000000000000000) - (plugin->val_66)) * (plugin->val_29)) + ((plugin->val_66) * (plugin->buf_29[pmf_delay(1.000000000000000, plugin->buf_29_cur, 1)]));
   1.316  		plugin->val_21 = (plugin->val_28) * (plugin->val_22);
   1.317 -		plugin->val_67 = plugin->buf_66[pmf_delay(1.000000000000000, plugin->buf_66_cur, 1)];
   1.318 -		plugin->val_70 = copysignf(1.000000000000000, (0.000000000000000) - (plugin->port_smoothing[0]));
   1.319 -		plugin->val_69 = (plugin->val_70) * (-1.000000000000000);
   1.320 -		plugin->val_68 = fmaxf(fminf(plugin->val_69, 1.000000000000000), 0.000000000000000);
   1.321 -		plugin->val_71 = fmaxf(fminf(plugin->port_input_gain[0], 1.000000000000000), -1.000000000000000);
   1.322 -		plugin->val_66 = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_68)) * (0.999000000000000))) * (plugin->val_71)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_68)) * (0.999000000000000))) * (plugin->val_67));
   1.323 -		plugin->val_65 = (plugin->port_i[i]) * (plugin->val_66);
   1.324 -		plugin->val_20 = (plugin->val_65) + (plugin->val_21);
   1.325 +		plugin->val_69 = plugin->buf_68[pmf_delay(1.000000000000000, plugin->buf_68_cur, 1)];
   1.326 +		plugin->val_72 = copysignf(1.000000000000000, (0.000000000000000) - (plugin->port_smoothing[0]));
   1.327 +		plugin->val_71 = (plugin->val_72) * (-1.000000000000000);
   1.328 +		plugin->val_70 = fmaxf(fminf(plugin->val_71, 1.000000000000000), 0.000000000000000);
   1.329 +		plugin->val_73 = fmaxf(fminf(plugin->port_input_gain[0], 1.000000000000000), -1.000000000000000);
   1.330 +		plugin->val_68 = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_70)) * (0.999000000000000))) * (plugin->val_73)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_70)) * (0.999000000000000))) * (plugin->val_69));
   1.331 +		plugin->val_67 = (plugin->port_i[i]) * (plugin->val_68);
   1.332 +		plugin->val_20 = (plugin->val_67) + (plugin->val_21);
   1.333  		plugin->val_12 = ((plugin->val_13) * (plugin->val_20)) + (((1.000000000000000) - (plugin->val_13)) * (plugin->port_i[i]));
   1.334 -		plugin->val_73 = plugin->buf_72[pmf_delay(1.000000000000000, plugin->buf_72_cur, 1)];
   1.335 -		plugin->val_76 = copysignf(1.000000000000000, (0.000000000000000) - (plugin->port_smoothing[0]));
   1.336 -		plugin->val_75 = (plugin->val_76) * (-1.000000000000000);
   1.337 -		plugin->val_74 = fmaxf(fminf(plugin->val_75, 1.000000000000000), 0.000000000000000);
   1.338 -		plugin->val_79 = copysignf(1.000000000000000, (0.000000000000000) - (plugin->port_bypass[0]));
   1.339 -		plugin->val_78 = (plugin->val_79) * (-1.000000000000000);
   1.340 -		plugin->val_77 = fmaxf(fminf(plugin->val_78, 1.000000000000000), 0.000000000000000);
   1.341 -		plugin->val_72 = ((((1.000000000000000) - (0.999900000000000)) + (((1.000000000000000) - (plugin->val_74)) * (0.999900000000000))) * (plugin->val_77)) + (((0.999900000000000) - (((1.000000000000000) - (plugin->val_74)) * (0.999900000000000))) * (plugin->val_73));
   1.342 -		plugin->val_11 = ((plugin->val_72) * (plugin->port_i[i])) + (((1.000000000000000) - (plugin->val_72)) * (plugin->val_12));
   1.343 +		plugin->val_75 = plugin->buf_74[pmf_delay(1.000000000000000, plugin->buf_74_cur, 1)];
   1.344 +		plugin->val_78 = copysignf(1.000000000000000, (0.000000000000000) - (plugin->port_smoothing[0]));
   1.345 +		plugin->val_77 = (plugin->val_78) * (-1.000000000000000);
   1.346 +		plugin->val_76 = fmaxf(fminf(plugin->val_77, 1.000000000000000), 0.000000000000000);
   1.347 +		plugin->val_81 = copysignf(1.000000000000000, (0.000000000000000) - (plugin->port_bypass[0]));
   1.348 +		plugin->val_80 = (plugin->val_81) * (-1.000000000000000);
   1.349 +		plugin->val_79 = fmaxf(fminf(plugin->val_80, 1.000000000000000), 0.000000000000000);
   1.350 +		plugin->val_74 = ((((1.000000000000000) - (0.999900000000000)) + (((1.000000000000000) - (plugin->val_76)) * (0.999900000000000))) * (plugin->val_79)) + (((0.999900000000000) - (((1.000000000000000) - (plugin->val_76)) * (0.999900000000000))) * (plugin->val_75));
   1.351 +		plugin->val_11 = ((plugin->val_74) * (plugin->port_i[i])) + (((1.000000000000000) - (plugin->val_74)) * (plugin->val_12));
   1.352  		plugin->port_o[i] = plugin->val_11;
   1.353  		plugin->val_33 = plugin->buf_32[pmf_delay(1.000000000000000, plugin->buf_32_cur, 1)];
   1.354  		plugin->val_36 = copysignf(1.000000000000000, (0.000000000000000) - (plugin->port_smoothing[0]));
   1.355 @@ -558,12 +568,12 @@
   1.356  		/* Update buffers */
   1.357  		plugin->buf_30[plugin->buf_30_cur] = (plugin->port_i[i]) + (plugin->val_31);
   1.358  		plugin->buf_32[plugin->buf_32_cur] = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_34)) * (0.999000000000000))) * (plugin->val_37)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_34)) * (0.999000000000000))) * (plugin->val_33));
   1.359 -		plugin->buf_72[plugin->buf_72_cur] = ((((1.000000000000000) - (0.999900000000000)) + (((1.000000000000000) - (plugin->val_74)) * (0.999900000000000))) * (plugin->val_77)) + (((0.999900000000000) - (((1.000000000000000) - (plugin->val_74)) * (0.999900000000000))) * (plugin->val_73));
   1.360 -		plugin->buf_66[plugin->buf_66_cur] = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_68)) * (0.999000000000000))) * (plugin->val_71)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_68)) * (0.999000000000000))) * (plugin->val_67));
   1.361 +		plugin->buf_74[plugin->buf_74_cur] = ((((1.000000000000000) - (0.999900000000000)) + (((1.000000000000000) - (plugin->val_76)) * (0.999900000000000))) * (plugin->val_79)) + (((0.999900000000000) - (((1.000000000000000) - (plugin->val_76)) * (0.999900000000000))) * (plugin->val_75));
   1.362 +		plugin->buf_68[plugin->buf_68_cur] = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_70)) * (0.999000000000000))) * (plugin->val_73)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_70)) * (0.999000000000000))) * (plugin->val_69));
   1.363  		plugin->buf_29[plugin->buf_29_cur] = plugin->buf_30[pmf_delay(plugin->val_38, plugin->buf_30_cur, plugin->buf_30_len - 1)];
   1.364 -		plugin->buf_59[plugin->buf_59_cur] = fmodf((plugin->val_62) + (plugin->val_60), 1.000000000000000);
   1.365 -		plugin->buf_49[plugin->buf_49_cur] = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_51)) * (0.999000000000000))) * (plugin->val_54)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_51)) * (0.999000000000000))) * (plugin->val_50));
   1.366 -		plugin->buf_41[plugin->buf_41_cur] = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_43)) * (0.999000000000000))) * (plugin->val_46)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_43)) * (0.999000000000000))) * (plugin->val_42));
   1.367 +		plugin->buf_61[plugin->buf_61_cur] = fmodf((plugin->val_64) + (plugin->val_62), 1.000000000000000);
   1.368 +		plugin->buf_50[plugin->buf_50_cur] = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_52)) * (0.999000000000000))) * (plugin->val_55)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_52)) * (0.999000000000000))) * (plugin->val_51));
   1.369 +		plugin->buf_42[plugin->buf_42_cur] = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_44)) * (0.999000000000000))) * (plugin->val_47)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_44)) * (0.999000000000000))) * (plugin->val_43));
   1.370  		plugin->buf_22[plugin->buf_22_cur] = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_24)) * (0.999000000000000))) * (plugin->val_27)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_24)) * (0.999000000000000))) * (plugin->val_23));
   1.371  		plugin->buf_13[plugin->buf_13_cur] = ((((1.000000000000000) - (0.999000000000000)) + (((1.000000000000000) - (plugin->val_15)) * (0.999000000000000))) * (plugin->val_18)) + (((0.999000000000000) - (((1.000000000000000) - (plugin->val_15)) * (0.999000000000000))) * (plugin->val_14));
   1.372  
   1.373 @@ -572,18 +582,18 @@
   1.374  		plugin->buf_30_cur %= plugin->buf_30_len;
   1.375  		plugin->buf_32_cur++;
   1.376  		plugin->buf_32_cur %= 2;
   1.377 -		plugin->buf_72_cur++;
   1.378 -		plugin->buf_72_cur %= 2;
   1.379 -		plugin->buf_66_cur++;
   1.380 -		plugin->buf_66_cur %= 2;
   1.381 +		plugin->buf_74_cur++;
   1.382 +		plugin->buf_74_cur %= 2;
   1.383 +		plugin->buf_68_cur++;
   1.384 +		plugin->buf_68_cur %= 2;
   1.385  		plugin->buf_29_cur++;
   1.386  		plugin->buf_29_cur %= 2;
   1.387 -		plugin->buf_59_cur++;
   1.388 -		plugin->buf_59_cur %= 2;
   1.389 -		plugin->buf_49_cur++;
   1.390 -		plugin->buf_49_cur %= 2;
   1.391 -		plugin->buf_41_cur++;
   1.392 -		plugin->buf_41_cur %= 2;
   1.393 +		plugin->buf_61_cur++;
   1.394 +		plugin->buf_61_cur %= 2;
   1.395 +		plugin->buf_50_cur++;
   1.396 +		plugin->buf_50_cur %= 2;
   1.397 +		plugin->buf_42_cur++;
   1.398 +		plugin->buf_42_cur %= 2;
   1.399  		plugin->buf_22_cur++;
   1.400  		plugin->buf_22_cur %= 2;
   1.401  		plugin->buf_13_cur++;
     2.1 --- a/src/flanger.pmf	Wed Mar 24 22:29:58 2010 +0200
     2.2 +++ b/src/flanger.pmf	Wed Mar 24 22:51:53 2010 +0200
     2.3 @@ -31,6 +31,8 @@
     2.4  	util_bound_limit blf;
     2.5  	util_smooth_param_bound_limit spblw;
     2.6  	util_smooth_param_bound_limit spblmd;
     2.7 +	util_mul mw;
     2.8 +	util_sum sm;
     2.9  
    2.10  	o = bdw.o;
    2.11  
    2.12 @@ -60,8 +62,8 @@
    2.13  
    2.14  	cgo.i = lfo.o;
    2.15  	cgo.center = 0;
    2.16 -	cgo.gain = ssw.samples;
    2.17 -	cgo.offset = ssmd.samples;
    2.18 +	cgo.gain = mw.o;
    2.19 +	cgo.offset = sm.o;
    2.20  
    2.21  	ssmax.secs = 0.03;
    2.22  
    2.23 @@ -71,6 +73,12 @@
    2.24  
    2.25  	lfo.freq_ratio = hzfr.freq_ratio;
    2.26  
    2.27 +	mw.i1 = ssw.samples;
    2.28 +	mw.i2 = 0.5;
    2.29 +
    2.30 +	sm.i1 = mw.o;
    2.31 +	sm.i2 = ssmd.samples;
    2.32 +
    2.33  	hzfr.hz = blf.o;
    2.34  
    2.35  	blf.i = mod_frequency;