1 /*
2 	Scape.h
3 
4 	Copyright 2004-16 Tim Goetze <tim@quitte.de>
5 
6 	http://quitte.de/dsp/
7 
8 */
9 /*
10 	This program is free software; you can redistribute it and/or
11 	modify it under the terms of the GNU General Public License
12 	as published by the Free Software Foundation; either version 3
13 	of the License, or (at your option) any later version.
14 
15 	This program is distributed in the hope that it will be useful,
16 	but WITHOUT ANY WARRANTY; without even the implied warranty of
17 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 	GNU General Public License for more details.
19 
20 	You should have received a copy of the GNU General Public License
21 	along with this program; if not, write to the Free Software
22 	Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
23 	02111-1307, USA or point your web browser to http://www.gnu.org.
24 */
25 
26 #ifndef SCAPE_H
27 #define SCAPE_H
28 
29 #include "dsp/Sine.h"
30 #include "dsp/Roessler.h"
31 #include "dsp/Lorenz.h"
32 #include "dsp/Delay.h"
33 #include "dsp/IIR1.h"
34 #include "dsp/IIR2.h"
35 #include "dsp/RBJ.h"
36 #include "dsp/SVF.h"
37 
38 class Scape
39 : public Plugin
40 {
41 	public:
42 		sample_t time, fb;
43 		double period;
44 
45 		struct {
46 			DSP::Lorenz lorenz;
47 			DSP::LP1<sample_t> lp;
get__anon6b45bb5c010848 			sample_t get() { return lp.process(lorenz.get()); }
49 		} lfo[2];
50 
51 		DSP::Delay delay;
52 		DSP::SVFI<1> svf[4];
53 		DSP::HP1<float> hipass[4];
54 
55 		void cycle (uint frames);
56 
57 	public:
58 		static PortInfo port_info [];
59 
60 		void init();
61 		void activate();
62 };
63 
64 class DDDelay
65 : public Plugin
66 {
67 	public:
68 		struct {
69 			DSP::Delay delay;
70 			DSP::LP1<sample_t> lp;
71 		} step[4];
72 		void cycle (uint frames);
73 
74 	public:
75 		static PortInfo port_info [];
76 
77 		void init();
78 		void activate();
79 };
80 
81 #endif /* SCAPE_H */
82