Nsound  0.9.4
FilterLowPassMoogVcf.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
2 //
3 // $Id: FilterLowPassMoogVcf.h 910 2015-07-09 03:05:58Z weegreenblobbie $
4 //
5 // Nsound is a C++ library and Python module for audio synthesis featuring
6 // dynamic digital filters. Nsound lets you easily shape waveforms and write
7 // to disk or plot them. Nsound aims to be as powerful as Csound but easy to
8 // use.
9 //
10 // Copyright (c) 2006 - Present Nick Hilton
11 //
12 // weegreenblobbie_yahoo_com (replace '_' with '@' and '.')
13 //
14 //-----------------------------------------------------------------------------
15 
16 //-----------------------------------------------------------------------------
17 //
18 // This program is free software; you can redistribute it and/or modify
19 // it under the terms of the GNU General Public License as published by
20 // the Free Software Foundation; either version 2 of the License, or
21 // (at your option) any later version.
22 //
23 // This program is distributed in the hope that it will be useful,
24 // but WITHOUT ANY WARRANTY; without even the implied warranty of
25 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 // GNU Library General Public License for more details.
27 //
28 // You should have received a copy of the GNU General Public License
29 // along with this program; if not, write to the Free Software
30 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
31 //
32 //-----------------------------------------------------------------------------
33 #ifndef _NSOUND_FILTER_LOW_PASS_MOOG_VCF_H_
34 #define _NSOUND_FILTER_LOW_PASS_MOOG_VCF_H_
35 
36 #include <Nsound/Filter.h>
37 
38 #include <set>
39 
40 namespace Nsound
41 {
42 
43 
45 {
46 
47 public:
48 
50  const float64 & sample_rate,
51  const float64 & cutoff_hz,
52  const float64 & resonance);
53 
54  virtual ~FilterLowPassMoogVcf() {}
55 
56  virtual
57  float64
58  filter(const float64 & x);
59 
60  virtual
61  float64
62  filter(const float64 & x, const float64 & cutoff_hz);
63 
64  virtual
65  float64
66  filter(
67  const float64 & x,
68  const float64 & cutoff_hz,
69  const float64 & resonance);
70 
71  void
72  plot(boolean show_fc = true, boolean show_phase = false);
73 
76  void
77  reset();
78 
79 protected:
80 
81  void _make_filter(float64 cutoff_hz, float64 resonance);
82 
88 
92 
93 
94 }; // class FilterLowPassMoogVcf
95 
96 
97 } // namespace Nsound
98 
99 // :mode=c++: jEdit modeline
100 #endif
virtual float64 filter(const float64 &x)
FilterLowPassMoogVcf(const float64 &sample_rate, const float64 &cutoff_hz, const float64 &resonance)
double float64
Definition: Nsound.h:146
Base class for IIR Filters, defines the interface.
Definition: Filter.h:49
void _make_filter(float64 cutoff_hz, float64 resonance)
void plot(boolean show_fc=true, boolean show_phase=false)