リビジョン | 067e1222e07bdb1d39ad744a8cd62efcf2f5ed76 (tree) |
---|---|
日時 | 2019-03-15 23:19:07 |
作者 | Starg <starg@user...> |
コミッター | Starg |
Import UnkoTim225
@@ -13636,15 +13636,21 @@ static void do_od_ds_parallel(DATA_T *buf, int32 count, InfoOverdrive *info1, In | ||
13636 | 13636 | { |
13637 | 13637 | int32 i, j, k; |
13638 | 13638 | DATA_T input[2]; |
13639 | + simple_delay *dly = &info2->dly; | |
13639 | 13640 | |
13640 | 13641 | if(count == MAGIC_INIT_EFFECT_INFO) { |
13641 | 13642 | do_od_ds_multi(buf, count, info1); |
13642 | - do_od_ds_multi(buf, count, info2); | |
13643 | + do_od_ds_multi(buf, count, info2); | |
13644 | + set_delay(&info2->dly, playmode_rate_ms * 1.5); | |
13645 | + return; | |
13646 | + }else if(count == MAGIC_FREE_EFFECT_INFO) { | |
13647 | + free_delay(&info2->dly); | |
13643 | 13648 | return; |
13644 | 13649 | }else if(count <= 0) |
13645 | 13650 | return; |
13646 | 13651 | for(i = 0; i < count; i++) { |
13647 | 13652 | input[0] = buf[i]; input[1] = buf[i + 1]; |
13653 | + do_delay(&input[1], dly->buf, dly->size, &dly->index); | |
13648 | 13654 | /* waveshaping amp simulation anti-aliasing */ |
13649 | 13655 | sample_filter_left(&info1->bw1, &input[0]); |
13650 | 13656 | sample_filter_left(&info2->bw1, &input[1]); |
@@ -431,30 +431,6 @@ typedef struct { | ||
431 | 431 | int32 feedbacki; |
432 | 432 | } mod_allpass; |
433 | 433 | |
434 | -/*! Moog VCF (resonant IIR state variable filter) */ | |
435 | -typedef struct { | |
436 | - int16 freq, last_freq; /* in Hz */ | |
437 | - double res_dB, last_res_dB; /* in dB */ | |
438 | - FLOAT_T df, dq, dp; /* coefficients in fixed-point */ | |
439 | - FLOAT_T db0, db1, db2, db3, db4; | |
440 | - int32 f, q, p; /* coefficients in fixed-point */ | |
441 | - int32 ib0, ib1, ib2, ib3, ib4; | |
442 | -} filter_moog; | |
443 | - | |
444 | -/*! Moog VCF (resonant IIR state variable filter with distortion) */ | |
445 | -typedef struct { | |
446 | - int16 freq, last_freq; /* in Hz */ | |
447 | - double res_dB, last_res_dB; /* in dB */ | |
448 | - double dist, last_dist, f, q, p, d, b0, b1, b2, b3, b4; | |
449 | -} filter_moog_dist; | |
450 | - | |
451 | -/*! LPF18 (resonant IIR lowpass filter with waveshaping) */ | |
452 | -typedef struct { | |
453 | - int16 freq, last_freq; /* in Hz */ | |
454 | - double dist, res, last_dist, last_res; /* in linear */ | |
455 | - double ay1, ay2, aout, lastin, kres, value, kp, kp1h; | |
456 | -} filter_lpf18; | |
457 | - | |
458 | 434 | |
459 | 435 | /*! allpass filter */ |
460 | 436 | typedef struct _allpass { |
@@ -939,6 +915,7 @@ typedef struct { | ||
939 | 915 | Drive drv1, drv2, drv3; |
940 | 916 | FilterCoefficients bw1, bw2, bw3, bw4, bq; |
941 | 917 | InfoAmpSimulator amp; |
918 | + simple_delay dly; | |
942 | 919 | } InfoOverdrive; |
943 | 920 | |
944 | 921 | #define PHASER_PHASE 12 |