BEAST - Free Software Audio Synthesizer and Tracker  0.9.2
davguitar.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 __DAV_GUITAR_H__
3 #define __DAV_GUITAR_H__
4 
5 #include <bse/bseplugin.hh>
6 #include <bse/bsesource.hh>
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif /* __cplusplus */
11 
12 /* --- object type macros --- */
13 #define DAV_TYPE_GUITAR (type_id_guitar)
14 #define DAV_GUITAR(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), DAV_TYPE_GUITAR, DavGuitar))
15 #define DAV_GUITAR_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), DAV_TYPE_GUITAR, DavGuitar))
16 #define DAV_IS_GUITAR(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), DAV_TYPE_GUITAR))
17 #define DAV_IS_GUITAR_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), DAV_TYPE_GUITAR))
18 #define DAV_GUITAR_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), DAV_TYPE_GUITAR, DavGuitarClass))
19 
20 struct WaveGuide {
21  gfloat freq;
22  gfloat lowpass_data, lowpass_coeff;
23  gint wavelen;
24  gint pos;
25  gfloat *data;
26 };
27 struct DavGuitar : BseSource {
28  gfloat hipass_data, hipass_coeff;
29  gint body_taps[6];
30  WaveGuide strings[6];
31  WaveGuide body;
32  gfloat trigger_vel;
33  gfloat metallic_factor;
34  gfloat snap_factor;
35 };
37 {};
38 
39 enum
40 {
41  DAV_GUITAR_OCHANNEL_NONE,
42  DAV_GUITAR_OCHANNEL_MONO
43 };
44 
45 #ifdef __cplusplus
46 }
47 #endif /* __cplusplus */
48 #endif /* __DAV_GUITAR_H__ */
Definition: davguitar.hh:36
Definition: davguitar.hh:20
Definition: davguitar.hh:27
Definition: bsesource.hh:84
Definition: bsesource.hh:92