aboutsummaryrefslogtreecommitdiffstats
path: root/ext/pui.lv2/pui.ttl
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pui.lv2/pui.ttl')
-rw-r--r--ext/pui.lv2/pui.ttl38
1 files changed, 37 insertions, 1 deletions
diff --git a/ext/pui.lv2/pui.ttl b/ext/pui.lv2/pui.ttl
index 425047d..20c9ee8 100644
--- a/ext/pui.lv2/pui.ttl
+++ b/ext/pui.lv2/pui.ttl
@@ -156,7 +156,7 @@ those extensions MUST specify:
<li>What data (if any) should be passed in the LV2_Feature data pointer. </li>
</ol></p>
-<p>For an example, see pui:floatControl.
+<p>For an example, see pui:floatControl or pui:floatPeakRMS.
</p>
<p>PortProtocol is a subclass of lv2:Feature, so UIs use lv2:optionalFeature and
@@ -185,3 +185,39 @@ pui:floatControl a pui:PortProtocol;
NULL.</li>
</ol>
""".
+
+pui:floatPeakRMS a pui:PortProtocol;
+ rdfs:label "Peak and RMS for a period of audio data";
+ lv2:documentation """
+<p>This port protocol defines a way for the host to send continuous peak
+and RMS measurements of the audio signal at a certain port to the UI. The
+intended use is visualisation, e.g. an animated meter widget that shows
+the level of the audio input or output.</p>
+
+<p>A contiguous sequence of audio samples for which a single peak value
+and a single RMS value have been computed is called a <em>measurement
+period</em>.</p>
+
+<p>The rules (see pui:PortProtocol) for this port protocol are:</p>
+<ol>
+<li>This PortProtocol is valid for ports with the type lv2:AudioPort.</li>
+<li>The host SHOULD call port_event() at regular intervals. The measurement
+ periods used for calls to port_event() for the same port SHOULD be
+ contiguous (i.e. the measurement period for one call should begin right
+ after the end of the measurement period for the previous call ends) unless
+ the UI has removed and re-added the port subscription between those calls.
+ However, UIs MUST NOT depend on either the regularity of the calls or the
+ contiguity of the measurement periods; hosts may change the call rate
+ or skip calls for performance or other reasons. Measurement periods for
+ different calls to port_event() for the same port MUST NOT overlap.
+<li>The format of the data in the buffer passed to port_event() is a single
+ LV2_PUI_Peak_RMS_Data object, and the buffer size is
+ sizeof(LV2_PUI_Peak_RMS_Data).</li>
+<li>The UI MUST NOT call write_port() with the ID for this port protocol as
+ the port_protocol parameter.</li>
+<li>The host MUST ignore any write_port() calls with the ID for this port
+ protocol as the port_protocol parameter.</li>
+<li>The data pointer in the LV2_Feature object for this feature should be
+ NULL.</li>
+</ol>
+""".