====== DokuWiki LADSPA plugin ======
Visualizes LADSPA plugins and allows to //demonstrate// audio effect-presets in a wiki page story.
It consists of CSS/JavaScript/XHTML visualization scripts and a parser for the output of the LADSPA utility ''analyseplugin''.
use the [[http://gareus.org/gitweb/?p=dokuladspa.git|git repository]] for now.
See [[http://robin.linuxaudio.org/apps4/ladspa/so/dj_eq_1901]] for an example usage and [[http://robin.linuxaudio.org/apps4/wiki/ladspa_test]] for an example article.
Work in progres
===== Notes =====
This dokuwiki plugin is actually a fork of a small standalone project, using the same JavaScript in a different XHTML context. Once the dokuwiki visualization is done it will be merged back and I'll publish the main project.
Before getting there there's few features to gain:
==== LADSPA tagging ====
There's a standalone PHP script that collects all plugins available on the system using ''listplugins'' and later gathers information about them using ''analyseplugin'' which provides all the necessary information apart from proper //category tags//.
To remedy this one can do a regular-expression search on the plugin's title and label. Here's a set of **pattern** => **Tag-name** pairs that I've come up with. Please comment.
Note: ''\b'' denote word boundaries, ''/i'' case insensitive comparisons.
array(
'/verb/i' => 'Reverb',
'/plate/i' => 'Reverb',
'/echo/i' => 'Reverb', # actually 'Delay' ?!
'/delay/i' => 'Delay',
'/distor/i' => 'Distortion',
'/ambisonic/i' => 'Ambisonic',
'/fuzz/i' => 'Distortion',
'/valve/i' => 'Distortion',
'/overd/i' => 'Distortion',
'/Chorus/i' => 'Phasing',
'/Flange/i' => 'Phasing',
'/Phaser/i' => 'Phasing',
'/Phase/i' => 'Phasing',
'/Filter/i' => 'Filter',
'/pass/i' => 'Filter',
'/Resonan/i' => 'Resonant',
'/moog/i' => 'Moog',
'/Pitch/i' => 'Pitch',
'/Pitchshift/i' => 'Pitch',
'/ir\b/i' => 'Impulse_Response',
'/matrix/i' => 'matrix',
'/quanti/i' => 'Quantiser',
'/\brandom\b/i' => 'Noise',
'/noise\b/i' => 'Noise',
# '/\bpan/i' => 'Panner',
'/\bpan/i' => 'Panorama',
'/\bamp/i' => 'Amplifier',
'/\bpreamp/i' => 'Amplifier', # ??
'/\bTone/i' => 'Tone_Control',
'/\banalog/i' => 'Analogue',
'/\bTube/i' => 'Tube',
'/Cabinet/i' => 'Speaker Emulation',
'/\bOsc/i' => 'Oscillator',
'/VCO/i' => 'Oscillator',
'/generator/i' => 'Generator',
'/adsr/i' => 'ADSR', # Dynamics ?!
'/emulat/i' => 'Emulation',
'/decay/i' => 'ADSR', # actually 'Reverb' ?!
'/limit/i' => 'Dynamics',
'/\bcompres/i' => 'Dynamics',
'/sc[0-4]/i' => 'Dynamics',
'/se[0-4]/i' => 'Dynamics',
'/expand/i' => 'Dynamics',
'/dynamic/i' => 'Dynamics',
'/parametri/i' => 'Parametric',
'/\beq\b/i' => 'Equalizer', # beware of frEQuencies!
'/\bequali/i' => 'Equalizer',
);
Once the above patterns are stable, I'll post the script to generate a list of all plugins on the host it runs exporting the data as DokuWiki pages, ready for copy/paste or upload. stay tuned.
==== other TODO items ====
* see ''TODO'', ''FIXmE'' and ''XXX'' marks in the source.
* add a //reset-to-defaults// preset & button.
* AJAX (save as preset, on-port-value-change notifications)
* add LV2 plugin and generic data parser. RDF parser.
* improve style and color.
* toggle Legend box (alike TOC ?!).
{{tag>floss www dokuplugin}}