4 Commits

Author SHA1 Message Date
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 985d3708d1 feat(sc): humanize + synth rotation + auto layer
User : "tu refait aussi les tracks avec toutes les possibilité
de synth disponible pour plus de variation et d'humanité dans
ces créations". Niveau choisi : subtil.

3 axes implémentés en helpers globaux qui s'appliquent à TOUS
les 345 tracks existants sans les réécrire :

1) HUMANIZE (engine.scd, opt-in via ~humanizeOn défaut true)
   - Timing offset Pwhite ±3.5ms par note (1.4% sur dur 0.25)
   - Velocity Pwhite ±10% par note
   - Micro-detune ±3 cents sur acid/melody/harmony midinote
   - Appliqué aux 7 Pdef (kickSeq/hatSeq/snareSeq/clapSeq/percSeq/
     acidSeq/melodySeq/harmonySeq) via Pfunc factories ~hTime
     ~hVel ~hDet déclarées dans ~reload
   - Désactivable : ~humanizeOn = false; ~reload.value
   - Tunables : ~humanizeTiming, ~humanizeVelocity, ~humanizeDetune

2) SYNTH ROTATION (palette/synth_rotation.scd, opt-in défaut OFF)
   - 8 rotators (acid/bass/lead/pad/pluck/kick/hat/snare/melody)
   - Pool de 19 versions par catégorie (acid_v1..v19 etc.)
   - Cycle toutes les ~rotationEvery=8 notes (configurable)
   - Vérifie SynthDescLib avant de switcher pour éviter crash
   - Activation : ~setRotationOn.(true)

3) AUTO LAYER (palette/auto_layer.scd, opt-in défaut OFF)
   - 3 layers parallèles à melody/harmony/acid
   - Mirror Pdef qui rejouent le même score avec instrument
     différent (warmPad/choir/sub_boom par défaut)
   - Octave offset configurable, amp réduit (0.20-0.30)
   - Pan opposé, attack/release plus mou, cutoff moins ouvert
   - Activation : ~setAutoLayer.(true)

Hook chargement dans live/_load.scd après scales/melodies/
harmonics. Les modules sont silencieux jusqu'à activation.
2026-05-07 21:05:24 +02:00
L'électron rare de035a8596 Add 'sound_algo/' from commit '38b17c42a0b5d2c7f52a2ad600316282cc52a02d'
git-subtree-dir: sound_algo
git-subtree-mainline: b7940d650f
git-subtree-split: 38b17c42a0
2026-05-07 11:51:51 +02:00