Studio-innlogging

Logg inn for å laste opp, redigere bibliotek/lister og lagre innstillinger. Uinnloggede kan ikke skrive til serveren.

OnAirtime

Studio Desk

—° Tønsberg
Ikke innlogget

News reader

Klokke --:--:-- Manus --:-- / 3:00 Total 0 Brukt 0 Igjen 0

Ingen sak valgt

Åpne en rundown eller klikk en nyhetstittel for å lese i appen.

Foretrekker ChatGPT-lignende sky-TTS (Settings → stemme). Mangler nøkkel: Web Speech-reserve. Stoppbar, ducker musikk.

Nyheter & Prep

Velg saker, generer AI-sammendrag, Lagre som bulletin — spilles automatisk på :00 (og :30 morgen/ettermiddag).

AI-nyhetsanker

Tom

Generer redigerbart radiomanus fra riks + lokal (stasjonskommune). Godkjenn manuelt, deretter ElevenLabs → MP3 i media/innslag/. Uten ferdig lyd kan innslaget ikke sendes.

Kilder

    Status: generer manus → godkjenn → lyd → kø / plan

    Sak

    Velg en sak i listen til venstre.

    Editor

    Velg hva du vil redigere. Cue-edit fra Bibliotek åpner Rediger sang.

    Bibliotek

    Rediger lister (A/B/C, Albums, Reklame, Innslag, Jingles). FTP: media/albums/ (undermapper skannes). Søk i sangdatabasen og legg spor til listen. →A/→B for playout finner du i Program Log.

    Velg en liste

    0

    Klikk et spor for cue/metadata-edit (A-liste = primær mix-liste). Huk av for flervalg.

      Ingen spor i denne listen ennå.

      Music Accounts

      OAuth-innlogging i popup — aldri brukernavn/passord i OnAirtime. Bytt konto med Disconnect → Connect.

      Spotify redirect URI (lim inn i Developer Dashboard — exact, uten query): https://solalyd.no/onairtime/api/oauth.php

      Listener Queue

      Ønskelåter og hilsener.

        Live Metadata

        On air nå

        —

        —

        AUTO

        Signal Monitor

        Icecast-endepunkt ikke konfigurert.

        Studio Profile

        Studio-innlogging

        Egen innlogging beskytter opplasting, bibliotek, lister og admin-API. Passord lagres kun som password_hash (aldri plaintext i git eller klient-JS).

        Sjekker session…

        Vær — kommune

        Søk norsk kommune eller oppgi postnummer. Sted løses via Kartverket/SSB + Open-Meteo internt (ingen bredde-/lengdegrad i UI). Samme sted styrer vær og lokalnyheter (riks + distrikt).

        Valgt: Tønsberg

        Crossfade-lengde for Neste (NEXT), player Crossfade →, og auto-fade før sangslutt (1–15s, standard 3s). Neste hopper over MISSING og forbruker neste ubrukte spor i logg/B-liste før fade.

        Lyd — utganger

        PC/desktop: MAIN (program) kan ha eget lydkort. PFL / cue-editor bruker egen utgang kun hvis du velger den her — ellers samme stereo som MAIN (alltid hørbar). Tom = standard systemutgang. Mobil/nettbrett: alltid standard høyttaler/headset — ingen setSinkId.

        Ærlig begrensning: nettleseren kan ikke laste UA Console / ASIO / Core Audio-drivere direkte. Vi lister kun Web Audio-utganger OS-et eksponerer (Chrome setSinkId). Apollo Twin Duo MK2 synes når Windows/macOS viser den som avspillingsenhet — ikke via ASIO.

        PFL/cue: dedikert sink valgfri. Uten valg → MAIN → standard stereo. Mobil ignorerer setSinkId.

        Lyd — IN-innganger

        Standardkilde for IN-panelet (Mic / AUX / Telefon). Mobil bruker telefonmikrofon når du trykker ON AIR. getUserMedia skjer ikke ved sidelasting — kun på eksplisitt CUE / ON AIR.

        Skin

        Samme layout — ulike farger for ulike bruk. Dark er standard studio-teal. Light er dag/kontor. Soft er skånsom for lange skift.

        Nyheter — stasjonsdistrikt (riks + lokal)

        Huk av ett eller flere NRK-distrikt som gjelder denne stasjonen. AI-sammendrag bruker riks + valgte distrikt.

        Nyhetsbulletin — sendetider

        Lagret bulletin spilles på :00 hver time. I morgen- og ettermiddagsvindu også på :30. Uten lagret bulletin: ingen nyheter (AUTO = musikk + jingles).

        Begrenser hvor mange spor som kan ligge på A-listen i Bibliotek.

        BED / talk-over nivå (dB)

        Forberedt for mic duck: talk-nivå = MAIN under snakk; bed-nivå = BED-gain. Ingen MIC ON-simulering — kun nivåer. Mic-state kommer senere.

        Cloud credentials (OAuth / API — aldri passord)

        Lim inn nøkler her. Lagres i storage/onairtime/cloud-credentials.json på serveren — ikke i git. Spotify-bruker logges inn via OAuth-popup under Accounts (ingen brukernavn/passord i appen).

        Spotify

        Redirect URI (Developer Dashboard → exact match, no query string): https://solalyd.no/onairtime/api/oauth.php

        Client ID (app → Settings) er ikke det samme som API Key (spakey_…). Connect Mixer A/B trenger begge: Client ID + Secret/API Key. API Key alene er ikke nok.

        Ikke konfigurert

        YouTube

        YouTube Music har ingen offisiell playout-API. Vi bruker YouTube Data API (søk) + offisiell IFrame Player (ett video-spor). Ingen uoffisiell YTM-scraping.

        Ikke konfigurert

        Nyheter AI (valgfritt)

        OpenAI-kompatibel API-nøkkel for «Sammenfatt sending» / AI-generert sammendrag (2–3 min). Uten nøkkel brukes ekstraktivt sammendrag. Aldri commit secrets.

        Ikke konfigurert — ekstraktiv fallback

        Nyhetsanker — ElevenLabs (sending)

        Primær stemme for AI-nyhetsanker. Nøkkel lagres kun på serveren (storage/onairtime/cloud-credentials.json). Godkjent manus → MP3 i media/innslag/.

        Ikke konfigurert

        Reserve-opplesning (OpenAI / Web Speech)

        Valgfri OpenAI /audio/speech for «Les opp» i News reader. Tom nøkkel = LLM-nøkkel. Ellers Web Speech.

        Ikke konfigurert — Web Speech reserve

        Plugins / DSP

        OnAirtime kjører en egen Web Audio DSP-kjede på masterbussen (A/B etter duck + carts). Native OctiMax / Winamp / Shoutcast-plugins (DLL) kan ikke lastes i nettleseren — dette er en ærlig emulering, ikke DLL-lasting.

        Nivå: —

        Arkitektur — hva nettleseren eier

        OnAirtime Studio er et kontrollflate i nettleseren. Den kan ikke eie GPIO, fysisk mixer, eller garantere playout hvis fanen dør / PC sover. LIVE/AUTO her er UI-status — ikke en hardware-engine.

        Cue-punkter (intro / hook / outro / custom) redigeres i Editor → Cue-editor og lagres i storage/onairtime/cues.json. ON AIR viser hopp-pads kun. BED og carts publiserer ikke Now Playing. PFL (Library / Editor / cartwall) spiller utenfor master on-air — velg PFL-utgang under Settings.

        Lokal playout-engine (fremtidig)

        Planlagt lokal agent: cache dagens logg + media, as-run logg, faderstart / GPIO, offline fortsatt playout når nettleseren lukkes. Ikke implementert — ikke late som hardware-mixer.

        Young / senior edit (kommer senere)

        Egne UI-moduser for tettere «young edit» vs enklere «senior edit» — ikke implementert. I dag: mørk ↔ lys + ON AIR / Editor.

        Velg spor til Player A

        Jingle til pad F1

        Filer fra media/jingle/ (eller jingles/). Velg for å tilordne — deretter klikk pad for å fyre.