"NeuralBlender" amp modeling plugin - feedback/beta testing requested

I’m writing a simple plugin based on RTNeural and NAM which can load 4 models and blend/switch between them. It supports .nam A1 and A2, aidax and json model files. No custom UI for now, just generic controls (which for now causes a problem for file selectors in Carla)

Motivation: none of the existing ones had all the features i wanted AND could run without problems. (also codex helped a lot for the LV2 boilerplate code)

I’ve been using it for the past day or 2, it seems to work magnificently well. I’d really appreciate any feedback about this, bug reports, or any feature ideas that wouldn’t be too hard to implement… tell me what you think!

6 Likes

“Compiling/running this on w**dows: Short answer, don’t do microsuck malware. It’s bad for you (and for everyone else)”

:sweat_smile: :+1:

Looks interesting!
I’ll check this out later, for sure.

Thanks!
-J

New features:

  • proper UI using XPutty / Cairo
  • working LV2 state/session restore
  • LV2 parameters passed (hopefully) correctly between DSP and UI
  • VU meters
  • basic config file in ~/.config
  • use config file to remember last browsed directory
  • rewrote code to index lanes by arrays
  • .ttl files procedurally generated on build/install
  • a few more, can’t remember

More new features:

  • DC flip per slot/lane
  • (forgot earlier: per-lane pre-delay for phasing correction/effects)
  • Model calibration
  • Stats showing calib results
  • Fixed LV2 param routing

Sorry for a build error in the past few days, due to debugging macros (using a library that i wrote years ago and never published)

More fixes, reworked UI, as you can see it’s starting to take shape!! :love_you_gesture::smiley::+1:

3 Likes

I tried to build it for and on macOS Mojave (10.14.6), which is arguably now a pretty ‘old’ OS.
Unsurprisingly, I ran into some road-blocks, but haven’t given-up yet! I’ll try again later…

~Still looks good!

:v:
-J

oh :grimacing: …sorry about that. Can you paste the build error? Also, do any other plugins (like guitarix or neuralrack) have the same error(s)?

New features:

  • calibration target dB is now user setting / LV2 parameter
  • tuner (eliminates always having gxTuner on my screen)
  • noise gate, for now only threshold has a UI control, if anyone requests i’ll make attack/hold/decay also user-settable
  • volume ramping/crossfade when loading, muting etc
  • dry-out per lane, which i somehow completely forgot to implement before
  • almost done: convolver for IR loading :smiley:

…i’d especially like feedback about how to present this last feature in the UI - i’m thinking adding a 5th bottom panel for blending 2 IR’s, rather than making IR an additional “engine mode” that can be loaded into any lane, and then some complex, potentially confusing routing/topology settigns. What do you guys think?

Edit: forgot to mention before,

  • calibration/level normalizing can be targeted for guitar or bass (for now, “general purpose” and/or others probably coming soon)
  • Full stomp->amp->cab signal flow with “bank” of loaded files for each.
  • Impulse responses
  • Tone knob “borrowed” from Guitarix (thanks Hermann!)
  • Tuner
  • Volume ramping/xfade to avoid clicking when loading/switching models
  • Dry out per model (useful for IR)

EDIT: changed the cmake file to require xxd utility for inline data

1 Like

Looks good. You’re right, a good tuner at the tip of the fingers is essential to recording a good guitar take. Keep it up…if i only had more free time i’d gladly help you roadtest this plugin.

hello,
If you want us to be able to test your software, you will have to give a slightly clearer explanation of how to compile it.
The 3 command lines leave on the github are not enough.
could you give more precise explanations with examples, including the creation of a build directory (???)
I’m under linux on a ubuntu or debian basis

Hello, sorry for the lack of clear build instructions. I haven’t yet released pre-built binaries of NeuralBlender, but that should be coming soon.

First you need these dev libraries & tools, most of which you probably already have - but to make sure, on ubuntu/debian just run:

sudo apt install git cmake libeigen3-dev lv2-dev libjack-dev libcairo2-dev libsndfile1-dev libsamplerate0-dev xxd

(libjack-dev is only required if you want the standalone app, and lv2-dev for the LV2 plugin)

…then something like:

git clone https://github.com/DeimosLabs/NeuralBlender
cd NeuralBlender
mkdir build
cd build
cmake ..
make               # or make -j$(nproc) to build faster
sudo make install

Then you can either run “neuralblender” to run the standalone, or load the plugin in a host like Ardour.

1 Like

Signal chain is now PEDAL → PRE EQ → AMP → POST EQ → CAB

I think the global idea/layout will stay like this, since it now has pretty much everything i need from an amp modeler plugin. A NeuralBlender preset is now “the” guitar/bass sound (other than reverb, delay, chorus etc) instead of chasing after settings in 3 or 4 different plugins.

Features/changes from the last few days:

  • 8 band pre and post parametric EQ before/after amp models (inspired by LSP’s parametric EQ)
  • optimized some DSP code
  • reading gzipped files directly (or through a temp file if not possible)
  • has its own mini UI toolkit (nbtk) which started as wrapper classes around xputty
  • IR’s can be resampled ± 1200 cents with a “pitch” knob that replaces the input knob when a .wav is loaded (thanks again to sadko/Vladimir for the idea :love_you_gesture::smiley::+1:)
  • trim silence at end of IR files (properly this time)
  • probably others i’m forgetting

TODO:

  • graph on EQ (for now just sliders and knobs)
  • fix build on FreeBSD and eventually MacOS when i have a machine to test it
  • separate presets for EQ
  • serialize/save/load presets for standalone

3 Likes

Note that for my installation on a linux mint xfce, it was missing another library: libfftw3-dev
It should be added to the prerequisites
I will now be able to test this software
(traduction automatique du français)

comment quickly made (because I do not know if all this has its place on this forum)…
in lv2 with ardour the plugin launches well…
On the other hand I charge irs for an amp cabinet and no difference of sound…
I compared the same preeset with the lv2 ‘neural rack’ with amp nam+IR and it’s not at all the same sound
in standalone, the software does not find my repertoires to load a nam for the amplifiers.
Is this software coded with an AI?

Hello, thanks for testing.

Added, thanks.

Quick check:

  • is cab bypassed? (shortcut: right click on top CAB button)
  • does the .wav filename appear in that slot? It will refuse to load huge wav files because that will take 100% of your CPU quickly. What sample rate / format is the file?
  • does it output anything? (check the VU meter to the right of the .wav file)

This happens only with standalone? Does the directory name appear in the file list? Can you paste the full path here?

Can you also run it from a terminal and paste the output?

Written by me, but codex helped a lot for debugging, and for some of the LV2 stuff especially parameter exchange between plugin and host.

CONFIRMED, happened only at 256-sample block size, as demonstrated by your screenshot. Fixed.

Edit: another unrelated change (new EQ band modes) breaks previously saved presets that use EQ, if you use any you just have to reset the mode of each band.

Proper error handling/queuing, proper state serialization, eq presets, standalone has load/save presets, etc etc… boring stuff i should have implemented first :crazy_face::woozy_face:

@nabo_nono i’m curious to see how well it works on your machine now.

FYI it builds without any issues and the stand-alone version works on Fedora 43. I have not had a chance to test the plugins yet.

  • Moved the project to SourceForge because… yeah, github :confused:
  • Binary .deb release, tested on ubuntu/mint Noble Numbat and Resolute Raccoon

@Lacojim thanks :smiley:

1 Like