Plugin design
From Buzztard
Contents |
[edit] Audio Test Source
- based on code in sine (sinesrc)
- new properties
- waveform = { silence, sine, saw, srq, noise }
now available in gstreamer cvs ;)
[edit] Simple Synth
Simple 1 osczillator synthesizer based on audiotestsrc. (gstsimsyn in gst-buzztard cvs)
[edit] properties
- note (trigger)
- volume
- length (note-length)
- filter
- filter-type
- cutoff
- envelope
- attack-time
- decay-time
- sustain-level
- release-time
[edit] algorithm
Note is the trigger param. It restarts the envelopes by setting the tone-time to 0.
[edit] envelope generator
The idea is that we build have a internal envelope object. The control-value property is managed by gstreamer-controller. When the envelope properties of the gstreamer-element change, they affect the control-points of the envelope object.
The gst-element needs to implement the tempo iface if we allow envelope-segment times to be specified as tick-times.
[edit] filter
Use a state variable filter. That would add three parameters
- filter-type = { low-pass, high-pass, band-pass, notch }
- cut-off frequency
- resonance
[edit] variants
Have a polyphonic version. Have a version with multiple osczillators.
[edit] Panorama
[edit] Stereo
- accept mono/stereo
- mix stereo to mono first, or do balance for stereo input
- pan moves data hard left right,
- balance for stereo would balance the stereo image (ctrl -100: left unchanged, right->left, ctrl 0: left,right unchanged, ctrl 100: left->right, right unhanged)
- mix stereo to mono first, or do balance for stereo input
- output stereo
- parameter : pan-lr
[edit] Quadro
- accept mono/stereo/multi-channel
- mix multiple to mono before
- output quadro (mapping?)
- parameter : pan-lr, pan-fr



