Files
op-pedal/lv2/aarch64/ToobAmp.lv2/ToobNeuralAmpModeler.ttl
T
Robin E. R. Davies 1ac88ae633 TooB Crvb for testing.
2025-08-20 17:26:25 -04:00

432 lines
17 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: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" .
<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 68 ;
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/sdatkinson/NeuralAmpModelerCore) is provided
under the following license.
MIT License
Copyright (c) 2024 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 "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";
],
[
a lv2:InputPort ,
lv2:ControlPort ;
lv2:index 4;
lv2:symbol "gate" ;
lv2:name "Noise Gate";
lv2:default -100.0 ;
lv2:minimum -100.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 -100.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 "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 ;
],
[
a lv2:AudioPort ,
lv2:InputPort ;
lv2:index 10 ;
lv2:symbol "in" ;
lv2:name "In"
],
[
a lv2:AudioPort ,
lv2:OutputPort ;
lv2:index 11 ;
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 12 ;
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 13;
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";
];
];
pipedal_ui:frequencyPlot
[
pipedal_ui:patchProperty toobNam:FrequencyResponse;
lv2:index 10 ;
pg:group toobNam:eqGroup ;
pipedal_ui:width: 200;
]
.