MOD Audio

MOD Pedalboard Extension

http://moddevices.com/ns/modpedal#

Overview

The modpedal: namespace defines the vocabulary used in pedalboard files — the LV2 bundles that describe a saved plugin graph on a MOD device or the MOD Desktop application.

A pedalboard is stored as an LV2 bundle on disk. Its root resource is declared as a modpedal:Pedalboard, and the individual plugin instances within it each carry modpedal:instanceNumber and optionally modpedal:preset annotations. Canvas dimensions are stored on the root resource.

Note for tool authors: Pedalboard files are written and read by the MOD platform (mod-ui / mod-host). Plugin developers do not write pedalboard files — this namespace is documented here for the benefit of developers building tools that read or generate pedalboard bundles (e.g. exporters, converters, backup tools).

Prefixes

@prefix modpedal: <http://moddevices.com/ns/modpedal#> .
@prefix lv2:      <http://lv2plug.in/ns/lv2core#> .
@prefix ingen:    <http://drobilla.net/ns/ingen#> .
@prefix rdfs:     <http://www.w3.org/2000/01/rdf-schema#> .

Class

Class Description
modpedal:Pedalboard The RDF type of a pedalboard resource. Every pedalboard bundle declares its root resource as a modpedal:Pedalboard , lv2:Plugin. The lv2:Plugin typing allows the bundle to be discovered by standard LV2 tooling.

Properties on the Pedalboard resource

Property Type Description
modpedal:version integer File format version of this pedalboard bundle. Used by the platform to detect whether a pedalboard was created by an older version and may require migration.
modpedal:width integer Width of the pedalboard canvas in pixels, as set by the user. Determines the scrollable area of the pedalboard editor.
modpedal:height integer Height of the pedalboard canvas in pixels, as set by the user.

Properties on plugin instance blocks

Each plugin instance in the pedalboard graph is represented as an ingen:Block resource. The following modpedal: properties are used on these block resources.

Property Type Description
modpedal:instanceNumber integer Unique integer identifier for this plugin instance within the pedalboard. Used internally to route control messages between mod-ui and mod-host. Assigned sequentially starting from 0 when the plugin is added to the pedalboard. Must be unique across all instances in a pedalboard.
modpedal:preset URI The URI of the LV2 preset currently active on this plugin instance. If absent or empty, no preset is loaded (the plugin uses its current port values).

Example pedalboard TTL

@prefix modpedal: <http://moddevices.com/ns/modpedal#> .
@prefix ingen:    <http://drobilla.net/ns/ingen#> .
@prefix lv2:      <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs:     <http://www.w3.org/2000/01/rdf-schema#> .
@prefix midi:     <http://lv2plug.in/ns/ext/midi#> .

<>
    a modpedal:Pedalboard , lv2:Plugin ;
    rdfs:label "My Pedalboard" ;
    modpedal:version 1 ;
    modpedal:width   3200 ;
    modpedal:height  1200 ;
    ingen:block
        </graph/gain> ,
        </graph/reverb> .

</graph/gain>
    a ingen:Block ;
    lv2:prototype <http://example.com/plugins/my-gain> ;
    modpedal:instanceNumber 0 ;
    ingen:enabled true ;
    ingen:canvasX 200.0 ;
    ingen:canvasY 300.0 .

</graph/reverb>
    a ingen:Block ;
    lv2:prototype <http://example.com/plugins/my-reverb> ;
    modpedal:instanceNumber 1 ;
    modpedal:preset <http://example.com/plugins/my-reverb/presets/hall> ;
    ingen:enabled true ;
    ingen:canvasX 500.0 ;
    ingen:canvasY 300.0 .