Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DOCUMENTATION] Limitations of the algorithm #525

Open
theFork opened this issue Jan 4, 2025 · 1 comment
Open

[DOCUMENTATION] Limitations of the algorithm #525

theFork opened this issue Jan 4, 2025 · 1 comment
Labels
documentation Improvements or additions to documentation priority:low Low-priority issues

Comments

@theFork
Copy link

theFork commented Jan 4, 2025

As the training tool sometimes warns you, it is not recommended (or even possible?) to create nam models that contain time based effects (chorus, delay, reverb).

I'm curious about the limitations of the algorithm. Is it possible to create a pitch shifter or octaver model? Also I'm wondering whether a compressor would be possible as it is kind of time-based but also part of an ordinary amplifier.

It would be a great help to read about the limitations of the modeler in the documentation.

@theFork theFork added enhancement New feature or request priority:low Low-priority issues unread This issue is new and hasn't been seen by the maintainers yet labels Jan 4, 2025
@sdatkinson
Copy link
Owner

TLDR: I think you're confusing NAM's "basic" trainer with NAM itself.

it is not recommended (or even possible?) to create nam models that contain time based effects (chorus, delay, reverb).

Not true. The message corresponds to a data quality check used in the "simplified" trainer that makes some assumptions about what's being modeled, but that's not a limitation of NAM itself.

In fact, it's trivial to make a NAM of a (linear) delay or reverb--just use an IR (which is a special case of a neural amp model--the Linear model--as is the [stacked] WaveNet and [stacked] LSTM, etc). And other architectures can be used in NAM via the extensions functionality.

Is it possible to create a pitch shifter or octaver model?

Not with a WaveNet--pitch-digital shifter algorithms are typically non-time-invariant, and WaveNets are time-invariant by construction. However, WaveNets can be extended to process signals in a non-time-invariant way, and the LSTM architecture can be trained to behave in a non-time-invariant way.

Also I'm wondering whether a compressor would be possible as it is kind of time-based but also part of an ordinary amplifier.

"Time-based" is sort of a "guitar-speak" and not really a useful "modeling" term. Compressors are typically time-invariant (just like guitar amps), but basically every non-trivial nonlinear effect has a history dependence (if it doesn't, then it's a probably a waveshaper). But again, the "basic" trainer just isn't designed to do that (there are "classical" algorithms that are better-designed for the job than general-purpose deep learning 🙂)


I am planning to split this "basic" trainer out of the NAM training core; these limitations might be appropriate for that split-out trainer's documentation, but they're not actually limitations of NAM itself 🙂

I'll leave this Issue as open and I'll either transfer it or take it up here depending upon which part (the core or the "basic" trainer) inherits the neural-amp-modeler name. I'd prefer for the "core" to keep it, but many lay users associate this with the basic trainer. Something I need to ponder.

@sdatkinson sdatkinson added documentation Improvements or additions to documentation and removed enhancement New feature or request unread This issue is new and hasn't been seen by the maintainers yet labels Jan 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation priority:low Low-priority issues
Projects
None yet
Development

No branches or pull requests

2 participants