Separate core NAM code from other plugin dsp code#13
Conversation
…pendency for NAM code.
|
This will also require some changes to the plugin project structures to link to the new source code locations. Are the various VS project files generated somehow, or is that done manually on a per-project basis? |
|
For an example of how this makes it easier to use the NAM code as a submodule in a non-IPlug context, see here: https://github.com/mikeoliphant/neural-amp-modeler-lv2 It is pointing at my fork of NeuralAmpModelerCore, which has the changes contained in this PR. |
|
@sdatkinson - I know you've got a lot on your plate, but maybe now is a good time to think about merging this, since you just released a new version of the plugin? I've got some performance enhancements I'd like to make, but I don't want to make any more changes until this bit gets resolved. |
sdatkinson
left a comment
There was a problem hiding this comment.
Thanks for your patience waiting for this.
Quick confirmation on the "move" Qs and we'll be good!
|
Let me know if anything is still unclear. It looks like a lot of stuff is going on, but it is basically just moving the NAM code into a separate folder from the other dsp code - slightly complicated by the fact that code was shared in dsp.h/dsp.cpp so those files had to be split. |
|
Since this PR now has conflicts, I could maybe resubmit - perhaps one simpler PR to separate dsp.h/dsp.cpp (perhaps calling the NAM versions NAM.h/Nam.cpp), and a subsequent one for the removal of the IPlug dependency, and then one for moving files to a separate folder? Just let me know if that would make things easier than handling this PR as is. |
I'll have a look tonight and let you know. Thanks for your patience :) |
|
Scratch that, merged wrong. One sec. In fact I may just make a separate PR that includes the resolution and merge it so you don't have to fuss about it and we can get through all these PRs 😃 |
|
Got it in #21 :) |
This PR separates the core NAM code from other plugin dsp code and removes IPlug dependencies for NAM code.
I tried to keep this as simple and targeted as possible. It looks like bigger changes than it is because of the separation of dsp.h/dsp.cpp files into an IPlug dsp base class for noise gate, IR and EQ and the core dsp code for the network models.
I kept the input to the model processing as "double" for now - since that is what the IPlug plugin is using. I also haven't made any changes to the redundant gain handling - I'll save that for a separate PR.
With the changes in this PR, it is now easy to use the core NAM code directly in a context other than the IPlug plugin.