Skip to content

[BUGFIX] WaveNet Factory: Check that condition_dsp is not null#220

Merged
sdatkinson merged 1 commit intosdatkinson:mainfrom
jfsantos:patch-1
Feb 12, 2026
Merged

[BUGFIX] WaveNet Factory: Check that condition_dsp is not null#220
sdatkinson merged 1 commit intosdatkinson:mainfrom
jfsantos:patch-1

Conversation

@jfsantos
Copy link
Contributor

@jfsantos jfsantos commented Feb 10, 2026

Quick bugfix. We already did that for head, but forgot to do it for condition_dsp.

Developed with support and sponsorship from TONE3000

@sdatkinson sdatkinson changed the title Bugfix - checking that condition_dsp is not null in the JSON [BUGFIX] WaveNet Factory: Check that condition_dsp is not null Feb 12, 2026
@sdatkinson sdatkinson merged commit 95c7aa6 into sdatkinson:main Feb 12, 2026
2 checks passed
jfsantos added a commit to jfsantos/NeuralAmpModelerCore that referenced this pull request Feb 12, 2026
sdatkinson added a commit that referenced this pull request Feb 14, 2026
* Add profiling instrumentation for NAM building blocks

Adds a profiling framework (NAM/profiling.h, NAM/profiling.cpp) with
NAM_PROFILE_START()/NAM_PROFILE_ADD() macros and 14 timing categories.
Supports both desktop (std::chrono) and ARM Cortex-M7 (DWT cycle counter)
backends. Profiling is compile-time gated via -DNAM_PROFILING.

Instruments wavenet _Layer::Process() and _LayerArray::ProcessInner()
with per-category timing, and adds profiling reset/print calls to the
benchmodel tool.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fixed build flags for benchmodel

* Added a command line tool to output memory usage for a given .nam file

* Bugfix - checking that condition_dsp is not null in the JSON (#220)

* [BUGFIX, BREAKING] Make activation base class abstract, fix PReLU implementation (#223)

* Make activation apply method pure virtual instead of no-op default

* Fix bugs

* Refactor to throw std::invalid_argument in debug mode, add tests

* Add TONE3000 support note in README.md (#224)

* Replace hardcoded profiling struct with dynamic registry

  The Timings struct hardcoded 14 named fields, requiring manual updates
  to reset(), total(), print_results(), and every call site whenever a
  category was added or removed. Replace with a flat-array registry where
  types are registered at file scope via register_type(), returning an
  integer index for O(1) accumulation in the hot path.

  Also adds NAM_PROFILE_RESTART() macro to replace a raw #ifdef block
  in wavenet.cpp.

---------

Co-authored-by: João Felipe Santos <santosjf@pm.me>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Steven Atkinson <steven@atkinson.mn>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants