1 /*----------------------------------------------------------------------------
2 ChucK Concurrent, On-the-fly Audio Programming Language
3 Compiler and Virtual Machine
5 Copyright (c) 2004 Ge Wang and Perry R. Cook. All rights reserved.
6 http://chuck.cs.princeton.edu/
7 http://soundlab.cs.princeton.edu/
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
23 -----------------------------------------------------------------------------*/
25 //-----------------------------------------------------------------------------
26 // file: ugen_filter.h
29 // author: Ge Wang (gewang@cs.princeton.edu)
30 // Perry R. Cook (prc@cs.princeton.edu)
31 // Philip L. Davidson (philipd@cs.princeton.edu)
33 //-----------------------------------------------------------------------------
34 #ifndef __UGEN_FILTER_H__
35 #define __UGEN_FILTER_H__
41 DLL_QUERY
filter_query( Chuck_DL_Query
* query
);
44 CK_DLL_CTOR( FilterBasic_ctor
);
45 CK_DLL_DTOR( FilterBasic_dtor
);
46 CK_DLL_TICK( FilterBasic_tick
);
47 CK_DLL_PMSG( FilterBasic_pmsg
);
48 CK_DLL_CTRL( FilterBasic_ctrl_freq
);
49 CK_DLL_CGET( FilterBasic_cget_freq
);
50 CK_DLL_CTRL( FilterBasic_ctrl_Q
);
51 CK_DLL_CGET( FilterBasic_cget_Q
);
52 CK_DLL_CTRL( FilterBasic_ctrl_set
);
55 CK_DLL_CTOR( LPF_ctor
);
56 CK_DLL_DTOR( LPF_dtor
);
57 CK_DLL_TICK( LPF_tick
);
58 CK_DLL_PMSG( LPF_pmsg
);
59 CK_DLL_CTRL( LPF_ctrl_freq
);
60 CK_DLL_CGET( LPF_cget_freq
);
63 CK_DLL_CTOR( HPF_ctor
);
64 CK_DLL_DTOR( HPF_dtor
);
65 CK_DLL_TICK( HPF_tick
);
66 CK_DLL_PMSG( HPF_pmsg
);
67 CK_DLL_CTRL( HPF_ctrl_freq
);
68 CK_DLL_CGET( HPF_cget_freq
);
71 CK_DLL_CTOR( BPF_ctor
);
72 CK_DLL_DTOR( BPF_dtor
);
73 CK_DLL_TICK( BPF_tick
);
74 CK_DLL_PMSG( BPF_pmsg
);
75 CK_DLL_CTRL( BPF_ctrl_freq
);
76 CK_DLL_CGET( BPF_cget_freq
);
77 CK_DLL_CTRL( BPF_ctrl_Q
);
78 CK_DLL_CGET( BPF_cget_Q
);
79 CK_DLL_CTRL( BPF_ctrl_set
);
82 CK_DLL_CTOR( BRF_ctor
);
83 CK_DLL_DTOR( BRF_dtor
);
84 CK_DLL_TICK( BRF_tick
);
85 CK_DLL_PMSG( BRF_pmsg
);
86 CK_DLL_CTRL( BRF_ctrl_freq
);
87 CK_DLL_CGET( BRF_cget_freq
);
88 CK_DLL_CTRL( BRF_ctrl_Q
);
89 CK_DLL_CGET( BRF_cget_Q
);
90 CK_DLL_CTRL( BRF_ctrl_set
);
93 CK_DLL_CTOR( RLPF_ctor
);
94 CK_DLL_DTOR( RLPF_dtor
);
95 CK_DLL_TICK( RLPF_tick
);
96 CK_DLL_PMSG( RLPF_pmsg
);
97 CK_DLL_CTRL( RLPF_ctrl_freq
);
98 CK_DLL_CGET( RLPF_cget_freq
);
99 CK_DLL_CTRL( RLPF_ctrl_Q
);
100 CK_DLL_CGET( RLPF_cget_Q
);
101 CK_DLL_CTRL( RLPF_ctrl_set
);
104 CK_DLL_CTOR( RHPF_ctor
);
105 CK_DLL_DTOR( RHPF_dtor
);
106 CK_DLL_TICK( RHPF_tick
);
107 CK_DLL_PMSG( RHPF_pmsg
);
108 CK_DLL_CTRL( RHPF_ctrl_freq
);
109 CK_DLL_CGET( RHPF_cget_freq
);
110 CK_DLL_CTRL( RHPF_ctrl_Q
);
111 CK_DLL_CGET( RHPF_cget_Q
);
112 CK_DLL_CTRL( RHPF_ctrl_set
);
115 CK_DLL_CTOR( ResonZ_ctor
);
116 CK_DLL_DTOR( ResonZ_dtor
);
117 CK_DLL_TICK( ResonZ_tick
);
118 CK_DLL_PMSG( ResonZ_pmsg
);
119 CK_DLL_CTRL( ResonZ_ctrl_freq
);
120 CK_DLL_CGET( ResonZ_cget_freq
);
121 CK_DLL_CTRL( ResonZ_ctrl_Q
);
122 CK_DLL_CGET( ResonZ_cget_Q
);
123 CK_DLL_CTRL( ResonZ_ctrl_set
);
126 CK_DLL_CTOR( filter_ctor
);
127 CK_DLL_DTOR( filter_dtor
);
128 CK_DLL_TICK( filter_tick
);
129 CK_DLL_CTRL( filter_ctrl_coefs
);
130 CK_DLL_CGET( filter_cget_coefs
);
131 CK_DLL_PMSG( filter_pmsg
);
134 CK_DLL_CTOR( biquad_ctor
);
135 CK_DLL_DTOR( biquad_dtor
);
136 CK_DLL_TICK( biquad_tick
);
138 CK_DLL_CTRL( biquad_ctrl_pfreq
);
139 CK_DLL_CGET( biquad_cget_pfreq
);
140 CK_DLL_CTRL( biquad_ctrl_prad
);
141 CK_DLL_CGET( biquad_cget_prad
);
142 CK_DLL_CTRL( biquad_ctrl_zfreq
);
143 CK_DLL_CGET( biquad_cget_zfreq
);
144 CK_DLL_CTRL( biquad_ctrl_zrad
);
145 CK_DLL_CGET( biquad_cget_zrad
);
146 CK_DLL_CTRL( biquad_ctrl_norm
);
147 CK_DLL_CGET( biquad_cget_norm
);
148 CK_DLL_CTRL( biquad_ctrl_pregain
);
149 CK_DLL_CGET( biquad_cget_pregain
);
150 CK_DLL_CTRL( biquad_ctrl_eqzs
);
151 CK_DLL_CGET( biquad_cget_eqzs
);
152 CK_DLL_CTRL( biquad_ctrl_b0
);
153 CK_DLL_CGET( biquad_cget_b0
);
154 CK_DLL_CTRL( biquad_ctrl_b1
);
155 CK_DLL_CGET( biquad_cget_b1
);
156 CK_DLL_CTRL( biquad_ctrl_b2
);
157 CK_DLL_CGET( biquad_cget_b2
);
158 CK_DLL_CTRL( biquad_ctrl_a0
);
159 CK_DLL_CGET( biquad_cget_a0
);
160 CK_DLL_CTRL( biquad_ctrl_a1
);
161 CK_DLL_CGET( biquad_cget_a1
);
162 CK_DLL_CTRL( biquad_ctrl_a2
);
163 CK_DLL_CGET( biquad_cget_a2
);
166 CK_DLL_CTOR( teabox_ctor
);
167 CK_DLL_TICK( teabox_tick
);
168 CK_DLL_CGET( teabox_cget_analog
);
169 CK_DLL_CGET( teabox_cget_digital
);
170 CK_DLL_PMSG( teabox_pmsg
);
173 CK_DLL_CTOR( onepole_ctor
);
174 CK_DLL_DTOR( onepole_dtor
);
175 CK_DLL_TICK( onepole_tick
);
176 CK_DLL_CTRL( onepole_ctrl_pole
);
179 CK_DLL_CTOR( onezero_ctor
);
180 CK_DLL_DTOR( onezero_dtor
);
181 CK_DLL_TICK( onezero_tick
);
182 CK_DLL_CTRL( onezero_ctrl_zero
);
185 CK_DLL_CTOR( twopole_ctor
);
186 CK_DLL_DTOR( twopole_dtor
);
187 CK_DLL_TICK( twopole_tick
);
188 CK_DLL_CTRL( twopole_ctrl_freq
);
189 CK_DLL_CTRL( twopole_ctrl_rad
);
190 CK_DLL_CTRL( twopole_ctrl_norm
);
193 CK_DLL_CTOR( twozero_ctor
);
194 CK_DLL_DTOR( twozero_dtor
);
195 CK_DLL_TICK( twozero_tick
);
196 CK_DLL_CTRL( twozero_ctrl_freq
);
197 CK_DLL_CTRL( twozero_ctrl_rad
);
200 CK_DLL_CTOR( gQ_ctor
);
201 CK_DLL_DTOR( gQ_dtor
);
202 CK_DLL_TICK( gQ_tick
);
203 CK_DLL_CTRL( gQ_ctrl_freq
);
204 CK_DLL_CTRL( gQ_ctrl_rad
);
207 CK_DLL_CTOR( allpass_ctor
);
208 CK_DLL_DTOR( allpass_dtor
);
209 CK_DLL_TICK( allpass_tick
);
210 CK_DLL_PMSG( allpass_pmsg
);
213 CK_DLL_CTOR( delay_ctor
);
214 CK_DLL_DTOR( delay_dtor
);
215 CK_DLL_TICK( delay_tick
);
216 CK_DLL_CTRL( delay_ctrl_delay
);
217 CK_DLL_CTRL( delay_ctrl_max
);
218 CK_DLL_CTRL( delay_ctrl_tap
);
219 CK_DLL_CTRL( delay_ctrl_energy
);
222 CK_DLL_CTOR( delayA_ctor
);
223 CK_DLL_DTOR( delayA_dtor
);
224 CK_DLL_TICK( delayA_tick
);
225 CK_DLL_CTRL( delayA_ctrl_delay
);
226 CK_DLL_CTRL( delayA_ctrl_max
);
229 CK_DLL_CTOR( delayL_ctor
);
230 CK_DLL_DTOR( delayL_dtor
);
231 CK_DLL_TICK( delayL_tick
);
232 CK_DLL_CTRL( delayL_ctrl_delay
);
233 CK_DLL_CTRL( delayL_ctrl_max
);