24 class GusPatchEnvelopeBase;
25 class GusPatchEnvelope;
26 #define BSE_STANDARD_TYPE_GUS_PATCH_ENVELOPE BSE_CXX_DECLARED_CLASS_TYPE (Bse::Standard, GusPatchEnvelope)
27 #define BSE_STANDARD_IS_GUS_PATCH_ENVELOPE(o) (::Bse::CxxBase::instance_is_a (o, BSE_STANDARD_TYPE_GUS_PATCH_ENVELOPE))
52 BSE_CXX_DECLARE_CLASS (GusPatchEnvelope);
55 static inline const unsigned char* pixstream () {
return NULL; }
57 static inline const char* options () {
return "unstable"; }
58 static inline const char* category () {
static const char *c = NULL;
59 return c ? c : c = sfi_category_concat (
"/Modules", (
"/Misc/StandardGusPatchEnvelope")); }
60 static inline const char* i18n_category () {
static const char *c = NULL;
61 return c ? c : c = sfi_category_concat (
"/Modules", _(
"/Misc/StandardGusPatchEnvelope")); }
62 static inline const char* blurb () {
return _(
"StandardGusPatchEnvelope is an Envelope for GUS Patches\n\nGUS Patches contain different volume settings and tremolo settings for different notes, and the envelopes are of a non-standard form, thus using a BseWaveOsc alone is not enough to produce the sound of the GUS Patches; to accomplish the playing, you thus need to connect one (or for stereo two) BseWaveOsc(s) and their Gate Output Signal to this module."); }
63 static inline const char* authors () {
return "Stefan Westerfeld"; }
64 static inline const char* license () {
return _(
"GNU Lesser General Public License"); }
65 static inline const char* type_name () {
return "BseStandardGusPatchEnvelope"; }
70 ICHANNEL_RETRIGGER_IN,
83 enum GusPatchEnvelopePropertyID {
89 typedef GusPatchEnvelopePropertyID IDType;
97 typedef void AutoUpdateCategory;
101 void get_property (GusPatchEnvelopePropertyID prop_id, ::
Bse::Value &value, GParamSpec *pspec)
105 ::Bse::CxxBase::value_set_gobject (&value, wave);
109 void set_property (GusPatchEnvelopePropertyID prop_id, const ::Bse::Value &value, GParamSpec *pspec)
113 wave = ::Bse::CxxBase::value_get_gobject< BseWave> (&value);
116 property_changed (GusPatchEnvelopePropertyID (prop_id));
122 virtual bool editable_property (GusPatchEnvelopePropertyID prop_id, GParamSpec *pspec)
129 void property_updated (GusPatchEnvelopePropertyID prop_id, guint64 tick_stamp,
double prop_value, GParamSpec *pspec)
131 bool seen_change =
false;
136 property_changed (GusPatchEnvelopePropertyID (prop_id)))
140 static struct StaticData {
144 virtual bool property_changed (GusPatchEnvelopePropertyID) {
return false; }
145 virtual ~GusPatchEnvelopeBase ()
165 klass->set_accessors (::Bse::cxx_get_property_trampoline<GusPatchEnvelopeBase, GusPatchEnvelopePropertyID>,
166 ::Bse::cxx_set_property_trampoline<GusPatchEnvelopeBase, GusPatchEnvelopePropertyID>,
167 ::Bse::cxx_editable_property_trampoline<GusPatchEnvelopeBase, GusPatchEnvelopePropertyID>,
168 ::Bse::cxx_get_candidates_trampoline<GusPatchEnvelopeBase, GusPatchEnvelopePropertyID>,
170 klass->add_param (PROP_WAVE, sfidl_pspec_TypedObject_default (_(
"Properties"),
"/opt/src/beast/plugins/standardguspatchenvelope.idl",753,
"wave", BSE_TYPE_WAVE));
171 klass->add_ichannel (
"frequency", _(
"Frequency"), _(
"Frequency Input"), ICHANNEL_FREQUENCY);
172 klass->add_ichannel (
"gate_in", _(
"Gate In"), _(
"Gate input (activates/deactivates envelope)"), ICHANNEL_GATE_IN);
173 klass->add_ichannel (
"retrigger_in", _(
"Retrigger In"), _(
"Retrigger input (raising edge retriggers envelope)"), ICHANNEL_RETRIGGER_IN);
174 klass->add_ichannel (
"audio_in", _(
"Audio In"), _(
"Audio Input of the WaveOsc playing the patch"), ICHANNEL_AUDIO_IN);
175 klass->add_ichannel (
"audio_gate", _(
"Audio Gate"), _(
"Gate Output of the WaveOsc playing the patch"), ICHANNEL_AUDIO_GATE);
176 klass->add_ochannel (
"audio_out1", _(
"Audio Out1"), _(
"Envelope audio output 1 (left output signal)"), OCHANNEL_AUDIO_OUT1);
177 klass->add_ochannel (
"audio_out2", _(
"Audio Out2"), _(
"Envelope audio output 2 (right output signal)"), OCHANNEL_AUDIO_OUT2);
178 klass->add_ochannel (
"done_out", _(
"Done Out"), _(
"This signal goes high after the release phase has completed"), OCHANNEL_DONE_OUT);
186 #define BSE_CXX_REGISTER_ALL_TYPES_FROM_STANDARDGUSPATCHENVELOPE_IDL() \
187 BSE_CXX_REGISTER_EFFECT (GusPatchEnvelope); \
Definition: standardguspatchenvelope.genidl.hh:88
Definition: bsecxxvalue.hh:13
Definition: bsewave.hh:26
Definition: sficxx.hh:168
Definition: standardguspatchenvelope.genidl.hh:53
Definition: bsecxxmodule.hh:92
Definition: bsecxxbase.hh:14