BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
davsyndrum.hh
Go to the documentation of this file.
00001  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
00002 #ifndef __DAV_SYNDRUM_H__
00003 #define __DAV_SYNDRUM_H__
00004 
00005 #include <bse/bseplugin.hh>
00006 #include <bse/bsesource.hh>
00007 
00008 G_BEGIN_DECLS
00009 
00010 
00011 /* --- object type macros --- */
00012 #define DAV_TYPE_SYN_DRUM              (dav_syn_drum_get_type())
00013 #define DAV_SYN_DRUM(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), DAV_TYPE_SYN_DRUM, DavSynDrum))
00014 #define DAV_SYN_DRUM_CLASS(class)      (G_TYPE_CHECK_CLASS_CAST ((class), DAV_TYPE_SYN_DRUM, DavSynDrumClass))
00015 #define DAV_IS_SYN_DRUM(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), DAV_TYPE_SYN_DRUM))
00016 #define DAV_IS_SYN_DRUM_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), DAV_TYPE_SYN_DRUM))
00017 #define DAV_SYN_DRUM_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), DAV_TYPE_SYN_DRUM, DavSynDrumClass))
00018 
00019 struct DavSynDrumParams {
00020   gfloat freq;
00021   gfloat trigger_vel;
00022   gfloat ratio;
00023   gfloat res; /* sample rate specific */
00024 };
00025 struct DavSynDrum : BseSource {
00026   DavSynDrumParams params; /* .res is unused (due to its sample rate dependency) */
00027   gfloat           half;
00028   gboolean         force_trigger;
00029 };
00030 struct DavSynDrumClass : BseSourceClass
00031 {};
00032 struct DavSynDrumModule {
00033   DavSynDrumParams params;
00034   gfloat last_trigger_level;
00035   gfloat spring_vel;
00036   gfloat spring_pos;
00037   gfloat env;
00038   gfloat freq_rad;
00039   gfloat freq_shift;
00040 };
00041 
00042 enum
00043 {
00044   DAV_SYN_DRUM_ICHANNEL_FREQ,
00045   DAV_SYN_DRUM_ICHANNEL_RATIO,
00046   DAV_SYN_DRUM_ICHANNEL_TRIGGER,
00047   DAV_SYN_DRUM_N_ICHANNELS
00048 };
00049 enum
00050 {
00051   DAV_SYN_DRUM_OCHANNEL_MONO,
00052   DAV_SYN_DRUM_N_OCHANNELS
00053 };
00054 
00055 G_END_DECLS
00056 
00057 #endif /* __DAV_SYNDRUM_H__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines