Bit-perfect lyd i Linux (Ubuntu)



Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Sorensiim » 10. dec 2011, 23:19

OBS: Denne guide er lang og kan se indviklet ud, men det er KUN fordi jeg ævler en del når først jeg går igang. I virkeligheden er det ret simpelt og tager max 5 minutter. Jeg vil bare så gerne have at du bliver lidt længere og måske undervejs lærer noget nyt.

Mange tror at fordi få producenter reklamerer med at deres hardware virker med Linux, så er der ikke noget der “bare virker” - intet kunne være mere forkert. Jeg arbejder med IT til dagligt og hver gang jeg tvinges til at lave en frisk installation af Windows (det sker gudskelov ikke så tit længere) så bliver jeg irriteret over at skulle gennem den sædvanlige mølle med først at installere læssevis af drivere og så bagefter igang med at bruge et par timer på at maskinen tuller sig igennem Windows Update. Tilbage i 2006 gik jeg over til Ubuntu Linux som mit primære OS derhjemme og jeg har ikke set mig tilbage... Jeg har stadig Windows installeret (nu Win 7) men det er sjældent jeg starter det op. Når jeg installerer Ubuntu på en maskine er det utrolig sjældent at jeg har brug for drivere og sådan var det også da jeg smed et Asus Xonar DS lydkort i min nuværende computer. Det virkede bare.

I Ubuntu Linux (og de fleste andre distributioner) er der 4 “lag” når vi snakker om lyd:

1) Hardwaren - i mit tilfælde Asus Xonar DS
2) ALSA
3) Pulseaudio
4) Programmer der afspiller lyd

Lag 1 for mig er en fin chip der håndterer 24/192 og nok så væsenligt har mulighed for optisk output. Det lag tilgår min computer via ALSA. Det er her de rå bits for at vide hvor de skal løbe hen og hvordan de skal opføre sig når de når frem. ALSA har styr på mangt og meget, men formår til gengæld kun at tage imod én strøm af lydddata som det så leder videre ud gennem en bestemt udgang på kortet. Det var fint dengang “multimedia” betød at en computer kunne afspille musik ELLER film. I dag har vi ofte mange forskellige lydstrømme i systemet, vi vil have glidende overgange mellem musiknumrene og vi vil kunne se Youtube mens vi lytter til Spotify og har en film kørende i baggrunden. Her kommer Pulseaudio ind i billedet som et stykke software der holder styr på alle disse tråde og samler dem til én strøm som så fodres videre til ALSA. Supersmart for alle dem der bare vil have lyd ud af højttalerne på deres laptop mens de ser en sjov video, knap så fantastisk på os der vil have vores hundedyre DAC til at modtage PRÆCIS de bits vi har tænkt os at afspille, også selvom vi har musikfiler i både 16/44.1, 16/48, 24/96 osv. Pulseaudio kan ad bagveje sættes til at resample det hele til 24/192 i stedet for at resample til 16/44.1 som det gør som standard, men vi vil helt undgå at Pulsaudio piller i lyden.

For at undgå resampling må vi altså hoppe direkte fra lag 4 til lag 2. Det kan man på Windows gøre ved at indsætte f.eks. Asio4All som lag 2 og så bruge det som “udgang” i software der understøtter det (f.eks. Foobar). I Ubuntu kan vi det allerede, her må programmerne gerne snakke direkte med lag 2. Min favorit musikafspiller er Clementine, så det vil jeg bruge som eksempel her - princippet er det samme uanset hvilken afspiller du bruger, så længe den understøtter output direkte til ALSA. Først må vi dog lige have styr på lydkortet. Der kan sagtens være flere lydkort i en computer - min har 3. Et onboard skrammelkort, HDMI-porten på mit grafikkort og så mit Xonar DS. For at slå fast hvilket kort jeg skal rette lyden mod må jeg først se hvordan ALSA identificerer dem. Det gør jeg nemmest ved at åbne en terminal (CTRL-ALT-T) og skrive alsamixer (enter)

SĂĄ fĂĄr jeg dette fine vindue:

Billede

Her har den allerede valgt min Xonar, men trykker jeg F6 kan jeg vælge mellem kortene:

Billede

Lige her viser den 2 “lydkort” - bemærk at den tæller som en ingeniør, altså startende ved 0.

0 - HD-Audio Generic (HDMI porten pĂĄ mit grafikkort)
1 - Xonar DS

Føromtalte onboard skrammel på bundkortet har jeg for længst slået fra. Det vi skal notere er hvilket nummer det ønskede kort har - 1 i mit tilfælde da jeg vil have lyden ud via mit Xonar DS. ALSA kan godt finde på at slå S/PDIF (optisk/coax digitalt output) fra når du installerer styresystemet, så kontrollér at der ikke står “MM” i boksen; det betyder Mute og det kan vi jo ikke bruge til noget. Vælg S/PDIF udgangen med piletasterne og tryk på M, så skulle der gerne stå 00. Det betyder ikke at der er skruet helt ned, men ligesom den manglende volumenbjælke viser det at her har vi at gøre med en ren lineout vi altså ikke kan skrue på. Vi har allerede fastslået at ALSA ser mit Xonar DS som lydkort 1, så nu skal vi finde ud af hvad det digitale output så hedder. Tryk på F2 for “System information” og herunder vælger du /proc/asound/devices. Det giver et skærmbillede som dette:

Billede

Bemærk punkt 6: 1-0. Lydkort nummer 1, udgang nummer 0: Digital Audio Playback. På punkt 7 kan vi se at samme port (1-0) også kan bruges som digitalt input, så det må være den jeg skal bruge. Det varierer fra kort til kort og computer til computer. Hvis ikke vi havde slået fast at mit Xonar var kort 1, så kunne 0-3 også være en mulighed. Tryk ESC et par gange til du er ude af AlsaMixer, nu har vi fået hvad vi kom efter - ALSA’s portnummer.

Bevæbnet med portnummeret kan vi nu starte Clementine og gå i menuen Tools -> Preferences (Eller tryk CTRL-P):

Billede

Her skal vi have ændret et par ting. Da vi vil udenom Pulseaudio og direkte i ALSA må vi vinke farvel til fade - fjern alle fluebenene under punktet “Fading”. Under Gstreamer Audio Engine laver vi nu den afgørende ændring: i stedet for Pulseaudio som output skal der vælges “Audio Sink (ALSA)” og herunder hvilket Output Device vi vil bruge. AlsaMixer viste i mit tilfælde at 1-0 var vejen frem (Kort 1, Port 0), så jeg skriver hw: 1,0. Du kan ændre bufferen hvis du har lyst, ellers bare klik OK. Prøv at afspille filer i forskellige sample rates og hvis du har gjort det rigtigt (og jeg har skrevet instruktionerne rigtigt!) skulle de nu blive afspillet fuldstændig uden resampling, men bare fodres 100% uændrede til din DAC. Jeg er så heldig at have en DAC med et fancy display der kan bekræfte at filerne når frem uden ændringer, så når jeg zapper gennem en playliste med lidt blandede godter, så ser det således ud:



Bemærk hvordan displayet viser at DAC'en bliver fodret med lige præcis det jeg synes den skal, nemlig det "rå" digitale signal. Der er dog en ulempe ved at bruge ALSA direkte - man blokerer for Pulseaudio, så imens Clementine kører kan f.eks. min browser ikke få adgang til lydkortet. En lille pris at betale for bit-perfect lyd vil jeg mene.

God fornøjelse med bit-perfect lyd under Linux, skriv endelig hvis du har spørgsmål! Jeg lover ikke at jeg jeg kan besvare dem, men jeg vil i hvert fald gøre mit bedste for at hjælpe dig i den rigtige retning! Kommentarer, rettelser og forslag til ændringer og tilføjelser er naturligvis mere end velkomne.
The best things in life are free. The second best are very, very expensive.
All the gear but no idea | Komfort-mod til Ultrasone & Beyerdynamic | Mine faste testnumre
Sorensiim

Brugeravatar
 
Indlæg: 4908
Tilmeldt: 13. jun 2011, 14:42
Geografisk sted: Skanderborg

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Claus-DK » 11. dec 2011, 00:23

Hvor meget betyder lydkortet for det digitale signal ??
Jeg tror kun min linux maskine et af de der omtalte knap sĂĄ gode onboardkort, men jeg ved ikke om det betyder noget nĂĄr jeg henter lyden ud digitalt ??

Med andre ord kan jeg fĂĄ et bedre digitalt signal ud vad at skifte lydkort ??
Claus-DK

Brugeravatar
Administrator
 
Indlæg: 12680
Tilmeldt: 1. apr 2011, 12:57
Geografisk sted: Kliplev

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Claus-DK » 11. dec 2011, 00:24

Super guide for øvrigt, som jeg helt sikkert vil prøve at udføre..
Claus-DK

Brugeravatar
Administrator
 
Indlæg: 12680
Tilmeldt: 1. apr 2011, 12:57
Geografisk sted: Kliplev

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Sorensiim » 11. dec 2011, 00:36

Claus-DK skrev:Hvor meget betyder lydkortet for det digitale signal ??
Jeg tror kun min linux maskine et af de der omtalte knap sĂĄ gode onboardkort, men jeg ved ikke om det betyder noget nĂĄr jeg henter lyden ud digitalt ??

Med andre ord kan jeg fĂĄ et bedre digitalt signal ud vad at skifte lydkort ??


Her kan jeg med største sikkerhed svare "Måske". :grin:

Mit Xonar DS har et ringere signal/støj forhold (SNR) end topmodellen Xonar Essense ST - 107dB vs. 124dB, til gengæld koster det 366 kroner hvor topmodellen koster 1209 kroner. Asus henviser selv til at typiske onboard-lydkort har en SNR på 85dB. Kort sagt: Mindre støj på bedre lydkort. Mit onboard lydkort (også Asus...) lod lidt tilbage at ønske, så jeg ofrede de 366 kroner, noget jeg ikke har fortrudt.


Claus-DK skrev:Super guide for øvrigt, som jeg helt sikkert vil prøve at udføre..

Mange tak - den virker ogsĂĄ fint til USB lyd ;)
The best things in life are free. The second best are very, very expensive.
All the gear but no idea | Komfort-mod til Ultrasone & Beyerdynamic | Mine faste testnumre
Sorensiim

Brugeravatar
 
Indlæg: 4908
Tilmeldt: 13. jun 2011, 14:42
Geografisk sted: Skanderborg

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Anda » 11. dec 2011, 02:02

Rigtig fin guide. Jeg bruger samme metode i Music Player Daemon, men rart nok lige at få det bekræftet :-)

En anden metode til at liste lydkort er med kommandoen aplay -l
Kode: Vælg alt
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: AD198x Analog [AD198x Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: AD198x Digital [AD198x Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCM2702 [Burr-Brown Japan PCM2702], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
$

Eksemplet ovenfor viser at hw:0,0 er analog udgang pĂĄ min Lenovo, hw:0,1 er digital udgang pĂĄ min Lenovo dock og hw:1,0 er min USB-DAC.
HiFiMAN HE-6 | Yamaha M-4 | Palmer Monicon | Audio-GD SA-1.32 | Gustard U10
Grejliste
Anda

Brugeravatar
 
Indlæg: 2239
Tilmeldt: 15. nov 2011, 00:46
Geografisk sted: København V

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Sorensiim » 12. dec 2011, 09:37

Anda skrev:Rigtig fin guide. Jeg bruger samme metode i Music Player Daemon, men rart nok lige at få det bekræftet :-)

En anden metode til at liste lydkort er med kommandoen aplay -l
Kode: Vælg alt
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: AD198x Analog [AD198x Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: AD198x Digital [AD198x Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCM2702 [Burr-Brown Japan PCM2702], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
$

Eksemplet ovenfor viser at hw:0,0 er analog udgang pĂĄ min Lenovo, hw:0,1 er digital udgang pĂĄ min Lenovo dock og hw:1,0 er min USB-DAC.


Perfekt kommando til at få et hurtigt overblik! Jeg tror dog jeg lader Alsamixer forblive i guiden i tilfælde af at man lige skal have slået S/PDIF til
The best things in life are free. The second best are very, very expensive.
All the gear but no idea | Komfort-mod til Ultrasone & Beyerdynamic | Mine faste testnumre
Sorensiim

Brugeravatar
 
Indlæg: 4908
Tilmeldt: 13. jun 2011, 14:42
Geografisk sted: Skanderborg

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Claus-DK » 12. dec 2011, 10:35

Det er også langt nemmere for almindelige dødelige at forstå det grafiske look, det der kodeværk ville få mig til at stå af..

Så lad endelig første post være intakt
Claus-DK

Brugeravatar
Administrator
 
Indlæg: 12680
Tilmeldt: 1. apr 2011, 12:57
Geografisk sted: Kliplev

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Anda » 12. dec 2011, 13:20

Det var nu ogsĂĄ ment som supplement til alsamixer, hvis man alligevel lige har gang i et par terminaler :-)
HiFiMAN HE-6 | Yamaha M-4 | Palmer Monicon | Audio-GD SA-1.32 | Gustard U10
Grejliste
Anda

Brugeravatar
 
Indlæg: 2239
Tilmeldt: 15. nov 2011, 00:46
Geografisk sted: København V

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Sorensiim » 12. dec 2011, 13:24

Anda skrev:Det var nu ogsĂĄ ment som supplement til alsamixer, hvis man alligevel lige har gang i et par terminaler :-)


Er jeg den eneste der mapper windowstast + T til at åbne en ny terminal? Dammit jeg savner en brugbar terminal i Windows... Powershell nærmer sig, men det er jo ikke samme grundlæggende integration som i Linux.
The best things in life are free. The second best are very, very expensive.
All the gear but no idea | Komfort-mod til Ultrasone & Beyerdynamic | Mine faste testnumre
Sorensiim

Brugeravatar
 
Indlæg: 4908
Tilmeldt: 13. jun 2011, 14:42
Geografisk sted: Skanderborg

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Anda » 12. dec 2011, 13:28

Samme kombination her ;-)
Og en maksimeret terminal ved siden af med Windows+Y :-)
HiFiMAN HE-6 | Yamaha M-4 | Palmer Monicon | Audio-GD SA-1.32 | Gustard U10
Grejliste
Anda

Brugeravatar
 
Indlæg: 2239
Tilmeldt: 15. nov 2011, 00:46
Geografisk sted: København V

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Sorensiim » 12. dec 2011, 13:35

Anda skrev:Samme kombination her ;-)
Og en maksimeret terminal ved siden af med Windows+Y :-)

Uhh! Good one! Jeg vil lave mig et shellscript der åbner en terminal der fylder omtrent 25% af min skærm, sætter den til Always On Top og planter den i nederste højre hjørne. Den kunne få Win+R.

Og nu hvor MS endelig kopierede genvejen til at oprette en ny mappe fra Gnome (Ctrl + shift + N) i Windows 7, hvornĂĄr fĂĄr vi sĂĄ Always On Top? I en periode var min forumsignatur rundt om pĂĄ nettet "I work in a Windows environment, that's why they have to pay me."
The best things in life are free. The second best are very, very expensive.
All the gear but no idea | Komfort-mod til Ultrasone & Beyerdynamic | Mine faste testnumre
Sorensiim

Brugeravatar
 
Indlæg: 4908
Tilmeldt: 13. jun 2011, 14:42
Geografisk sted: Skanderborg

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Ostebaronen » 12. dec 2011, 18:53

Har du prøvet at sammenligne lyden mellem ALSA og OSS4?

OSS4 er meget populært bland folk der optager ting o.lign. på deres computer da latency er markant lavere end i ALSA. Desuden er OSS4 også meget nemmere at udvikle til da det har et API der er meget nemmere at gå til. OSS4 tillader også flere lydstrømme på samme tid uden at skulle bruge noget ala Pulseaudio eller lign.

Dog skal det lige siges at OSS4 ikke er supporteret i Ubuntu, men hvor der er vilje er der vej ;)
Mmm... Ost...
Ostebaronen

Brugeravatar
Code Poet
 
Indlæg: 2481
Tilmeldt: 17. maj 2011, 10:00
Geografisk sted: Søllerød

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Sorensiim » 12. dec 2011, 19:10

Ostebaronen skrev:Har du prøvet at sammenligne lyden mellem ALSA og OSS4?

OSS4 er meget populært bland folk der optager ting o.lign. på deres computer da latency er markant lavere end i ALSA. Desuden er OSS4 også meget nemmere at udvikle til da det har et API der er meget nemmere at gå til. OSS4 tillader også flere lydstrømme på samme tid uden at skulle bruge noget ala Pulseaudio eller lign.

Dog skal det lige siges at OSS4 ikke er supporteret i Ubuntu, men hvor der er vilje er der vej ;)


Hvis jeg i én sætning skulle beskrive hvorfor jeg foretrækker Linux på min computer og Android på min smartphone, så blev det denne:

Friheden til at vælge.

Om ikke andet kan man jo altid kaste Richard Stallman argumentet efter folk: Du har adgang til kildekoden - Lav det selv! :grin:

...nej jeg har ikke prøvet OSS. Endnu.
The best things in life are free. The second best are very, very expensive.
All the gear but no idea | Komfort-mod til Ultrasone & Beyerdynamic | Mine faste testnumre
Sorensiim

Brugeravatar
 
Indlæg: 4908
Tilmeldt: 13. jun 2011, 14:42
Geografisk sted: Skanderborg

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Claus-DK » 13. dec 2011, 01:58

hvorfor snakker i russisk ?? 7musik 7musik
Claus-DK

Brugeravatar
Administrator
 
Indlæg: 12680
Tilmeldt: 1. apr 2011, 12:57
Geografisk sted: Kliplev

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Kvaksalver » 1. feb 2012, 15:02

Søren, så vidt jeg ved, er Toslink-standarden begrænset til 96KHz, men det ser jo ikke umiddelbart sådan ud på dit fine lille klip. Er det noget du har en forklaring på?
Kvaksalver

Brugeravatar
 
Indlæg: 453
Tilmeldt: 4. jan 2012, 16:28
Geografisk sted: 8000C

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Sorensiim » 1. feb 2012, 15:37

Kvaksalver skrev:Søren, så vidt jeg ved, er Toslink-standarden begrænset til 96KHz, men det ser jo ikke umiddelbart sådan ud på dit fine lille klip. Er det noget du har en forklaring på?

Jada - Toslink er bestemt ikke begrænset.

32/384 kan du også via Toslink hvis det skal være ;-)
The best things in life are free. The second best are very, very expensive.
All the gear but no idea | Komfort-mod til Ultrasone & Beyerdynamic | Mine faste testnumre
Sorensiim

Brugeravatar
 
Indlæg: 4908
Tilmeldt: 13. jun 2011, 14:42
Geografisk sted: Skanderborg

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf nc8000 » 1. feb 2012, 15:55

Jeg mente at optiske forbindelser normalt var begrænset til 24/96
nc8000

 

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf Sorensiim » 1. feb 2012, 16:23

nc8000 skrev:Jeg mente at optiske forbindelser normalt var begrænset til 24/96


Det er de bestemt ikke :-)
The best things in life are free. The second best are very, very expensive.
All the gear but no idea | Komfort-mod til Ultrasone & Beyerdynamic | Mine faste testnumre
Sorensiim

Brugeravatar
 
Indlæg: 4908
Tilmeldt: 13. jun 2011, 14:42
Geografisk sted: Skanderborg

Re: Bit-perfect lyd i Linux (Ubuntu)

Indlægaf abefar » 4. jun 2012, 14:31

Hvis man er mere til foobar2000-stilen, kan DeaDBeeF også afspille bit-perfect uden de større problemer. Af uvisse årsager ligger pakken ikke i Ubuntus repository, men kan installeres fra denne PPA med følgende kommandoer:
Kode: Vælg alt
sudo apt-add-repository ppa:alexey-smirnov/deadbeef
sudo apt-get update
sudo apt-get install deadbeef


Gå ind i Rediger -> Indstillinger og sæt uddatamodulet til ALSA, og vælg dit lydkorts digitale udgang som enhed. I de nyere versioner af Ubuntu får man muligheden for at vælge "Direct hardware device without any conversions" for hver udgang, mens udgangene kun optræder en enkelt gang på listen i de fleste andre distributioner (så vidt jeg forstår fungerer de dog på samme måde). På min maskine med Arch Linux ser det således ud:
Billede

Gå herefter ind i fanen Udvidelsesmoduler, vælg "ALSA output plugin" og tryk Konfigurer:
Billede

Her skal "Use ALSA resampling" slĂĄs fra, og "Release device while stopped" er ligeledes en meget rar feature:
Billede

HĂĄber at det kan bruges. :-)
Venlig hilsen Abefar

Min lyttestation: ODAC / NAD M51 / Rega RP8 -> Objective2 / Nobsound NS-08E -> Ultrasone Pro 900 / Beyer DT990 600Ω / Senn HD650
abefar

Brugeravatar
 
Indlæg: 13
Tilmeldt: 27. maj 2012, 03:41
Geografisk sted: Hørsholm


Tilbage til Computerlyd og software til det.

Hvem er online

Brugere der læser dette forum: Ingen tilmeldte og 1 gæst

cron