• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<title>ladspa: GStreamer Bad Plugins 1.0 Plugins Reference Manual</title>
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="index.html" title="GStreamer Bad Plugins 1.0 Plugins Reference Manual">
8<link rel="up" href="ch01.html" title="gst-plugins-bad Elements">
9<link rel="prev" href="gst-plugins-bad-plugins-kmssink.html" title="kmssink">
10<link rel="next" href="gst-plugins-bad-plugins-liveadder.html" title="liveadder">
11<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
12<link rel="stylesheet" href="style.css" type="text/css">
13</head>
14<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
16<td width="100%" align="left" class="shortcuts">
17<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span18                  <a href="#gst-plugins-bad-plugins-ladspa.description" class="shortcut">Description</a></span>
19</td>
20<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
21<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
22<td><a accesskey="p" href="gst-plugins-bad-plugins-kmssink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
23<td><a accesskey="n" href="gst-plugins-bad-plugins-liveadder.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
24</tr></table>
25<div class="refentry">
26<a name="gst-plugins-bad-plugins-ladspa"></a><div class="titlepage"></div>
27<div class="refnamediv"><table width="100%"><tr>
28<td valign="top">
29<h2><span class="refentrytitle"><a name="gst-plugins-bad-plugins-ladspa.top_of_page"></a>ladspa</span></h2>
30<p>ladspa — bridge for LADSPA (Linux Audio Developer's Simple Plugin API)</p>
31</td>
32<td class="gallery_image" valign="top" align="right"></td>
33</tr></table></div>
34<div class="refsect1">
35<a name="gst-plugins-bad-plugins-ladspa.other"></a><h2>Types and Values</h2>
36<div class="informaltable"><table class="informaltable" width="100%" border="0">
37<colgroup>
38<col width="150px" class="name">
39<col class="description">
40</colgroup>
41<tbody><tr>
42<td class="datatype_keyword">struct</td>
43<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-ladspa.html#GstLADSPA" title="struct GstLADSPA">GstLADSPA</a></td>
44</tr></tbody>
45</table></div>
46</div>
47<div class="refsect1">
48<a name="gst-plugins-bad-plugins-ladspa.description"></a><h2>Description</h2>
49<p>The LADSPA (Linux Audio Developer's Simple Plugin API) element is a bridge
50for plugins using the <a class="ulink" href="http://www.ladspa.org/" target="_top">LADSPA</a> API.
51It scans all installed LADSPA plugins and registers them as gstreamer
52elements. If available it can also parse LRDF files and use the metadata for
53element classification. The functionality you get depends on the LADSPA plugins
54you have installed.</p>
55<div class="refsect3">
56<a name="id-1.2.134.4.3"></a><h4>Example LADSPA line without this plugins</h4>
57<div class="informalexample">
58  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
59    <tbody>
60      <tr>
61        <td class="listing_lines" align="right"><pre>1
622
633
644
655</pre></td>
66        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">(</span>padsp<span class="gtkdoc opt">)</span> listplugins
67<span class="gtkdoc opt">(</span>padsp<span class="gtkdoc opt">)</span> analyseplugin cmt<span class="gtkdoc opt">.</span>so amp_mono
68gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>e filesrc location<span class="gtkdoc opt">=</span><span class="string">&quot;$myfile&quot;</span> <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> <span class="string">&quot;audio/x-raw,format=S16LE,rate=48000,channels=1&quot;</span> <span class="gtkdoc opt">!</span> wavenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span><span class="string">&quot;testin.wav&quot;</span>
69<span class="gtkdoc opt">(</span>padsp<span class="gtkdoc opt">)</span> applyplugin testin<span class="gtkdoc opt">.</span>wav testout<span class="gtkdoc opt">.</span>wav cmt<span class="gtkdoc opt">.</span>so amp_mono <span class="number">2</span>
70gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> playbin uri<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//&quot;$PWD&quot;/testout.wav</span></pre></td>
71      </tr>
72    </tbody>
73  </table>
74</div>
75
76<p> 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.</p>
77<p>Now with this plugin:</p>
78</div>
79<div class="refsect3">
80<a name="id-1.2.134.4.4"></a><h4>Example LADSPA line with this plugins</h4>
81<div class="informalexample">
82  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
83    <tbody>
84      <tr>
85        <td class="listing_lines" align="right"><pre>1</pre></td>
86        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> autoaudiosrc <span class="gtkdoc opt">!</span> ladspa<span class="gtkdoc opt">-</span>cmt<span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>amp<span class="gtkdoc opt">-</span>mono gain<span class="gtkdoc opt">=</span><span class="number">2</span> <span class="gtkdoc opt">!</span> ladspa<span class="gtkdoc opt">-</span>caps<span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>plate <span class="gtkdoc opt">!</span> ladspa<span class="gtkdoc opt">-</span>tap<span class="gtkdoc opt">-</span>echo<span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>tap<span class="gtkdoc opt">-</span>stereo<span class="gtkdoc opt">-</span>echo l<span class="gtkdoc opt">-</span>delay<span class="gtkdoc opt">=</span><span class="number">500</span> r<span class="gtkdoc opt">-</span>haas<span class="gtkdoc opt">-</span>delay<span class="gtkdoc opt">=</span><span class="number">500</span> <span class="gtkdoc opt">!</span> tee name<span class="gtkdoc opt">=</span>myT myT<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> autoaudiosink myT<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> goom <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> xvimagesink pixel<span class="gtkdoc opt">-</span>aspect<span class="gtkdoc opt">-</span>ratio<span class="gtkdoc opt">=</span><span class="number">3</span><span class="gtkdoc opt">/</span><span class="number">4</span></pre></td>
87      </tr>
88    </tbody>
89  </table>
90</div>
91
92<p> Get audio input, filter it through CAPS Plate and TAP Stereo Echo, play it and show a visualization (recommended hearphones).</p>
93<p>In case you wonder the plugin naming scheme, quoting ladspa.h:
94  "Plugin types should be identified by file and label rather than by
95  index or plugin name, which may be changed in new plugin versions."
96This is really the best way then, and so it is less prone to conflicts.</p>
97<p>Also it is worth noting that LADSPA provides a control in and out interface,
98on top of the audio in and out one, so some parameters are readable too.</p>
99<p>You can see the listing of plugins available with:</p>
100</div>
101<div class="refsect3">
102<a name="id-1.2.134.4.5"></a><h4>Inspecting the plugins list</h4>
103<div class="informalexample">
104  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
105    <tbody>
106      <tr>
107        <td class="listing_lines" align="right"><pre>1</pre></td>
108        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>inspect ladspa</pre></td>
109      </tr>
110    </tbody>
111  </table>
112</div>
113
114<p> List available LADSPA plugins on gstreamer.</p>
115<p>You can see the parameters of any plugin with:</p>
116</div>
117<div class="refsect3">
118<a name="id-1.2.134.4.6"></a><h4>Inspecting the plugins</h4>
119<div class="informalexample">
120  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
121    <tbody>
122      <tr>
123        <td class="listing_lines" align="right"><pre>1</pre></td>
124        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>inspect ladspa<span class="gtkdoc opt">-</span>retro<span class="gtkdoc opt">-</span>flange<span class="gtkdoc opt">-</span><span class="number">1208</span><span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>retroflange</pre></td>
125      </tr>
126    </tbody>
127  </table>
128</div>
129
130<p> List details of the plugin, parameters, range and defaults included.</p>
131<p>The elements categorize in:</p>
132<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Filter/Effect/Audio/LADSPA:</p></li></ul></div>
133</div>
134<div class="refsect3">
135<a name="id-1.2.134.4.7"></a><h4>Example Filter/Effect/Audio/LADSPA line with this plugins</h4>
136<div class="informalexample">
137  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
138    <tbody>
139      <tr>
140        <td class="listing_lines" align="right"><pre>1</pre></td>
141        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span><span class="string">&quot;$myfile&quot;</span> <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> ladspa<span class="gtkdoc opt">-</span>calf<span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>reverb decay<span class="gtkdoc opt">-</span>time<span class="gtkdoc opt">=</span><span class="number">15</span> high<span class="gtkdoc opt">-</span>frq<span class="gtkdoc opt">-</span>damp<span class="gtkdoc opt">=</span><span class="number">20000</span> room<span class="gtkdoc opt">-</span>size<span class="gtkdoc opt">=</span><span class="number">5</span> diffusion<span class="gtkdoc opt">=</span><span class="number">1</span> wet<span class="gtkdoc opt">-</span>amount<span class="gtkdoc opt">=</span><span class="number">2</span> dry<span class="gtkdoc opt">-</span>amount<span class="gtkdoc opt">=</span><span class="number">2</span> pre<span class="gtkdoc opt">-</span>delay<span class="gtkdoc opt">=</span><span class="number">50</span> bass<span class="gtkdoc opt">-</span>cut<span class="gtkdoc opt">=</span><span class="number">20000</span> treble<span class="gtkdoc opt">-</span>cut<span class="gtkdoc opt">=</span><span class="number">20000</span> <span class="gtkdoc opt">!</span> ladspa<span class="gtkdoc opt">-</span>tap<span class="gtkdoc opt">-</span>echo<span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>tap<span class="gtkdoc opt">-</span>stereo<span class="gtkdoc opt">-</span>echo l<span class="gtkdoc opt">-</span>delay<span class="gtkdoc opt">=</span><span class="number">500</span> r<span class="gtkdoc opt">-</span>haas<span class="gtkdoc opt">-</span>delay<span class="gtkdoc opt">=</span><span class="number">500</span> <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
142      </tr>
143    </tbody>
144  </table>
145</div>
146
147<p> Decode any audio file, filter it through Calf Reverb LADSPA then TAP Stereo Echo, and play it.</p>
148<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Source/Audio/LADSPA:</p></li></ul></div>
149</div>
150<div class="refsect3">
151<a name="id-1.2.134.4.8"></a><h4>Example Source/Audio/LADSPA line with this plugins</h4>
152<div class="informalexample">
153  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
154    <tbody>
155      <tr>
156        <td class="listing_lines" align="right"><pre>1</pre></td>
157        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> ladspasrc<span class="gtkdoc opt">-</span>sine<span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>sine<span class="gtkdoc opt">-</span>fcac frequency<span class="gtkdoc opt">=</span><span class="number">220</span> amplitude<span class="gtkdoc opt">=</span><span class="number">100</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
158      </tr>
159    </tbody>
160  </table>
161</div>
162
163<p> Generate a sine wave with Sine Oscillator (Freq:control, Amp:control) and play it.</p>
164</div>
165<div class="refsect3">
166<a name="id-1.2.134.4.9"></a><h4>Example Source/Audio/LADSPA line with this plugins</h4>
167<div class="informalexample">
168  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
169    <tbody>
170      <tr>
171        <td class="listing_lines" align="right"><pre>1</pre></td>
172        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> ladspasrc<span class="gtkdoc opt">-</span>caps<span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>click bpm<span class="gtkdoc opt">=</span><span class="number">240</span> volume<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
173      </tr>
174    </tbody>
175  </table>
176</div>
177
178<p> Generate clicks with CAPS Click - Metronome at 240 beats per minute and play it.</p>
179</div>
180<div class="refsect3">
181<a name="id-1.2.134.4.10"></a><h4>Example Source/Audio/LADSPA line with this plugins</h4>
182<div class="informalexample">
183  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
184    <tbody>
185      <tr>
186        <td class="listing_lines" align="right"><pre>1</pre></td>
187        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> ladspasrc<span class="gtkdoc opt">-</span>random<span class="gtkdoc opt">-</span><span class="number">1661</span><span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>random<span class="gtkdoc opt">-</span>fcsc<span class="gtkdoc opt">-</span>oa <span class="gtkdoc opt">!</span> ladspa<span class="gtkdoc opt">-</span>cmt<span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>amp<span class="gtkdoc opt">-</span>mono gain<span class="gtkdoc opt">=</span><span class="number">1.5</span> <span class="gtkdoc opt">!</span> ladspa<span class="gtkdoc opt">-</span>caps<span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>plate <span class="gtkdoc opt">!</span> tee name<span class="gtkdoc opt">=</span>myT myT<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> autoaudiosink myT<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> wavescope <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
188      </tr>
189    </tbody>
190  </table>
191</div>
192
193<p> Generate random wave, filter it trhough Mono Amplifier and Versatile Plate Reverb, and play, while showing, it.</p>
194<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Sink/Audio/LADSPA:</p></li></ul></div>
195</div>
196<div class="refsect3">
197<a name="id-1.2.134.4.11"></a><h4>Example Sink/Audio/LADSPA line with this plugins</h4>
198<div class="informalexample">
199  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
200    <tbody>
201      <tr>
202        <td class="listing_lines" align="right"><pre>1</pre></td>
203        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> autoaudiosrc <span class="gtkdoc opt">!</span> ladspa<span class="gtkdoc opt">-</span>cmt<span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>amp<span class="gtkdoc opt">-</span>mono gain<span class="gtkdoc opt">=</span><span class="number">2</span> <span class="gtkdoc opt">!</span> ladspa<span class="gtkdoc opt">-</span>caps<span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>plate <span class="gtkdoc opt">!</span> ladspa<span class="gtkdoc opt">-</span>tap<span class="gtkdoc opt">-</span>echo<span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>tap<span class="gtkdoc opt">-</span>stereo<span class="gtkdoc opt">-</span>echo l<span class="gtkdoc opt">-</span>delay<span class="gtkdoc opt">=</span><span class="number">500</span> r<span class="gtkdoc opt">-</span>haas<span class="gtkdoc opt">-</span>delay<span class="gtkdoc opt">=</span><span class="number">500</span> <span class="gtkdoc opt">!</span> tee name<span class="gtkdoc opt">=</span>myT myT<span class="gtkdoc opt">. !</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> ladspasink<span class="gtkdoc opt">-</span>cmt<span class="gtkdoc opt">-</span>so<span class="gtkdoc opt">-</span>null<span class="gtkdoc opt">-</span>ai myT<span class="gtkdoc opt">. !</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> goom <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> xvimagesink pixel<span class="gtkdoc opt">-</span>aspect<span class="gtkdoc opt">-</span>ratio<span class="gtkdoc opt">=</span><span class="number">3</span><span class="gtkdoc opt">/</span><span class="number">4</span></pre></td>
204      </tr>
205    </tbody>
206  </table>
207</div>
208
209<p> Get audio input, filter it trhough Mono Amplifier, CAPS Plate LADSPA and TAP Stereo Echo, explicitily anulate audio with Null (Audio Output), and play a visualization (recommended hearphones).</p>
210</div>
211</div>
212<div class="refsect1">
213<a name="gst-plugins-bad-plugins-ladspa.functions_details"></a><h2>Functions</h2>
214<p></p>
215</div>
216<div class="refsect1">
217<a name="gst-plugins-bad-plugins-ladspa.other_details"></a><h2>Types and Values</h2>
218<div class="refsect2">
219<a name="GstLADSPA"></a><h3>struct GstLADSPA</h3>
220<pre class="programlisting">struct GstLADSPA {
221  GstLADSPAClass *klass;
222
223  LADSPA_Handle *handle;
224  gboolean activated;
225  unsigned long rate;
226
227  struct
228  {
229    struct
230    {
231      LADSPA_Data *in;
232      LADSPA_Data *out;
233    } control;
234
235    struct
236    {
237      LADSPA_Data **in;
238      LADSPA_Data **out;
239    } audio;
240  } ports;
241};
242</pre>
243</div>
244</div>
245<div class="refsect1">
246<a name="gst-plugins-bad-plugins-ladspa.see-also"></a><h2>See Also</h2>
247<p><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioconvert.html#GstAudioConvert-struct"><span class="type">GstAudioConvert</span></a> <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audioresample.html#GstAudioResample-struct"><span class="type">GstAudioResample</span></a>, <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc-struct"><span class="type">GstAudioTestSrc</span></a>, <span class="type">GstAutoAudioSink</span></p>
248</div>
249</div>
250<div class="footer">
251<hr>Generated by GTK-Doc V1.28</div>
252</body>
253</html>