clement
b8098de39e
merge: matrix-only boot gate
...
CI build oscope-of / build-check (push) Has been cancelled
Bring the MATRIX_ONLY boot gate (origin/main 46c8823 ) into the feature
branch. With MATRIX_ONLY set, boot skips the concert/body-play scene so
only the matrix arranger plays. Clean auto-merge.
2026-06-28 19:04:26 +02:00
L'électron rare
46c88236f6
feat: matrix-only boot via MATRIX_ONLY env
CI build oscope-of / build-check (push) Has been cancelled
2026-06-28 19:03:38 +02:00
clement
2bfa846631
docs: matrix instrument + capture-effect plans
2026-06-28 19:03:18 +02:00
clement
128bc3f1b4
merge: creative matrix presets
...
Bring the 16 full-kit creative matrix presets (origin/main 6482baf )
into feat/matrix-instruments alongside the capture-effect design doc.
Disjoint changes, clean auto-merge. Loader reads the preset dir live,
so the new presets are listable without an SC reboot.
2026-06-28 18:58:53 +02:00
L'électron rare
6482baf22c
feat: creative full-kit matrix presets
...
CI build oscope-of / build-check (push) Has been cancelled
Replace the 14 sparse starter grids with 16 hand-authored arrangements
that use all 16 voices and evolve over the 32 bars via sections
(intro / build / drop / break / final) with fills and accents.
- Styles: techno_drive, acid_journey, trance_euphoria, psytrance_roll,
detroit_soul, industrial_grind, hardcore_punk, dub_techno, breakbeat,
minimal_hypno, ambient_intro, peak_drop, rave_stab, tribal_perc,
bass_science, melodic_builder.
- Every voice featured across the set (ride/rim/tom/reese/bells/sweep
now used, not empty); peak_drop activates the full kit on the drop.
- generate_presets.py reworked with a sections DSL; prints a voice-
coverage report (16/16).
2026-06-28 18:54:05 +02:00
clement
cff42d0863
docs: matrix capture-effect modulation design
2026-06-28 18:49:50 +02:00
clement
d5a1de0938
merge: persistence presets into matrix glow
...
CI build oscope-of / build-check (push) Has been cancelled
Bring matrix file persistence + 14 morceau-inspired presets (origin/main
16adac4 ) into macm1 main which had the audio-reactive glow + an extra
matrix-instrument-selection design doc. Disjoint changes, clean auto-merge.
Result: glow + persistence + presets + save/load UI all together.
2026-06-28 18:45:17 +02:00
L'électron rare
16adac4bec
merge: matrix glow with persistence presets
...
CI build oscope-of / build-check (push) Has been cancelled
Reconcile two parallel matrix features built since 3ce4c38 :
- macm1 main: matrix audio-reactive glow (/matrix/trig, triggerGlow,
matEmitTrig, --glow CSS var, matrix_glow.js).
- gitea main: matrix file persistence + 14 morceau-inspired presets
(/matrix/save|load|list, web save/load UI).
Conflict resolution kept BOTH features:
- control.js: /matrix/list + /matrix/grid handlers AND /matrix/trig.
- control.css: glow-enhanced .mcell.playing AND persistence-bar styles.
- test_matrix.scd: persistence round-trip AND matEmitTrig/matGlow tests.
Verified: SC headless test_matrix TEST PASS (both suites), matrix.scd
P:0 B:0, node --check control.js OK.
2026-06-28 18:41:45 +02:00
clement
b65d16843e
docs: matrix instrument selection design
2026-06-28 18:39:20 +02:00
L'électron rare
b141127a13
feat: matrix presets inspired by morceaux
CI build oscope-of / build-check (push) Has been cancelled
2026-06-28 18:32:42 +02:00
L'électron rare
c81f3d8587
feat: web matrix save load ui
2026-06-28 18:31:11 +02:00
L'électron rare
2ed077bbf5
feat: matrix save load presets in sc
...
CI build oscope-of / build-check (push) Has been cancelled
Add durable file-based persistence for the 16x32 arrangement matrix:
~matSave / ~matLoad / ~matNames helpers with OSC routes /matrix/save,
/matrix/load, /matrix/list; ~matGridPush sends full 512-int grid dump
on load; preset dir scaffolded. Root-causes fixed during development:
String.== is identity-based in SC (use Symbol storage + \sym literals),
String.copyFromTo -> copyRange, Pipe/pathMatch unreliable headless.
Headless test round-trip: save -> clear -> load -> verify.
2026-06-28 18:24:22 +02:00
clement
9c8c271113
test: cover matGlow path through matVariation
2026-06-28 18:21:06 +02:00
clement
b80ba66d4c
refactor: use MATRIX_VOICES.length in glow loop
2026-06-28 18:14:18 +02:00
clement
6c7cd45ecd
feat: render audio-reactive glow on matrix grid
2026-06-28 18:09:09 +02:00
clement
0069b82875
test: align glow decay test name with bound
2026-06-28 18:06:46 +02:00
clement
c483977c34
feat: add matrix glow decay helper
2026-06-28 18:03:12 +02:00
clement
f9d64cd7a5
feat: emit per-note matrix trigger for glow
2026-06-28 17:56:58 +02:00
clement
df2bceca74
docs: matrix glow implementation plan
2026-06-28 17:53:09 +02:00
clement
a484ab943c
docs: matrix audio-reactive glow design
2026-06-28 17:47:32 +02:00
clement
3ce4c38f1c
Merge remote-tracking branch 'origin/main' into refactor/sc-finish
CI build oscope-of / build-check (push) Has been cancelled
2026-06-28 17:13:21 +02:00
clement
7ca9fd98ff
docs: namespace, OSC registry, boot modes
2026-06-28 17:10:30 +02:00
L'électron rare
6843e5aafc
fix: matrix re-source only on color change
...
CI build oscope-of / build-check (push) Has been cancelled
Track last-applied color per voice in ~matLastColor; ~matApplyBar
skips Pdef re-source and re-play when color is unchanged and non-zero,
eliminating envelope re-attacks on sustaining pads/subs/reese/sweeps.
~matStop resets ~matLastColor to -1 so subsequent play re-applies all.
~matVariation now returns nil for color 0 instead of the base pattern.
loadMatState validates each cell is an integer 0..6.
2026-06-28 17:07:04 +02:00
clement
015374af38
fix: keep shared clock alive on scene stop
2026-06-28 17:00:13 +02:00
L'électron rare
2d927107f1
feat: web matrix arranger tab
CI build oscope-of / build-check (push) Has been cancelled
2026-06-28 16:55:59 +02:00
L'électron rare
ee7f349359
feat: load matrix after sections
...
CI build oscope-of / build-check (push) Has been cancelled
Adds step 6i to data_only/boot.scd: loads matrix.scd after
sections.scd, matching the additive load pattern used by every
other data_only feature file.
2026-06-28 16:48:40 +02:00
L'électron rare
2250fe347f
feat: matrix arranger engine in sc
...
Adds sound_algo/data_only/matrix.scd: a 16-voice x 32-bar
song-arrangement matrix with a bar-by-bar playhead Routine.
- Reads base Pdefs from launchpad.scd (additive, does NOT modify them)
- Colors 1-6 map to Pchain overlays: stretch (half/double-time),
octave shift, amp accent; color 0 = Pdef.stop
- ~matBaseFor captures each voice's source once (lazy cache)
- ~matVariation, ~matApplyBar, ~matPlay, ~matStop, ~matSetCell,
~matClear exposed as environment functions
- OSCdefs /matrix/{cell,play,stop,clear} with \mat_* unique keys
- Nil-guarded, idempotent reload; TouchOSC feedback via ~toscSend
Adds test/test_matrix.scd: headless sclang assertions (no server
boot), verifies API wiring, cell write, Pchain return type,
out-of-range guard, and ~matStop no-raise.
2026-06-28 16:48:36 +02:00
clement
53f9111ed8
refactor: scenes and morceaux use setTempo
2026-06-28 16:45:10 +02:00
clement
fe7b25e536
refactor: route data-only tempo to setTempo
2026-06-28 16:42:16 +02:00
clement
8d95f3e455
refactor: route live tempo writers to setTempo
2026-06-28 16:39:53 +02:00
clement
e9022fab7d
refactor: alias secondary clocks to default
2026-06-28 16:37:17 +02:00
clement
222c087610
fix: keep engine boot clean, test owns try
...
Remove the try-catch wrapper added around s.waitForBoot in
sound_algo/engine.scd — it swallowed real boot errors in
production. Move boot-failure tolerance into
sound_algo/tests/test_tempo.scd instead, where it belongs.
data_only/engine.scd was not affected (no wrapper added).
2026-06-28 16:34:40 +02:00
clement
141ed0e122
feat: single coordinated setTempo
2026-06-28 16:31:26 +02:00
L'électron rare
2f4a80ce2b
fix: relay scene feedback to web clients
CI build oscope-of / build-check (push) Has been cancelled
2026-06-28 16:17:36 +02:00
L'électron rare
495c5680bf
feat: tosc sections page for song build
...
CI build oscope-of / build-check (push) Has been cancelled
Add SECTIONS (page 4): 8 slot launch+save buttons, PREV/NEXT nav,
/scene/state receive on the GROUP so sections.lua colors slots
(green=current, blue=filled, dark=empty). Update pager to 4 pages,
add 4 new tests (26 pass), rebuild dist/av-live-control.tosc.
2026-06-28 16:16:14 +02:00
clement
90ded48a57
docs: lot C clocks plan
2026-06-28 16:15:04 +02:00
clement
62957f09d5
docs: lot C clocks unification design
2026-06-28 16:12:00 +02:00
L'électron rare
7b90acf80e
feat: web sections tab for live song build
CI build oscope-of / build-check (push) Has been cancelled
2026-06-28 16:10:02 +02:00
L'électron rare
1990fc692f
fix: guard scene clear bounds and lparm nil
CI build oscope-of / build-check (push) Has been cancelled
2026-06-28 16:05:55 +02:00
clement
17d78127f6
refactor: fpResolve delegates to noteFor
2026-06-28 15:57:37 +02:00
L'électron rare
d7c1049661
fix: valueArray for melody state echo
CI build oscope-of / build-check (push) Has been cancelled
2026-06-28 15:56:42 +02:00
L'électron rare
ab88b0f6df
feat: load sections after touchosc feedback
...
Adds boot step 6h: sections.scd loaded after touchosc_feedback.scd
so ~toscSend is available. Net-zero paren balance change (P:-8 B:0).
2026-06-28 15:56:42 +02:00
L'électron rare
ca21a4216d
feat: live section scene slots in sc
...
8 snapshot slots (clips armed + seq presets + harmony).
Quantized recall via ~lpArm diff, next/prev chaining,
/scene/state feedback via ~toscSend. Headless test passes.
2026-06-28 15:56:42 +02:00
clement
562ac45d13
refactor: lpNote delegates to noteFor
2026-06-28 15:54:28 +02:00
clement
2777243d5c
refactor: ccNote delegates to noteFor
2026-06-28 15:52:31 +02:00
clement
77249049c9
feat: load note helpers in all boot paths
2026-06-28 15:48:54 +02:00
clement
fab35a5520
feat: unified note/scale source of truth
2026-06-28 15:43:57 +02:00
clement
2aac8f57f6
docs: lot A plan, unified note helpers
2026-06-28 15:26:34 +02:00
clement
9ad0ddda13
docs: SC harmonization refactor master design
...
Decompose into 6 incremental lots (A-F), live concert stays
playable. Lot A (unified music helpers) detailed first.
2026-06-28 15:22:21 +02:00
clement
bb11311720
Merge remote-tracking branch 'origin/main'
CI build oscope-of / build-check (push) Has been cancelled
2026-06-28 15:18:44 +02:00