[linux-audio-dev] My ideas for plugin presets

New Message Reply About this list Date view Thread view Subject view Author view Other groups

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>


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Mon Dec 18 2000 - 02:06:05 EET