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">|</span> 18 <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">"$myfile"</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">"audio/x-raw,format=S16LE,rate=48000,channels=1"</span> <span class="gtkdoc opt">!</span> wavenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span><span class="string">"testin.wav"</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">//"$PWD"/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">"$myfile"</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>