Beast - Music Synthesizer and Composer  0.11.1+10.g2da35
bsebiquadfilter.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef __BSE_BIQUAD_FILTER_H__
3 #define __BSE_BIQUAD_FILTER_H__
4 
5 #include <bse/bsesource.hh>
6 #include <bse/gslfilter.hh>
7 
8 
9 /* --- type macros --- */
10 #define BSE_TYPE_BIQUAD_FILTER (BSE_TYPE_ID (BseBiquadFilter))
11 #define BSE_BIQUAD_FILTER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_BIQUAD_FILTER, BseBiquadFilter))
12 #define BSE_BIQUAD_FILTER_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_BIQUAD_FILTER, BseBiquadFilterClass))
13 #define BSE_IS_BIQUAD_FILTER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_BIQUAD_FILTER))
14 #define BSE_IS_BIQUAD_FILTER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_BIQUAD_FILTER))
15 #define BSE_BIQUAD_FILTER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_BIQUAD_FILTER, BseBiquadFilterClass))
16 
17 
18 /* --- enums --- */
19 typedef enum
20 {
21  BSE_BIQUAD_FILTER_RESONANT_LOWPASS = GSL_BIQUAD_RESONANT_LOWPASS,
22  BSE_BIQUAD_FILTER_RESONANT_HIGHPASS = GSL_BIQUAD_RESONANT_HIGHPASS,
23 } BseBiquadFilterType;
24 typedef enum /* skip */
25 {
26  BSE_BIQUAD_FILTER_NORM_PASSBAND = GSL_BIQUAD_NORMALIZE_PASSBAND,
27  BSE_BIQUAD_FILTER_NORM_RESONANCE_GAIN = GSL_BIQUAD_NORMALIZE_RESONANCE_GAIN,
28  BSE_BIQUAD_FILTER_NORM_PEAK_GAIN = GSL_BIQUAD_NORMALIZE_PEAK_GAIN
29 } BseBiquadFilterNorm;
30 /* --- BseBiquadFilter source --- */
31 struct BseBiquadFilter;
34  BseBiquadFilterType filter_type;
35  guint type_change : 1;
36  guint exponential_fm : 1;
37  gfloat freq;
38  gfloat fm_strength;
39  gfloat fm_n_octaves;
40  BseBiquadFilterNorm norm_type;
41  gfloat gain;
42  gfloat gain_strength;
43 };
45 {};
46 
47 /* --- channels --- */
48 enum
49 {
50  BSE_BIQUAD_FILTER_ICHANNEL_AUDIO,
51  BSE_BIQUAD_FILTER_ICHANNEL_FREQ,
52  BSE_BIQUAD_FILTER_ICHANNEL_FREQ_MOD,
53  BSE_BIQUAD_FILTER_ICHANNEL_GAIN_MOD,
54  BSE_BIQUAD_FILTER_N_ICHANNELS
55 };
56 enum
57 {
58  BSE_BIQUAD_FILTER_OCHANNEL_AUDIO,
59  BSE_BIQUAD_FILTER_N_OCHANNELS
60 };
61 
62 
63 #endif /* __BSE_BIQUAD_FILTER_H__ */
Definition: bsesource.hh:82
Definition: bsebiquadfilter.hh:33
Definition: bsesource.hh:90
Definition: bsebiquadfilter.hh:44