Subject: [linux-audio-dev] My ideas for plugin presets
From: Steve Harris (S.W.Harris_AT_ecs.soton.ac.uk)
Date: Mon Dec 18 2000 - 01:24:36 EET
I've put my ideas down, the DTD might not be valid, I haven't checked it,
and I'm beginning to think that including network descriptions in there
might be overkill, but anyway...
The <plugin> element might just need a coverage attribute, rather than a
whole metadata block, and there are a couple of other things, that don't
quite seem right.
There are two examples at the end for people who don't read DTD's.
Comments?
-------------------------------------
<!ELEMENT preset (xml-preset-version,dc,morph*,plugin+,connection*)>
<!-- Version number, as per Paul B-D's GUI XML -->
<!ELEMENT xml-preset-version EMPTY>
<!ATTLIST xml-preset-version major CDATA #REQUIRED
minor CDATA #REQUIRED
micro CDATA #REQUIRED>
<!-- A control that is passed out of the preset labda style, but has
different ranges per port -->
<!ELEMENT morph EMPTY>
<!ATTLIST morph label CDATA #REQUIRED
min CDATA #REQUIRED
max CDATA #REQUIRED>
<!-- The plugin element, encloses stuff unique to the plugin -->
<!ELEMENT plugin (dc,parameters)>
<!-- The metadata for the preset and plugin.
Not sure if you can include DTD's but if you can then the Purl DC one
should be included here, instead of the following -->
<!ELEMENT dc (title*,creator*,subject*,description*,publisher*,contributor*,date*,type*,format*,identifier*,source*,relation*,coverage*,rights*)>
<!ELEMENT title CDATA>
<!ATTLIST title subelement CDATA #IMPLIED>
<!ELEMENT creator CDATA>
<!ATTLIST creator subelement CDATA #IMPLIED>
<!-- ... -->
<!ELEMENT rights CDATA>
<!ATTLIST rights subelement CDATA #IMPLIED>
<!-- element to hold the list of defined parameters for the plugin,
not sure if (a|b)+ is legal -->
<!ELEMENT parameters ((fixed|variable)+)>
<!-- A fixed parameter, just normal preset stuff -->
<!ELEMENT fixed EMPTY>
<!ATTLIST fixed type (float|int|boolean|string) "float"
label CDATA #IMPLIED
value CDATA #REQUIRED>
<!-- A variable parameter, will be passed out to the host in a lambda
plugin -->
<!ELEMENT variable EMPTY>
<!ATTLIST variable type (float|int|boolean|string) "float"
label CDATA #IMPLIED
morph CDATA #IMPLIED
from CDATA #REQUIRED
to CDATA #REQUIRED>
<!ELEMENT connection (src,dest)>
<!ELEMENT src EMPTY>
<!ATTLIST src plugin CDATA #REQUIRED
port CDATA #REQUIRED>
<!ELEMENT dest EMPTY>
<!ATTLIST dest plugin CDATA #REQUIRED
port CDATA #REQUIRED>
<!-- ---------------- EXAMPLES ----------------- -->
<!-- Simple example -->
<preset>
<xml-preset-version major="0" minor="0" micro="1"/>
<dc>
<title>A 1kHz notch</title>
<creator>S. Harris</creator>
<date>2000-12-17</date>
</dc>
<plugin>
<dc>
<coverage>1203</coverage> <!-- the LADSPA ID number -->
<dc>
<parameters>
<fixed value="-70"/>
<fixed value="1000"/>
<fixed value="0.1"/>
</parameters>
</plugin>
</preset>
<!-- Complex example -->
<preset>
<xml-preset-version
major="0"
minor="0"
micro="1"/>
<dc>
<title>2 crossing notches</title>
<creator>S. Harris</creator>
<creator subelement="email">steve_AT_totl.net</creator>
<date>2000-12-17</date>
<rights>GPL</rights>
</dc>
<!-- a control that should exist outside of the labda, varies from 0 to 1,
and as it does the two plugins frequncies go from 0-8000 and 8000-0 as
appropriate -->
<morph label="freq" min="0" max="1"/>
<!-- plugin p1, defines a notch filter that moves from 0Hz to 8000Hz -->
<plugin>
<dc>
<identifier>p1</identifier>
<coverage>1203</coverage>
<dc>
<parameters>
<fixed value="-70"/>
<variable morph="freq" from="0" to="8000"/>
<fixed value="0.1"/>
</parameters>
</plugin>
<!-- plugin p2, defines a notch filter that moves from 0Hz to 8000Hz -->
<plugin>
<dc>
<identifier>p2</identifier>
<coverage>1203</coverage>
<dc>
<parameters>
<fixed value="-70"/>
<variable morph="freq" from="8000" to="0"/>
<fixed value="0.1"/>
</parameters>
</plugin>
<connection>
<src plugin="p1" port="output"/>
<dest plugin="p2" port="input"/>
</connection>
</preset>
This archive was generated by hypermail 2b28 : Mon Dec 18 2000 - 02:06:05 EET