You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+31-15Lines changed: 31 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -57,7 +57,7 @@ TypeScript (^5.9.3), ESLint (^9.0.0), and related tooling are dev dependencies.
57
57
58
58
Polychron does not hardcode musical structure — it steers it. The system generates compositions through a three-layer nervous system:
59
59
60
-
**Conductor** — 42 intelligence modules cast multiplicative bias votes for density, tension, and flicker. Products are dampened, normalized, and committed to state. `signalReader` is the ONE read API for all consumers.
60
+
**Conductor** — 42 intelligence modules cast multiplicative bias votes for density, tension, and flicker. Products are dampened, normalized, and committed to state. 11 hypermeta self-calibrating controllers auto-tune constants that previously required manual adjustment; a meta-controller watchdog detects and resolves inter-controller conflicts. `signalReader` is the ONE read API for all consumers.
61
61
62
62
v getSignals() / signalReader.*() ^ explainabilityBus (diagnostic only)
63
63
@@ -111,7 +111,7 @@ Core infrastructure consumed by every other subsystem.
111
111
-**`instrumentation`** — Runtime instrumentation and timing
112
112
-**`modeQualityMap`** — Canonical mode-to-quality map shared by priors modules
-**`moduleLifecycle`** — Scoped-reset registry (`create(ownerName)`→ reset by scope: `all`/`section`/`phrase`)
114
+
-**`moduleLifecycle`** — Scoped-reset registry (`create(ownerName)`- reset by scope: `all`/`section`/`phrase`)
115
115
-**`beatCache`** — Deduplication — `create(fn)` ensures at most one evaluation per beat
116
116
-**`feedbackRegistry`** — Coordinates closed-loop controllers to prevent catastrophic resonance
117
117
-**`closedLoopController`** — Base controller abstraction for feedback-enrolled modules
@@ -122,15 +122,15 @@ Core infrastructure consumed by every other subsystem.
122
122
123
123
### `src/conductor/` — Intelligence & Signal (127 files across 10 subdirectories)
124
124
125
-
The brainof the system. 42 modules register with `conductorIntelligence`, contributing 29 density biases, 19 tension biases, 14 flicker modifiers, 29 recorders, and 56 state providers. Organized into specialized domains:
125
+
The brain of the system. 42 modules register with `conductorIntelligence`, contributing 30 density biases, 20 tension biases, 14 flicker modifiers, 29 recorders, and 56 state providers. Organized into specialized domains:
@@ -258,13 +258,13 @@ The top-level composition engine.
258
258
259
259
Each pipeline collects multiplicative bias votes from registered modules:
260
260
261
-
-**Density** (29 biases) — Controls note output probability
262
-
-**Tension** (19 biases) — Shapes harmonic tension and resolution
261
+
-**Density** (30 biases) — Controls note output probability
262
+
-**Tension** (20 biases) — Shapes harmonic tension and resolution
263
263
-**Flicker** (14 modifiers) — Drives rhythmic variation and stutter
264
264
265
265
All three are dampened + normalized.
266
266
267
-
Biases are multiplied together (not summed), dampened by `conductorDampening` (regime-aware gravity), normalized by `pipelineNormalizer` (adaptive soft-envelope), and decorrelated by `pipelineCouplingManager` (self-tuning gain nudges when correlation exceeds targets).
267
+
Biases are multiplied together (not summed), dampened by `conductorDampening` (regime-aware gravity + centroid correction + flicker range elasticity), normalized by `pipelineNormalizer` (adaptive soft-envelope), and decorrelated by `pipelineCouplingManager` (self-calibrating targets + adaptive coherent relaxation + gain budget management).
268
268
269
269
### Feedback Loops
270
270
@@ -274,10 +274,26 @@ Five closed-loop feedback systems maintain compositional coherence:
274
274
-**Entropy steering** (`entropyRegulator`) — Steers cross-layer systems toward a section-position-driven entropy target. Scale clamp [0.3, 2.0].
-**Decorrelation** (`pipelineCouplingManager`) — Self-tuning decorrelation for 6 compositional-dimension pairs. Adaptive gain, regime-aware.
277
+
-**Decorrelation** (`pipelineCouplingManager`) — Self-tuning decorrelation for 15 dimension pairs. Self-calibrating targets, adaptive gain, regime-aware.
278
278
279
279
All controllers are enrolled with `feedbackRegistry` to prevent catastrophic resonance.
280
280
281
+
### Hypermeta Self-Calibrating Controllers
282
+
283
+
10 meta-controllers auto-tune parameters that previously required manual adjustment between runs:
284
+
285
+
1.**Self-Calibrating Coupling Targets** (`pipelineCouplingManager`) — Per-pair rolling |r| EMA. Intractable correlations relax targets upward; easily resolved pairs tighten toward baseline. Product-feedback guard freezes tightening when density product drops below 0.75.
286
+
2.**Regime Distribution Equilibrator** (`regimeReactiveDamping`) — 64-beat rolling histogram vs target budget {exploring:35%, coherent:35%, evolving:20%}. Strength 0.25 with squared penalty when exploring exceeds 60%. Tension pin relief valve relaxes ceiling on sustained saturation.
287
+
3.**Pipeline Product Centroid Controller** (`conductorDampening`) — 20-beat product EMA per pipeline. Corrective multiplier (±25%) counteracts chronic drift from 1.0. Density and tension only — flicker axis excluded to avoid fighting elasticity controller.
288
+
4.**Flicker Range Elasticity Controller** (`conductorDampening`) — 32-beat rolling flicker range. 3x accelerated adjustment rate (0.015/beat). Compressed range reduces dampening base; excessive range increases it.
289
+
5.**Trust Starvation Auto-Nourishment** (`adaptiveTrustScores`) — Per-system trust velocity EMA (50-beat horizon). Injects synthetic payoff when velocity stagnates for 100+ beats. Hysteresis: disengages only when velocity exceeds 3x threshold for 50 beats. Nourishment strength decays 10% per application (floor 0.05).
290
+
6.**Adaptive Coherent Relaxation** (`pipelineCouplingManager`) — Derives coherent-regime coupling relaxation from rolling regime share instead of static constant.
291
+
7.**Entropy PI Controller** (`systemDynamicsProfiler`) — Integral term + adaptive alpha + anti-windup (Ki=0.05, clamp ±3.0). Freezes integral accumulation when P and I terms have opposite signs.
292
+
8.**Progressive Strength Auto-Scaling** (`conductorDampening`) — Derives dampening strength from active contributor count instead of hardcoded pipeline-specific multipliers.
293
+
9.**Coupling Gain Budget Manager** (`pipelineCouplingManager`) — Per-axis budget cap (0.24, flicker 0.36) prevents coupling manager from dominating any single pipeline. Product-feedback guard on density axis.
294
+
10.**Meta-Observation Telemetry** (`conductorDampening`) — Per-beat snapshots of meta-controller state emitted to `explainabilityBus` and fed to the meta-controller watchdog.
295
+
11.**Meta-Controller Interaction Watchdog** (`conductorMetaWatchdog`) — Runs every 50 beats, detects opposing correction patterns between controllers on the same axis. Attenuates the weaker controller by 50% when conflict exceeds 30/50 beats. Self-heals when conflict resolves.
296
+
281
297
For constant values, interaction partners, and cross-constant invariants, see [TUNING_MAP.md](TUNING_MAP.md).
282
298
283
299
### Regime Detection
@@ -292,7 +308,7 @@ For constant values, interaction partners, and cross-constant invariants, see [T
292
308
-**`fragmented`** — Multiple signals pulling in different directions
Regime classification drives dampening strength, decorrelation aggressiveness, and profile adaptation behavior. The **regime distribution equilibrator** tracks a 64-beat rolling histogram and auto-modulates bias directions (strength 0.25, squared penalty above 60% exploring) to prevent any single regime from dominating. A **tension pin relief valve** relaxes the tension ceiling when sustained saturation is detected.
0 commit comments