Plugin design

From Buzztard

Jump to: navigation, search

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)
  • 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
Personal tools
collaboration

SourceForge Logo

GStreamer Logo

Linux Sound Logo

MediaWiki

Valgrind

GNU Library Public Licence

GNU Free Documentation License 1.2