[Bug 698927] New: LADSPA improved port to gstreamer 1.0
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Fri Apr 26 02:22:52 PDT 2013
https://bugzilla.gnome.org/show_bug.cgi?id=698927
GStreamer | gst-plugins-bad | git
Summary: LADSPA improved port to gstreamer 1.0
Classification: Platform
Product: GStreamer
Version: git
OS/Version: Linux
Status: UNCONFIRMED
Severity: major
Priority: Normal
Component: gst-plugins-bad
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: juanmabcmail at gmail.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created an attachment (id=242525)
View: https://bugzilla.gnome.org/attachment.cgi?id=242525
Review: https://bugzilla.gnome.org/review?bug=698927&attachment=242525
LADSPA improved port to gstreamer 1.0
LADSPA improved port to gstreamer 1.0
---------------------------
Hi, i just wanted to share my LADSPA plugin for gstreamer 1.0. Perhaps the old
implementation was just poorly documented, and just by that the implementation
rendered not very usable, perhaps it was not really channel capable, i don't
know, anyway it was not ported to 1.0 so i assume a big patch was expected.
Still like a 50% of code is reused mainly for plugin detection, description
LRDF tagging, gobject, and very basic LADSPA usage, that code was really nice,
the other part is really big change, since it was basing in GstSignalProcessor,
which i were told by ensonic to be broken, and better rebase the work on
BaseSrc, BaseTransform and BaseSink. As special, the GstLADSPAModule is used
because of the dynamic nature of this plugin of plugins and takes care of
proper class finalization. At the usual elements level, the GstLADSPASrc is
heavily based on audiotestsrc with carefull attention to what can be reused and
what not, so is the GstLADSPASink heavily based on fakesink, GstLADSPAFilter is
derived from AudioFilter and inspired in audioecho. All authors are keeping
some credit in some way or another in the source files and the elements
metadata.
The patch itself is 139K, unreviewable, but as an apply result it looks good
to review. Consider strongly, that almost 90% of the code is a copy of other
accepted code. It is, it would be easier to just see the old, (discard, mainly
as broken and not ported) and see the new implementation.
Enjoy!
---------------------------
IRC talk with ensonic starting the left of GstSignalProcessor in favour of
BaseSource, BaseTransform and BaseSink:
[21:11] <ensonic> juanmabc, whats up?
[21:12] <ensonic> juanmabc, don't use the GstSignalprocessor baseclass in bad,
it does not work well
[21:12] <juanmabc> yeah, trying to port ladspa
[21:13] <juanmabc> ensonic: alternatives ?
[21:13] <ensonic> juanmabc, okay, I'll try to sumarize
[21:14] <ensonic> juanmabc, gst signal processor is a single class subclassing
basetransform, but also driving sources, that does not work well
[21:14] <ensonic> juanmabc, we need separate baseclasses for sources,
transforms/filters and sinks
[21:15] <ensonic> this would basically replicat basesrc, basetransform and
basesink, the reason we can't use the existing ones is, that some of the ladspa
elements have multiple ports
[21:16] <ensonic> now in many cases where they have multiple ports, those are
e.g. stereo pairs (which is not query-able on the api)
[21:17] <ensonic> so one (pragmatic) idea would be to actually use basesrc,
basetransform and basesink and ignore elemnets that have multiple ports
[21:18] <juanmabc> yeah
[21:18] <ensonic> 2nd step would be to have a list of know port-pairs (e.g.
that for ladspa plugin XYZ "in-left" and "in-right" actually form a stereo
pair)
[21:18] <ensonic> with this list we can support probably 90% of them
[21:19] <ensonic> I think a list would work as ladspa is sort of superseeded
with lv2 and in lv2 we can query channel groups
[21:19] <juanmabc> could i get an stereo input and pass internally each channel
to In_R and In_L?
[21:19] <ensonic> I don't expect lots of new ladspa plugins
[21:19] <ensonic> juanmabc, yes
[21:19] <juanmabc> outputing Out_R Out_L again to a stereo output
[21:19] <ensonic> juanmabc, in 1.0 we support non-interleaved audio
[21:19] <juanmabc> that's something
[21:20] <juanmabc> still you can switch the channels in ports, but perhaps on
the pipeline?
[21:20] <juanmabc> can't
[21:20] <ensonic> what do you mean by that?
[21:21] <juanmabc> if you want ladspa In_R to Out_L
[21:21] <juanmabc> you do In_R to Out_R internally then some ! swap channels
[21:21] <ensonic> btw. I am leaving in about 10 min, but I am online most of
the time otherwise
[21:21] <juanmabc> i thing that basesrc/trns/sink and that could do it
[21:21] <juanmabc> thanks
[21:22] <ensonic> juanmabc, I think the channel swapping could be done with a
custom element, but I'd say for most elements we'd like to use the ports as
advertised
[21:24] <ensonic> cu
[21:25] <juanmabc> bye, thanks
I could have some issues because i do not really understand what ensonic was
meaning with the channel multiport mapping, though it is said on the relevant
file with a FIXME and assumed a LADSPA in -> out. The tests i've been running
either are lucky or work really great. If all goes well, lv2 plugins could
also take profit of this implementation.
---------------------------
Documentation explaining some basics (i could not test the tagging):
* SECTION:element-ladspa
* @short_description: bridge for LADSPA (Linux Audio Developer's Simple Plugin
API)
* @see_also: #GstAudioConvert #GstAudioResample, #GstAudioTestSrc,
#GstAutoAudioSink
*
* The LADSPA (Linux Audio Developer's Simple Plugin API) plugin is a bridge
* for plugins using the <ulink url="http://www.ladspa.org/">LADSPA</ulink>
API.
* It scans all installed LADSPA plugins and registers them as gstreamer
* elements. If available it can also parse LRDF files and use the metadata for
* element classification. The functionality you get depends on the LADSPA
plugins
* you have installed.
*
* First off all you can apply not live LADSPA filters without this plugin:
*
* <refsect2>
* <title>Example LADSPA line without this plugins</title>
* |[
* (padsp) listplugins
* (padsp) analyseplugin cmt.so amp_mono
* gst-launch -e filesrc location="$myfile" ! decodebin ! audioconvert !
audioresample ! "audio/x-raw,format=S16LE,rate=48000,channels=1" ! wavenc !
filesink location="testin.wav"
* (padsp) applyplugin testin.wav testout.wav cmt.so amp_mono 2
* gst-launch playbin uri=file://"$PWD"/testout.wav
* ]| Decode any audio file into wav with the format expected for the specific
ladspa plugin to be applied, apply the ladspa filter and play it.
* </refsect2>
*
* Now with this plugin:
*
* <refsect2>
* <title>Example LADSPA line with this plugins</title>
* |[
* gst-launch autoaudiosrc ! ladspa-cmt-so-amp-mono gain=2 !
ladspa-caps-so-Plate ! ladspa-tap-echo-so-tap-stereo-echo l-delay=500
r-haas-delay=500 ! tee name=myT myT. ! queue ! autoaudiosink myT. ! queue !
audioconvert ! goom ! videoconvert ! xvimagesink pixel-aspect-ratio=3/4
* ]| Get audio input, filter it through CAPS Plate and TAP Stereo Echo, play
it and show a visualization (recommended hearphones).
* </refsect2>
*
* In case you wonder the plugin naming scheme, quoting ladspa.h:
* "Plugin types should be identified by file and label rather than by
* index or plugin name, which may be changed in new plugin versions."
* This is really the best way then, and so it is less prone to conflicts.
*
* Also it is worth noting that LADSPA provides a control in and out interface,
* on top of the audio in and out one, so some parameters are readable too.
*
* You can see the listing of plugins available with:
* <refsect2>
* <title>Inspecting the plugins list</title>
* |[
* gst-inspect ladspa
* ]| List available LADSPA plugins on gstreamer.
* </refsect2>
*
* You can see the parameters of any plugin with:
* <refsect2>
* <title>Inspecting the plugins</title>
* |[
* gst-inspect ladspa-retro-flange-1208-so-retroFlange
* ]| List details of the plugin, parameters, range and defaults included.
* </refsect2>
*
* The elements categorize in:
* <itemizedlist>
* <listitem><para>Filter/Effect/Audio/LADSPA:</para>
* <refsect2>
* <title>Example Filter/Effect/Audio/LADSPA line with this plugins</title>
* |[
* gst-launch filesrc location="$myfile" ! decodebin ! audioconvert !
audioresample ! ladspa-calf-so-Reverb decay-time=15 high-frq-damp=20000
room-size=5 diffusion=1 wet-amount=2 dry-amount=2 pre-delay=50 bass-cut=20000
treble-cut=20000 ! ladspa-tap-echo-so-tap-stereo-echo l-delay=500
r-haas-delay=500 ! autoaudiosink
* ]| Decode any audio file, filter it through Calf Reverb LADSPA then TAP
Stereo Echo, and play it.
* </refsect2>
* <refsect2>
* </listitem>
* <listitem><para>Source/Audio/LADSPA:</para>
* <refsect2>
* <title>Example Source/Audio/LADSPA line with this plugins</title>
* |[
* gst-launch -e ladspasrc-sine-so-sine-fcac frequency=220 amplitude=100 !
audioconvert ! "audio/x-raw,rate=22050" ! autoaudiosink
* ]| Generate a sine wave with Sine Oscillator (Freq:control, Amp:control),
convert it to 22050 Hz and play it.
* </refsect2>
* <refsect2>
* <title>Example Source/Audio/LADSPA line with this plugins</title>
* |[
* gst-launch -e ladspasrc-caps-so-Click bpm=240 volume=1 ! autoaudiosink
* ]| Generate clicks with CAPS Click - Metronome at 240 beats per minute and
play it.
* </refsect2>
* <refsect2>
* <title>Example Source/Audio/LADSPA line with this plugins</title>
* |[
* gst-launch -e ladspasrc-random-1661-so-random-fcsc-oa !
ladspa-cmt-so-amp-mono gain=1.5 ! ladspa-caps-so-Plate ! tee name=myT myT. !
queue ! autoaudiosink myT. ! queue ! audioconvert ! wavescope ! videoconvert !
autovideosink
* ]| Generate random wave, filter it trhough Mono Amplifier and Versatile
Plate Reverb, and play, while showing, it.
* </refsect2>
* </listitem>
* <listitem><para>Sink/Audio/LADSPA:</para>
* <refsect2>
* <title>Example Sink/Audio/LADSPA line with this plugins</title>
* |[
* gst-launch -e autoaudiosrc ! ladspa-cmt-so-amp-mono gain=2 !
ladspa-caps-so-Plate ! ladspa-tap-echo-so-tap-stereo-echo l-delay=500
r-haas-delay=500 ! tee name=myT myT. ! audioconvert ! audioresample ! queue !
ladspasink-cmt-so-null-ai dump=true myT. ! audioconvert ! audioresample ! queue
! goom ! videoconvert ! xvimagesink pixel-aspect-ratio=3/4
* ]| Get audio input, filter it trhough Mono Amplifier, CAPS Plate LADSPA and
TAP Stereo Echo, explicitily anulate audio with Null (Audio Input) dumping
contents, and play a visualization (recommended hearphones).
* </refsect2>
* </listitem>
* </itemizedlist>
*/
I use also for testing something huge like:
export myfile="some.avi"
GST_PLUGIN_PATH="." gst-launch-1.0 filesrc location="$myfile" ! decodebin !
audioconvert ! audioresample ! ladspa-caps-so-Plate bandwidth=0.999 tail=0.749
damping=1 blend=0.5 ! ladspa-tap-echo-so-tap-stereo-echo ! audioconvert !
ladspa-cmt-so-amp-mono gain=5 ! ladspa-cmt-so-delay-5s delay=3 !
ladspa-cmt-so-amp-mono gain=2 ! autoaudiosink # this is a super pipeline
GST_PLUGIN_PATH="." gst-launch-1.0 ladspasrc-caps-so-Click bpm=60 volume=1 !
tee name=myT myT. ! queue ! autoaudiosink myT. ! queue ! audioconvert !
wavescope ! videoconvert ! xvimagesink pixel-aspect-ratio=3/4
GST_PLUGIN_PATH="." gst-launch-1.0 ladspasrc-random-1661-so-random-fcsc-oa !
"audio/x-raw,rate=48000" ! ladspa-cmt-so-amp-mono gain=2 ! ladspa-caps-so-Plate
! ladspa-tap-echo-so-tap-stereo-echo l-delay=500 r-haas-delay=500 ! tee
name=myT myT. ! queue ! autoaudiosink myT. ! queue ! audioconvert ! goom !
videoconvert ! xvimagesink pixel-aspect-ratio=3/4
GST_PLUGIN_PATH="." gst-launch-1.0 ladspasrc-cmt-so-pink-full-frequency !
ladspa-cmt-so-amp-mono gain=2 ! ladspa-caps-so-Plate !
ladspa-tap-echo-so-tap-stereo-echo l-delay=500 r-haas-delay=500 ! tee name=myT
myT. ! queue ! autoaudiosink myT. ! queue ! audioconvert ! goom ! videoconvert
! xvimagesink pixel-aspect-ratio=3/4
---------------------------
The naming scheme was really needed since conflicts where happening on the
background:
$ gst-inspect-0.10 ladspa
...
344 elements
$ gst-inspect-1.0 ladspa
...
357 elements
note that now, this is in line with:
$ padsp listplugins |grep -vE '\.so'|wc -l
357
The parameter beautification was also needed since it was not really near the
user (yes, 0.10 required that ---- in the parameter name, and the description
was missing stuff, happening more than one could expect):
$ gst-inspect-0.10 ladspa-tap-stereo-echo
...
R-Haas-Feedback---- : R-Haas-Feedback----
flags: readable, writable, controllable
Float. Range: 0 - 100 Default:
0
...
$ gst-inspect-1.0 ladspa-tap-echo-so-tap-stereo-echo
...
r-haas-feedback : R/Haas Feedback [%]
flags: readable, writable, controllable
Float. Range: 0 - 100 Default:
0
...
The element naming, ladspa-stuff ladspasrc-stuff and ladspasink-stuff is
inspired in the GStreamer tendency (audiotestsrc, autoaudiosink, audioecho).
---------------------------
Here is the listing on my computer for reference:
$ gst-inspect-1.0 ladspa
Plugin Details:
Name: ladspa
Description: LADSPA plugin
Filename: ./.libs/libgstladspa.so
Version: 1.0.6
License: LGPL
Source module: gst-plugins-bad
Source release date: 2013-03-22
Binary package: GStreamer Bad Plug-ins source release
Origin URL: Unknown package origin
ladspa-tape-delay-1211-so-tapeDelay: Tape Delay Simulation
ladspa-guitarix-amp-so-guitarix-amp: guitarix_amp
ladspa-retro-flange-1208-so-retroFlange: Retro Flanger
ladspa-amp-1654-so-amp-gaia-oa: Amplifier (GAIA)
ladspa-amp-1654-so-amp-gcia-oa: Amplifier (GCIA)
ladspa-mvclpf24-so-Mvclpf-1: Mvclpf-1 Digital implementation of the VC
filter invented by R.A.Moog
ladspa-mvclpf24-so-Mvclpf-2: Mvclpf-2 Digital implementation of the VC
filter invented by R.A.Moog
ladspa-mvclpf24-so-Mvclpf-3: Mvclpf-3 Digital implementation of the VC
filter invented by R.A.Moog
ladspa-mvclpf24-so-Mvclpf-4: Mvclpf-4 Digital implementation of the VC
filter invented by R.A.Moog
ladspa-square-1643-so-square-fa-oa: Bandlimited Square Oscillator (FA)
ladspasrc-square-1643-so-square-fc-oa: Bandlimited Square Oscillator (FC)
ladspa-lcr-delay-1436-so-lcrDelay: L/C/R Delay
ladspa-gong-beater-1439-so-gongBeater: Gong beater
ladspa-filters-so-Parametric1: 4-band parametric filter
ladspa-amp-so-amp-mono: Mono Amplifier
ladspa-amp-so-amp-stereo: Stereo Amplifier
ladspa-tap-reverb-so-tap-reverb: TAP Reverberator
ladspa-wave-terrain-1412-so-waveTerrain: Wave Terrain Oscillator
ladspa-harmonic-gen-1220-so-harmonicGen: Harmonic generator
ladspa-se4-1883-so-se4: SE4
ladspa-guitarix-distortion-so-guitarix-distortion: guitarix_distortion
ladspasrc-impulse-1885-so-impulse-fc: Nonbandlimited single-sample impulses
(Frequency: Control)
ladspa-cs-chorus-so-Chorus1: Chorus1 - Based on CSound orchestra by Sean
Costello
ladspa-cs-chorus-so-Chorus2: Chorus2 - Based on CSound orchestra by Sean
Costello
ladspa-cs-chorus-so-TripleChorus: Triple chorus
ladspa-sequencer64-1675-so-sequencer64: Analogue Style 64 Step Sequencer
ladspa-chebstortion-1430-so-chebstortion: Chebyshev distortion
ladspa-vco-sawpulse-so-Pulse-VCO: Pulse-VCO -- Anti-aliased oscillator
ladspa-vco-sawpulse-so-Saw-VCO: Saw-VCO -- Anti-aliased oscillator
ladspa-vco-sawpulse-so-Rec-VCO: Rec-VCO -- Anti-aliased oscillator
ladspa-hermes-filter-1200-so-hermesFilter: Hermes Filter
ladspa-pitch-scale-1193-so-pitchScale: Pitch Scaler
ladspa-pulse-1645-so-pulse-fapa-oa: Bandlimited Variable Width Pulse
Oscillator (FAPA)
ladspa-pulse-1645-so-pulse-fapc-oa: Bandlimited Variable Width Pulse
Oscillator (FAPC)
ladspa-pulse-1645-so-pulse-fcpa-oa: Bandlimited Variable Width Pulse
Oscillator (FCPA)
ladspasrc-pulse-1645-so-pulse-fcpc-oa: Bandlimited Variable Width Pulse
Oscillator (FCPC)
ladspa-quantiser20-2027-so-quantiser20: Quantiser (20 Steps)
ladspa-tap-deesser-so-tap-deesser: TAP DeEsser
ladspa-tap-pitch-so-tap-pitch: TAP Pitch Shifter
ladspa-dj-eq-1901-so-dj-eq-mono: DJ EQ (mono)
ladspa-dj-eq-1901-so-dj-eq: DJ EQ
ladspa-mod-delay-1419-so-modDelay: Modulatable delay
ladspa-sinus-wavewrapper-1198-so-sinusWavewrapper: Sinus wavewrapper
ladspa-inv-1429-so-inv: Inverter
ladspa-tap-vibrato-so-tap-vibrato: TAP Vibrato
ladspa-bandpass-a-iir-1893-so-bandpass-a-iir: Glame Bandpass Analog Filter
ladspa-foverdrive-1196-so-foverdrive: Fast overdrive
ladspa-svf-1214-so-svf: State Variable Filter
ladspa-freq-tracker-1418-so-freqTracker: Frequency tracker
ladspa-dj-flanger-1438-so-djFlanger: DJ flanger
ladspa-autotalent-so-autotalent: Autotalent
ladspa-delay-1898-so-delay-n: Simple delay line, noninterpolating
ladspa-delay-1898-so-delay-l: Simple delay line, linear interpolation
ladspa-delay-1898-so-delay-c: Simple delay line, cubic spline interpolation
ladspa-giant-flange-1437-so-giantFlange: Giant flange
ladspa-comb-1887-so-comb-n: Comb delay line, noninterpolating
ladspa-comb-1887-so-comb-l: Comb delay line, linear interpolation
ladspa-comb-1887-so-comb-c: Comb delay line, cubic spline interpolation
ladspa-sum-1665-so-sum-iaia-oa: Signal Sum (IAIA)
ladspa-sum-1665-so-sum-iaic-oa: Signal Sum (IAIC)
ladspasrc-sum-1665-so-sum-icic-oc: Signal Sum (ICIC)
ladspa-adsr-1680-so-adsr-g+t: ADSR Envelope with Gate and Trigger
ladspa-highpass-iir-1890-so-highpass-iir: Glame Highpass Filter
ladspa-crossover-dist-1404-so-crossoverDist: Crossover distortion
ladspa-libwasp-xshaper-so-XShaperM: X-Shaper (mono)
ladspa-libwasp-xshaper-so-XShaperS: X-Shaper (stereo)
ladspa-alias-1407-so-alias: Aliasing
ladspa-valve-1209-so-valve: Valve saturation
ladspa-tap-reflector-so-tap-reflector: TAP Reflector
ladspa-latency-1914-so-artificialLatency: Artificial latency
ladspa-dc-remove-1207-so-dcRemove: DC Offset Remover
ladspa-comb-1190-so-comb: Comb Filter
ladspa-sync-pulse-2023-so-syncpulse-fapaga-oa: Clock Pulse Oscillator with
Gate (FAPAGA)
ladspa-sync-pulse-2023-so-syncpulse-fcpcga-oa: Clock Pulse Oscillator with
Gate (FCPCGA)
ladspa-tap-dynamics-st-so-tap-dynamics-st: TAP Dynamics (St)
ladspa-flanger-1191-so-flanger: Flanger
ladspa-lowpass-iir-1891-so-lowpass-iir: Glame Lowpass Filter
ladspasrc-noise-so-noise-white: White Noise Source
ladspa-ambisonic3-so-Ambisonics-31-panner: AMB order 3,1 panner
ladspa-ambisonic3-so-Ambisonics-31-rotator: AMB order 3,1 rotator
ladspa-ambisonic3-so-Ambisonics-33-panner: AMB order 3,3 panner
ladspa-ambisonic3-so-Ambisonics-33-rotator: AMB order 3,3 rotator
ladspa-quantiser50-2028-so-quantiser50: Quantiser (50 Steps)
ladspa-notch-iir-1894-so-notch-iir: Mag's Notch Filter
ladspasrc-analogue-osc-1416-so-analogueOsc: Analogue Oscillator
ladspa-zm1-1428-so-zm1: z-1
ladspa-sc4-1882-so-sc4: SC4
ladspa-step-muxer-1212-so-stepMuxer: Step Demuxer
ladspa-quantiser100-2029-so-quantiser100: Quantiser (100 Steps)
ladspa-adsr-1653-so-adsr: ADSR Envelope
ladspa-caps-so-Eq: C* Eq - 10-band equalizer
ladspa-caps-so-Eq2x2: C* Eq2x2 - stereo 10-band equalizer
ladspa-caps-so-Compress: C* Compress - Mono compressor
ladspa-caps-so-Pan: C* Pan - Pan and width
ladspa-caps-so-PreampIII: C* PreampIII - Tube preamp emulation
ladspa-caps-so-PreampIV: C* PreampIV - Tube preamp emulation + tone controls
ladspa-caps-so-ToneStack: C* ToneStack - Tone stack emulation
ladspa-caps-so-ToneStackLT: C* ToneStackLT - Tone stack emulation, lattice
filter 44.1
ladspa-caps-so-AmpIII: C* AmpIII - Tube amp
ladspa-caps-so-AmpIV: C* AmpIV - Tube amp + tone controls
ladspa-caps-so-AmpV: C* AmpV - Tube amp
ladspa-caps-so-AmpVTS: C* AmpVTS - Tube amp + Tone stack
ladspa-caps-so-CabinetI: C* CabinetI - Loudspeaker cabinet emulation
ladspa-caps-so-CabinetII: C* CabinetII - Refined loudspeaker cabinet
emulation
ladspa-caps-so-Clip: C* Clip - Hard clipper, 8x oversampled
ladspa-caps-so-ChorusI: C* ChorusI - Mono chorus/flanger
ladspa-caps-so-StereoChorusI: C* StereoChorusI - Stereo chorus/flanger
ladspa-caps-so-ChorusII: C* ChorusII - Mono chorus/flanger modulated by a
fractal
ladspa-caps-so-StereoChorusII: C* StereoChorusII - Stereo chorus/flanger
modulated by a fractal
ladspa-caps-so-PhaserI: C* PhaserI - Mono phaser
ladspa-caps-so-PhaserII: C* PhaserII - Mono phaser modulated by a Lorenz
fractal
ladspa-caps-so-SweepVFI: C* SweepVFI - Resonant filter swept by a Lorenz
fractal
ladspa-caps-so-SweepVFII: C* SweepVFII - Resonant filter, f and Q swept by a
Lorenz fractal
ladspa-caps-so-AutoWah: C* AutoWah - Resonant envelope-following filter
ladspa-caps-so-Scape: C* Scape - Stereo delay + Filters
ladspasrc-caps-so-VCOs: C* VCOs - Virtual 'analogue' oscillator
ladspasrc-caps-so-VCOd: C* VCOd - Double VCO with detune and hard sync
options
ladspasrc-caps-so-CEO: C* CEO - Chief Executive Oscillator
ladspasrc-caps-so-Sin: C* Sin - Sine wave generator
ladspasrc-caps-so-White: C* White - White noise generator
ladspasrc-caps-so-Lorenz: C* Lorenz - The sound of a Lorenz attractor
ladspasrc-caps-so-Roessler: C* Roessler - The sound of a Roessler attractor
ladspa-caps-so-JVRev: C* JVRev - Stanford-style reverb from STK
ladspa-caps-so-Plate: C* Plate - Versatile plate reverb
ladspa-caps-so-Plate2x2: C* Plate2x2 - Versatile plate reverb, stereo inputs
ladspasrc-caps-so-Click: C* Click - Metronome
ladspasrc-caps-so-Dirac: C* Dirac - One-sample impulse generator
ladspa-caps-so-HRTF: C* HRTF - Head-related transfer function at elevation 0
ladspa-karaoke-1409-so-karaoke: Karaoke
ladspa-sequencer16-1677-so-sequencer16: Analogue Style 16 Step Sequencer
ladspa-diode-1185-so-diode: Diode Processor
ladspa-xfade-1915-so-xfade: Crossfade
ladspa-xfade-1915-so-xfade4: Crossfade (4 outs)
ladspa-fast-lookahead-limiter-1913-so-fastLookaheadLimiter: Fast Lookahead
limiter
ladspa-tap-tremolo-so-tap-tremolo: TAP Tremolo
ladspa-delayorama-1402-so-delayorama: Delayorama
ladspa-shaper-1187-so-shaper: Wave shaper
ladspa-tap-doubler-so-tap-doubler: TAP Fractal Doubler
ladspa-const-1909-so-const: Constant Signal Generator
ladspa-hard-limiter-1413-so-hardLimiter: Hard Limiter
ladspa-matrix-ms-st-1421-so-matrixMSSt: Matrix: MS to Stereo
ladspa-ls-filter-1908-so-lsFilter: LS Filter
ladspa-gverb-1216-so-gverb: GVerb
ladspa-am-pitchshift-1433-so-amPitchshift: AM pitchshifter
ladspa-sifter-1210-so-sifter: Signal sifter
ladspa-gsm-1215-so-gsm: GSM simulator
ladspa-ambisonic2-so-Ambisonics-21-panner: AMB order 2,1 panner
ladspa-ambisonic2-so-Ambisonics-21-rotator: AMB order 2,1 rotator
ladspa-ambisonic2-so-Ambisonics-22-panner: AMB order 2,2 panner
ladspa-ambisonic2-so-Ambisonics-22-rotator: AMB order 2,2 rotator
ladspa-matrix-st-ms-1420-so-matrixStMS: Matrix: Stereo to MS
ladspa-foldover-1213-so-foldover: Foldover distortion
ladspa-satan-maximiser-1408-so-satanMaximiser: Barry's Satan Maximiser
ladspa-tap-eq-so-tap-equalizer: TAP Equalizer
ladspa-ambisonic1-so-Ambisonics-11-mono-panner: AMB order 1,1 mono panner
ladspa-ambisonic1-so-Ambisonics-11-stereo-panner: AMB order 1,1 stereo panner
ladspa-ambisonic1-so-Ambisonics-11-rotator: AMB order 1,1 rotator
ladspa-ambisonic1-so-Ambisonics-11-square-decoder: AMB order 1,1 square
decoder
ladspa-ambisonic1-so-Ambisonics-11-hexagon-decoder: AMB order 1,1 hexagon
decoder
ladspa-ambisonic1-so-Ambisonics-11-cube-decoder: AMB order 1,1 cube decoder
ladspa-guitarix-IR-so-guitarix-IR: guitarix_IR
ladspa-g2reverb-so-G2reverb: Stereo reverb
ladspa-bode-shifter-1431-so-bodeShifter: Bode frequency shifter
ladspa-comb-splitter-1411-so-combSplitter: Comb Splitter
ladspa-matrix-spatialiser-1422-so-matrixSpatialiser: Matrix Spatialiser
ladspa-sync-square-1678-so-syncsquare-faga-oa: Clock Oscillator with Gate
(FAGA)
ladspa-sync-square-1678-so-syncsquare-fcga-oa: Clock Oscillator with Gate
(FCGA)
ladspa-pointer-cast-1910-so-pointerCastDistortion: Pointer cast distortion
ladspa-fad-delay-1192-so-fadDelay: Fractionally Addressed Delay Line
ladspa-tap-pinknoise-so-tap-pinknoise: TAP Pink/Fractal Noise
ladspa-tap-dynamics-m-so-tap-dynamics-m: TAP Dynamics (M)
ladspa-triple-para-1204-so-triplePara: Triple band parametric with shelves
ladspa-tap-autopan-so-tap-autopan: TAP AutoPanner
ladspa-decay-1886-so-decay: Exponential signal decay
ladspa-tap-eqbw-so-tap-equalizer-bw: TAP Equalizer/BW
ladspa-dyson-compress-1403-so-dysonCompress: Dyson compressor
ladspa-tap-rotspeak-so-tap-rotspeak: TAP Rotary Speaker
ladspa-delay-so-delay-5s: Simple Delay Line
ladspa-guitarix-freeverb-so-guitarix-freeverb: guitarix_freeverb
ladspa-sequencer32-1676-so-sequencer32: Analogue Style 32 Step Sequencer
ladspa-gong-1424-so-gong: Gong model
ladspa-revdelay-1605-so-revdelay: Reverse Delay (5s max)
ladspa-declip-1195-so-declip: Declipper
ladspa-dahdsr-2021-so-dahdsr-g+t-audio: DAHDSR Envelope with Gate and Trigger
(Audio-Rate Inputs)
ladspa-dahdsr-2021-so-dahdsr-g+t-control: DAHDSR Envelope with Gate and
Trigger (Control Inputs)
ladspasrc-dahdsr-2021-so-dahdsr-cg+t-control: DAHDSR Envelope with Control
Gate and Trigger (Control Inputs)
ladspa-cs-phaser-so-Phaser1: Phaser1 - Similar to CSound's phaser1 by Sean
Costello
ladspa-cs-phaser-so-Phaser1+LFO: Phaser1 with LFO
ladspa-rate-shifter-1417-so-rateShifter: Rate shifter
ladspa-guitarix-so-Simulators: guitarix
ladspa-phasers-1217-so-lfoPhaser: LFO Phaser
ladspa-phasers-1217-so-fourByFourPole: 4 x 4 pole allpass
ladspa-phasers-1217-so-autoPhaser: Auto phaser
ladspa-pitch-scale-1194-so-pitchScaleHQ: Higher Quality Pitch Scaler
ladspa-difference-2030-so-difference-iama-oa: Signal Difference (IAMA)
ladspa-difference-2030-so-difference-iamc-oa: Signal Difference (IAMC)
ladspa-difference-2030-so-difference-icma-oa: Signal Difference (ICMA)
ladspasrc-difference-2030-so-difference-icmc-oc: Signal Difference (ICMC)
ladspa-cmt-so-bf2cube: Ambisonic Decoder (B-Format to Cube)
ladspa-cmt-so-bf2quad: Ambisonic Decoder (B-Format to Quad)
ladspa-cmt-so-bf2stereo: Ambisonic Decoder (B-Format to Stereo)
ladspa-cmt-so-fmh2oct: Ambisonic Decoder (FMH-Format to Octagon)
ladspa-cmt-so-encode-bformat: Ambisonic Encoder (B-Format)
ladspa-cmt-so-encode-fmh: Ambisonic Encoder (FMH-Format)
ladspa-cmt-so-bf-rotate-z: Ambisonic Rotation (B-Format, Horizontal)
ladspa-cmt-so-fmh-rotate-z: Ambisonic Rotation (FMH-Format, Horizontal)
ladspa-cmt-so-amp-mono: Amplifier (Mono)
ladspa-cmt-so-amp-stereo: Amplifier (Stereo)
ladspa-cmt-so-am: Amplitude Modulator
ladspasrc-cmt-so-analogue: Analogue Voice
ladspa-cmt-so-canyon-delay: Canyon Delay
ladspa-cmt-so-disintegrator: Disintegrator
ladspa-cmt-so-sledgehammer: Dynamic Sledgehammer
ladspa-cmt-so-delay-0-01s: Echo Delay Line (Maximum Delay 0.01s)
ladspa-cmt-so-delay-0-1s: Echo Delay Line (Maximum Delay 0.1s)
ladspa-cmt-so-delay-1s: Echo Delay Line (Maximum Delay 1s)
ladspa-cmt-so-delay-5s: Echo Delay Line (Maximum Delay 5s)
ladspa-cmt-so-delay-60s: Echo Delay Line (Maximum Delay 60s)
ladspasink-cmt-so-track-max-peak: Envelope Tracker (Maximum Peak)
ladspasink-cmt-so-track-max-rms: Envelope Tracker (Maximum RMS)
ladspasink-cmt-so-track-peak: Envelope Tracker (Peak)
ladspasink-cmt-so-track-rms: Envelope Tracker (RMS)
ladspa-cmt-so-fmh2bf: FMH-Format to B-Format (Discards RSTUV Channels)
ladspa-cmt-so-fbdelay-0-01s: Feedback Delay Line (Maximum Delay 0.01s)
ladspa-cmt-so-fbdelay-0-1s: Feedback Delay Line (Maximum Delay 0.1s)
ladspa-cmt-so-fbdelay-1s: Feedback Delay Line (Maximum Delay 1s)
ladspa-cmt-so-fbdelay-5s: Feedback Delay Line (Maximum Delay 5s)
ladspa-cmt-so-fbdelay-60s: Feedback Delay Line (Maximum Delay 60s)
ladspa-cmt-so-freeverb3: Freeverb (Version 3)
ladspa-cmt-so-grain-scatter: Granular Scatter Processor
ladspa-cmt-so-hard-gate: Hard Gate
ladspa-cmt-so-hpf: High Pass Filter (One Pole)
ladspa-cmt-so-identity-audio: Identity (Audio)
ladspasrc-cmt-so-identity-control: Identity (Control)
ladspa-cmt-so-lofi: Lo Fi
ladspasrc-cmt-so-logistic: Logistic Map Control Generator
ladspa-cmt-so-lpf: Low Pass Filter (One Pole)
ladspa-cmt-so-mixer: Mixer (Stereo to Mono)
ladspasrc-cmt-so-noise-source-white: Noise Source (White)
ladspasink-cmt-so-null-ai: Null (Audio Input)
ladspasrc-cmt-so-null-ao: Null (Audio Output)
ladspasrc-cmt-so-null-ci: Null (Control Input)
ladspasrc-cmt-so-null-co: Null (Control Output)
ladspasrc-cmt-so-organ: Organ
ladspasink-cmt-so-peak: Peak Monitor
ladspasrc-cmt-so-phasemod: Phase Modulated Voice
ladspasrc-cmt-so-pink-interpolated-audio: Pink Noise (Interpolated)
ladspasrc-cmt-so-pink-full-frequency: Pink Noise (full frequency range)
ladspasrc-cmt-so-pink-sh: Pink Noise (sample and hold)
ladspa-cmt-so-compress-peak: Simple Compressor (Peak Envelope Tracking)
ladspa-cmt-so-compress-rms: Simple Compressor (RMS Envelope Tracking)
ladspa-cmt-so-expand-peak: Simple Expander (Peak Envelope Tracking)
ladspa-cmt-so-expand-rms: Simple Expander (RMS Envelope Tracking)
ladspa-cmt-so-limit-peak: Simple Limiter (Peak Envelope Tracking)
ladspa-cmt-so-limit-rms: Simple Limiter (RMS Envelope Tracking)
ladspa-cmt-so-sine-faaa: Sine Oscillator (Freq:audio, Amp:audio)
ladspa-cmt-so-sine-faac: Sine Oscillator (Freq:audio, Amp:control)
ladspa-cmt-so-sine-fcaa: Sine Oscillator (Freq:control, Amp:audio)
ladspasrc-cmt-so-sine-fcac: Sine Oscillator (Freq:control, Amp:control)
ladspasrc-cmt-so-syndrum: Syn Drum
ladspa-cmt-so-vcf303: VCF 303
ladspa-cmt-so-wshape-sine: Wave Shaper (Sine-Based)
ladspa-tap-limiter-so-tap-limiter: TAP Scaling Limiter
ladspa-surround-encoder-1401-so-surroundEncoder: Surround matrix encoder
ladspa-sc2-1426-so-sc2: SC2
ladspa-mvchpf24-so-Mvchpf-1: Mvchpf-1 Digital implementation of the VC HP
filter invented by R.A. Moog
ladspa-gate-1410-so-gate: Gate
ladspa-bandpass-iir-1892-so-bandpass-iir: Glame Bandpass Filter
ladspa-sc4m-1916-so-sc4m: SC4 mono
ladspa-ladspa-guitarix-so-guitarix-amp: Guitarix Amp
ladspa-ladspa-guitarix-so-guitarix-fx: Guitarix Stereo Fx
ladspa-guitarix-echo-so-guitarix-echo: guitarix_echo
ladspasrc-interpolator-1660-so-interpolator: Control to Audio Interpolator
ladspa-ratio-2034-so-ratio-nada-oa: Signal Ratio (NADA)
ladspa-ratio-2034-so-ratio-nadc-oa: Signal Ratio (NADC)
ladspa-ratio-2034-so-ratio-ncda-oa: Signal Ratio (NCDA)
ladspasrc-ratio-2034-so-ratio-ncdc-oc: Signal Ratio (NCDC)
ladspa-filter-so-lpf: Simple Low Pass Filter
ladspa-filter-so-hpf: Simple High Pass Filter
ladspa-butterworth-1902-so-bwxover-iir: Glame Butterworth X-over Filter
ladspa-butterworth-1902-so-buttlow-iir: GLAME Butterworth Lowpass
ladspa-butterworth-1902-so-butthigh-iir: GLAME Butterworth Highpass
ladspa-tracker-2025-so-tracker-gaaadaia-oa: Signal Tracker (Audio Rates)
ladspa-tracker-2025-so-tracker-gaacdcia-oa: Signal Tracker (Control Rates)
ladspa-mbeq-1197-so-mbeq: Multiband EQ
ladspa-blvco-so-Pulse-VCO: Pulse-VCO -- Anti-aliased oscillator
ladspa-blvco-so-Saw-VCO: Saw-VCO -- Anti-aliased oscillator
ladspa-blvco-so-Rec-VCO: Rec-VCO -- Anti-aliased oscillator
ladspa-tap-chorusflanger-so-tap-chorusflanger: TAP Chorus/Flanger
ladspa-transient-1206-so-transient: Transient mangler
ladspa-sine-so-sine-faaa: Sine Oscillator (Freq:audio, Amp:audio)
ladspa-sine-so-sine-faac: Sine Oscillator (Freq:audio, Amp:control)
ladspa-sine-so-sine-fcaa: Sine Oscillator (Freq:control, Amp:audio)
ladspasrc-sine-so-sine-fcac: Sine Oscillator (Freq:control, Amp:control)
ladspa-vynil-1905-so-vynil: VyNil (Vinyl Effect)
ladspa-lp4pole-1671-so-lp4pole-faraia-oa: 4 Pole Low-Pass Filter with
Resonance (FARAIA)
ladspa-lp4pole-1671-so-lp4pole-fcrcia-oa: 4 Pole Low-Pass Filter with
Resonance (FCRCIA)
ladspa-ringmod-1188-so-ringmod-2i1o: Ringmod with two inputs
ladspa-ringmod-1188-so-ringmod-1i1o1l: Ringmod with LFO
ladspa-random-1661-so-random-fasa-oa: Random Wave Generator (FASA)
ladspa-random-1661-so-random-fasc-oa: Random Wave Generator (FASC)
ladspa-random-1661-so-random-fcsa-oa: Random Wave Generator (FCSA)
ladspasrc-random-1661-so-random-fcsc-oa: Random Wave Generator (FCSC)
ladspa-libwasp-noisifier-so-NoisifierM: Noisifier (mono)
ladspa-libwasp-noisifier-so-NoisifierS: Noisifier (stereo)
ladspa-multivoice-chorus-1201-so-multivoiceChorus: Multivoice Chorus
ladspasrc-sin-cos-1881-so-sinCos: Sine + cosine oscillator
ladspa-sawtooth-1641-so-sawtooth-fa-oa: Bandlimited Sawtooth Oscillator (FA)
ladspasrc-sawtooth-1641-so-sawtooth-fc-oa: Bandlimited Sawtooth Oscillator
(FC)
ladspa-sc1-1425-so-sc1: SC1
ladspa-split-1406-so-split: Mono to Stereo splitter
ladspa-tap-sigmoid-so-tap-sigmoid: TAP Sigmoid Booster
ladspa-fmod-1656-so-fmod-fama-oa: Frequency Modulator (FAMA)
ladspa-fmod-1656-so-fmod-famc-oa: Frequency Modulator (FAMC)
ladspa-fmod-1656-so-fmod-fcma-oa: Frequency Modulator (FCMA)
ladspasrc-fmod-1656-so-fmod-fcmc-oc: Frequency Modulator (FCMC)
ladspa-hilbert-1440-so-hilbert: Hilbert transformer
ladspa-bode-shifter-cv-1432-so-bodeShifterCV: Bode frequency shifter (CV)
ladspa-sc3-1427-so-sc3: SC3
ladspa-branch-1673-so-branch-ia-oaoa: Signal Branch (IA)
ladspasrc-branch-1673-so-branch-ic-ococ: Signal Branch (IC)
ladspa-ambisonic0-so-Tricardioid-to-AMB: Three cardioids to AMB matrix
ladspa-ambisonic0-so-Virtualmic: Virtual stereo microphone
ladspa-triangle-1649-so-triangle-fasa-oa: Bandlimited Variable Slope Triangle
Oscillator (FASA)
ladspa-triangle-1649-so-triangle-fasc-oa: Bandlimited Variable Slope Triangle
Oscillator (FASC)
ladspa-triangle-1649-so-triangle-fcsa-oa: Bandlimited Variable Slope Triangle
Oscillator (FCSA)
ladspasrc-triangle-1649-so-triangle-fcsc-oa: Bandlimited Variable Slope
Triangle Oscillator (FCSC)
ladspa-valve-rect-1405-so-valveRect: Valve rectifier
ladspa-tap-echo-so-tap-stereo-echo: TAP Stereo Echo
ladspa-plate-1423-so-plate: Plate reverb
ladspa-guitarix-compressor-so-guitarix-compressor: guitarix_compressor
ladspa-product-1668-so-product-iaia-oa: Signal Product (IAIA)
ladspa-product-1668-so-product-iaic-oa: Signal Product (IAIC)
ladspasrc-product-1668-so-product-icic-oc: Signal Product (ICIC)
ladspa-tap-tubewarmth-so-tap-tubewarmth: TAP TubeWarmth
ladspa-calf-so-Filter: Calf Filter LADSPA
ladspa-calf-so-Filterclavier: Calf Filterclavier LADSPA
ladspa-calf-so-Flanger: Calf Flanger LADSPA
ladspa-calf-so-Reverb: Calf Reverb LADSPA
ladspa-calf-so-VintageDelay: Calf Vintage Delay LADSPA
ladspa-calf-so-RotarySpeaker: Calf Rotary Speaker LADSPA
ladspa-calf-so-Phaser: Calf Phaser LADSPA
ladspa-calf-so-MultiChorus: Calf MultiChorus LADSPA
ladspa-calf-so-Compressor: Calf Compressor LADSPA
ladspa-single-para-1203-so-singlePara: Single band parametric
ladspa-smooth-decimate-1414-so-smoothDecimate: Smooth Decimator
ladspa-fm-osc-1415-so-fmOsc: FM Oscillator
ladspa-divider-1186-so-divider: Audio Divider (Suboctave Generator)
ladspa-decimator-1202-so-decimator: Decimator
ladspa-imp-1199-so-imp: Impulse convolver
ladspa-amp-1181-so-amp: Simple amplifier
ladspa-libwasp-booster-so-BoosterM: Clipping Booster (mono)
ladspa-libwasp-booster-so-BoosterS: Clipping Booster (stereo)
ladspa-guitarix-crybaby-so-guitarix-crybaby: guitarix_crybaby
ladspa-allpass-1895-so-allpass-n: Allpass delay line, noninterpolating
ladspa-allpass-1895-so-allpass-l: Allpass delay line, linear interpolation
ladspa-allpass-1895-so-allpass-c: Allpass delay line, cubic spline
interpolation
357 features:
+-- 357 elements
Here is the listing of one filter for reference too, this one is even special
cause does a mono to stereo, and not just keeps the channels and filters, it
works great:
$ gst-inspect-1.0 ladspa-caps-so-Plate
Factory Details:
Rank: none (0)
Long-name: C* Plate - Versatile plate reverb
Klass: Filter/Effect/Audio/LADSPA
Description: C* Plate - Versatile plate reverb
Author: Tim Goetze <tim at quitte.de>, Juan Manuel Borges Caño
<juanmabcmail at gmail.com>, Andy Wingo <wingo at pobox.com>, Steve Baker
<stevebaker_org at yahoo.co.uk>, Erik Walthinsen <omega at cse.ogi.edu>, Stefan Kost
<ensonic at users.sf.net> (audiotestsrc), Wim Taymans <wim at fluendo.com> (fakesink)
Plugin Details:
Name: ladspa
Description: LADSPA plugin
Filename: ./.libs/libgstladspa.so
Version: 1.0.6
License: LGPL
Source module: gst-plugins-bad
Source release date: 2013-03-22
Binary package: GStreamer Bad Plug-ins source release
Origin URL: Unknown package origin
GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstBaseTransform
+----GstAudioFilter
+----ladspa-caps-so-Plate
Pad Templates:
SRC template: 'src'
Availability: Always
Capabilities:
audio/x-raw
format: F32LE
channels: 2
rate: [ 1, 2147483647 ]
layout: interleaved
SINK template: 'sink'
Availability: Always
Capabilities:
audio/x-raw
format: F32LE
channels: 1
rate: [ 1, 2147483647 ]
layout: interleaved
Element Flags:
no flags set
Element Implementation:
Has change_state() function: gst_audio_filter_change_state
Element has no clocking capabilities.
Element has no indexing capabilities.
Element has no URI handling capabilities.
Pads:
SINK: 'sink'
Implementation:
Has chainfunc(): gst_base_transform_chain
Has custom eventfunc(): gst_base_transform_sink_event
Has custom queryfunc(): gst_base_transform_query
Has custom iterintlinkfunc(): gst_pad_iterate_internal_links_default
Pad Template: 'sink'
SRC: 'src'
Implementation:
Has getrangefunc(): gst_base_transform_getrange
Has custom eventfunc(): gst_base_transform_src_event
Has custom queryfunc(): gst_base_transform_query
Has custom iterintlinkfunc(): gst_pad_iterate_internal_links_default
Pad Template: 'src'
Element Properties:
name : The name of the object
flags: readable, writable
String. Default: "ladspa-caps-so-plate0"
parent : The parent of the object
flags: readable, writable
Object of type "GstObject"
qos : Handle Quality-of-Service events
flags: readable, writable
Boolean. Default: false
bandwidth : bandwidth
flags: readable, writable, controllable
Float. Range: 0.005 - 0.999
Default: 0.502
tail : tail
flags: readable, writable, controllable
Float. Range: 0 - 0.749
Default: 0.3745
damping : damping
flags: readable, writable, controllable
Float. Range: 0.0005 - 1
Default: 0.250375
blend : blend
flags: readable, writable, controllable
Float. Range: 0 - 1
Default: 0.25
---------------------------
I don't know if you should take the time to review it, which could take long,
assuming you are also not idle, so perhaps this and the openal port that i
submitted recenlty proves that i could deserve git access and so keep working
fluidly. The openal port is gonna really be enforced with what i learned with
this plugin, src, transforms and sinks all of them + dynamic (hopefully),
though i could for sure learn better yet. I will be glad anyway too. As so, to
hear your corrections. As a final remark if accepted, consider too moving to
-good.
Thanks, hoping people enjoy as much as i enjoyed programming it.
juanmabc
---------------------------
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list