1. Pitch pipeline: IntervalLock stores midiNote/127, sequencer now converts back via pitch*127. Removed pitch RangeMap from projection presets (was double-mapping already-quantized values). 2. Clock step duration: changed from quarter-note grid (60/bpm) to 16th-note grid (60/bpm/4). 8 steps at 120 BPM now = 1 second. 3. Method name: drawWeights → randomiseWeights (matching WasmIML API). 4. Dirty-check: setSequenceInputs now skips re-evaluation when inputs haven't changed (epsilon 1e-5). Avoids 60fps chain evaluation. 5. SwingGroove: swingGrid param now functional — selects 8th note (period 2), 16th note (period 4), or triplet (period 3) swing grid. 6. IntervalLock base octave: starts from C3 (MIDI 48) instead of C0, so default output is in a playable range. |
||
|---|---|---|
| .. | ||
| chain-ui.js | ||
| chain.js | ||
| clock.js | ||
| event-bus.js | ||
| param-map.js | ||
| pattern.js | ||
| primitive.js | ||
| primitives.js | ||
| prng.js | ||
| projection.js | ||
| seq-iml.js | ||
| sequencer.js | ||
| step-viz.js | ||