memlnaut-nisps/playground/js/shapeseq
w1n5t0n c8015da35a feat(shapeseq): implement Layer 1 modules
Four modules that build on the Layer 0 foundation:

- primitive.js: base class with category system (generator/processor/
  timing/converter), param schema validation, boundary enforcement
  (clamp/wrap/scaled), symbolic process() interface, state management
  for freeze, and applyBoundary() utility for delta control
- clock.js: AudioContext lookahead scheduling (25ms interval, 100ms
  window) replacing setTimeout arpeggiator. Reads pattern descriptions
  for per-step swing (timeOffset) and ratchet (subdivisions). Emits
  seq.noteOn/noteOff/step/loopStart via event bus.
- projection.js: composable transform chain with 5 transforms
  (VelocityCurve, GateThreshold, RangeMap, OctaveFolder, StutterMap)
  and 3 presets (expressive, percussive, fullRange). Pitch quantization
  deliberately excluded (handled by Interval Lock primitive).
- step-viz.js: Canvas2D circular step visualizer with even angular
  spacing for any step count. Pitch→radius, velocity→node size,
  accent→color. 60fps-friendly with pre-allocated coordinate buffers.
  Tap interaction for step toggling.
2026-03-24 02:02:01 +02:00
..
clock.js feat(shapeseq): implement Layer 1 modules 2026-03-24 02:02:01 +02:00
event-bus.js feat(shapeseq): implement Layer 0 foundation modules 2026-03-24 01:57:59 +02:00
param-map.js feat(shapeseq): implement Layer 0 foundation modules 2026-03-24 01:57:59 +02:00
pattern.js feat(shapeseq): implement Layer 0 foundation modules 2026-03-24 01:57:59 +02:00
primitive.js feat(shapeseq): implement Layer 1 modules 2026-03-24 02:02:01 +02:00
prng.js feat(shapeseq): implement Layer 0 foundation modules 2026-03-24 01:57:59 +02:00
projection.js feat(shapeseq): implement Layer 1 modules 2026-03-24 02:02:01 +02:00
seq-iml.js feat(shapeseq): implement Layer 0 foundation modules 2026-03-24 01:57:59 +02:00
step-viz.js feat(shapeseq): implement Layer 1 modules 2026-03-24 02:02:01 +02:00