Merge pull request #84 from mikeoliphant/naopt

Use new internal NeuralAudio WaveNet and LSTM implementations
This commit is contained in:
Mike Oliphant
2025-02-06 07:57:31 -08:00
committed by GitHub
4 changed files with 16 additions and 38 deletions
-4
View File
@@ -56,7 +56,3 @@ After building, the plugin will be in **build/neural_amp_modeler.lv2**.
### Optimization ### Optimization
If you have a relatively modern x64 processor, you can pass ```-DUSE_NATIVE_ARCH=ON``` on your cmake command line to enable certain processor-specific optimizations. If you have a relatively modern x64 processor, you can pass ```-DUSE_NATIVE_ARCH=ON``` on your cmake command line to enable certain processor-specific optimizations.
By default, NAM models are loading using the NAM Core implementation. It also supports loading NAM models using RTNeural, which generally performs better on x64 hardware.
You can also alter the default model loading behavior with ```-DLSTM_PREFER_NAM=OFF``` (use RTNeural instead of NAM Core for NAM LSTM models) and ```-DWAVENET_PREFER_NAM=OFF``` (use RTNeural instead of NAM Core or NAM WaveNet models).
-18
View File
@@ -48,24 +48,6 @@ if (DISABLE_DENORMALS)
add_definitions(-DDISABLE_DENORMALS) add_definitions(-DDISABLE_DENORMALS)
endif (DISABLE_DENORMALS) endif (DISABLE_DENORMALS)
option(LSTM_PREFER_NAM "Always use NAM Core for NAM LSTM models" ON)
if (LSTM_PREFER_NAM)
add_definitions(-DLSTM_PREFER_NAM)
message("Using NAM Core for LSTM models")
else()
message("Using RTNeural for LSTM models")
endif (LSTM_PREFER_NAM)
option(WAVENET_PREFER_NAM "Always use NAM Core for NAM WaveNet models" ON)
if (WAVENET_PREFER_NAM)
add_definitions(-DWAVENET_PREFER_NAM)
message("Using NAM Core for WaveNet models")
else()
message("Using RTNeural for WaveNet models")
endif (WAVENET_PREFER_NAM)
set_target_properties(neural_amp_modeler set_target_properties(neural_amp_modeler
PROPERTIES PROPERTIES
CXX_VISIBILITY_PRESET hidden CXX_VISIBILITY_PRESET hidden
+15 -15
View File
@@ -13,21 +13,21 @@ namespace NAM {
// prevent allocations on the audio thread // prevent allocations on the audio thread
currentModelPath.reserve(MAX_FILE_NAME + 1); currentModelPath.reserve(MAX_FILE_NAME + 1);
NeuralAudio::NeuralModel::SetLSTMLoadMode( // NeuralAudio::NeuralModel::SetLSTMLoadMode(
#ifdef LSTM_PREFER_NAM //#ifdef LSTM_PREFER_NAM
NeuralAudio::PreferNAMCore // NeuralAudio::PreferNAMCore
#else //#else
NeuralAudio::PreferRTNeural // NeuralAudio::PreferRTNeural
#endif //#endif
); // );
//
NeuralAudio::NeuralModel::SetWaveNetLoadMode( // NeuralAudio::NeuralModel::SetWaveNetLoadMode(
#ifdef WAVENET_PREFER_NAM //#ifdef WAVENET_PREFER_NAM
NeuralAudio::PreferNAMCore // NeuralAudio::PreferNAMCore
#else //#else
NeuralAudio::PreferRTNeural // NeuralAudio::PreferRTNeural
#endif //#endif
); //);
} }
Plugin::~Plugin() Plugin::~Plugin()