summaryrefslogtreecommitdiff
path: root/attic/muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.h
diff options
context:
space:
mode:
authorRobert Jonsson <spamatica@gmail.com>2011-03-07 19:01:11 +0000
committerRobert Jonsson <spamatica@gmail.com>2011-03-07 19:01:11 +0000
commite40fc849149dd97c248866a4a1d026dda5e57b62 (patch)
treeb12b358f3b3a0608001d30403358f8443118ec5f /attic/muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.h
parent1bd4f2e8d9745cabb667b043171cad22c8577768 (diff)
clean3
Diffstat (limited to 'attic/muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.h')
-rw-r--r--attic/muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/attic/muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.h b/attic/muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.h
new file mode 100644
index 00000000..7cb52499
--- /dev/null
+++ b/attic/muse_qt4_evolution/synti/zynaddsubfx/DSP/FormantFilter.h
@@ -0,0 +1,67 @@
+/*
+ ZynAddSubFX - a software synthesizer
+
+ FormantFilter.h - formant filter
+ Copyright (C) 2002-2005 Nasca Octavian Paul
+ Author: Nasca Octavian Paul
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of version 2 of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License (version 2) for more details.
+
+ You should have received a copy of the GNU General Public License (version 2)
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+*/
+
+#ifndef FORMANT_FILTER_H
+#define FORMANT_FILTER_H
+
+#include "../globals.h"
+#include "Filter_.h"
+#include "AnalogFilter.h"
+#include "../Params/FilterParams.h"
+
+
+class FormantFilter:public Filter_{
+ public:
+ FormantFilter(FilterParams *pars);
+ ~FormantFilter();
+ void filterout(REALTYPE *smp);
+ void setfreq(REALTYPE frequency);
+ void setfreq_and_q(REALTYPE frequency,REALTYPE q_);
+ void setq(REALTYPE q_);
+
+ void cleanup();
+ private:
+ AnalogFilter *formant[FF_MAX_FORMANTS];
+ REALTYPE *inbuffer,*tmpbuf;
+
+ struct {
+ REALTYPE freq,amp,q;//frequency,amplitude,Q
+ } formantpar[FF_MAX_VOWELS][FF_MAX_FORMANTS],currentformants[FF_MAX_FORMANTS];
+
+ struct {
+ unsigned char nvowel;
+ } sequence [FF_MAX_SEQUENCE];
+
+ REALTYPE oldformantamp[FF_MAX_FORMANTS];
+
+ int sequencesize,numformants,firsttime;
+ REALTYPE oldinput,slowinput;
+ REALTYPE Qfactor,formantslowness,oldQfactor;
+ REALTYPE vowelclearness,sequencestretch;
+
+ void setpos(REALTYPE input);
+
+};
+
+
+#endif
+