BEAST/BSE - Better Audio System and Sound Engine
0.8.2
|
00001 // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html 00002 #ifndef __BSE_MIDI_SYNTH_H__ 00003 #define __BSE_MIDI_SYNTH_H__ 00004 00005 #include <bse/bsesnet.hh> 00006 #include <bse/bsesubsynth.hh> 00007 00008 G_BEGIN_DECLS 00009 00010 /* --- object type macros --- */ 00011 #define BSE_TYPE_MIDI_SYNTH (BSE_TYPE_ID (BseMidiSynth)) 00012 #define BSE_MIDI_SYNTH(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_MIDI_SYNTH, BseMidiSynth)) 00013 #define BSE_MIDI_SYNTH_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_MIDI_SYNTH, BseMidiSynthClass)) 00014 #define BSE_IS_MIDI_SYNTH(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_MIDI_SYNTH)) 00015 #define BSE_IS_MIDI_SYNTH_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_MIDI_SYNTH)) 00016 #define BSE_MIDI_SYNTH_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_MIDI_SYNTH, BseMidiSynthClass)) 00017 00018 struct BseMidiSynth : BseSNet { 00019 guint midi_channel_id; 00020 guint n_voices; 00021 gfloat volume_factor; /* 1-based factor */ 00022 BseSNet *snet; 00023 BseSNet *pnet; 00024 BseSource *voice_input; 00025 BseSource *voice_switch; 00026 BseSource *context_merger; 00027 BseSource *postprocess; 00028 BseSource *output; 00029 BseSource *sub_synth; 00030 }; 00031 struct BseMidiSynthClass : BseSNetClass 00032 {}; 00033 00034 G_END_DECLS 00035 #endif /* __BSE_MIDI_SYNTH_H__ */