66 |
SYNTHESIS_MODE_SET_IMPLEMENTATION(SynthesisMode, false); |
SYNTHESIS_MODE_SET_IMPLEMENTATION(SynthesisMode, false); |
67 |
#endif |
#endif |
68 |
SYNTHESIS_MODE_SET_PROFILING(SynthesisMode, true); |
SYNTHESIS_MODE_SET_PROFILING(SynthesisMode, true); |
69 |
|
|
70 |
|
FilterLeft.Reset(); |
71 |
|
FilterRight.Reset(); |
72 |
} |
} |
73 |
|
|
74 |
Voice::~Voice() { |
Voice::~Voice() { |
524 |
|
|
525 |
|
|
526 |
#if FORCE_FILTER_USAGE |
#if FORCE_FILTER_USAGE |
527 |
SYNTHESIS_MODE_SET_FILTER(SynthesisMode, true); |
const bool bUseFilter = true; |
528 |
#else // use filter only if instrument file told so |
#else // use filter only if instrument file told so |
529 |
SYNTHESIS_MODE_SET_FILTER(SynthesisMode, pDimRgn->VCFEnabled); |
const bool bUseFilter = pDimRgn->VCFEnabled; |
530 |
#endif // FORCE_FILTER_USAGE |
#endif // FORCE_FILTER_USAGE |
531 |
if (pDimRgn->VCFEnabled) { |
SYNTHESIS_MODE_SET_FILTER(SynthesisMode, bUseFilter); |
532 |
|
if (bUseFilter) { |
533 |
#ifdef OVERRIDE_FILTER_CUTOFF_CTRL |
#ifdef OVERRIDE_FILTER_CUTOFF_CTRL |
534 |
VCFCutoffCtrl.controller = OVERRIDE_FILTER_CUTOFF_CTRL; |
VCFCutoffCtrl.controller = OVERRIDE_FILTER_CUTOFF_CTRL; |
535 |
#else // use the one defined in the instrument file |
#else // use the one defined in the instrument file |
951 |
biquad_param_t bqmain; |
biquad_param_t bqmain; |
952 |
float prev_cutoff = pEngine->pSynthesisParameters[Event::destination_vcfc][0]; |
float prev_cutoff = pEngine->pSynthesisParameters[Event::destination_vcfc][0]; |
953 |
float prev_res = pEngine->pSynthesisParameters[Event::destination_vcfr][0]; |
float prev_res = pEngine->pSynthesisParameters[Event::destination_vcfr][0]; |
954 |
FilterLeft.SetParameters(&bqbase, &bqmain, prev_cutoff, prev_res, pEngine->SampleRate); |
FilterLeft.SetParameters( &bqbase, &bqmain, prev_cutoff + FILTER_CUTOFF_MIN, prev_res, pEngine->SampleRate); |
955 |
FilterRight.SetParameters(&bqbase, &bqmain, prev_cutoff, prev_res, pEngine->SampleRate); |
FilterRight.SetParameters(&bqbase, &bqmain, prev_cutoff + FILTER_CUTOFF_MIN, prev_res, pEngine->SampleRate); |
956 |
pEngine->pBasicFilterParameters[0] = bqbase; |
pEngine->pBasicFilterParameters[0] = bqbase; |
957 |
pEngine->pMainFilterParameters[0] = bqmain; |
pEngine->pMainFilterParameters[0] = bqmain; |
958 |
|
|
965 |
{ |
{ |
966 |
prev_cutoff = pEngine->pSynthesisParameters[Event::destination_vcfc][i]; |
prev_cutoff = pEngine->pSynthesisParameters[Event::destination_vcfc][i]; |
967 |
prev_res = pEngine->pSynthesisParameters[Event::destination_vcfr][i]; |
prev_res = pEngine->pSynthesisParameters[Event::destination_vcfr][i]; |
968 |
FilterLeft.SetParameters(&bqbase, &bqmain, prev_cutoff, prev_res, pEngine->SampleRate); |
FilterLeft.SetParameters( &bqbase, &bqmain, prev_cutoff + FILTER_CUTOFF_MIN, prev_res, pEngine->SampleRate); |
969 |
FilterRight.SetParameters(&bqbase, &bqmain, prev_cutoff, prev_res, pEngine->SampleRate); |
FilterRight.SetParameters(&bqbase, &bqmain, prev_cutoff + FILTER_CUTOFF_MIN, prev_res, pEngine->SampleRate); |
970 |
} |
} |
971 |
} |
} |
972 |
|
|