Chaotic and self-oscillating networks: maps, nonlinear feedback oscillators and coupled oscillators, inside an engine built to be passive #146

Open
opened 2026-10-06 00:33:32 +00:00 by bcox · 0 comments
Owner

bcox asked on 2026-10-05 for a ticket for each family in his gaps.md that has none. Engine claims are from reading the tree at cd68bd3e on main; literature named below is from recollection and was not re-read. Nothing here is built, measured or listened to.

What the tree has

  • No chaotic map and no nonlinear oscillator. The LFO's sample-and-hold and random walk (dsp/lfo.h) are stochastic, not chaotic; #117 is sample-and-hold of a chosen source.
  • Operator feedback for the FM pair is a decided no, not a gap: FmPairLayer::Patch::Routing::kSeries is argued in the header to replace it, and README's "not worrying about" list says the same. #138, the traditional FM engine, would carry it.
  • Every feedback loop in the engine is either passive by construction or linear and bounded, on purpose. dsp/junction.h proves passivity for its curves (x f(x) >= 0, |f(x)| <= 1); dsp/strings_junction.h solves the bridge without delay so no recursion of gain sits in the loop; the ladder saturates between stages (LadderSaturate) and the SVF stops short of self-oscillation by ruling (#136 opens that for new topologies); a self-tap across layers is legal and nothing holds one passive (#100). The chaotic regimes are what that design excludes, so this ticket is partly a question about where the engine admits a loop that is bounded but not passive.

What the family is

  1. Chaotic maps as sources. Logistic, Henon, the Lorenz and Rossler systems integrated at a rate, Chua's circuit. At a control rate they are an LFO kind beside the random walk; at audio rate a VA shape. A few multiplies per step.
  2. Nonlinear feedback oscillators. A line with a nonlinearity in its loop at audio rate: the Pro 3's "grunge" tuned feedback (#105's addendum), feedback FM (#138), a filter driven into chaos by its own resonance and an input (the MS-20 at full peak, #136). Each exists in pieces across those tickets; what none of them has is the regime past the bound.
  3. Coupled oscillators. A few oscillators modulating one another's frequency and amplitude, Kuramoto-style synchronization, the self-oscillating networks of Buchla and Serge patching. Once 1 exists, this is the mod matrix at audio rate (the VA layer's tick-rate sources and destinations) and a patch, not an engine.

Shape and cost

1 is cheap and the place to start. The fixed-point fact to measure first: a chaotic map in fixed point lands in a periodic orbit eventually, because the state space is finite; the orbit's length at the word width dsp/fixed.h gives it is the number that says whether the thing is chaotic for a musical purpose or a long loop. 2 is a passivity ruling per case. 3 is free.

Open

  • The ruling: where a bounded-but-not-passive loop is admitted, and what the bound is (an output saturation is one; the ladder's between-stage saturation is the precedent).
  • Whether a chaotic source wants its own kind or is the LFO's shape list grown (Lfo's shapes) with a state vector.

#138, #100, #136, #105, #117, #91.

bcox asked on 2026-10-05 for a ticket for each family in his `gaps.md` that has none. Engine claims are from reading the tree at `cd68bd3e` on `main`; literature named below is from recollection and was not re-read. **Nothing here is built, measured or listened to.** ## What the tree has - No chaotic map and no nonlinear oscillator. The LFO's sample-and-hold and random walk (`dsp/lfo.h`) are stochastic, not chaotic; #117 is sample-and-hold of a chosen source. - Operator feedback for the FM pair is a decided no, not a gap: `FmPairLayer::Patch::Routing::kSeries` is argued in the header to replace it, and README's "not worrying about" list says the same. #138, the traditional FM engine, would carry it. - Every feedback loop in the engine is either passive by construction or linear and bounded, on purpose. `dsp/junction.h` proves passivity for its curves (x f(x) >= 0, |f(x)| <= 1); `dsp/strings_junction.h` solves the bridge without delay so no recursion of gain sits in the loop; the ladder saturates between stages (`LadderSaturate`) and the SVF stops short of self-oscillation by ruling (#136 opens that for new topologies); a self-tap across layers is legal and nothing holds one passive (#100). The chaotic regimes are what that design excludes, so this ticket is partly a question about where the engine admits a loop that is bounded but not passive. ## What the family is 1. **Chaotic maps as sources.** Logistic, Henon, the Lorenz and Rossler systems integrated at a rate, Chua's circuit. At a control rate they are an LFO kind beside the random walk; at audio rate a VA shape. A few multiplies per step. 2. **Nonlinear feedback oscillators.** A line with a nonlinearity in its loop at audio rate: the Pro 3's "grunge" tuned feedback (#105's addendum), feedback FM (#138), a filter driven into chaos by its own resonance and an input (the MS-20 at full peak, #136). Each exists in pieces across those tickets; what none of them has is the regime past the bound. 3. **Coupled oscillators.** A few oscillators modulating one another's frequency and amplitude, Kuramoto-style synchronization, the self-oscillating networks of Buchla and Serge patching. Once 1 exists, this is the mod matrix at audio rate (the VA layer's tick-rate sources and destinations) and a patch, not an engine. ## Shape and cost 1 is cheap and the place to start. The fixed-point fact to measure first: a chaotic map in fixed point lands in a periodic orbit eventually, because the state space is finite; the orbit's length at the word width `dsp/fixed.h` gives it is the number that says whether the thing is chaotic for a musical purpose or a long loop. 2 is a passivity ruling per case. 3 is free. ## Open - The ruling: where a bounded-but-not-passive loop is admitted, and what the bound is (an output saturation is one; the ladder's between-stage saturation is the precedent). - Whether a chaotic source wants its own kind or is the LFO's shape list grown (`Lfo`'s shapes) with a state vector. ## Related #138, #100, #136, #105, #117, #91.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
bcox/tymbal#146
No description provided.