I have a great deal of experience with this, having worked on the HeadRush ReValver product for about 20 years. That product is all about representing famous gear. Legally, we do not have the right to use someone's trademark (logo, etc), so the common practice is to (1) name the product and design the logo in "spirit" of the source product and (2) put a disclaimer online and in the product stating that the brands implied are owned by the owners...lol. In the case of ReValver, we had an agreement with Peavey Electronics, Budda Amps, and Trace Elliot to use their actual logos and design, but you'd want that in writing.
If anyone has any specific questions regarding this....just hit me up. I'd be glad to help.
Best posts made by scottmire
-
RE: Advertisement and the use of brand names/famous equipment
-
RE: Swapping a neural network model at runtime.
@sinewavekid
The snip found in this thread will get you goingHardcoded Neural Network does not work as expected
If anyone wants to start learning about RTneural, here's a snip that contains a model of the ProCo Rat pedal: HiseSnippet 20992.3oc6810imccdcmUKp1Rh1dlDj.ja4...
Forum (forum.hise.audio)
-
Swapping a neural network model at runtime.
I know the NN topic has had it's share of coverage for a while now. Thanks to all the hard work and efforts of so many here, I've got working NN that loads AIDA-X guitar amp captures. Now my challenge is that I want to be able to swap out NN models at runtime based on a user selection. What I am seeing is that once I instantiate the NN and load in the initial model, I cannot load another model at runtime. The first loaded models stays firmly in place.
I am creating and loading the NN using the following:
const MLmodel = {MODEL JSON HERE}; const var tf = Engine.createNeuralNetwork("TensorFlowNetwork"); tf.loadTensorFlowModel(MLmodel);
I had assumed that, if I created multiple vars to hold the different models (MLmodel_1, MLmodel_2, etc), I could simply swap them out by calling ".loadTensorFlowModel(model)". But alas no.
Has anyone gotten something like this working? Any advise would be greatly appreciated.
-
RE: Simple ML neural network
Apologies if this has already been discussed....but I would think this would be low hanging fruit:
GitHub - Tr3m/nam-juce: A JUCE implementation of the Neural Amp Modeler Plugin
A JUCE implementation of the Neural Amp Modeler Plugin - Tr3m/nam-juce
GitHub (github.com)
-
RE: Loading an IR in a scriptnode convolution module via script
I got it working!
Thanks to everyone for the help....it's greatly appreciated! -
Loading an IR in a scriptnode convolution module via script
Hello all....
A project I'm working on has multiple convolution modules in a scriptnode network. I am attempting to load the IRs into the modules via scripting. It seems to be working, the convolution module is showing the name of the IR, but it's not actually loaded. If I manually load the IR in, it works.To illustrate....the module on the left is loaded via script, but the module on the right in manually loaded. Although they both have the IR file name in the "label", only the one on the right actually loaded the IR.
So, here is the code in the function I'm using to "load" the IR. I know it can be simplified, but I figured it might be easier to follow this way
//create obj reference to cab 1 convolution modules and audio file slot
local CabIR1_1 = Synth.getAudioSampleProcessor("Cabinet1").getAudioFile(0);//create variable to hold IR file name
// translates to something like: "PV 5150 412 Sheffield - SM57 - Cap.wav"
local CabIR1_1_wav = theCab1 + " - " + theMic1 + " - Cap.wav";//load an iR into each of the convolution modules
CabIR1_1.loadFile(CabIR1_1_wav);I hope that all makes sense? Thanks in advance!
Latest posts made by scottmire
-
RE: Audio Spike when loading a Neural Network node.
@aaronventure
I placed the neural network node in a soft_bypass node and for the life of me, I can't seem to get a reference to the soft_bypass node. I am really struggling here....My network is called "theAmp" and the ID of soft_bypass node is "wrapneural1"......could you please show me how you would code the references?
-
RE: Audio Spike when loading a Neural Network node.
@aaronventure
Thank you so much for the response!
The problem is that I'm simulating the "GAIN" (or distortion) knob of a guitar amp by "mapping" multiple neural network amp models (each with increasing gain) to the different levels of a "GAIN" slider. As you turn the knob, NN models are being swapped out. It needs to be seamless. Whether it's a "pop" or a brief moment of silence, it's the same problem.
Again, it only does this once when you cycle through all of the NN models, after that, they are loaded and the "pop" goes away.My thinking is that, using the Branch node, only the first NN model is loaded and the rest are loaded as they are selected with the Branch node. If all of the NN nodes were outside of the Branch, they would all load at once. Is it possible to control the on/off of a node directly through script, without using a soft_bypass node?
-
RE: Audio Spike when loading a Neural Network node.
No thoughts here? I could really use some advise.
I hate to be a pest, but this might be a dealbreaker for this project. -
Audio Spike when loading a Neural Network node.
I have multiple Neural Network nodes that are wrapped in a Branch node. I am using a slider to control the branch to switch from one NN node to the next. Each NN is loaded with a model of the same guitar amp, but each model is of increasing distortion (Gain). This is all working fine, except that the first time you switch to any of the NN nodes, there is an audible audio spike (a pop, if you will). This only happens the first time. Once you have cycled through all of the NN nodes, it no longer "pops".
I have tried using soft_bypass instead on the branch node, but I have the same problem there.
The NN models are ADIA-X Json files and I am loading them into each NN node using the following method.
const var tf = Engine.createNeuralNetwork("TensorFlowNetwork");
//Loads ADIA-X JSON inot NNs
tf.loadTensorFlowModel(MLmodel_1);Does anyone has any insight into how I can stop or minimize this "pop?
-
RE: Advertisement and the use of brand names/famous equipment
@d-healey
Reading.....apparently so hard for me....
Per advice of the legal dept....when advertising/marketing and mentioning the "source" product we always have to say "based on" the source product AND have the disclaimer concerning ownership. We would make bold, general statements about how our product replicates famous hardware with "uncanny" accuracy, but we never would say that we were the best Marshall JCM800 emulation.
If that all makes sense? -
RE: Advertisement and the use of brand names/famous equipment
I have a great deal of experience with this, having worked on the HeadRush ReValver product for about 20 years. That product is all about representing famous gear. Legally, we do not have the right to use someone's trademark (logo, etc), so the common practice is to (1) name the product and design the logo in "spirit" of the source product and (2) put a disclaimer online and in the product stating that the brands implied are owned by the owners...lol. In the case of ReValver, we had an agreement with Peavey Electronics, Budda Amps, and Trace Elliot to use their actual logos and design, but you'd want that in writing.
If anyone has any specific questions regarding this....just hit me up. I'd be glad to help. -
RE: Things I've Learned about ML Audio Modelling
I believe the issue I'm seeing is that whenever a NN node is instantiated and loaded with a model the first time, there is a loud "pop" coming from the NN node. If you are trying to switch between multiple NN nodes, whether you are using a Branch node or a soft_bypass, the NN nodes are not instantiated UNTIL signal is passing through them. So, no matter what you use to switch between NN nodes, the first time they are selected, they pop. After that (at least with a Branch node), they no long "pop".
I could work around this, IF all the NN nodes instantiated at the same time (maybe on load). I could just mute the output of the node for a moment. But, it doesn't seem to work that way.
-
RE: Things I've Learned about ML Audio Modelling
@HISEnberg
I switched to a branch node and it does "pop" the very first time it cycles through each NN nodes. After that initial time, it doesn't "pop" as you cycle through. -
RE: Things I've Learned about ML Audio Modelling
@ccbl
So close!! I have 5 NN models, each wrapped in a soft bypass. All 5 are then loaded into a Split container. I have a slider mapped to a XFader module that controls the soft bypass states. As you turn the knob, the xfader controls the bypass. Think of it like the "GAIN" knob on an amp....as you turn up the slider, NN models of progressively more distortion are loaded. It's working.....BUT....when a NN is bypassed or unbypassed, there is an audible pop. Like I said, so close. LOL. -
RE: Swapping a neural network model at runtime.
@clevername27 LOL....I feel a bit bad about that. I didn't know it would do that.