Commit c71ff2d5 by PLN (Algolia)

feat(live): safe-at-rest gF filters + default-xfade dN prelude, and Slop-visuals scaffold

#21 gF footgun fixed and #13 xfade confirmed live this session:
- live/lib/prelude.tidal: nucleus of the ParVagues lib (#23). Two eval-blocks PLN
  can shadow into a running session (no reboot):
  * gF1/gF2/gF3 rebuilt on CORE hpf/lpf mapped so fader-at-rest (CC=0) == BYPASS.
    The old  (# djfbus N …)  referenced an UNregistered SuperDirt effect and rested
    at an extreme → muted the orbit with no recovery. New form structurally cannot
    mute: untouched = transparent, push fader = sweep in. PLN confirmed 'work great'.
  * d1..d12 = xfade N . (|< orbit N-1): every track LAUNCH crossfades 4 cycles AND
    keeps its orbit (old bare  xfade N  lost the orbit → wrong LCXL column/stem).
    Plus orbit-correct  jumpTo i  for hard cuts. PLN confirmed 'no more abrupt cut boom!'.
- visuals/slop/: scaffold for Kevin's Slopmotion — README (NOW=generate shareable
  MP4s, LATER=gig visual engine) + FEEDBACK.md log to hand back to him.

Not yet baked into BootTidal.hs — kept as evaluable prelude until fully road-tested.
parent c35c9020
-- ParVagues live prelude — TRY blocks (nucleus of the #23 lib)
-- Open in Pulsar, eval a block (Ctrl-Enter inside the :{ … :}) to try it LIVE.
-- These shadow the BootTidal.hs defs in the running session — no reboot needed.
-- Once a block feels right, we bake it into BootTidal.hs (or load this file at boot).
-- =====================================================================
-- #21 — SAFE global filters (gF). The footgun: `djfbus` is NOT a
-- registered SuperDirt effect, and the fader CC rests at 0 → the old
-- gF1/2/3 sent an extreme value into a missing bus → sound muted with
-- no way back. Fix: use CORE params (hpf/lpf, always available) mapped
-- so REST (fader down = 0) == BYPASS. Untouched = no effect, ever.
-- Push a fader up → the filter sweeps in. Cannot mute you.
-- =====================================================================
:{
let gHPF ch = (# hpf (range 20 8000 ch)) -- fader up ⇒ high-pass climbs; rest(0)=hpf 20 ≈ open
gLPF ch = (# lpf (range 20000 180 ch)) -- fader up ⇒ low-pass closes; rest(0)=lpf 20k ≈ open
gF1 = gHPF "^49" -- CC49 fader = high-pass build (tension riser)
gF2 = gLPF "^50" -- CC50 fader = low-pass sweep (muffle/drop)
gF3 = id -- CC51 spare, held safe (id = never touches sound)
:}
-- try: d1 $ gF1 $ sound "bd*4" then sweep fader 49 — no dropout at rest.
-- (Old broken form was: gF1 = (# djfbus 1 (range 0.05 0.95 "^49")) — do not use.)
-- =====================================================================
-- #13 — DEFAULT-XFADE track launches. Every dN now crossfades in over
-- 4 cycles AND keeps its orbit (the old `xfade N` lost the orbit → sound
-- landed on the wrong LCXL column / Ardour stem). Fits the livemidi
-- model: dN evals are track LAUNCHES, so auto-xfade has ~zero downside
-- and makes every track→track move a clean crossfade with no code edit.
-- d1 $ <track A> … then later … d1 $ <track B> ⇒ B xfades over A.
-- To hard-cut instead, use jumpTo 1 $ … (defined below, orbit-correct).
-- =====================================================================
:{
let d1 = xfade 1 . (|< orbit 0)
d2 = xfade 2 . (|< orbit 1)
d3 = xfade 3 . (|< orbit 2)
d4 = xfade 4 . (|< orbit 3)
d5 = xfade 5 . (|< orbit 4)
d6 = xfade 6 . (|< orbit 5)
d7 = xfade 7 . (|< orbit 6)
d8 = xfade 8 . (|< orbit 7)
d9 = xfade 9 . (|< orbit 8)
d10 = xfade 10 . (|< orbit 9)
d11 = xfade 11 . (|< orbit 10)
d12 = xfade 12 . (|< orbit 11)
-- orbit-correct HARD CUT (when you DON'T want the 4-cycle blend):
jumpTo i = case i of
1 -> jump 1 . (|< orbit 0); 2 -> jump 2 . (|< orbit 1)
3 -> jump 3 . (|< orbit 2); 4 -> jump 4 . (|< orbit 3)
5 -> jump 5 . (|< orbit 4); 6 -> jump 6 . (|< orbit 5)
7 -> jump 7 . (|< orbit 6); 8 -> jump 8 . (|< orbit 7)
9 -> jump 9 . (|< orbit 8); 10 -> jump 10 . (|< orbit 9)
11 -> jump 11 . (|< orbit 10); 12 -> jump 12 . (|< orbit 11)
_ -> p i
:}
-- NOTE: while these xfade-dN are active, an *in-track tweak* also blends over
-- 4 cycles (not instant). That's fine for launches; if you're iterating fast on
-- one line, re-eval the plain BootTidal defs (or use p N $ … for an instant set).
-- To make xfade length live-controllable later: xfadeIn N <cycles> $ pat.
# Slopmotion — feedback log for Kevin
Running log of reactions while using Slopmotion, to hand back to Kevin. Be specific
and kind: what delighted, what confused, what broke, what we wished existed. Date every
entry; note the version/build if known.
Format per entry:
- **[YYYY-MM-DD] [build?]** — context (what we were trying to do)
- 👍 loved: …
- 🤔 confusing: …
- 🐛 broke: … (repro steps)
- ✨ wish: …
---
<!-- entries below -->
# Slop visuals — ParVagues × Slopmotion (Kevin)
**Slopmotion** is visual-generation software our friend **Kevin** is building. He's put
a lot of work into it recently (new capabilities / capas). Two horizons for us:
- **Short-term (NOW):** use it as a *generator* — produce easy, shareable **MP4** clips
for Instagram / socials from ParVagues material. Low commitment, high value.
- **Long-term (LATER, not ready yet):** evaluate it as a **live gig visual engine**
(real-time backdrop, à la the HUD scene layer #22). Kevin's own read is it's not
there yet — so this stays exploratory, no gig dependency on it.
## Our jobs here
1. **Generate** — get Slopmotion running locally, feed it ParVagues audio/imagery,
render a first shareable MP4. Output clips land in this dir (`visuals/slop/out/`).
2. **Give Kevin feedback** — capture reactions as we use it (see `FEEDBACK.md`).
He built the capas; concrete, kind, specific feedback is the gift back.
3. **Assess as engine** (later) — does it fit the "perf-isolated backdrop" law
(never stalls audio/editor)? Compare with HUD Feature B (#22).
## Pointers (fill in as we learn)
- Slopmotion source / repo: **TODO — get from Kevin** (path or URL)
- Install / run notes: TODO
- Input formats it wants (audio? stems? images?): TODO
- Export settings for Insta (aspect, codec, length): TODO — target H.264 mp4,
vertical 1080×1920 for stories/reels, ≤60s.
Related: `../../live/` (source tracks), HUD scene backdrop (task #22),
GLITCHWAVE source imagery.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment