server/docs/proposals/waveforms.md
vegard 74110e842c Dokumentasjon: oppdatert arkitektur, nye proposals og konsepter
Oppdatert basert på ekstern tilbakemelding. Nye proposals for
kildevern, podcasting 2.0, web clipper, waveforms, editor,
tekst-primitiv og avisvisning. Oppdatert meldingsboks med
slette-semantikk, entity resolution i kunnskapsgrafen, og
AI gateway med kildevern-modus.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 21:45:24 +01:00

2.5 KiB
Raw Permalink Blame History

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: <Waveform>

  • 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:2321: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: LavMiddels

Wow-faktor: Høy