Tek.no

Nyhet

Dette skjer når du spiller en låt fra Spotify

Nuller og ettall blir til godlyd i hodetelefonene dine. Dette skjer på veien.

Shutterstock, Spotify, Niklas Plikk, Tek.no
21 Jan 2016 13:00

Det er ikke lenge siden piratkopiering var et gigantisk problem for platebransjen. I dag er det de færreste som gidder å laste ned piratkopiert musikk, og det kan vi takke strømmetjenester som Spotify, Tidal og Apple Music for.

Men hvordan er det egentlig disse strømmetjenestene fungerer? Hvordan kan du ha tilgang til millioner av låter fra hvor som helst i verden, og hva er mekanismene bak som gjør databits – nuller og ettall – på en server et annet sted i verden om til lyd som strømmer ut gjennom hodetelefonene eller høyttalerne dine? Og hvordan takler Spotify mer enn 75 millioner aktive brukere uten at serverne kneler?

Vi har fulgt bitstrømmen fra Spotifys servere og helt frem til datamaskinen din, og også sett på hva som skjer i datamaskinen din når nullene og ettallene skal gjøres om til lyd. Vi har brukt Spotify som eksempel – men prosessen er omtrent den samme om du bruker Tidal, Apple Music eller andre tjenester. Det kan være litt forskjell i for eksempel hvilke kodeker som brukes, men grunnprinsippene er de samme.

Her er en forenklet fremstilling av hva som skjer underveis.

1. Du åpner Spotify på PC-en din

Når du åpner Spotify-programmet på PC-en din vil du logges inn på Spotify sine servere, og Spotify vil vise oversikt over aktuelle artister, album og musikkategorier.

Siden du er innlogget, husker selvfølgelig Spotify dine preferanser fra tidligere. Dermed får du opp spillelistene dine, eller informasjon om hvilken musikk vennene dine spiller.

All informasjon om brukere lagres nå i databaseløsningen Apache Cassandra, mot tidligere PostgreSQL. Databasen håndterer over 1,5 milliarder spillelister og mer enn 40 000 forespørsler i sekundet, og er laget for å kunne reagere lynraskt.

2. Du velger en låt, et album eller en spilleliste og trykker «Play»

Kurt Lekanger, Tek.no

Idet du trykker Play-knappen sendes det en forespørsel til Spotifys servere om å starte strømming av låten, albumet eller spillelisten du har valgt.

Selv om det bare tar brøkdelen av et sekund, har du nå satt igang en lang kjede av operasjoner.

Et stort antall databits skal sendes på kryss og tvers verden over gjennom nettverkskabler, rutere, svitsjer og servere, og tilbake igjen, før du veldig snart kan høre på favorittartisten din.

Dette skjer når du taster inn en URL i nettleseren »

3. Spotify finner en server å strømme fra

Spotify

Spotify har svært mange servere over hele verden, og du vet aldri hvilken server musikken din spiller fra.

I 2013 hadde Spotify fire datasentere spredd rundt om i verden, med totalt mer enn 5000 servere og en båndbredde på 140 Gbit/s. Men noe musikk lagres også i Amazons lagringstjeneste S3, gjerne sangene som nesten aldri blir lyttet til, mens musikken som spilles oftest blir lagret på datasenterne.

På den måten fungerer datasenterne som en slags «cache», skriver Computer Sweden. I praksis vil altså en populær låt som «Stay» fra Kygo ligge lagret i et av datasenterne til Spotify, mens bortglemte acapella-låter fra Øst-Europa blir lagret dypt i Amazons lagringstjeneste.

Visste du at fire millioner låter i Spotifys bibliotek aldri har blitt lyttet til? Sjekk ut Forgetify hvis du vil høre dem »

Det brukes ulike former for lastbalansering for å sørge for at belastningen fordeles jevnt over alle de tilgjengelige serverne. Litt forenklet så kobles du først til en maskin – et aksesspunkt – som så fordeler trafikken videre.

Det er selvfølgelig en fordel at du er koblet til servere som befinner seg så nærme deg som mulig, på grunn av svartid. Dette skjer heldigvis automatisk, uten at du behøver å tenke på noe annet enn hva slags musikk du har lyst til å høre på.

I tillegg til at data ligger lagret på de store datasenterne rundt om i verden, bruker Spotify og andre strømmetjenester også såkalte CDN-løsninger (Content Delivery Network). Dette er en slags cache-løsning bestående av servere som er plassert nærme brukeren – typisk i datasenteret til Internett-leverandøren din. Innhold som sjelden endrer seg strømmes gjerne direkte fra en CDN nær deg – mens dynamisk innhold må hentes fra de store datasenterne lenger unna.

Les mer om CDN: Derfor hakker ikke Netflix og YouTube på trege linjer »

4. Spotify finner frem musikkfilen for deg

Shutterstock

Musikkfilene ligger lagret som filer på Spotifys servere, og filene er som kjent bygget opp av en rekke nuller og ettall (bits). Plateselskaper kan selv legge inn musikk, med tilhørende metadata (beskrivelser, informasjon om artist, etc.) og bilder.

Musikken blir kodet og lagret i Vorbis-format på serverne. I tillegg ligger musikken også i MP3-format, som brukes når du spiller av via nettleseren i stedet for Spotify-klienten. Musikken er kodet i flere ulike kvaliteter, og det er en lydfil per kvalitet. Programvaren som koder musikken i den ene enden og dekoder i den andre enden, kalles «kodek» (koder/dekoder) – eller «codec» på engelsk. Vorbis er en av mange slike kodeker.

Avhengig av hva slags abonnement du har, velger avspillingsprogrammet (klienten) på PC-en din den aktuelle musikkfilen med den bitraten og kvaliteten du har betalt for. Hos Spotify får du 160 kbit/s om du bruker Spotify gratis, eller 320 kbit/s om du har Spotify Premium.

5. Komprimert lyd overføres via Internett

Vegar Jansen, Tek.no

Strømming («streaming») av musikk betyr at hele lydfilen ikke behøver å overføres og lagres til PC-en din før den kan spilles av. I stedet spilles musikken av etter hvert som musikkdataene overføres.

Siden hastigheten på Internett kan variere, og mange har ustabile forbindelser, overføres noen sekunder med musikk før avspillingen starter. Skulle du miste nettforbindelsen et sekund, er allerede nok data overført til PC-en din til at Spotify kan fortsette å spille av musikken som om ingenting har skjedd. Dette kalles «bufring» – altså at data forhåndslagres i en buffer – eller hurtiglager (også kalt cache).

Dataene som overføres er som nevnt komprimert og kodet på en spesiell måte, i Spotifys tilfelle i Vorbis-format. Andre tjenester kan bruke for eksempel MP3 eller AAC. Prinsippet er det samme.

For å overføre musikkdataene over Internett kreves også en såkalt transportprotokoll. Noen strømmetjenester bruker UDP (User Datagram Protocol), mens Spotify bruker TCP (Transmission Control Protocol). Dette er «språket» som brukes for å sikre pålitelig overføring av informasjon mellom Spotifys servere og din PC. Det opprettes en TCP-forbindelse mellom din PC og serveren musikken spilles fra, og så overføres Vorbis-kodet lyd via denne TCP-forbindelsen.

Les mer om TCP i vår guide til hvordan Internett fungerer »

6. Lyden dekodes på PC-en din

Shutterstock

Etter hvert som musikken kommer til Spotify-klienten på PC-en din, i form av nuller og ettall – i Vorbis-kodet format, må musikken dekodes.

Vorbis-kodeken er innebygget i Spotify, og sørger for å dekomprimere musikken og oversette den til en strøm av databits som lydkortet ditt kan forstå.

Nå er vi nesten i mål. Spotify-klienten din har dekodet musikken, og trenger nå hjelp av operativsystemet og maskinvaren til PC-en din for å få gjort om datastrømmen til lyd du kan høre.

7. Analog lyd sendes via hodetelefonkabelen

Creative

Alle PC-er har et lydkort, eller mer presist: Mens man tidligere monterte lydkort i PC-er, så har de fleste moderne PC-er brikker for prosessering av lyd integrert på PC-ens hovedkort. I dagligtale brukes ofte likevel begrepet «lydkort».

Lydkortet inneholder en DAC (Digital-to-Analog Converter), som oversetter lyd i digital form (nuller og ettall) til et analogt signal – i dette tilfellet elektrisk strøm.

Det elektriske signalet er i utgangspunktet veldig svakt, og må derfor forsterkes. Akkurat som du kanskje har en forsterker tilkoblet høyttalerene dine hjemme i stua, sitter det en liten forsterker på PC-ens hovedkort. Det forsterkede elektriske signalet sendes så ut gjennom hodetelefonutgangen i PC-en, eventuelt til PC-ens innebygde høyttalere.

8. Elektriske signaler får høyttalerelementet til å svinge

Wikipedia/Svjo – Creative Commons Attribution-Share Alike 3.0

Inne i høyttaleren din eller i hodetelefonene dine sitter det ett eller flere høyttalerelementer. Et høyttalerelement består av en kraftig magnet og en bevegelig spole spunnet av kobbertråd. Spolen er forbundet med en høyttalermembran som kan være laget av papp, plast, metall, tekstilfibre eller andre materialer.

Det elektriske signalet som kommer fra lydkortet ditt er modulert slik at det endrer seg i takt med musikken som spilles. Når elektrisk strøm går inn i spolen i høyttalerelementet, fungerer spolen som en elektromagnet som får den til å bevege seg frem og tilbake i forhold til den faste magneten. Jo raskere svingninger, jo høyere toner vil høyttaleren produsere – og jo kraftigere bevegelser, jo høyere lydtrykk. Lyd er luft i bevegelse – og høyttalermembranens oppgave er å flytte luft.

For å få best mulig lyd brukes gjerne høyttalerelementer i ulike størrelser til å gjengi ulike frekvensområder (som bass, mellomtone og diskant), og et delefilter i høyttaleren sørger for å sende for eksempel lyd med lave frekvenser til bass-elementet, mens høye frekvenser går til diskantelementet.

Så neste gang du trykker Play i Spotify – eller en annen strømmetjeneste – kan du jo tenke på all «magien» som foregår i bakgrunnen før musikken strømmer ut gjennom hodetelefonene dine.

Er du fortsatt nysgjerrig? Dette skjer når du taster inn Tek.no i nettleseren din »

(Kilder: Spotify, Spotify Labs, Wikipedia, Computer Sweden)

Les også
Spotify holder ennå god avstand til Apple Music
Les også
Kanye West la ut sitt nye album kun på Tidal – ble «straffet» av piratene
Les også
Elmedia Player for Mac OS X: Du bør bytte ut Apples videospiller med denne
Les også
Slik virker Internett på flyet
Les også
Slik skal Samsung bli best på lyd
Les også
Vi gjorde det Google sier ikke går an
Les også
Dette skjer når du taster inn Tek.no i nettleseren
Les også
Slik bygges nettet som skal gi gigabit-bredbånd til alle
annonse