# Forslag: Visuelle Waveforms som UI-primitiv ## Idé Podcast handler om lyd, men i Sidelinja-editoren er lyd foreløpig kun tekst eller en usynlig boks. Generer komprimerte audio-peaks fra lydfiler og rendrer dem som visuelle bølgeformer (SoundCloud-stil) overalt der lyd refereres — i editoren, i segment-embeds, i Podcastfabrikken. ## Hvorfor er dette interessant? - Gjør manuell redigering og verifisering av transkripsjoner mye mer intuitivt - Tidsstempler og Aha-markører kan lyse opp oppå bølgene - Visuell representasjon av lyd er forventet i 2026 — ren tekst føles utdatert - `{{segment:uuid}}` i editoren kan rendres som en interaktiv bølgeform i stedet for en flat lydspiller ## Hva bygger den på? - **Podcastfabrikken** — lydfilene og segmentene - **Jobbkø** — ny jobbtype `generate_waveform` - **Editor** — `{{segment:uuid}}`-embeds rendrer waveform i stedet for enkel player - **Studioet** — Aha-markører vises oppå bølgeformen ## Gjennomføring ### 1. Generere peaks Utvid `whisper_transcribe`-jobben (eller opprett separat `generate_waveform`-jobb) til å generere en komprimert array med audio-peaks: ``` Verktøy: audiowaveform (BBC, C++, rask) eller ffmpeg Input: MP3/WAV Output: JSON-array med peaks (f.eks. 800 datapunkter per minutt) Lagring: media_files.metadata (JSONB) eller separat fil ``` ### 2. Svelte-komponent: `` - Rendrer peaks som SVG eller Canvas - Klikkbar: hopp til tidspunkt i lyden - Overlay: Aha-markører, segment-grenser, talerskifter - Responsiv: tilpasser seg containerbredde - Brukes i: editor-embeds, Podcastfabrikken, segment-visning ### 3. Editor-integrasjon `{{segment:uuid}}` i rendered-modus viser: ``` ┌──────────────────────────────────────────┐ │ ▶ Episode 42, 14:23–21:07 │ │ ░▓▓░▓▓▓░░▓▓░▓░░▓▓▓▓░░▓░░▓▓░▓▓▓░░▓▓░▓ │ │ ^Aha ^Støre nevnt │ └──────────────────────────────────────────┘ ``` ## Åpne spørsmål - Peaks per minutt: 800 er nok for de fleste visninger. Trenger vi flere nivåer (zoom)? - Farger: Mono-farge eller fargekode per taler (krever diarisering)? - Lagring: Inline i JSONB eller som separat `.json`-fil i media/? ## Innsats: Lav–Middels ## Wow-faktor: Høy