Things I've Learned about ML Audio Modelling
-
@ccbl Amazing! Thanks a ton for sharing
-
I’ve come across the same results as you. Using the AIDA-X pipeline as my starting point as well. It’s a challenge to get consistent results, especially with sources that contain a lot of harmonics.
I’ve been tweaking the training scripts to get a more usable result but don't have much to report yet. -
@ccbl Thanks for all this valuable info! I also managed to load a few pre-trained AIDA-X weights for guitar amps.
Quick question: Are you able to compile .vst, standalone applications, or any binary that includes neural? -
@hisefilo I actually compiled one just yesterday that can switch between 1 of 3 models. Works in Reaper.
-
@ccbl Is it possible to share a simplified project that works please? The models cannot being compiled here. It would be so useful for starters.
-
@ccbl Wow good to know. That means is my bad :) As @Fortune says, can you share a minimal example?
Not even the Christop's NeuralNetworkExample creates a binary on my end. Im missing something.This is an AIDA-x I found googling that loads and works within HISE.
https://tonehunt.org/kordas/0d42ea78-a6a7-493d-80d3-d5ad3044e36b -
@hisefilo I used this as a basis. The important part for now seems to be that your model is in the "keras" format. The aida-x ones are like that by defaults.
-
@ccbl
After pounding my head against the wall for weeks, I finally feel like I'm making progress here. I've got the Aida-X models running! For the life of me, I can't seem to switch models once the NN is created and the first model is loaded. I am trying to load different Aida-x models based on a user selection. If I understand correctly, you got this working. Would you be willing to share how you are switching models? -
@scottmire Hi there. I think I cheated basically. I used a safe bypass module matrix that switches the network based on which buttons are pressed at the time. I'm not sure if this has performance implications, it certainly seems like the more networks are in the code base the worse the plugin runs. When I get more time I think a new thread is in order where we can all discuss optimisations and solutions.
-
@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. -
@scottmire the soft_bypass node has that issue. Try the branch node instead.
-
@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. -
@scottmire you can right click the soft bypsss node to adjust the fade time
-
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.