Kalla mig gärna bakåtsträvare (även om det är fel), men jag tycker
fortfarande att cd-skivor är det bästa mediet för musik. Fast sörjer
att Internet och nedladdningen dödar skivbutikerna gör jag inte, jag
köper numera nästan alla skivor över Internet. Man får tag på allting
där ute, av de mest varierade artister och i de mest obskyra genrer,
som inte ens en aldrig så entusiastisk ägare till en aldrig så dammig
skivbutik skulle få för sig att importera. Spännande skivletande på
obskyra ställen får man också utlopp för på nätet.
Är man vinylentusiast bör man också trivas bäst på nätet. Där går det
att hitta gamla plattor likväl som nysläpp för DJ-bruk. Själv har jag
länge velat åt den där housemusiken som bara släpps på vinyl, men jag
är som sagt cd-konsument, bollar inte med plattor och och mixar ihop,
och jag känner mig inte hemma i butikerna där stans DJ-elit hänger,
och då är Internet räddningen.
Avbräck för hi-fi
Mycket som inte ges ut på cd utan tidigare bara fanns på vinyltolvor
går nu ofta att köpa i digital form någonstans där ute.
Tråkigt nog är det mesta i mp3-format. Hi-fi-utvecklingen har alltså
fått ett förhoppningsvis tillfälligt avbräck i och med att man numera
ofta avsiktligt försämrar ljudkvaliteten för att minska lagringutrymme
och överföringstider. Lyckligtvis finns Beatport, som låter
en välja att köpa det mesta i wav-format med äkta cd-kvalitet så att
man kan bränna sina egna skivor. Visserligen svindyrt, eftersom de
lägger till en dollar per spår i förhållande till förlustkomprimerade
format, så jag får punga ut mer per musikminut än i skivbutiken, men
det är jag beredd att göra för musik jag annars skulle vara utestängd
ifrån.
Allt finns dock inte på Beatport, och inte ens där finns allt i
förlustfritt format. Så för ett tag sedan satt jag där med två
mp3-filer, i någorlunda acceptabla 320 kb/s, som jag ville bränna ner
på cd. Allt jag behövde nu var ett program att omvandla detta till
cd-formatets 16 bitar i 44,1 kHz.
Avkodningsbekymmer
Att omvandla ljud till mp3-format kan göras med olika
parametrar för olika kvalitet kontra komprimeringsgrad. Att omvandla
från mp3 tillbaka till någonting som man kan skicka in i en
DA-omvandlare borde däremot bara vara frågan om rätt eller fel. Man
får förstås inte tillbaka exakt vad man hade före komprimeringen,
mp3-kodning innebär ju en kvalitetsförlust, men man borde åtminstone
kunna använda all information man har kvar och avkodningen
ska alltså vara deterministisk.
En snabb test av tre olika program, varav två redan fanns på min
dator, visade dock att det inte var så enkelt. Programmen gav ganska
olika resultat. Jag provade inte om jag kunde höra någon
skillnad, men jag kunde se på innehållet i avkodad data att de skiljde
sig ganska mycket åt. Faktum är att alla tre till och med hade olika
längd!
Så vad beror detta på och vad kan man göra åt det?
Compliance
I grunden beror problemet på avrundning under avkodningen. Olika
avkodare är olika noggranna. Oftast kompromissar de med noggrannheten
för att inte ta för mycket datorkraft. Lyssnar man på musiken direkt
från mp3-filer vill man ju nämligen gärna kunna göra något annat på
datorn samtidigt med avkodningen – spela upp musiken om inte
annat. När jag bara vill koda om filerna en gång struntar jag i det,
jag vill att programmet har största möjliga noggrannhet.
Till ISO-standarden för mp3-avkodning hör en referensbitström
för att testa compliance med standarden. Referensdata är i
24 bitars upplösning. Om det finns någon gräns i själva
mp3-formatet som gör att det är omöjligt eller meningslöst att ge
utdata med fler bitars upplösning än så, eller om man bara valt
24 bitar för att det råkar vara standard för precisionsljudkort,
har jag inte lyckats utröna. Hur som helst kan man i alla fall testa
avkodare för att se hur mycket de avviker från referensen, och man kan
förstås hitta resultatet från någon som gjort det på nätet.
Föga förvånande visar jämförelsen att det är produkten Libmad, från
företaget Underbit vars webbplats visar undersökningen, som ger bäst
compliance, åtminstone kompilerad med parametrar för att
optimera för noggrannhet. Libmad är en fri produkt och den fanns redan
på min dator eftersom jag har installerat Sox som använder
den. Dock inte kompilerad för att vara maximalt noggrann, men det gick
bra att hämta ner källkoden, kompilera med parametern
--enable-accuracy, och sedan fixa så att Sox använder det
nykompilerade resultatet. Så nu kan jag använda Sox för konverteringen
och få utdata med bästa tillgängliga noggrannhet. Allt frid och fröjd,
eller?
Dithering
Inte riktigt, jag vill som sagt ha utdata med 16 bitars
upplösning till min cd. Hur gör Sox när den går från Libmads 24 till
16 bitar? Det verkar som att den avrundar till närmaste
16-bitarstal, vilket ju känns högst rimligt – och är det bästa
man kan göra om man vill få bra värden i compliance-tester. Men, det
är inte det bästa om man vill att det ska låta bra.
Enkel avrundning gör nämligen att signalen blir full av skarpa
90-graderskanter, vilket akustiskt innebär att man får in obehagliga
övertoner. För bästa ljud bör man använda något som kallas
dithering, vilket innebär att man före avrundningen adderar
ett högfrekvent brus i de lägsta åtta bitarna. På så vis höjer man
slumpmässigt vissa värden och sänker andra, och resultatet efter att
signalen jämnats ut av elektronik och öron blir rundare och mer
harmoniskt.
Det är inte lätt att ta reda på vilka avkodare som gör dithering och
inte, men Underbits egen frontend till Madlib, Madplay, gör
det om man inte explicit säger åt den att låta bli. Jag testade den,
och när jag jämförde resultatet med det från Sox kunde jag konstatera
att Sox inte använder dithering, så jag bestämde mig för att i
fortsättningen använda Madplay tillsammans med en
noggrannhetskompilerad libmad.
Perfektionister och musiker
Men kanske är det bara teoretiska perfektionister som jag som bryr
sig. Jag hittade en wiki som hävdade att det har varit viktigare med
tidigare bristfälliga kodare och avkodare, och det stöds av det faktum
att alla hetsiga diskussioner jag kunde hitta om ämnet på nätet var
minst fem år gamla. Fast jag undrar vad påståendet att skillnaderna är
betydelselösa grundar sig på. Man vill ju, eller åtminstone vill jag,
att även sista biten av de 16 ska vara vettig (annars har man ju bara
15 bitars upplösning!), även om det kan vara svårt att upptäcka
skillnaden när man lyssnar.
På en företagsfest ett tag senare hade jag tillfälle att diskutera
ämnet med en musiker som råkar vara ena halvan av Malmös hetaste namn på
just Beatport, och även han var helt inne på linjen att
alla bitarna har betydelse och att dithering är önskvärt, vilket
gjorde mig lite nöjd.
Men så kom han också med den för mig något otillfredsställande nyheten
att det finns olika rön om vilken sorts brus man ska lägga på
för att få bäst resultat av dithering. Jag vet inte om jag ska försöka
ta reda på fakta i den diskussionen också. Lyckligtvis har jag kunnat
hålla mig till wav-format sedan dess.
intressant?
om
mp3,
musik
30 mars 2007
Digital musik och mp3-avkodningens mysterier
Posted by
ctail
22:34
·
·
Permalänk
Labels: datanörderi, musik
Prenumerera på:
Kommentarer till inlägget (Atom)
0 comments:
Skicka en kommentar