zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 158fc8a962b107cc9f97ffe93687e5958b6ae085
parent 06f7a78ec194db4b0057776fee4e79246139e750
Author: fundamental <mark.d.mccurry@gmail.com>
Date:   Sat,  9 Jul 2011 16:06:53 -0400

Eliminated some unneeded dependencies

Filter.h no longer includes most of DSP/

Diffstat:
Msrc/DSP/Filter.cpp | 14+++++++-------
Msrc/DSP/Filter.h | 14+++-----------
Msrc/DSP/FormantFilter.cpp | 5++++-
Msrc/Effects/DynamicFilter.cpp | 4++--
Msrc/Synth/ADnote.cpp | 5++---
Msrc/Synth/PADnote.cpp | 2+-
Msrc/Synth/SUBnote.cpp | 2+-
Msrc/Synth/SynthNote.h | 1+
8 files changed, 21 insertions(+), 26 deletions(-)

diff --git a/src/DSP/Filter.cpp b/src/DSP/Filter.cpp @@ -24,15 +24,18 @@ #include <stdio.h> #include "Filter.h" +#include "Filter_.h" +#include "AnalogFilter.h" +#include "FormantFilter.h" +#include "SVFilter.h" +#include "../Params/FilterParams.h" Filter::Filter(FilterParams *pars) { unsigned char Ftype = pars->Ptype; unsigned char Fstages = pars->Pstages; - category = pars->Pcategory; - - switch(category) { + switch(pars->Pcategory) { case 1: filter = new FormantFilter(pars); break; @@ -79,9 +82,6 @@ void Filter::setq(float q_) float Filter::getrealfreq(float freqpitch) { - if((category == 0) || (category == 2)) - return pow(2.0, freqpitch + 9.96578428); //log2(1000)=9.95748 - else - return freqpitch; + return pow(2.0, freqpitch + 9.96578428); //log2(1000)=9.95748 } diff --git a/src/DSP/Filter.h b/src/DSP/Filter.h @@ -25,28 +25,20 @@ #include "../globals.h" -#include "Filter_.h" -#include "AnalogFilter.h" -#include "FormantFilter.h" -#include "SVFilter.h" -#include "../Params/FilterParams.h" - class Filter { public: - Filter(FilterParams *pars); + Filter(class FilterParams *pars); ~Filter(); void filterout(float *smp); void setfreq(float frequency); void setfreq_and_q(float frequency, float q_); void setq(float q_); - float getrealfreq(float freqpitch); + static float getrealfreq(float freqpitch); private: - Filter_ *filter; - unsigned char category; + class Filter_ *filter; }; - #endif diff --git a/src/DSP/FormantFilter.cpp b/src/DSP/FormantFilter.cpp @@ -191,8 +191,11 @@ void FormantFilter::setgain(float /*dBgain*/) void FormantFilter::setfreq_and_q(float frequency, float q_) { + //Convert form real freq[Hz] + const float freq = log2(frequency) - 9.96578428; //log2(1000)=9.95748. + Qfactor = q_; - setpos(frequency); + setpos(freq); } diff --git a/src/Effects/DynamicFilter.cpp b/src/Effects/DynamicFilter.cpp @@ -74,8 +74,8 @@ void DynamicFilter::out(const Stereo<float *> &smp) ms4 = ms4 * (1.0 - ampsmooth2) + ms3 * ampsmooth2; const float rms = (sqrt(ms4)) * ampsns; - const float frl = filterl->getrealfreq(freq + lfol + rms); - const float frr = filterr->getrealfreq(freq + lfor + rms); + const float frl = Filter::getrealfreq(freq + lfol + rms); + const float frr = Filter::getrealfreq(freq + lfor + rms); filterl->setfreq_and_q(frl, q); filterr->setfreq_and_q(frr, q); diff --git a/src/Synth/ADnote.cpp b/src/Synth/ADnote.cpp @@ -963,7 +963,7 @@ void ADnote::computecurrentparameters() float tmpfilterfreq = globalfilterpitch + ctl->filtercutoff.relfreq + NoteGlobalPar.FilterFreqTracking; - tmpfilterfreq = NoteGlobalPar.GlobalFilterL->getrealfreq(tmpfilterfreq); + tmpfilterfreq = Filter::getrealfreq(tmpfilterfreq); float globalfilterq = NoteGlobalPar.FilterQ * ctl->filterq.relq; NoteGlobalPar.GlobalFilterL->setfreq_and_q(tmpfilterfreq, globalfilterq); @@ -1014,8 +1014,7 @@ void ADnote::computecurrentparameters() filterpitch += NoteVoicePar[nvoice].FilterLfo->lfoout(); filterfreq = filterpitch + NoteVoicePar[nvoice].FilterFreqTracking; - filterfreq = NoteVoicePar[nvoice].VoiceFilterL->getrealfreq( - filterfreq); + filterfreq = Filter::getrealfreq(filterfreq); NoteVoicePar[nvoice].VoiceFilterL->setfreq(filterfreq); if(stereo && NoteVoicePar[nvoice].VoiceFilterR) diff --git a/src/Synth/PADnote.cpp b/src/Synth/PADnote.cpp @@ -228,7 +228,7 @@ void PADnote::computecurrentparameters() float tmpfilterfreq = globalfilterpitch + ctl->filtercutoff.relfreq + NoteGlobalPar.FilterFreqTracking; - tmpfilterfreq = NoteGlobalPar.GlobalFilterL->getrealfreq(tmpfilterfreq); + tmpfilterfreq = Filter::getrealfreq(tmpfilterfreq); float globalfilterq = NoteGlobalPar.FilterQ * ctl->filterq.relq; NoteGlobalPar.GlobalFilterL->setfreq_and_q(tmpfilterfreq, globalfilterq); diff --git a/src/Synth/SUBnote.cpp b/src/Synth/SUBnote.cpp @@ -439,7 +439,7 @@ void SUBnote::computecurrentparameters() + GlobalFilterEnvelope->envout(); float filterfreq = globalfilterpitch + ctl->filtercutoff.relfreq + GlobalFilterFreqTracking; - filterfreq = GlobalFilterL->getrealfreq(filterfreq); + filterfreq = Filter::getrealfreq(filterfreq); GlobalFilterL->setfreq_and_q(filterfreq, globalfiltercenterq * ctl->filterq.relq); diff --git a/src/Synth/SynthNote.h b/src/Synth/SynthNote.h @@ -22,6 +22,7 @@ #ifndef SYNTH_NOTE_H #define SYNTH_NOTE_H #include "../globals.h" +#include "../Params/FilterParams.h" class SynthNote {