Files
op-pedal/lv2/aarch64/ToobAmp.lv2/ToobNeuralAmpModeler.ttl
T
Robin E. R. Davies f836ed5f98 TooBAmp 1.3.81 aarch64
2026-06-16 16:42:26 -04:00

609 lines
23 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 ui: <http://lv2plug.in/ns/extensions/ui#> .
@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
@prefix patch: <http://lv2plug.in/ns/ext/patch#> .
@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 mod: <http://moddevices.com/ns/mod#>.
@prefix toobNam: <http://two-play.com/plugins/toob-nam#> .
<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> .
toobNam:dbuUnits
a units:Unit ;
rdfs:label "dBU" ;
units:symbol "dbu" ;
units:render "%f dBU".
toobNam:modelFile
a lv2:Parameter;
rdfs:label "Model";
mod:fileTypes "nam,nammodel";
rdfs:range atom:Path.
toobNam:eqGroup
a param:ControlGroup ,
pg:InputGroup ;
lv2:name "Tone" ;
lv2:symbol "eqGroup" .
toobNam:calibrationGroup
a param:ControlGroup ,
pg:InputGroup ;
lv2:name "Calibration" ;
lv2:symbol "calibrationGroup" .
<http://two-play.com/plugins/toob-nam>
a lv2:Plugin ,
lv2:AmplifierPlugin ;
doap:name "TooB Neural Amp Modeler" ,
"TooB Neural Amp Modeler"@en-gb-gb
;
uiext:ui <http://two-play.com/plugins/toob-nam-ui> ;
doap:license <https://rerdavies.github.io/pipedal/LicenseToobAmp> ;
doap:maintainer <http://two-play.com/rerdavies#me> ;
lv2:minorVersion 0 ;
lv2:microVersion 81 ;
rdfs:comment """
TooB Neural Amp Modeler is a neural network based Amp Simulator. It uses .nam model files that are generated by training nueral networks
on audio recordings of actual guitar amps, effects pedals and other equipment. .nam files contain data from the trained models, which can be loaded into
TooB Neural Amp Modeler. The resulting models produce startlingly realistic emulations of the original equipment.
The .nam file format (and the NAM technology itself) was developed by the open-source Neural Amp Modeler Core project. The NAM Core project provides both code that can be used by Neural Amp Modeler
plugins, and code that can be used to train models for use in NAM plugins. Currently, NAM plugins are available on a wide variety of operating systems and audio platforms, and are
increasingly being used in commercial pedals and amps.
Although NAM is, first and foremost, used to model guitar amps, it is equally good at emulating a wide variety of other guitar effects. Overdrive and distortion pedals,
compressors, limiters, tube preamps on studio mixing strips, and many other effects can be simulated extremely well using NAM models. NAM will definitely become
your go-to source for great amp emulations; but it should probably also become your go-to source for emulating distorion and overdrive pedals. And developers
are constantly coming up with new and ingenious applications for NAM models.
.nam model files can be donwloaded from the internet. There are many online sources for .nam model files, both free, and commercial. Foremost among these is the
http://tone3000.com website, which provides a vast collection of free .nam models files that have been developed and uploaded by a large online community of NAM users.
To upload Tone3000 models directly to the PiPedal server, click on the Model control, and then click on the "DOWNLOAD MODEL FILES FROM TONE3000" button at the bottom
of the browser dialog. This will bring up a browser window for Tone3000 NAM models. When you select a tone bundle, the bundle will be uploaded diretly to the PiPedal server.
If you obtain .nam models from other source (e.g. commercial tone bundles), you can upload .nam models, or .zip files containing bundles of .nam modesl to
the pipedal server by tapping the "UPLOAD" button found at the bottom of the model file browser dialog.
If you are not using PiPedal, just click on the Model control, and use the host application's file browser to select .nam files directly on your local system.
TooB Neural Amp Modeler supports a much wider range of amp models than ToobML, but usually uses more CPU.
You will need at least a Pi 4 to use Toob Neural Amp Modeler, and you may need to increase your audio buffer sizes to prevent overruns.
If you are having trouble with CPU usage, tone3000.com does contain some smaller amp models. Search for the "feather" tag to find
models that use less CPU. Generally, you can use up to three NAM plugins at once in a given preset on a Pi 4, and up to 16 NAM plugins
simultaneously on a Pi 5. However, exact CPU use varies depending on the complexity of the amp models you are using.
If you are interested in profiling your own amps and effect pedals, please visit https://www.tone3000.com/capture
When the Threaded control is on, neural amp modelling calculations are run on a separate thread from the
real-time audio thread. This introduces one extra audio buffer of latency, but allows the plugin to make full
use of all available processor cores on your Pi server. On a Pi 5, you can run more instance than you
could ever practically use when using threading; on a Pi 4 you can run 5 simultanous instances when using threading.
When using more than a couple of NAM instances, you need to check that the PiPedal server's CPU is not temperature throttling
when using this feature.
If the CPU temperature exceeds 80 degrees Celcius on a Raspberry Pi, the CPU clock rate is reduced, and
the performance of the plugins will be affected. Having a good heat sink, or active cooling system is recommended when using more than a couple of
NAM instances. PiPedal displays the current CPU temperature in a status message at the bottom of the display (unless you've turned
that off in settings), and also displays the current CPU temperature in the status message found at the top
of the Settings page. If you are running on a system that is not a Raspberry Pi, please consult your manufacturer's
help documentation to find out what temperature heat throttling starts at on your particular computer, if you really need to know
what the threshold is; but the effect on performance is pretty obvious when heat throttling does start.
Note that heat throttling is done to protect your processor from permanent damage due to overheating; but there's no real risk of actual
damage, since heat throttling thresholds are set well below the point at which damage occurs.
TooB NAM now supports NAM A2 models, but supports the older NAM A1 format as well. Models downloaded through TooB NAM's "DOWNLOAD MODEL FILES FROM TONE3000" button will usually
be A2 models. Currently, tone bundles downloaded from the Tone3000 website directly will be A1 models. Model bundles that you obtain from other sources may also
be A1 or A2 models.
A2 models generally offer better audio quality and lower CPU use than comparable A1 models.
One of the key new features introduced in NAM A2 is support for "Slimmable" models. A Slimmable model
is a single model file that contains multiple quality tiers, allowing you to interactively trade off
audio quality against CPU usage at runtime. When you load a Slimmable A2 model, a new "Slim" dial
appears in the TooB NAM controls. Turn it down to use a lighter, lower-quality tier that saves CPU;
turn it up to use a higher-quality tier at greater CPU cost.
The number of quality tiers available depends on how the model was trained. Tone3000 A2 models
currently provide two tiers: a Slim weight of 0.5, and a Slim weight of 1.0. The lighter tier (0.5)
delivers quality comparable to a typical A1 model but at noticeably lower CPU cost. The heavier tier
(1.0) delivers significantly better quality than comparable A1 models, with only a modest increase in
CPU use. Future A2 models may provide more flexible Slimmable weight settings.
---
TooB Neural Amp Modeler uses code from the Neural Amp Modeler Core project (https://www.neuralampmodeler.com/). The TooB team wishes
to express gratitude to Steven Atkinson for making this revolutionary technology available as open-source code. This is groundbreaking
technology that changes everything. None of this would have happened without the work that Steven has done. Code from the Neural Amp
Modeler core project is provided under the following license:
MIT License
Copyright (c) Steven Atkinson
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---
TooB Neural Amp Modeler uses code from the NeuralAudio project (https://github.com/mikeoliphant/NeuralAudio). The Neural Audio project provides highly
optimized code for executing NAM A1 models. The TooB team wishes to express gratitude to Mike Oliphant for
making his optimizations work available as open-source code.
Steve and Mike have done all of the hard work that was required to make NAM technology available through TooB Neural Amp Modeler. They
deserve all the credit.
Code from the the NeuralAudio project (https://github.com/mikeoliphant/NeuralAudio) is provided
under the following license.
MIT License
Copyright (c) Mike Oliphant
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
""" ;
mod:brand "TooB";
mod:label "NAM";
lv2:optionalFeature lv2:hardRTCapable;
patch:readable
toobNam:modelFile;
patch:writable
toobNam:modelFile;
lv2:extensionData state:interface,
work:interface;
lv2:port
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 0;
lv2:symbol "inputGain" ;
lv2:name "Input Gain";
lv2:default 0.0 ;
lv2:minimum -40.0;
lv2:maximum 40.0;
units:unit units:db;
rdfs:comment "Input gain";
],
[
a lv2:OutputPort ,
lv2:ControlPort ;
lv2:index 1;
lv2:symbol "inputGainOut" ;
lv2:name "";
lv2:default -35.0 ;
lv2:minimum -35.0;
lv2:maximum 20.0;
units:unit units:db;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 2;
lv2:symbol "modelSize" ;
lv2:name "Slim";
lv2:default 0.0 ;
lv2:minimum 0.0;
lv2:maximum 1.0;
lv2:portProperty epp:expensive;
rdfs:comment "Model quality for NAM A2 models that support slimmable models.";
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 3;
lv2:symbol "outputGain" ;
lv2:name "Output Gain";
lv2:default 0.0 ;
lv2:minimum -40.0;
lv2:maximum 40.0;
units:unit units:db;
rdfs:comment "Output gain";
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 4;
lv2:symbol "gate" ;
lv2:name "Noise Gate";
lv2:default -120.0 ;
lv2:minimum -120.0;
lv2:maximum 0.0;
rdfs:comment "Noise gate threshold. Set to minimum to disable.";
units:unit units:db;
lv2:scalePoint [
rdfs:label "Off" ;
rdf:value -120.0
];
],
[
a lv2:OutputPort ,
lv2:ControlPort ;
lv2:index 5;
lv2:symbol "gateOut" ;
lv2:name "\u00A0";
lv2:default 0.0;
lv2:minimum 0.0;
lv2:maximum 1.0;
rdfs:comment "Gate Status";
lv2:portProperty lv2:toggled;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 6;
lv2:symbol "buffer" ;
lv2:name "Threaded";
lv2:default 0.0 ;
lv2:minimum 0.0;
lv2:maximum 1.0;
lv2:portProperty lv2:toggled;
rdfs:comment "Run computation on a separate thread. This allows more instances of NAM to run simultaneously, but adds one extra audio buffer of latency.";
rdfs:comment "Output gain";
],
#### EQ ###
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 7 ;
lv2:symbol "toneStack" ;
lv2:name "Type";
lv2:default 3.0 ;
lv2:minimum 0.0 ;
lv2:maximum 3.0;
lv2:portProperty lv2:enumeration ;
lv2:scalePoint [
rdfs:label "Bassman" ;
rdf:value 0.0
] , [
rdfs:label "JCM8000" ;
rdf:value 1.0
], [
rdfs:label "Baxandall" ;
rdf:value 2.0
],[
rdfs:label "Bypass" ;
rdf:value 3.0
];
rdfs:comment "Tonestack type";
pg:group toobNam:eqGroup ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 8;
lv2:symbol "bass" ;
lv2:name "Bass";
lv2:default 5.0;
lv2:minimum 0.0;
lv2:maximum 10.0;
rdfs:comment "Bass";
pg:group toobNam:eqGroup ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 9;
lv2:symbol "mid" ;
lv2:name "Mid";
lv2:default 5.0;
lv2:minimum 0.0;
lv2:maximum 10.0;
rdfs:comment "Mid";
pg:group toobNam:eqGroup ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 10;
lv2:symbol "treble" ;
lv2:name "Treble";
lv2:default 5.0;
lv2:minimum 0.0;
lv2:maximum 10.0;
rdfs:comment "Treble";
pg:group toobNam:eqGroup ;
],
### CALIBRATION ######
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 11 ;
lv2:symbol "inputCalibrationMode" ;
lv2:name "Input Calibration";
lv2:default 1.0 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0;
lv2:portProperty lv2:enumeration ;
lv2:scalePoint [
rdfs:label "Raw" ;
rdf:value 0.0
] , [
rdfs:label "Calibrated" ;
rdf:value 1.0
];
rdfs:comment "Calibration method for audio input.";
pg:group toobNam:calibrationGroup ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 12 ;
lv2:symbol "calibration" ;
lv2:name "Value";
lv2:default -6.0 ;
lv2:minimum -30.0 ;
lv2:maximum 12.0;
units:unit toobNam:dbuUnits;
rdfs:comment "Measured instrument voltage level in dBU";
pg:group toobNam:calibrationGroup ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 13;
lv2:symbol "outputCalibration" ;
lv2:name "Output Calibration";
lv2:default 0.0;
lv2:minimum 0.0;
lv2:maximum 2.0;
rdfs:comment "Calbration method for audio output";
lv2:portProperty lv2:enumeration ;
lv2:scalePoint [
rdfs:label "Normalized" ;
rdf:value 0.0
] , [
rdfs:label "Calibrated" ;
rdf:value 1.0
], [
rdfs:label "Raw" ;
rdf:value 2.0
];
pg:group toobNam:calibrationGroup ;
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 14 ;
lv2:symbol "version" ;
lv2:name "Preset Version";
lv2:default 1.0 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0;
lv2:portProperty epp:notOnGUI;
],
[
a lv2:OutputPort ,
lv2:ControlPort ;
lv2:index 15 ;
lv2:symbol "modelType" ;
lv2:name "";
lv2:default 0.0 ;
lv2:minimum 0.0 ;
lv2:maximum 4.0;
lv2:portProperty lv2:enumeration ;
lv2:scalePoint [
rdfs:label "" ;
rdf:value 0.0
] , [
rdfs:label "A1" ;
rdf:value 1.0
] , [
rdfs:label "A2" ;
rdf:value 2.0
] , [
rdfs:label "AidaX" ;
rdf:value 3.0
] , [
rdfs:label "Other" ;
rdf:value 4.0
];
],
[
a lv2:OutputPort ,
lv2:ControlPort ;
lv2:index 16 ;
lv2:symbol "currentModelWeight" ;
lv2:name "";
lv2:default 0.0 ;
lv2:minimum 0.0 ;
lv2:maximum 1.0;
lv2:portProperty epp:notOnGUI;
],
[
a lv2:AudioPort ,
lv2:InputPort ;
lv2:index 17 ;
lv2:symbol "in" ;
lv2:name "In"
],
[
a lv2:AudioPort ,
lv2:OutputPort ;
lv2:index 18 ;
lv2:symbol "out" ;
lv2:name "Out"
],
[
a atom:AtomPort ,
lv2:InputPort;
atom:bufferType atom:Sequence ;
# atom:supports patch:Message;
lv2:designation lv2:control ;
atom:supports patch:Message ;
lv2:index 19 ;
lv2:symbol "control" ;
lv2:name "Control" ;
rdfs:comment "Control" ;
] , [
a atom:AtomPort ,
lv2:OutputPort ;
atom:bufferType atom:Sequence ;
# atom:supports patch:Message;
lv2:designation lv2:control ;
lv2:index 20;
lv2:symbol "notify" ;
lv2:name "Notify" ;
rdfs:comment "Notification" ;
]
.
<http://two-play.com/plugins/toob-nam-ui>
a uiext:X11UI ;
lv2:binary <ToobAmpUI.so>;
lv2:extensionData uiext::idle ;
lv2:extensionData uiext:resize ;
lv2:extensionData uiext:idleInterface;
lv2:requiredFeature uiext:idleInterface ;
.
<http://two-play.com/plugins/toob-nam> pipedal_ui:ui toobNam:ui .
toobNam:ui
a pipedal_ui:ui ;
pipedal_ui:fileProperties
[
a pipedal_ui:fileProperty;
rdfs:label "Model" ;
pipedal_ui:directory "NeuralAmpModels";
lv2:index 2 ;
pipedal_ui:patchProperty toobNam:modelFile ;
pipedal_ui:fileTypes
[
a pipedal_ui:fileType;
rdfs:label ".nam file";
pipedal_ui:fileExtension ".nam";
pipedal_ui:mimeType "application/octet-stream";
],[
a pipedal_ui:fileType;
rdfs:label ".aidax file";
pipedal_ui:fileExtension ".aidax";
pipedal_ui:mimeType "application/octet-stream";
];
];
pipedal_ui:frequencyPlot
[
pipedal_ui:patchProperty toobNam:FrequencyResponse;
lv2:index 11 ;
pg:group toobNam:eqGroup ;
pipedal_ui:width: 120.0 ;
]
.