Skip to content

Add 30 new noise algorithms (Banks D, E, F) and stereo mode#65

Open
HiDAl wants to merge 13 commits intoVCVRack:v2from
HiDAl:feature/extended-banks-stereo
Open

Add 30 new noise algorithms (Banks D, E, F) and stereo mode#65
HiDAl wants to merge 13 commits intoVCVRack:v2from
HiDAl:feature/extended-banks-stereo

Conversation

@HiDAl
Copy link
Copy Markdown

@HiDAl HiDAl commented Apr 15, 2026

Summary

Community contribution adding 30 new noise synthesis algorithms across 3 new banks and a stereo panning mode to the Noise Plethora module.

  • Bank D — Resonant Bodies (10 plugins): Comb filters, Karplus-Strong pluck, tube resonance, bowed metal, formant noise, noise bells
  • Bank E — Chaos Machines (10 plugins): Logistic maps, Henon dust, cellular automata, strange attractors, feedback FM
  • Bank F — Stochastic (10 plugins): Random pulse patterns, twin pulses, metallic inharmonic clusters, LFSR sequences, glitch loops
  • Stereo mode: Both generators run the same algorithm, XB controls pan width, YB controls pan LFO speed (real L/R amplitude panning via sine LFO)

All 30 original plugins (Banks A, B, C) are untouched. The new plugins follow the existing MyPlugin base class pattern and register through the same bank system.

Includes documentation: plugin guide, sound categories, and stereo mode guide.

Corresponding firmware changes: https://github.com/HiDAl/Noise_plethora/tree/feature/banks-d-e-f

Test plan

  • Build with RACK_DIR=<path> make
  • Verify Banks A, B, C unchanged
  • Test each new bank (D, E, F) — all 10 programs per bank
  • Test stereo mode toggle and panning behavior
  • Verify preset save/load with new banks

Pablo Alcantar and others added 12 commits April 11, 2026 21:40
Was clamping to programsPerBank (10) instead of numBanks (3).
The banks array only has numBanks elements, so an out-of-range
index would access beyond the array. Never triggered in practice
because ProgramSelector pre-clamps, but incorrect regardless.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bank D "Resonant Bodies" (10 plugins):
- CombNoise, PluckCloud, TubeResonance, FormantNoise, BowedMetal
- FlangeNoise, NoiseBells, NoiseHarmonics, IceRain, DroneBody

Bank E "Chaos Machines" (10 plugins):
- LogisticNoise, HenonDust, CellularSynth, StochasticPulse, BitShift
- FeedbackFM, RunawayFilter, GlitchLoop, SubHarmonic, DualAttractor

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Documents Banks A-E with parameter ranges, signal chain
descriptions, sound character notes, and navigable table
of contents. Dark-themed HTML version included.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- PulseWander: smooth random walk pulse patterns
- TwinPulse: two correlated random walks
- QuantPulse: quantized random (1-6 bit depth)
- ShapedPulse: shaped probability distribution (uniform/tri/gaussian)
- ShiftPulse: 4-stage shift register pulse sequences
- MetallicNoise: 6 inharmonic square oscillators (cymbal technique)
- NoiseSlew: white noise with adjustable LP slew
- NoiseBurst: sporadic noise bursts with envelope
- LFSRNoise: 16-bit LFSR with selectable tap configurations
- DualPulse: two S&H generators at independent rates

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- SubHarmonic: normalize mix to prevent clipping when multiple
  subharmonics are active (max sum was 2.15, now auto-normalized)
- LFSRNoise: reset LFSR to seed if it reaches 0x0000 to prevent
  permanent lockup with non-maximal tap configurations
- MetallicNoise: reduce oscillator amplitude from 0.3 to 0.15
  to prevent internal clipping (6 * 0.15 = 0.9 < 1.0)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- NoiseHarmonics: switch bandpass→lowpass output, increase wavefold
  range, lower Q. Now gritty/buzzy vs TubeResonance's clean resonance.
  (was 0.963 spectral similarity, should now be much lower)
- DualAttractor: increase Lorenz modulation depth 10%→40% of base freq.
  Frequencies wander dramatically vs DroneBody's stable beating.
  (was 0.946 similarity)
- StochasticPulse: mix dry impulse clicks with filtered output, lower Q
  from 4.5 to 3.5. Now percussive/clicky vs smooth continuous before.
  (crest factor was 2.0x, should increase significantly)
- BowedMetal: increase resonator r baseline (0.997→0.9985), reduce
  noise amplitude. More tonal shimmer, less noise floor.
  (spectral flatness was 0.23/noisy, should drop toward tonal)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Right-click → "Stereo Mode" toggles stereo. When active:
- Generator B mirrors A's algorithm automatically
- XA/YA control both generators' sound parameters
- XB becomes stereo width (decorrelation offset between L/R)
- YB becomes stereo movement speed (LFO rate for offset)
- Both display dots light up to indicate stereo mode
- State persisted to JSON

Also updates bank aliases in context menu to include new bank names.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Classifies all 60 programs into 5 categories: Drone, Harsh/Noise,
Percussive/Rhythmic, Textural/Ambient, and Chaotic/Experimental.
Includes versatile programs table and tips per category.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Documents stereo mode activation (VCV + hardware), control mapping,
internal signal flow, offset formula, and 5 stereo patch ideas.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace timbral offset with real amplitude panning (gainL/gainR
modulated by sine LFO). Quadratic speed response (max 1.5 Hz)
matches firmware behavior. XB controls pan width (0=mono center,
1=full L/R swing), YB controls pan LFO speed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix incorrect "3 generators (A, B, C)" to "2 generators (A and B)"
- Update STEREO_GUIDE to match actual implementation (amplitude panning,
  not timbral offset), add state behavior section, display details,
  and hardware-specific controls

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Local-only rendered versions of the markdown guides — not needed in the repo.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@hemmer
Copy link
Copy Markdown
Collaborator

hemmer commented Apr 15, 2026

Just FYI I need to check Befaco are ok with this. Also do you mind to remove NOISE_PLETHORA*.md from the pull request. I'll try and review properly myself soon. Thanks!

Keep the PR focused on code changes only.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@hemmer
Copy link
Copy Markdown
Collaborator

hemmer commented Apr 17, 2026

FYI If I select any bank with right click context menu Bank B whilst stereo mode is active, the program select knob doesn't work any more (as in doesn't change active program). If I select with context menu Bank A, it works as expected.

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