*** empty log message ***
[chuck-blob.git] / exile / v1 / src / ugen_filter.h
blob6e9d8b26dabdd6ed07ecfc8d5f99b7ea3779f147
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
22 U.S.A.
23 -----------------------------------------------------------------------------*/
25 //-----------------------------------------------------------------------------
26 // file: ugen_filter.h
27 // desc: ...
29 // author: Ge Wang (gewang@cs.princeton.edu)
30 // Perry R. Cook (prc@cs.princeton.edu)
31 // date: Spring 2004
32 //-----------------------------------------------------------------------------
33 #ifndef __UGEN_FILTER_H__
34 #define __UGEN_FILTER_H__
36 #include "chuck_dl.h"
39 // query
40 DLL_QUERY filter_query( Chuck_DL_Query * query );
42 // filter
43 UGEN_CTOR filter_ctor( t_CKTIME now );
44 UGEN_DTOR filter_dtor( t_CKTIME now, void * data );
45 UGEN_TICK filter_tick( t_CKTIME now, void * data, SAMPLE in, SAMPLE * out );
46 UGEN_CTRL filter_ctrl_coefs( t_CKTIME now, void * data, void * value );
47 UGEN_CGET filter_cget_coefs( t_CKTIME now, void * data, void * out );
48 UGEN_PMSG filter_pmsg( t_CKTIME now, void * data, const char * msg, void * value );
50 // biquad
51 UGEN_CTOR biquad_ctor( t_CKTIME now );
52 UGEN_DTOR biquad_dtor( t_CKTIME now, void * data );
53 UGEN_TICK biquad_tick( t_CKTIME now, void * data, SAMPLE in, SAMPLE * out );
55 UGEN_CTRL biquad_ctrl_pfreq( t_CKTIME now, void * data, void * value );
56 UGEN_CGET biquad_cget_pfreq( t_CKTIME now, void * data, void * value );
57 UGEN_CTRL biquad_ctrl_prad( t_CKTIME now, void * data, void * value );
58 UGEN_CGET biquad_cget_prad( t_CKTIME now, void * data, void * value );
59 UGEN_CTRL biquad_ctrl_zfreq( t_CKTIME now, void * data, void * value );
60 UGEN_CGET biquad_cget_zfreq( t_CKTIME now, void * data, void * value );
61 UGEN_CTRL biquad_ctrl_zrad( t_CKTIME now, void * data, void * value );
62 UGEN_CGET biquad_cget_zrad( t_CKTIME now, void * data, void * value );
63 UGEN_CTRL biquad_ctrl_norm( t_CKTIME now, void * data, void * value );
64 UGEN_CGET biquad_cget_norm( t_CKTIME now, void * data, void * value );
65 UGEN_CTRL biquad_ctrl_pregain( t_CKTIME now, void * data, void * value );
66 UGEN_CGET biquad_cget_pregain( t_CKTIME now, void * data, void * value );
67 UGEN_CTRL biquad_ctrl_eqzs( t_CKTIME now, void * data, void * value );
68 UGEN_CGET biquad_cget_eqzs( t_CKTIME now, void * data, void * value );
69 UGEN_CTRL biquad_ctrl_b0( t_CKTIME now, void * data, void * value );
70 UGEN_CGET biquad_cget_b0( t_CKTIME now, void * data, void * value );
71 UGEN_CTRL biquad_ctrl_b1( t_CKTIME now, void * data, void * value );
72 UGEN_CGET biquad_cget_b1( t_CKTIME now, void * data, void * value );
73 UGEN_CTRL biquad_ctrl_b2( t_CKTIME now, void * data, void * value );
74 UGEN_CGET biquad_cget_b2( t_CKTIME now, void * data, void * value );
75 UGEN_CTRL biquad_ctrl_a0( t_CKTIME now, void * data, void * value );
76 UGEN_CGET biquad_cget_a0( t_CKTIME now, void * data, void * value );
77 UGEN_CTRL biquad_ctrl_a1( t_CKTIME now, void * data, void * value );
78 UGEN_CGET biquad_cget_a1( t_CKTIME now, void * data, void * value );
79 UGEN_CTRL biquad_ctrl_a2( t_CKTIME now, void * data, void * value );
80 UGEN_CGET biquad_cget_a2( t_CKTIME now, void * data, void * value );
82 // onepole
83 UGEN_CTOR onepole_ctor( t_CKTIME now );
84 UGEN_DTOR onepole_dtor( t_CKTIME now, void * data );
85 UGEN_TICK onepole_tick( t_CKTIME now, void * data, SAMPLE in, SAMPLE * out );
86 UGEN_CTRL onepole_ctrl_pole( t_CKTIME now, void * data, void * value );
88 // onezero
89 UGEN_CTOR onezero_ctor( t_CKTIME now );
90 UGEN_DTOR onezero_dtor( t_CKTIME now, void * data );
91 UGEN_TICK onezero_tick( t_CKTIME now, void * data, SAMPLE in, SAMPLE * out );
92 UGEN_CTRL onezero_ctrl_zero( t_CKTIME now, void * data, void * value );
94 // twopole
95 UGEN_CTOR twopole_ctor( t_CKTIME now );
96 UGEN_DTOR twopole_dtor( t_CKTIME now, void * data );
97 UGEN_TICK twopole_tick( t_CKTIME now, void * data, SAMPLE in, SAMPLE * out );
98 UGEN_CTRL twopole_ctrl_freq( t_CKTIME now, void * data, void * value );
99 UGEN_CTRL twopole_ctrl_rad( t_CKTIME now, void * data, void * value );
100 UGEN_CTRL twopole_ctrl_norm( t_CKTIME now, void * data, void * value );
102 // twozero
103 UGEN_CTOR twozero_ctor( t_CKTIME now );
104 UGEN_DTOR twozero_dtor( t_CKTIME now, void * data );
105 UGEN_TICK twozero_tick( t_CKTIME now, void * data, SAMPLE in, SAMPLE * out );
106 UGEN_CTRL twozero_ctrl_freq( t_CKTIME now, void * data, void * value );
107 UGEN_CTRL twozero_ctrl_rad( t_CKTIME now, void * data, void * value );
109 // gQ
110 UGEN_CTOR gQ_ctor( t_CKTIME now );
111 UGEN_DTOR gQ_dtor( t_CKTIME now, void * data );
112 UGEN_TICK gQ_tick( t_CKTIME now, void * data, SAMPLE in, SAMPLE * out );
113 UGEN_CTRL gQ_ctrl_freq( t_CKTIME now, void * data, void * value );
114 UGEN_CTRL gQ_ctrl_rad( t_CKTIME now, void * data, void * value );
116 // allpass
117 UGEN_CTOR allpass_ctor( t_CKTIME now );
118 UGEN_DTOR allpass_dtor( t_CKTIME now, void * data );
119 UGEN_TICK allpass_tick( t_CKTIME now, void * data, SAMPLE in, SAMPLE * out );
120 UGEN_PMSG allpass_pmsg( t_CKTIME now, void * data, const char * msg, void * value );
122 // delay
123 UGEN_CTOR delay_ctor( t_CKTIME now );
124 UGEN_DTOR delay_dtor( t_CKTIME now, void * data );
125 UGEN_TICK delay_tick( t_CKTIME now, void * data, SAMPLE in, SAMPLE * out );
126 UGEN_CTRL delay_ctrl_delay( t_CKTIME now, void * data, void * value );
127 UGEN_CTRL delay_ctrl_max( t_CKTIME now, void * data, void * value );
128 UGEN_CTRL delay_ctrl_tap( t_CKTIME now, void * data, void * value );
129 UGEN_CTRL delay_ctrl_energy( t_CKTIME now, void * data, void * value );
131 // delayA
132 UGEN_CTOR delayA_ctor( t_CKTIME now );
133 UGEN_DTOR delayA_dtor( t_CKTIME now, void * data );
134 UGEN_TICK delayA_tick( t_CKTIME now, void * data, SAMPLE in, SAMPLE * out );
135 UGEN_CTRL delayA_ctrl_delay( t_CKTIME now, void * data, void * value );
136 UGEN_CTRL delayA_ctrl_max( t_CKTIME now, void * data, void * value );
138 // delayL
139 UGEN_CTOR delayL_ctor( t_CKTIME now );
140 UGEN_DTOR delayL_dtor( t_CKTIME now, void * data );
141 UGEN_TICK delayL_tick( t_CKTIME now, void * data, SAMPLE in, SAMPLE * out );
142 UGEN_CTRL delayL_ctrl_delay( t_CKTIME now, void * data, void * value );
143 UGEN_CTRL delayL_ctrl_max( t_CKTIME now, void * data, void * value );
148 #endif