24 Commits

Author SHA1 Message Date
Mike Oliphant 844766e614 Bump version -> 0.2.0 2026-06-02 07:41:07 -07:00
Mike Oliphant 437b8cc254 Update NeuralAudio (Fix NAM Core A2 fast path issue with Tone3000 models) 2026-06-02 07:32:53 -07:00
Mike Oliphant 02ad319440 Update NeuralAudio (fix static LSTM loading) 2026-05-27 12:47:16 -07:00
Mike Oliphant 8ee50ccdbf Update NeuralAudio 2026-05-27 12:23:07 -07:00
Mike Oliphant 4d4f613be9 Update NeuralAudio. Switch to NeuralModelLoader. Work around NAM Core prewarm issues. 2026-05-27 12:04:36 -07:00
Mike Oliphant 01642fa580 Merge pull request #104 from mikeoliphant/pi_build
Refactor build and add Raspberry Pi 4/5 builds
2026-05-22 14:22:48 -07:00
Mike Oliphant f774aad19d Try again for gcc12 rpi 2026-05-22 14:06:08 -07:00
Mike Oliphant cab4b549d7 Try again to force gcc12 for rpi build 2026-05-22 14:01:58 -07:00
Mike Oliphant 4047eea241 Force gcc12 for rpi build 2026-05-22 13:50:34 -07:00
Mike Oliphant 1072326eb1 Fixed rpi archive name 2026-05-22 13:02:36 -07:00
Mike Oliphant fe172b94b5 Specify docker cmake toolchain 2026-05-22 12:50:14 -07:00
Mike Oliphant d15d078b23 Don't use clang+ for rpi build
Removed environment variable setting for CXX in Build Plugin step.
2026-05-22 12:42:13 -07:00
Mike Oliphant 2ae1cb7a05 Add Raspberry Pi build workflow to release process 2026-05-22 12:40:06 -07:00
Mike Oliphant 6896f40711 Matrix build for windows 2026-05-22 12:27:56 -07:00
Mike Oliphant a19b9bab8b Fix environment variable usage in release workflow 2026-05-22 12:22:01 -07:00
Mike Oliphant 17dc4edff2 Update Linux x64 build workflow with matrix strategy 2026-05-22 12:12:09 -07:00
Mike Oliphant a8ba46997b Explicitly force build of internal static WaveNet and LSTM 2026-05-20 13:04:16 -07:00
Mike Oliphant aca77c2590 Explicitly force build of internal static WaveNet and LSTM 2026-05-20 13:01:54 -07:00
Mike Oliphant d35db9c0c1 Explicitly force build of internal static WaveNet and LSTM 2026-05-20 13:01:11 -07:00
Mike Oliphant fcbe0a24db Update sample model license 2026-05-20 12:44:45 -07:00
Mike Oliphant 1b98cb8891 Update NeuralAudio 2026-05-20 11:07:50 -07:00
Mike Oliphant 8493866b21 Update NeuralAudio 2026-05-18 08:56:34 -07:00
Mike Oliphant 2e103a104b Update NeuralAudio 2026-05-18 08:21:38 -07:00
Mike Oliphant c7d55312c0 Merge pull request #101 from mikeoliphant/nam_a2
Add NAM A2 model support
2026-05-17 09:37:33 -07:00
7 changed files with 41 additions and 53 deletions
+2 -2
View File
@@ -20,7 +20,7 @@ jobs:
env: env:
CXX: clang++ CXX: clang++
run: | run: |
cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_UTILS=ON -DBUILD_NAMCORE=ON -DBUILD_STATIC_RTNEURAL=ON cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_UTILS=ON -DBUILD_INTERNAL_STATIC_WAVENET=ON -DBUILD_INTERNAL_STATIC_LSTM=ON -DBUILD_NAMCORE=ON -DBUILD_STATIC_RTNEURAL=ON
cmake --build . --config $BUILD_TYPE -j4 cmake --build . --config $BUILD_TYPE -j4
cpack cpack
@@ -51,7 +51,7 @@ jobs:
- name: Build Plugin - name: Build Plugin
working-directory: ${{github.workspace}}/build working-directory: ${{github.workspace}}/build
run: | run: |
cmake.exe -G "Visual Studio 17 2022" -A x64 -DBUILD_UTILS=ON -DBUILD_NAMCORE=ON -DBUILD_STATIC_RTNEURAL=ON -T ClangCL .. cmake.exe -G "Visual Studio 17 2022" -A x64 -DBUILD_UTILS=ON -DBUILD_INTERNAL_STATIC_WAVENET=ON -DBUILD_INTERNAL_STATIC_LSTM=ON -DBUILD_NAMCORE=ON -DBUILD_STATIC_RTNEURAL=ON -T ClangCL ..
cmake --build . --config=release -j4 cmake --build . --config=release -j4
- name: Run ModelTest - name: Run ModelTest
+31 -44
View File
@@ -31,7 +31,12 @@ jobs:
build-linux-x64: build-linux-x64:
name: Build Linux x64 name: Build Linux x64
needs: create_release needs: create_release
strategy:
matrix:
native_arch: [ON, OFF]
runs-on: ubuntu-latest runs-on: ubuntu-latest
env:
ARCHIVE_NAME: neural_amp_modeler_lv2_linux_x64${{ matrix.native_arch == 'ON' && 'v3' || '' }}.tgz
steps: steps:
- uses: actions/checkout@v3.3.0 - uses: actions/checkout@v3.3.0
with: with:
@@ -42,12 +47,12 @@ jobs:
env: env:
CXX: clang++ CXX: clang++
run: | run: |
cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DLSTM_PREFER_NAM=OFF -DWAVENET_PREFER_NAM=OFF cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_NATIVE_ARCH=${{ matrix.native_arch }} -DBUILD_NAMCORE=ON -DBUILD_INTERNAL_STATIC_WAVENET=ON -DBUILD_INTERNAL_STATIC_LSTM=ON
cmake --build . --config $BUILD_TYPE -j4 cmake --build . --config $BUILD_TYPE -j4
- name: Add LV2 Archive - name: Add LV2 Archive
working-directory: ${{github.workspace}}/build working-directory: ${{github.workspace}}/build
run: tar -czf neural_amp_modeler_lv2_linux_x64.tgz neural_amp_modeler.lv2 run: tar -czf ${{ env.ARCHIVE_NAME }} neural_amp_modeler.lv2
- name: Upload Plugin Asset - name: Upload Plugin Asset
uses: actions/upload-release-asset@v1 uses: actions/upload-release-asset@v1
@@ -55,14 +60,21 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
upload_url: ${{ needs.create_release.outputs.upload_url }} upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: ./build/neural_amp_modeler_lv2_linux_x64.tgz asset_path: ./build/${{ env.ARCHIVE_NAME }}
asset_name: neural_amp_modeler_lv2_linux_x64.tgz asset_name: ${{ env.ARCHIVE_NAME }}
asset_content_type: application/tgz asset_content_type: application/tgz
build-linux-x64v3: build-rpi:
name: Build Linux x64v3 name: Build Raspberry Pi
needs: create_release needs: create_release
strategy:
matrix:
native_arch: [rpi4, rpi5]
runs-on: ubuntu-latest runs-on: ubuntu-latest
container:
image: ghcr.io/tttapa/docker-arm-cross-toolchain:aarch64-rpi3-linux-gnu-gcc12
env:
ARCHIVE_NAME: neural_amp_modeler_lv2_${{ matrix.native_arch }}.tgz
steps: steps:
- uses: actions/checkout@v3.3.0 - uses: actions/checkout@v3.3.0
with: with:
@@ -70,15 +82,13 @@ jobs:
- name: Build Plugin - name: Build Plugin
working-directory: ${{github.workspace}}/build working-directory: ${{github.workspace}}/build
env:
CXX: clang++
run: | run: |
cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_NATIVE_ARCH=ON -DLSTM_PREFER_NAM=OFF -DWAVENET_PREFER_NAM=OFF cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_NAMCORE=ON -DBUILD_INTERNAL_STATIC_WAVENET=ON -DBUILD_INTERNAL_STATIC_LSTM=ON -DCMAKE_TOOLCHAIN_FILE=/home/develop/opt/x-tools/aarch64-rpi3-linux-gnu/aarch64-${{ matrix.native_arch }}-linux-gnu.toolchain.cmake
cmake --build . --config $BUILD_TYPE -j4 cmake --build . --config $BUILD_TYPE -j4
- name: Add LV2 Archive - name: Add LV2 Archive
working-directory: ${{github.workspace}}/build working-directory: ${{github.workspace}}/build
run: tar -czf neural_amp_modeler_lv2_linux_x64v3.tgz neural_amp_modeler.lv2 run: tar -czf ${{ env.ARCHIVE_NAME }} neural_amp_modeler.lv2
- name: Upload Plugin Asset - name: Upload Plugin Asset
uses: actions/upload-release-asset@v1 uses: actions/upload-release-asset@v1
@@ -86,14 +96,19 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
upload_url: ${{ needs.create_release.outputs.upload_url }} upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: ./build/neural_amp_modeler_lv2_linux_x64v3.tgz asset_path: ./build/${{ env.ARCHIVE_NAME }}
asset_name: neural_amp_modeler_lv2_linux_x64v3.tgz asset_name: ${{ env.ARCHIVE_NAME }}
asset_content_type: application/tgz asset_content_type: application/tgz
build-windows: build-windows:
name: Build Windows name: Build Windows
needs: create_release needs: create_release
strategy:
matrix:
native_arch: [ON, OFF]
runs-on: windows-latest runs-on: windows-latest
env:
ARCHIVE_NAME: neural_amp_modeler_lv2_win_x64${{ matrix.native_arch == 'ON' && 'v3' || '' }}.zip
steps: steps:
- uses: actions/checkout@v3.3.0 - uses: actions/checkout@v3.3.0
with: with:
@@ -102,11 +117,11 @@ jobs:
- name: Build Plugin - name: Build Plugin
working-directory: ${{github.workspace}}/build working-directory: ${{github.workspace}}/build
run: | run: |
cmake.exe -G "Visual Studio 17 2022" -A x64 -T ClangCL -DLSTM_PREFER_NAM=OFF -DWAVENET_PREFER_NAM=OFF .. cmake.exe -G "Visual Studio 17 2022" -A x64 -T ClangCL -DUSE_NATIVE_ARCH=${{ matrix.native_arch }} -DBUILD_NAMCORE=ON -DBUILD_INTERNAL_STATIC_WAVENET=ON -DBUILD_INTERNAL_STATIC_LSTM=ON ..
cmake --build . --config=release -j4 cmake --build . --config=release -j4
- name: Add LV2 Archive - name: Add LV2 Archive
run: Compress-Archive -Path ${{github.workspace}}\build\neural_amp_modeler.lv2 -Destination neural_amp_modeler_lv2_win_x64.zip run: Compress-Archive -Path ${{github.workspace}}\build\neural_amp_modeler.lv2 -Destination ${{ env.ARCHIVE_NAME }}
- name: Upload Plugin Asset - name: Upload Plugin Asset
uses: actions/upload-release-asset@v1 uses: actions/upload-release-asset@v1
@@ -114,34 +129,6 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
upload_url: ${{ needs.create_release.outputs.upload_url }} upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: ./neural_amp_modeler_lv2_win_x64.zip asset_path: ./${{ env.ARCHIVE_NAME }}
asset_name: neural_amp_modeler_lv2_win_x64.zip asset_name: ${{ env.ARCHIVE_NAME }}
asset_content_type: application/zip
build-windows-x64v3:
name: Build Windows x64v3
needs: create_release
runs-on: windows-latest
steps:
- uses: actions/checkout@v3.3.0
with:
submodules: recursive
- name: Build Plugin
working-directory: ${{github.workspace}}/build
run: |
cmake.exe -G "Visual Studio 17 2022" -A x64 -DUSE_NATIVE_ARCH=ON -DLSTM_PREFER_NAM=OFF -DWAVENET_PREFER_NAM=OFF -T ClangCL ..
cmake --build . --config=release -j4
- name: Add LV2 Archive
run: Compress-Archive -Path ${{github.workspace}}\build\neural_amp_modeler.lv2 -Destination neural_amp_modeler_lv2_win_x64v3.zip
- name: Upload Plugin Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: ./neural_amp_modeler_lv2_win_x64v3.zip
asset_name: neural_amp_modeler_lv2_win_x64v3.zip
asset_content_type: application/zip asset_content_type: application/zip
+1 -1
View File
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.10) cmake_minimum_required(VERSION 3.10)
project(NeuralAmpModelerLv2 VERSION 0.1.9) project(NeuralAmpModelerLv2 VERSION 0.2.0)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
set(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib CACHE PATH "The library install dir (default: lib)") set(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib CACHE PATH "The library install dir (default: lib)")
+1 -1
View File
@@ -1,4 +1,4 @@
These are some sample NAM models designed to be used for performance testing on CPU-limited devices. They are all based on a [LiveSpice model of a Boss SD-1 pedal](https://blog.nostatic.org/2023/04/this-boss-sd-1-pedal-does-not-exist.html). These are some sample NAM models designed to be used for performance testing on CPU-limited devices. They are all based on a [LiveSpice model of a Boss SD-1 pedal](https://blog.nostatic.org/2023/04/this-boss-sd-1-pedal-does-not-exist.html). They are provided here under the [CC BY-NC-ND 4.0 license](https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en).
All models were trained for 300 epochs using the NAM "v1_1_1.wav" capture signal. All models were trained for 300 epochs using the NAM "v1_1_1.wav" capture signal.
+3 -3
View File
@@ -128,7 +128,7 @@ namespace NAM {
{ {
lv2_log_trace(&nam->logger, "Staging model change: `%s`\n", msg->path); lv2_log_trace(&nam->logger, "Staging model change: `%s`\n", msg->path);
model = NeuralAudio::NeuralModel::CreateFromFile(msg->path); model = nam->loader.CreateFromFile(msg->path);
} }
if (model != nullptr) if (model != nullptr)
@@ -212,7 +212,7 @@ namespace NAM {
{ {
maxBufferSize = size; maxBufferSize = size;
NeuralAudio::NeuralModel::SetDefaultMaxAudioBufferSize(size); loader.SetDefaultMaxAudioBufferSize(size);
} }
void Plugin::process(uint32_t n_samples) noexcept void Plugin::process(uint32_t n_samples) noexcept
@@ -256,7 +256,7 @@ namespace NAM {
{ {
qualityScale = *(ports.quality_scale); qualityScale = *(ports.quality_scale);
NeuralAudio::NeuralModel::SetDefaultQualityScaleFactor(qualityScale); loader.SetDefaultQualityScaleFactor(qualityScale);
if (currentModel != nullptr) if (currentModel != nullptr)
{ {
+1
View File
@@ -71,6 +71,7 @@ namespace NAM {
LV2_Log_Logger logger = {}; LV2_Log_Logger logger = {};
LV2_Worker_Schedule* schedule = nullptr; LV2_Worker_Schedule* schedule = nullptr;
NeuralAudio::NeuralModelLoader loader;
NeuralAudio::NeuralModel* currentModel = nullptr; NeuralAudio::NeuralModel* currentModel = nullptr;
std::string currentModelPath; std::string currentModelPath;
float prevDCInput = 0; float prevDCInput = 0;