sdatkinson/NeuralAmpModelerCore

Core DSP library for NAM plugins

C++

977

183 commits

updated Oct 1, 2026

See the code

README

NeuralAmpModelerCore

Build

Core C++ DSP library for NAM plugins.

For an example of how to use, see NeuralAmpModelerPlugin.

Included Tools

This repo includes a few helpful tools. For guidance on building them, have a look at the workflow provided in .github/workflows/build.yml.

  • run_tests, which runs a suite of unit tests.
  • loadmodel, which allows you to test loading a .nam file.
  • benchmodel, which allows you to test how quickly a model runs in real time. _Note: For more granular profiling tools, check out the main-profiling branch.

Sharp edges

This library uses Eigen to do the linear algebra routines that its neural networks require. Since these models hold their parameters as eigen object members, there is a risk with certain compilers and compiler optimizations that their memory is not aligned properly. This can be worked around by providing two preprocessor macros: EIGEN_MAX_ALIGN_BYTES 0 and EIGEN_DONT_VECTORIZE, though this will probably harm performance. See Structs Having Eigen Members for more information. This is being tracked as Issue 67.

Sponsors

Tone3000 logo

Development of version 0.4.0 of this library has been generously supported by TONE3000. Thank you!

sdatkinson/NeuralAmpModelerCore

Core DSP library for NAM plugins

C++

977

183 commits

updated Oct 1, 2026

See the code

README

NeuralAmpModelerCore

Build

Core C++ DSP library for NAM plugins.

For an example of how to use, see NeuralAmpModelerPlugin.

Included Tools

This repo includes a few helpful tools. For guidance on building them, have a look at the workflow provided in .github/workflows/build.yml.

  • run_tests, which runs a suite of unit tests.
  • loadmodel, which allows you to test loading a .nam file.
  • benchmodel, which allows you to test how quickly a model runs in real time. _Note: For more granular profiling tools, check out the main-profiling branch.

Sharp edges

This library uses Eigen to do the linear algebra routines that its neural networks require. Since these models hold their parameters as eigen object members, there is a risk with certain compilers and compiler optimizations that their memory is not aligned properly. This can be worked around by providing two preprocessor macros: EIGEN_MAX_ALIGN_BYTES 0 and EIGEN_DONT_VECTORIZE, though this will probably harm performance. See Structs Having Eigen Members for more information. This is being tracked as Issue 67.

Sponsors

Tone3000 logo

Development of version 0.4.0 of this library has been generously supported by TONE3000. Thank you!

Significant stargazers

Volodymyr Agafonkin

6,268 followers · starred Apr 2023

An Long

642 followers · starred Jun 2026

Dmitry Iv.

579 followers · starred Mar 2026

Khashayar Fereidani

117 followers · starred Jul 2026