Plugin design

From Buzztard

Jump to: navigation, search

Contents

Audio Test Source

  • based on code in sine (sinesrc)
  • new properties
    • waveform = { silence, sine, saw, srq, noise }

now available in gstreamer cvs ;)

Simple Synth

Simple 1 osczillator synthesizer based on audiotestsrc. (gstsimsyn in gst-buzztard cvs)

properties

  • note (trigger)
  • volume
  • length (note-length)
  • filter
    • filter-type
    • cutoff
  • envelope
    • attack-time
    • decay-time
    • sustain-level
    • release-time

algorithm

Note is the trigger param. It restarts the envelopes by setting the tone-time to 0.

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.

filter

Use a state variable filter. That would add three parameters

  • filter-type = { low-pass, high-pass, band-pass, notch }
  • cut-off frequency
  • resonance

variants

Have a polyphonic version. Have a version with multiple osczillators.

Panorama

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)
  • output stereo
  • parameter : pan-lr

Quadro

  • accept mono/stereo/multi-channel
    • mix multiple to mono before
  • output quadro (mapping?)
  • parameter : pan-lr, pan-fr
Support Us

Collaboration

SourceForge Logo
GStreamer Logo
Become a Friend of GNOME
Linux Sound Logo
MediaWiki
Valgrind
GNU Library Public Licence
GNU Free Documentation License 1.2