Via et skript kan du konvertere en hvilken som helst MP3-fil til "svingtakt".
Via et skript kan du konvertere en hvilken som helst MP3-fil til "svingtakt".Vis mer

Lag "swing-versjon" av sangene dine

Ikke så fascinert av de gamle låtene, eller de nye MGP-hitene? Da kan du prøve dette.

Å leke seg med lyd er i vinden om dagen, skal vi tro alle listetoppsangene som benytter seg av auto-tuning; en lydprosessering som gjør at man treffer på tonene selv om man i utgangspunktet ikke gjør det. Du kan sikkert erindre Chers Believe fra 1998 der bruken var i overkant.

Nok om det - i pinsen lekte vi oss litt med Python-skriptet The Swinger (ja, vi var ute og grillet litt også, altså), hvis formål er å transformere en MP3-fil slik at taktarten etterpå kan minne om en swing-variant.

Måten dette skjer på er at algoritmen reduserer tempoet i begynnelsen av hver takt og øker det mot slutten av hver takt, mens pitchen hele tiden bevares slik at selve tonene forblir de samme. Først analyseres sangen for å finne antall taktslag i minuttet (bpm), og deretter kjøres "strekk og krymp"-funksjonen. Resultatet blir en ny MP3-fil med "swingtakt", og resultatet blir ofte ganske morsomt.

I redsel for å få TONO på nakken, tør vi selvsagt ikke å legge ut noen eksempler, men tipser deg om Music Machinery, som har testet på en håndfull sanger og lagt ut til lytting.

Samleside: musikk

Slik gjør du

Lyst til å prøve selv? Det kan du - helt gratis. Dog krever det litt over middels datakunnskaper, men der du selvsagt blir desto mer fornøyd når du får det til. Vi prøver å lose deg igjennom, men belag deg på å sette av det neste kvarteret, i hvert fall:

Last ned Python

Først må du laste ned Python. Lenka peker deg til nedlastingssiden, så finn frem til varianten som passer til ditt operativsystem. Velg 2.6.5-versjonen, siden vi vet at denne funker til det vi skal gjøre. For Windows-brukere antar vi at du bare har trykket next hele veien, og at Python da befinner seg i c:\Python26 etter installasjon.

Last ned Echo Nest remix

Dernest må du laste ned og installere Echo Nest remix (Windows-brukere - se under). Dette er et API mot en nettbasert syntheziser, som gjør at du kan kalle avanserte funksjoner for å manipulere en lydfil.

NB! For Windows-brukere
Pass på at du følger installasjonsveiledningen. Når du har installert Python må du legge til katalogen i PATH-miljøvariablen (punkt to i listen). Dette gjør du ved å høyreklikke på "(Min) Datamaskin", velge egenskaper, avansert, miljøvariabler og deretter merke PATH (1) og trykke rediger (2). Pil deg bort til slutten av linja og legg til et semikolon (dersom det ikke ligger ett der fra før) og deretter c:\Python26:

Vis mer


(Som du ser har jeg også lagt inn c:\Python26\Scripts, som det kan hende at du også må senere.)

Husk også å følge det neste trinnet i installasjonsveiledningen der du installerer numpy. Dette er det bare og laste ned og installere, så vi dveler ikke noe mer ved det.

Vis mer


Skaff API-nøkkel

For å få lov til å gjøre kall mot dette API-et trenger du også en API-nøkkel. Dette får du fra The Echo Nest ved å trykke på Your API account øverst til høyre. Velg register, fyll ut, bekreft eposten og så får du en ny epost med en API-nøkkel.

Denne må du tilgjengeliggjøre for skriptet, og det gjør du enklest ved å følge denne veiledningen.

OSX/Linux: følg oppskriften som står der (redigere bash_profile osv).
Windows: Høyreklikk på (Min) datamaskin, velg egenskaper, avansert og trykk "Ny..." under Systemvariabler. I det første feltet angir du ECHO_NEST_API_KEY og i det andre feltet nøkkelen du fikk da du registrerte deg. Hvis du har gjort det riktig, blir denne nå liggende på samme måte som det jeg har merket med rød ring i det store bildet over.

Er du komfortabel med Python-programmering fra før er det bare å sette i gang å lage noe morsomt. For oss andre finnes det heldigvis et lite bibliotek med gode eksempler; deriblant The Swinger.

Last ned dette skriptet ved å høyreklikke på view raw file og lagre det på harddisken ved å velge "lagre lenke som..." e.l.

Første forsøk

Avhengig av hva du har installert fra før, vil noen være klare allerede nå. Du kan nå prøve å kjøre scriptet ved å starte et DOS-vindu/terminalvindu (DOS: start--kjør--cmd, Mac/Linux: starte Terminal). Naviger til katalogen der du lagret fila (cd /sti/til/katalog på Mac/Linux eller cd \sti\til\katalog på Windows) og skriv python swinger.py navn-på-mp3-fil-du-vil-fikse. MP3-fila kan du selvsagt legge i samme katalog som swinger.py til å begynne med for enkelhets skyld, ellers må du også angi hvilken katalog den finnes i (typ c:\musikk\testfil.mp3). PS! Fila du angir blir ikke endret.

Hvis alt går smertefritt vil skriptet først laste opp fila for analysering av takt og slag pr minutt. Deretter skjer "magien", og etter et par minutter på en middels rask PC vil du ha fått en ny fil i samme katalog som det swinger av.

For de fleste vil nok ikke dette gå smertefritt. Vi testet både i OSX og Windows, og på begge maskinene fikk vi et par feilmeldinger. De lot seg imidlertid fikse.

Feil: pyechonest mangler

Den første feilmeldingen lot seg løse veldig lett i OSX. Den handler om at v4 pyechonest mangler, og der kommandoene for hvordan du henter og installerer står ramset opp, så der er det bare å klippe og lime, for deretter å hoppe over de to neste avsnittene.

I Windows var det ikke like rett frem, siden svn-kommandoen (Apache subversion) som foreslås kjørt ikke finnes forhåndsinstallert i Windows. Subversion kan imidlertid lastes ned og installeres herfra, hvorpå du etter installering kan kjøre svn-kommandoen og dermed installere v4 pyechonest slik skriptet foreslår.

Siden jeg fant ut dette først etter å ha begynt på artikkelen (og dermed ikke fikk testet det), tipser jeg også om at det går an å installere dette manuelt. Da går du hit og laster ned hver enkelt fil. Legg setup.py i en katalog, lag en underkatalog som heter src og lagre hver enkelt fil fra src-katalogen i src-katalogen du opprettet. Når du har gjort det peker du DOS-vinduet til katalogen med setup.py og skriver python setup.py install. Da skal den biten være grei.

Feil: simplejson mangler

Prøver du å kjøre skriptet igjen får du sannsynligvis en feilmelding om at simplejson mangler, men det kan du laste ned fra lenka du nettopp passerte. Mac/Linux laster ned tar.gz-fila, pakker den ut og kjører python setup.py install i katalogen der simplejson ble pakket ut.

Windows-brukere kan laste ned installeren (den tredje nedlastingslenka) - denne fikk vi imidlertid ikke til å fungere, så også dette steget måtte tas litt mer manuelt for vår del. Hvis du får samme feil, følger du instruksen i neste avsnitt.

Last ned setuptools (velg 2.6 versjonen for Windows) og installér. Hvis du godtar forhåndsvalgene legger dette seg i c:\Python26\Scripts. Denne må du også legge til i path-miljøvariablen hvis ikke du gjorde det med en gang i sted (bla lenger opp hvis du glemte hvordan du gjorde det). Dernest laster du ned egg-fila på denne siden. Lukk DOS-vinduet du eventuelt har åpent og start det på nytt (start--kjør--cmd) for å få med den siste oppdateringen i path-variablen (eller oppdater den ved å skrive set path=%path%;c:\Python26\Scripts). Dernest navigerer du til katalogen der du la egg-fila og skriver easy_install simplejson(blablabla).egg (du kan faktisk bare skrive easy_install simp og trykke tab så fyller den ut automagisk). Da skal også simplejson være installert.

Swingkurs

Fikk du det til? (Avsluttet)
Nei, jeg orker ikke en gang å prøve(76%)
Jaggu!(12%)
Nei, jeg fikk flere feilmeldinger enn de som var nevnt(7%)
Nei, jeg hang ikke med(6%)
Avstvemningen er ikke styrt og reflekterer kun lesernes egne meninger.


Nytt forsøk

Så kan du prøve igjen. Naviger til katalogen der du puttet swingerskriptet til å begynne med og skriv python swinger.py navnpåmp3fil for å starte prosessen igjen. Det funket fint hos oss - får du flere feilmeldinger nå får du poste dem i debatten under artikkelen og krysse fingrene for at noen snille DinSide-lesere (eller undertegnede) kan hjelpe deg. Stem gjerne i boksen til høyre om det funket til slutt så vi får en viss pekepinn.

Det er ikke hver dag du kan skryte til kompisene at du har installert Python, tilleggspakker, endret på miljøvariable og kjørt et Pythonskript for å lage en swingversjon av en mp3-fil, vel?

Snart er du vel i gang med å beatmixe swing-versjonene med Mixmeister, lage ditt eget dataprogram og bestille masse fra nerdenes nettbutikker også, tenker jeg.

PS! Hvis du finner noen sanger som blir ekstra morsomme må du gjerne tipse DinSides lesere i debatten under artikkelen. Vær grei ikke å lenke til beskyttede åndsverk, dog, siden det bare blir bråk av sånt.