529 lines
20 KiB
Turtle
529 lines
20 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 70 ;
|
|
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.
|
|
|
|
Loading .nam model files into PiPedal is a two-step process. First, download model files to your local computer, or your phone or tablet, using a
|
|
web browser. Then upload the model files to the PiPedal server using the PiPedal web interface. You can find an "Upload" button in
|
|
the file browser when you click on the "Model" control in the plugin's user interface within the PiPedal web interface.
|
|
|
|
If you are not using PiPedal, just click on the Model control, and use the file browser to select the .nam file 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 Neural Amp Modeler is based on technology developed by the NeuralAmp 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.
|
|
|
|
TooB Neural Amp Modeler uses code from the NeuralAudio project (https://github.com/mikeoliphant/NeuralAudio). The Neural Audio project provides highly
|
|
optimized implementations of Neural Amp 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) 2024, 2025 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.
|
|
|
|
Code from the the NeuralAmpModelerCore project (https://github.com/sdatkinson/NeuralAmpModelerCore) is provided
|
|
under the following license.
|
|
|
|
MIT License
|
|
|
|
Copyright (c) 2025 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.
|
|
|
|
|
|
""" ;
|
|
|
|
mod:brand "TooB";
|
|
mod:label "TooB 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 "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 3;
|
|
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 4;
|
|
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 5;
|
|
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 6 ;
|
|
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 7;
|
|
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 8;
|
|
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 9;
|
|
lv2:symbol "treble" ;
|
|
lv2:name "Treble";
|
|
lv2:default 5.0;
|
|
lv2:minimum 0.0;
|
|
lv2:maximum 10.0;
|
|
rdfs:comment "Bass";
|
|
pg:group toobNam:eqGroup ;
|
|
],
|
|
|
|
|
|
### CALIBRATION ######
|
|
[
|
|
a lv2:InputPort ,
|
|
lv2:ControlPort ;
|
|
|
|
lv2:index 10 ;
|
|
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
|
|
];
|
|
|
|
|
|
pg:group toobNam:calibrationGroup ;
|
|
],
|
|
[
|
|
a lv2:InputPort ,
|
|
lv2:ControlPort ;
|
|
|
|
lv2:index 11 ;
|
|
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 12;
|
|
lv2:symbol "outputCalibration" ;
|
|
lv2:name "Output Calibration";
|
|
lv2:default 0.0;
|
|
lv2:minimum 0.0;
|
|
lv2:maximum 2.0;
|
|
rdfs:comment "Scaling applied to model 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 13 ;
|
|
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:AudioPort ,
|
|
lv2:InputPort ;
|
|
lv2:index 14 ;
|
|
lv2:symbol "in" ;
|
|
lv2:name "In"
|
|
],
|
|
[
|
|
a lv2:AudioPort ,
|
|
lv2:OutputPort ;
|
|
lv2:index 15 ;
|
|
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 16 ;
|
|
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 17;
|
|
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 10 ;
|
|
pg:group toobNam:eqGroup ;
|
|
pipedal_ui:width: 120.0 ;
|
|
]
|
|
.
|
|
|