Files
op-pedal/lv2/aarch64/ToobAmp.lv2/ToobML.ttl
T
Robin E. R. Davies 1d05500784 ToobAmp 1.2.76 aarch64
2026-04-20 01:39:30 -04:00

540 lines
18 KiB
Turtle

@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix units: <http://lv2plug.in/ns/extensions/units#> .
@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix midi: <http://lv2plug.in/ns/ext/midi#> .
@prefix epp: <http://lv2plug.in/ns/ext/port-props#> .
@prefix uiext: <http://lv2plug.in/ns/extensions/ui#> .
@prefix idpy: <http://harrisonconsoles.com/lv2/inlinedisplay#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix mod: <http://moddevices.com/ns/mod#> .
@prefix param: <http://lv2plug.in/ns/ext/parameters#> .
@prefix work: <http://lv2plug.in/ns/ext/worker#> .
@prefix pg: <http://lv2plug.in/ns/ext/port-groups#> .
@prefix pipedal_ui: <http://github.com/rerdavies/pipedal/ui#> .
@prefix pipedal_patch: <http://github.com/rerdavies/pipedal/patch#> .
@prefix toob: <http://two-play.com/plugins/toob#> .
@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix patch: <http://lv2plug.in/ns/ext/patch#> .
@prefix plug: <http://two-play.com/plugins/toob-tone-stack#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix state: <http://lv2plug.in/ns/ext/state#> .
@prefix urid: <http://lv2plug.in/ns/ext/urid#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix toobml: <http://two-play.com/plugins/toob-ml#> .
@prefix mod: <http://moddevices.com/ns/mod#>.
toobml:modelFile
a lv2:Parameter;
rdfs:label "Model";
mod:fileTypes "json,mlmodels";
rdfs:range atom:Path.
toobml:filterGroup
a param:ControlGroup ,
pg:InputGroup ;
lv2:name "EQ" ;
lv2:symbol "filter" .
toobml:sagGroup
a param:ControlGroup ,
pg:InputGroup ;
lv2:name "Transformer Sag" ;
lv2:symbol "sag" .
<http://two-play.com/rerdavies#me>
a foaf:Person ;
foaf:name "Robin Davies" ;
foaf:mbox <mailto:rerdavies@gmail.com> ;
foaf:homepage <https://github.com/sponsors/rerdavies> .
<http://two-play.com/plugins/toob-ml>
a lv2:Plugin ,
lv2:AmplifierPlugin ;
doap:name "TooB ML Amplifier" ,
"TooB ML Amplifier"@en-gb-gb
;
uiext:ui <http://two-play.com/plugins/toob-ml-ui>;
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 76 ;
rdfs:comment """
The TooB ML Amplifier plugin provides emulation of a variety of amplifiers and overdrive pedals that are implemented
using neural-network-based machine learning models of real amplifiers.
Generally, TooB ML uses smaller and more efficient neural networks than does TooB Neural Amp Modeller. As a result,
TooB ML models use significantly less CPU, although TooB Neural Amp Modeller is significantly more flexible, and
has a huge number of downloadable models.
TooB ML models are compatible with models from the GuitarML project (). You can download new models from the GuitarML project
at
https://guitarml.com/tonelibrary/tonelib-pro.html
To use GuitarML models, download them locally using your browser, and then upload them to TooB ML using the following steps:
- Load Toob ML in PiPedal.
- Click on the "Models" control.
- Click on the _Upload_ button in the lower left corner of the selection dialog.
- Select the file that you downloaded localy.
TooB ML can upload indiviual .json files, or collections of models in .zip files downloaded from the GuitarML site.
Some models have an additional Gain control that can be used to simulate the effect of a Gain control on the amplifier
being simulated. The gain control will be enabled if the model you have selected has a gain input.
For convenience, tone controls are provided for rough shaping of tone before the input signal is fed to the neural net models. The tone
section can be completely bypassed by setting all tone controls to exactly 0.5.
The Sag section models transformer sag using DSP simulation, since transformer sag is not captured well by neural network models. A modest amount
of transformer sag produces an amp simulation that feels more "forgiving". The Sag section is not based on neural network modelling.
To disable transformer modelling, set the Sag Out and Sag Feedback controls to zero.
The SagF control affects the cutoff frequency of a low-pass filter which is used to calculate the amount of transformer sag. Lower values produce a faster
onset; higher values produce a slower onset. Nominally, SagF should be set to 13Hz, which loosely models the transformer sag of a Fender Bassman based
on circuit simulations.
The Sag Feedback control uses the calculated transformer voltage sag to scale the signal level of the input to the model. For models with gentle overdrive, it tends to keep the model operating in the sweet stop where the model is
on the edge of breakup. It does not work particularly well for models of heavily overdriven amplifiers. The effect of Sag Out is similar to that of an analog
compressor. Notionally, Sag Feedback models the effect of transformer sag on intermediate transformer stages (which causes them to clip at a lower level than
they ordinarily would); and Sag Out models the effect of transformer sag on the final power stage of a guitar amplifier.
The TooB ML Amplifier is based heavily on code ported from from the RTNeural project (https://github.com/jatinchowdhury18/RTNeural), by Jatin Chowdhury,
and uses model files from the GuitarML Neural Pi project (https://github.com/GuitarML/NeuralPi).
""" ;
mod:brand "TooB";
mod:label "TooB ML";
lv2:requiredFeature urid:map, work:schedule ;
lv2:optionalFeature state::freePath, state:makePath, state:mapPath ;
lv2:extensionData state:interface, work:interface;
patch:readable
toobml:modelFile;
patch:writable
toobml:modelFile;
pipedal_patch:readable
<http://two-play.com/plugins/toob#frequencyResponseVector>
;
lv2:port
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 0;
lv2:symbol "trim" ;
lv2:name "Trim";
lv2:default 0.0 ;
lv2:minimum -30.0 ;
lv2:maximum 30.0 ;
units:unit units:db ;
rdfs:comment "Input volume trim (pre-model)";
],
[
a lv2:OutputPort ,
lv2:ControlPort ;
lv2:index 1 ;
lv2:symbol "trimOut" ;
lv2:name "";
lv2:default -35.0 ;
lv2:minimum -35.0 ;
lv2:maximum 10.0 ;
units:unit units:db ;
],
[
# legagcy for loading of old instances.
a lv2:InputPort, lv2:ControlPort ;
lv2:portProperty epp:notOnGUI;
lv2:index 2 ;
lv2:symbol "model" ;
lv2:name "Model" ;
lv2:default -1.0 ;
lv2:minimum -1.0 ;
lv2:maximum 32.0 ;
lv2:portProperty lv2:enumeration ;
lv2:scalePoint
[
rdfs:label "BluesJR";
rdf:value 0.0
],
[
rdfs:label "BluesJR FullD";
rdf:value 1.0
],
[
rdfs:label "BossDistortionDs1 highGain";
rdf:value 2.0
],
[
rdfs:label "BossMetalZoneMt2 highGain";
rdf:value 3.0
],
[
rdfs:label "DumbleClone clean";
rdf:value 4.0
],
[
rdfs:label "DumbleClone highGain";
rdf:value 5.0
],
[
rdfs:label "DumbleClone medGain";
rdf:value 6.0
],
[
rdfs:label "EH CockFight highDrive";
rdf:value 7.0
],
[
rdfs:label "FenderPrinceton clean";
rdf:value 8.0
],
[
rdfs:label "FenderPrinceton highLevel";
rdf:value 9.0
],
[
rdfs:label "Goat DistortionGen highDist";
rdf:value 10.0
],
[
rdfs:label "Goat DistortionGen lowDist";
rdf:value 11.0
],
[
rdfs:label "HT40 Overdrive";
rdf:value 12.0
],
[
rdfs:label "LittleBigMuff";
rdf:value 13.0
],
[
rdfs:label "MIAudio Crunchbox highGain";
rdf:value 14.0
],
[
rdfs:label "MIAudio Crunchbox midGain";
rdf:value 15.0
],
[
rdfs:label "MesaBoogieMk2b Clean";
rdf:value 16.0
],
[
rdfs:label "MesaBoogieMk2b Crunch";
rdf:value 17.0
],
[
rdfs:label "MesaBoogieMk2b highGain";
rdf:value 18.0
],
[
rdfs:label "MesaBoogie Studio22 Clean";
rdf:value 19.0
],
[
rdfs:label "MesaBoogie Studio22 highGain";
rdf:value 20.0
],
[
rdfs:label "PAiA AxeGrinder highDist";
rdf:value 21.0
],
[
rdfs:label "ProCoRat";
rdf:value 22.0
],
[
rdfs:label "RockmanXPR Clean";
rdf:value 23.0
],
[
rdfs:label "RockmanXPR Distortion";
rdf:value 24.0
],
[
rdfs:label "Rockman Acoustic";
rdf:value 25.0
],
[
rdfs:label "Rockman Ultimatum highGain";
rdf:value 26.0
],
[
rdfs:label "Soldano crunch";
rdf:value 27.0
],
[
rdfs:label "Soldano highGain";
rdf:value 28.0
],
[
rdfs:label "TS9";
rdf:value 29.0
],
[
rdfs:label "TS9 FullD";
rdf:value 30.0
],
[
rdfs:label "WamplerTumnus highGain";
rdf:value 31.0
],
[
rdfs:label "XoticCompSP";
rdf:value 32.0
];
rdfs:comment "Select neural network model."
] ,
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 3 ;
lv2:symbol "gain" ;
lv2:name "Gain";
lv2:default 3.0 ;
lv2:minimum 0.0 ;
lv2:maximum 10.0 ;
rdfs:comment "Model gain parameter (if supported by model) ()"
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 4 ;
lv2:symbol "master" ;
lv2:name "Master";
lv2:default 0.0 ;
lv2:minimum -30.0 ;
lv2:maximum 30.0 ;
units:unit units:db ;
rdfs:comment "Output volume trim (post-model)";
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 5 ;
lv2:symbol "bass" ;
lv2:name "Bass";
pg:group toobml:filterGroup ;
lv2:default 0.5 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
rdfs:comment "Bass eq (pre-model)";
], [
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 6 ;
lv2:symbol "mid" ;
lv2:name "Mid";
pg:group toobml:filterGroup ;
lv2:default 0.5 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
rdfs:comment "Mid eq (pre-model)";
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 7 ;
lv2:symbol "treble" ;
lv2:name "Treble";
pg:group toobml:filterGroup ;
lv2:default 0.5 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
rdfs:comment "Treble eq (pre-model)";
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 8 ;
lv2:symbol "sag" ;
lv2:name "Sag Out";
pg:group toobml:sagGroup ;
lv2:default 0.0 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0;
rdfs:comment "How much transformer sag affects output volume, post-model. Similar to an analog compressor effect." ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 9 ;
lv2:symbol "sagd" ;
lv2:name "Sag Feedback";
pg:group toobml:sagGroup ;
lv2:default 0.0 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0;
rdfs:comment "Transformer sag feedback. How much transformer sag affects the input signal to the model. Tends to keep the model on the edge of breakup." ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 10 ;
lv2:symbol "sagf" ;
lv2:name "SagF";
pg:group toobml:sagGroup ;
units:unit units:hz ;
lv2:default 13.0 ;
lv2:minimum 5.0 ;
lv2:maximum 25.0;
rdfs:comment "Sag filter frequency." ;
],
[
a lv2:OutputPort ,
lv2:ControlPort ;
lv2:portProperty epp:notOnGUI;
lv2:index 11 ;
lv2:symbol "gainEnable" ;
lv2:name "GainEnable";
lv2:default 0.0 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0 ;
],
[
a lv2:AudioPort ,
lv2:InputPort ;
lv2:index 12 ;
lv2:symbol "in" ;
lv2:name "In"
], [
a lv2:AudioPort ,
lv2:OutputPort ;
lv2:index 13 ;
lv2:symbol "out" ;
lv2:name "Out"
]
,
[
a atom:AtomPort ,
lv2:InputPort;
atom:bufferType atom:Sequence ;
# atom:supports patch:Message;
lv2:designation lv2:control ;
lv2:index 14 ;
lv2:symbol "control" ;
lv2:name "Control" ;
rdfs:comment "Plugin to GUI communication" ;
] ,
[
a atom:AtomPort ,
lv2:OutputPort ;
atom:bufferType atom:Sequence ;
# atom:supports patch:Message;
lv2:designation lv2:control ;
lv2:index 15 ;
lv2:symbol "notify" ;
lv2:name "Notify" ;
rdfs:comment "Plugin to GUI communication" ;
]
.
<http://two-play.com/plugins/toob-ml-ui>
a uiext:X11UI ;
lv2:binary <ToobAmpUI.so>;
lv2:extensionData uiext::idle ;
lv2:extensionData uiext:resize ;
lv2:extensionData uiext:idleInterface;
lv2:requiredFeature uiext:idleInterface ;
patch:writable
<http://two-play.com/plugins/toob#frequencyResponseVector>;
.
<http://two-play.com/plugins/toob-ml>
pipedal_ui:ui <http://two-play.com/plugins/toob-ml#piPedalUI>.
<http://two-play.com/plugins/toob-ml#piPedalUI>
a pipedal_ui:ui ;
pipedal_ui:fileProperties
[
a pipedal_ui:fileProperty;
rdfs:label "Model" ;
pipedal_ui:directory "ToobMlModels";
lv2:index 2 ;
pipedal_ui:patchProperty toobml:modelFile ;
pipedal_ui:resourceDirectory "models/tones";
pipedal_ui:fileTypes
[
a pipedal_ui:fileType;
rdfs:label ".json file";
pipedal_ui:fileExtension ".json";
pipedal_ui:mimeType "application/json";
],[
a pipedal_ui:fileType;
rdfs:label ".ml file";
pipedal_ui:fileExtension ".zip";
pipedal_ui:mimeType "application/zip";
]
;
];
pipedal_ui:frequencyPlot
[
lv2:index 8 ;
pg:group toobml:filterGroup ;
pipedal_ui:patchProperty toob:frequencyResponseVector;
pipedal_ui:xLeft 30 ;
pipedal_ui:xRight 22050 ;
pipedal_ui:yTop 10 ;
pipedal_ui:yBottom -35 ;
pipedal_ui:xLog 1 ;
pipedal_ui:yDb 1 ;
pipedal_ui:width 160 ;
]
.