BEAST - Free Software Audio Synthesizer and Tracker  0.10.0
bseiirfilter.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_IIR_FILTER_H__
3 #define __BSE_IIR_FILTER_H__
4 #include <bse/bsesource.hh>
5 #include <bse/bseenums.hh>
6 #ifdef __cplusplus
7 extern "C" {
8 #endif /* __cplusplus */
9 
10 #define BSE_TYPE_IIR_FILTER (bse_iir_filter_get_type())
11 #define BSE_IIR_FILTER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_IIR_FILTER, BseIIRFilter))
12 #define BSE_IIR_FILTER_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_IIR_FILTER, BseIIRFilterClass))
13 #define BSE_IS_IIR_FILTER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_IIR_FILTER))
14 #define BSE_IS_IIR_FILTER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_IIR_FILTER))
15 #define BSE_IIR_FILTER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_IIR_FILTER, BseIIRFilterClass))
16 #define BSE_IIR_FILTER_MAX_ORDER (18)
17 
19  gdouble a[BSE_IIR_FILTER_MAX_ORDER];
20  gdouble b[BSE_IIR_FILTER_MAX_ORDER];
21 };
22 struct BseIIRFilter : BseSource {
23  BseIIRFilterKind filter_algo;
24  BseIIRFilterType filter_type;
25  guint algo_type_change : 1;
26  guint order;
27  gdouble epsilon;
28  gfloat cut_off_freq1;
29  gfloat cut_off_freq2; /* band pass/stop */
30  gdouble a[BSE_IIR_FILTER_MAX_ORDER + 1];
31  gdouble b[BSE_IIR_FILTER_MAX_ORDER + 1];
32 };
34 {};
35 
36 enum
37 {
38  BSE_IIR_FILTER_ICHANNEL_MONO,
39  BSE_IIR_FILTER_N_ICHANNELS
40 };
41 enum
42 {
43  BSE_IIR_FILTER_OCHANNEL_MONO,
44  BSE_IIR_FILTER_N_OCHANNELS
45 };
46 
47 #ifdef __cplusplus
48 }
49 #endif /* __cplusplus */
50 #endif /* __BSE_IIR_FILTER_H__ */
Definition: bseiirfilter.hh:33
Definition: bseiirfilter.hh:18
Definition: bsefilter.hh:46
Definition: bsesource.hh:84
Definition: bsesource.hh:92