Nsound  0.9.4
FilterFlanger.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
2 //
3 // $Id: FilterFlanger.h 874 2014-09-08 02:21:29Z 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) 2010 to 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_FLANGER_H_
34 #define _NSOUND_FILTER_FLANGER_H_
35 
36 #include <Nsound/Filter.h>
37 
38 namespace Nsound
39 {
40 
41 // Forward class declarations
42 class AudioStream;
43 class Buffer;
44 class FilterDelay;
45 class Generator;
46 
47 //-----------------------------------------------------------------------------
49 class FilterFlanger : public Filter
50 {
51  public:
52 
54  const float64 & sample_rate,
55  const float64 & frequency,
56  const float64 & max_delay_time_seconds);
57 
58  FilterFlanger(const FilterFlanger & copy);
59 
61 
63  filter(const AudioStream & x);
64 
66  filter(
67  const AudioStream & x,
68  const float64 & frequency);
69 
71  filter(
72  const AudioStream & x,
73  const float64 & frequency,
74  const float64 & delay);
75 
77  filter(
78  const AudioStream & x,
79  const Buffer & frequency,
80  const Buffer & delay);
81 
82  Buffer
83  filter(const Buffer & x);
84 
85  Buffer
86  filter(
87  const Buffer & x,
88  const float64 & frequency);
89 
90  Buffer
91  filter(
92  const Buffer & x,
93  const float64 & frequency,
94  const float64 & delay);
95 
96  Buffer
97  filter(
98  const Buffer & x,
99  const Buffer & frequency,
100  const Buffer & delay);
101 
102  float64
103  filter(const float64 & x);
104 
105  float64
106  filter(
107  const float64 & x,
108  const float64 & frequency);
109 
110  float64
111  filter(
112  const float64 & x,
113  const float64 & frequency,
114  const float64 & delay);
115 
116  FilterFlanger &
117  operator=(const FilterFlanger & rhs);
118 
119  void
120  plot(boolean show_fc=false, boolean show_phase=false);
121 
122  void
123  reset();
124 
125  protected:
126 
131 
132 };
133 
134 };
135 
136 #endif
137 
138 // :mode=c++: jEdit modeline
FilterFlanger(const float64 &sample_rate, const float64 &frequency, const float64 &max_delay_time_seconds)
void plot(boolean show_fc=false, boolean show_phase=false)
AudioStream filter(const AudioStream &x)
FilterDelay * delay_
double float64
Definition: Nsound.h:146
Base class for IIR Filters, defines the interface.
Definition: Filter.h:49
A Buffer for storing audio samples.
Definition: Buffer.h:60
A class for filtering audio in the frequecy domain.
Definition: FilterDelay.h:47
A class for filtering audio in the frequecy domain.
Definition: FilterFlanger.h:49
A class the provides draw utilities and a wavetable oscillator.
Definition: Generator.h:50
FilterFlanger & operator=(const FilterFlanger &rhs)