commit e8abaeac52615adf39e5ff718c5bf04ad14419ce
parent 19ebab5016b733edbe74f3836020f905f2721dc5
Author: Alexandre Bique <bique.alexandre@gmail.com>
Date: Tue, 21 Oct 2014 01:11:14 +0200
Update the spec
Diffstat:
M | spec.html | | | 113 | +++++++++++++++++++++++++++++++++++++++++-------------------------------------- |
M | spec.rst | | | 15 | ++++++++++----- |
2 files changed, 68 insertions(+), 60 deletions(-)
diff --git a/spec.html b/spec.html
@@ -124,7 +124,7 @@ tt.docutils {
</li>
<li><a class="reference internal" href="#instantiate-a-plugin" id="id13">Instantiate a plugin</a><ul>
<li><a class="reference internal" href="#precautions" id="id14">Precautions</a></li>
-<li><a class="reference internal" href="#shell-plugins" id="id15">Shell plugins</a><ul>
+<li><a class="reference internal" href="#plugins-collection" id="id15">Plugins collection</a><ul>
<li><a class="reference internal" href="#sample-plugin-loader" id="id16">Sample plugin loader</a></li>
</ul>
</li>
@@ -195,7 +195,9 @@ tt.docutils {
<li>Make a free audio plugin format</li>
<li>Be easy to understand and implement</li>
<li>Bring new features missed in VST 2.4</li>
-<li>Replace old concepts by modern one</li>
+<li>Replace old concepts by modern ones. For example the specification tries
+to not use MIDI as its internal event systems, which let us have
+micro-tones. Yet MIDI events are possible.</li>
<li>Designed to work on any operating system</li>
<li>Be event oriented</li>
<li>Be extensible without breaking existing plugins</li>
@@ -283,22 +285,22 @@ version is suited for the current architecture by reading its name.</p>
<td>DigitalDragon.x86_64.so</td>
</tr>
<tr><td>alpha</td>
-<td>DigitalDrapon.alpha.so</td>
+<td>DigitalDragon.alpha.so</td>
</tr>
<tr><td>arm</td>
-<td>DigitalDrapon.arm.so</td>
+<td>DigitalDragon.arm.so</td>
</tr>
<tr><td>sparc</td>
-<td>DigitalDrapon.sparc.so</td>
+<td>DigitalDragon.sparc.so</td>
</tr>
<tr><td>hppa</td>
-<td>DigitalDrapon.hppa.so</td>
+<td>DigitalDragon.hppa.so</td>
</tr>
<tr><td>ppc</td>
-<td>DigitalDrapon.ppc.so</td>
+<td>DigitalDragon.ppc.so</td>
</tr>
<tr><td>ppc64</td>
-<td>DigitalDrapon.ppc64.so</td>
+<td>DigitalDragon.ppc64.so</td>
</tr>
</tbody>
</table>
@@ -322,8 +324,8 @@ built for the native/current architecture.</p>
<li>It can return <tt class="docutils literal">NULL</tt>.</li>
</ul>
</div>
-<div class="section" id="shell-plugins">
-<h3><a class="toc-backref" href="#id15">Shell plugins</a></h3>
+<div class="section" id="plugins-collection">
+<h3><a class="toc-backref" href="#id15">Plugins collection</a></h3>
<p>A single dynamic library can contains multiple clap plugins.
To list them, you have to call <tt class="docutils literal">clap_create</tt> with an index of 0 and increment
the index until you reach <tt class="docutils literal">plugin_count</tt>.
@@ -336,7 +338,8 @@ the index until you reach <tt class="docutils literal">plugin_count</tt>.
</div>
<div class="section" id="description">
<h3><a class="toc-backref" href="#id17">Description</a></h3>
-<p>Both the plugin and host have a few attribute giving general plugin description.</p>
+<p>Both the <tt class="docutils literal">struct clap_plugin;</tt> and <tt class="docutils literal">struct clap_host;</tt> have a few attribute giving
+general plugin/host information.</p>
<table border="1" class="docutils">
<colgroup>
<col width="25%" />
@@ -491,50 +494,50 @@ input/output, sidechain, feedback.</p>
</tr>
</thead>
<tbody valign="top">
-<tr><td>input
-input</td>
-<td>stereo</td>
-<td>inout</td>
-<td>process->inputs[0]
-process->inputs[1]</td>
-<td>left input
-right input</td>
-</tr>
-<tr><td>input
-input</td>
-<td>stereo</td>
-<td>sidechain</td>
-<td>process->inputs[2]
-process->inputs[3]</td>
-<td>left sidechain
-right sidechain</td>
-</tr>
-<tr><td>input
-input</td>
-<td>stereo</td>
-<td>feedback</td>
-<td>process->inputs[4]
-process->inputs[5]</td>
-<td>left feedback
-right feedback</td>
-</tr>
-<tr><td>output
-output</td>
-<td>stereo</td>
-<td>inout</td>
-<td>process->outputs[0]
-process->outputs[1]</td>
-<td>left input
-right input</td>
-</tr>
-<tr><td>output
-output</td>
-<td>stereo</td>
-<td>feedback</td>
-<td>process->outputs[2]
-process->outputs[3]</td>
-<td>left feedback
-right feedback</td>
+<tr><td rowspan="2">input</td>
+<td rowspan="2">stereo</td>
+<td rowspan="2">inout</td>
+<td>process->inputs[0]</td>
+<td>left input</td>
+</tr>
+<tr><td>process->inputs[1]</td>
+<td>right input</td>
+</tr>
+<tr><td rowspan="2">input</td>
+<td rowspan="2">stereo</td>
+<td rowspan="2">sidechain</td>
+<td>process->inputs[2]</td>
+<td>left sidechain</td>
+</tr>
+<tr><td>process->inputs[3]</td>
+<td>right sidechain</td>
+</tr>
+<tr><td rowspan="2">input</td>
+<td rowspan="2">stereo</td>
+<td rowspan="2">feedback</td>
+<td>process->inputs[4]</td>
+<td>left feedback</td>
+</tr>
+<tr><td>process->inputs[5]</td>
+<td>right feedback</td>
+</tr>
+<tr><td rowspan="2">output</td>
+<td rowspan="2">stereo</td>
+<td rowspan="2">inout</td>
+<td>process->outputs[0]</td>
+<td>left input</td>
+</tr>
+<tr><td>process->outputs[1]</td>
+<td>right input</td>
+</tr>
+<tr><td rowspan="2">output</td>
+<td rowspan="2">stereo</td>
+<td rowspan="2">feedback</td>
+<td>process->outputs[2]</td>
+<td>left feedback</td>
+</tr>
+<tr><td>process->outputs[3]</td>
+<td>right feedback</td>
</tr>
</tbody>
</table>
diff --git a/spec.rst b/spec.rst
@@ -241,19 +241,24 @@ So for the following configuration:
| in/out | type | role | buffer | desc |
+========+==========+============+=====================+=================+
| input | stereo | inout | process->inputs[0] | left input |
-| input | | | process->inputs[1] | right input |
+| | | +---------------------+-----------------+
+| | | | process->inputs[1] | right input |
+--------+----------+------------+---------------------+-----------------+
| input | stereo | sidechain | process->inputs[2] | left sidechain |
-| input | | | process->inputs[3] | right sidechain |
+| | | +---------------------+-----------------+
+| | | | process->inputs[3] | right sidechain |
+--------+----------+------------+---------------------+-----------------+
| input | stereo | feedback | process->inputs[4] | left feedback |
-| input | | | process->inputs[5] | right feedback |
+| | | +---------------------+-----------------+
+| | | | process->inputs[5] | right feedback |
+--------+----------+------------+---------------------+-----------------+
| output | stereo | inout | process->outputs[0] | left input |
-| output | | | process->outputs[1] | right input |
+| | | +---------------------+-----------------+
+| | | | process->outputs[1] | right input |
+--------+----------+------------+---------------------+-----------------+
| output | stereo | feedback | process->outputs[2] | left feedback |
-| output | | | process->outputs[3] | right feedback |
+| | | +---------------------+-----------------+
+| | | | process->outputs[3] | right feedback |
+--------+----------+------------+---------------------+-----------------+
Available configurations