diff --git a/scripts/run-next-task.sh b/scripts/run-next-task.sh index 085cecd..7714db8 100755 --- a/scripts/run-next-task.sh +++ b/scripts/run-next-task.sh @@ -29,18 +29,19 @@ declare -A PHASE_DEPS=( [9]="3" [10]="2" [11]="5 6 7" - [12]="1 2 3 4 5 6 7 8 9 10 11 13 14 15 16" + [12]="1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17" [13]="3 4" [14]="6 13" [15]="3 10" [16]="11 13" + [17]="" ) # --- Finn blokkerte faser --- # En fase er blokkert hvis den har en [?], [!] eller [~] oppgave blocked_phases() { local phases="" - for phase in $(seq 1 16); do + for phase in $(seq 1 17); do if grep -qP "^\- \[(\?|!|~)\] ${phase}\." "$TASKS" 2>/dev/null; then phases="$phases $phase" fi diff --git a/tasks.md b/tasks.md index b6d99db..525d4ef 100644 --- a/tasks.md +++ b/tasks.md @@ -182,6 +182,18 @@ Ref: `docs/features/lydmixer.md` - [ ] 16.6 EQ-effektkjede: fat bottom (`BiquadFilterNode` lowshelf ~200Hz), sparkle (`BiquadFilterNode` highshelf ~10kHz), exciter (`WaveShaperNode` + highshelf). Per-kanal toggles, synkronisert via STDB. Presets (podcast-stemme, radio-stemme). - [ ] 16.7 Stemmeeffekter: robotstemme (ring-modulasjon: `OscillatorNode` → `GainNode.gain`), monsterstemme (egenutviklet `AudioWorkletProcessor` med phase vocoder for pitch shift). Effektvelger-UI per kanal. Parameterjustering (pitch-faktor, oscillator-frekvens). +## Fase 17: Lydstudio-utbedring + +Ref: Kodegjennomgang av `b4c4bb8` (Lydstudio: lydredigering via FFmpeg). + +- [ ] 17.1 Responsivt studio-layout: `/studio/[id]` sidebar stacker under waveform på mobil. Verktøypanel som modal/sheet på små skjermer. Ref: feedback om at alt UI skal være responsivt uten unntak. +- [ ] 17.2 FFmpeg-parametervalidering: valider at alle numeriske verdier (threshold, gain, ratio, frekvenser) er innenfor sikre grenser i `audio.rs` før de interpoleres i filterstrenger. Avvis ugyldige verdier med feilmelding. +- [ ] 17.3 Fade/silence-logikk: fiks negativ fade-out start (clamp til 0), og adaptiv silence-margin (margin skal ikke overstige halve regionens varighet). Gi feilmelding ved ugyldige fade-varigheter. +- [ ] 17.4 Frontend input-begrensninger: legg til `min`/`max` på alle tallfelter i OperationPanel (silenceThreshold, fadeMs, normTarget, compRatio). Hindre ugyldig input. +- [ ] 17.5 Job-polling opprydding: rydd opp interval/timeout ved navigering bort fra studio-siden. Vis feilmelding etter N mislykkede polling-forsøk. Wrap metadata JSON.parse i try/catch. +- [ ] 17.6 Temp-fil opprydding: legg til periodisk jobb i maskinrommet som sletter gamle temp-filer i CAS tmp-katalog. Bruk `/tmp` eller sett TTL. +- [ ] 17.7 FFmpeg feilmeldinger til bruker: propager stderr fra FFmpeg-feil til frontend via strukturert feilrespons. Vis i RenderDialog. + ## Fase 12: Herding - [ ] 12.1 Observerbarhet: strukturert logging, metrikker (request latency, queue depth, AI cost).