void Harmonizer2::run(LV2_Handle instance, uint32_t n_samples) { Harmonizer2 *plugin; plugin = (Harmonizer2 *) instance; float *in = plugin->ports[IN]; float *out_clean = plugin->ports[OUT_CLEAN]; float *out_1 = plugin->ports[OUT_1]; float *out_2 = plugin->ports[OUT_2]; int Tone = (int)(*(plugin->ports[TONE])); int Scale = (int)(*(plugin->ports[SCALE])); int Interval_1 = (int)(*(plugin->ports[INTERVAL_1])); int Interval_2 = (int)(*(plugin->ports[INTERVAL_2])); int Mode = (int)(*(plugin->ports[MODE])); int LowNote = (int)(*(plugin->ports[LOWNOTE])); double gain_clean = (double)(*(plugin->ports[GAIN_CLEAN])); double gain_1 = (double)(*(plugin->ports[GAIN_1])); double gain_2 = (double)(*(plugin->ports[GAIN_2])); if ( (plugin->obja)->hopa != (int)n_samples ) { plugin->Realloc(n_samples, nBuffersSW(n_samples,32,16,8,4), nBuffersSW(n_samples,16,8,4,2)); return; } if (InputAbsSum(in, n_samples) == 0) { fill_n(out_clean,n_samples,0); fill_n(out_1,n_samples,0); fill_n(out_2,n_samples,0); return; } (plugin->objgc)->SetGaindB(gain_clean); (plugin->objg1)->SetGaindB(gain_1); (plugin->objg2)->SetGaindB(gain_2); (plugin->obja)->PreAnalysis(plugin->nBuffers, in); (plugin->objs_1)->PreSinthesis(); (plugin->objs_2)->PreSinthesis(); (plugin->objpd)->PreProcessing(plugin->nBuffers2, in); if (plugin->cont < plugin->nBuffers-1) plugin->cont = plugin->cont + 1; else { (plugin->objpd)->FindNote(); FindStep((plugin->objpd)->note, (plugin->objpd)->oitava, Tone, Scale, Interval_1, Mode, LowNote, &plugin->s_1); FindStep((plugin->objpd)->note, (plugin->objpd)->oitava, Tone, Scale, Interval_2, Mode, LowNote, &plugin->s_2); (plugin->obja)->Analysis(); (plugin->objs_1)->Sinthesis(plugin->s_1); (plugin->objs_2)->Sinthesis(plugin->s_2); (plugin->objgc)->SimpleGain((plugin->obja)->frames, out_clean); (plugin->objg1)->SimpleGain((plugin->objs_1)->yshift, out_1); (plugin->objg2)->SimpleGain((plugin->objs_2)->yshift, out_2); } }
//------------------------------------------------------------------------------ Real RootFinder::GetStep(const GmatEpoch currentEpoch) { return FindStep(currentEpoch); }