Linux Audio


© September 2020, Letzte Änd. 19.12.24

--- Diese Seite befindet sich noch im Aufbau ---

Übersicht

ALSA

Bei Debian 10 ist ALSA - Advanced Linux Sound Architecture
der Software-Treiber zur direkten Ansteuerung der Audio-Hardware.

Jede Sound-Hardware oder ALSA-Card besteht wiederum aus
Ein- und Ausgabe-Geräten (send device, receive device).
z.B.   card 2: J65 Subdevice #0: subdevice #0

Für ALSA ist weder der Vorgänger OSS - Open Sound System,
noch PulseAudio nötig.
Dennoch, wenn es die Hardware zuläßt, wird mittlerweile ALSA
kaum noch 'standalone' betrieben.

Der Grund liegt darin begründet, daß nur eine Anwendung
gleichzeitig auf ein Ein- oder Ausgabegerät zugreifen kann.
Soundquelle   →   ALSA-Treiber  card 0, device 0   →   Hardware
Soundsenke   ←   ALSA-Treiber  card 0, device 1   ←   Hardware

Falls ALSA fehlen sollte, ist es schnell nachinstalliert.

sudo apt install alsa-base        Konfigurations-Dateien

sudo apt install alsa-utils       folgende Tools:  alsactl alsaloop iecset
                                 alsamixer alsaaucm amixer amidi aplay  
                                aplaymidi aconnect asqnet aseqdump speaker-test

Zum Anfang

ALSA-Pakete

Anbei noch eine kleine Liste an ALSA-Paketen und deren Bedeutung.

Falls Stille herrscht, kann es daran liegen,
daß die Audiodaten an die falsche Hardware geschickt werden
oder die Hardware nicht erkannt wird.
Was erkannt wird, bekomme ich wie folgt heraus.

cat /proc/asound/cards
 0 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                      HDA ATI HDMI at 0xfe840000 irq 84
 1 [Generic        ]: HDA-Intel - HD-Audio Generic
                      HD-Audio Generic at 0xfe700000 irq 86
 2 [J65            ]: USB-Audio - Jabra Evolve 65
                      Jabra Evolve 65 at usb-0000:03:00.0-10.3.6, full speed
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC1220 Analog [ALC1220 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC1220 Digital [ALC1220 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: J65 [Jabra Evolve 65], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

0 & 1   stammen vom Motherboard
2     wurden über USB gefunden.

Wurde eine bestimmte Hardware nicht erkannt,
fehlt noch der passende Treiber bzw. das Kernelmodul.

Zum Anfang

ALSA-Treiber

Eine Sound-Karte kann über verschiedenen Schnittstellen angeschlossen sein.
Sollte es eine PCI-Karte sein, bekomme ich wie folgt weitere Details.

lspci | grep -i audio 
26:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Caicos HDMI Audio…
28:00.3 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h (Models…

lspci -nnk | grep -iA2 audio           liefert noch mehr Informationen

Sollte es eine USB-Karte sein, muß ich damit rechnen,
nicht sofort brauchbare Details zu bekommen.

lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 04a9:190a Canon, Inc. CanoScan LiDE 210
Bus 001 Device 002: ID 8087:0aa7 Intel Corp. 
Bus 001 Device 106: ID 0b0e:030b GN Netcom 
Bus 001 Device 099: ID 04d9:a052 Holtek Semiconductor, Inc. USB-zyTemp
Bus 001 Device 097: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 096: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub
Bus 001 Device 095: ID 046d:c050 Logitech, Inc. RX 250 Optical Mouse
Bus 001 Device 094: ID 046a:0011 Cherry GmbH G83 (RS 6000) Keyboard
Bus 001 Device 093: ID 214b:7250  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb -vs 106
…
bInterfaceClass         1 Audio
wTerminalType      0x0301 Speaker
wTerminalType      0x0201 Microphone

Nun kann man gezielt mit alsamixer die Soundcard selektieren.
Gebe ich alsamixer ohne weitere Paramter ein,
habe ich eine art Dialog-geführtes System.
Weitere Informationen, wie die oben genannten,
kann ich mir mit z.B. F2 aufrufen.
Via F6 kann ich die gewünschte Sound Card auswählen.
Komme ich nicht weiter, gibt mir h eine Übersicht der interaktiven Befehle.

Witchtig Sollte PulseAudio bereits laufen, (wie hier im Bild),
macht es keinen Sinn hier etwas zu verstellen.

┌────────────────────────────── AlsaMixer v1.1.8 ──────────────────────────────┐
│ Card: PulseAudio                                     F1:  Help               │
│ Chip: PulseAudio                                     F2:  System information │
│ View: F3:[Playback] F4: Capture  F5: All             F6:  Select sound card  │
│ Item: Master                                         Esc: Exit               │
│                                                                              │
│                                     ┌──┐                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │  │                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     │▒▒│                                     │
│                                     ├──┤                                     │
│                                     │OO│                                     │
│                                     └──┘                                     │
│                                    60<>60                                    │
│                                  < Master >                                  │
└──────────────────────────────────────────────────────────────────────────────┘

Weis ich was ich will, kann ich auch via Paramter direkt mein Ziel angeben. z.B.

alsamixer -c 2                         hier für das Headset

Sollte man z.B. das Headset eingestellt haben, aber Pulseaudio ist aktiv,
dann hilft nur noch alsamixer direkt aufzurufen und
via F6 die (default) Soundcard = Pulseaudio auszuwählen.

Habe ich nur ALSA im Betrieb, muß ich mich meist entscheiden, welche Quelle ich hören möchte,
da immer nur eine Anwendung ein Gerät oder device verwenden darf.

Zum Anfang

Soundserver

Spätesten wenn mehrerer Tonquellen vermischt werden sollen, ist ein Soundserver nötig. Z.B. PulseAudio
Soundserver übernehmen also das Zusammenmischen und die Weitergabe an den ALSA-Treiber.

FIR mit Amp
sudo systemctl status pulseaudio

debianforum.de   Audiokonfiguration
ubuntuusers.de   Soundsystem

Zum Anfang

Soundkarte konfigurieren

Evtl. beötigte Software: (bei deb 7 xfce schon drauf)

apt-get install gstreamer-tools pulseaudio

Open-Source-Projekt Advanced Linux Sound Architecture ALSA Darauf setzt der Sound-Server PulseAudio auf.

Grundsätzlich gibt es 3 Arten von Distributionen

  1. Benutzer müssen Mitglied der Gruppe „audio“ sein
    z.B. crw-rw--- 1 root audio
  2. über ConsoleKit und udev/HAL wird ohne „audio“ Mitgliedschaft der aktive Benutzer ausgegeben
    z.B. crw-rw---+ 1 root audio
  3. Distribution ohne „audio“ Gruppe
    z.B. crw-rw---+ 1 root
ls -l /dev/snd
…
crw-rw----+ 1 root audio 116,  7 Jan 24 21:03 controlC0	→ 2.Fall
groups a3
a3 : a vboxusers           alles ok (nicht 1. Fall)
groups m
m : m cdrom floppy audio dip video plugdev scanner bluetooth netdev     DEB 7
m : m cdrom floppy audio dip video plugdev netdev lpadmin scanner a b   DEB 8
usermod -aG audio a        falls a der Gruppe audio hinzugefügt werden sollte 1.Fall
deluser m audio            m der Gruppe audio entziehen   2.Fall
cat /proc/asound/modules
 0 snd_hda_intel
 1 snd_hda_intel
 2 snd_usb_audio

weitere Details über den PCI-Bus angeschlossen liefert:

grep Codec /proc/asound/card*/codec*
/proc/asound/card0/codec#0:Codec: ATI R6xx HDMI
/proc/asound/card1/codec#0:Codec: Realtek ALC892

Wiedergabe-Test Eine andere Möglichkeit wäre folgendermaßen

aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
No protocol specified
xcb_connection_has_error() returned true
Karte 0: Generic [HD-Audio Generic], Gerät 3: HDMI 0 [HDMI 0]	Sub-Geräte: 0/1
…
Karte 1: Device [Generic USB Audio Device], Gerät 0: USB Audio [USB Audio]
Karte 2: Generic_1 [HD-Audio Generic], Gerät 0: ALC892 Analog [ALC892 Analog]
Karte 2: Generic_1 [HD-Audio Generic], Gerät 1: ALC892 Digital [ALC892 Digital]

oder andere Fehlermeldung mit DEB 8

aplay -l
aplay: device_list:268: keine Soundkarten gefunden ...

Welche Pakete sind installiert, welche mit audio im Zusammenhang stehen könnten?

dpkg -l | grep -i audio
dpkg -l | grep -i sound
dpkg -l *alsa*
cd /usr/share/doc/alsa-base/

weitere Überprüfung

pulseaudio --check && echo ok
ok

journalctl -p7 _EXE=/usr/bin/pulseaudio
-- Logs begin at Di 2015-11-10 20:12:52 CET, end at Di 2015-11-10 20:37:49 CET. --

Kernelmeldung?

dmesg | grep snd

Module geladen?

lsmod | grep snd

Funktioniert mit externer USB-Soundcard

speaker-test

Auf Verdacht installiert

apt-get install gstreamer0.10-pulseaudio

Aufruf über

alsamixer

m schaltet stumm weg

deb 10
pulseaudio-utils -> paplay pacat parec pacmd pactl padsp pax11publish
alsa-utils -> alsactl alsaloop alsamixer alsaaucm amixer amidi aplay ... speaker-test

wordpress.com  

Treiber Download von www.realtek.com unter Downloads/High Definition Audio Codecs
→ Linux Treiber (3.0) Version 5.18rc8 vom 21. Mai 2014 0001-LinuxPkg_5.18rc8.tar.bz2
alternativ von www.alsa-project.org

cd Downloads/
tar -xjf 0001-LinuxPkg_5.18rc8.tar.bz2
cd Rt-Linux-Hdaudio-5.18/
nano Readme.txt

Sourcecode Entpacken, Kompilieren und Re-Boot

tar -xvjf alsa-driver-RTv5.18.tar.bz2
cd alsa-driver-RTv5.18/
cd alsa/
./configure --with-cards=hda-intel

Fehlermeldung: Please install the package with full kernel sources for your distribution
→ Version bestimmen; nachladen; entpacken
Unter Umständen fehlen noch weitere Komponenten z.B. gcc

uname -r 
3.16.0-4-amd64						DEB 8 Jessie seit 2015
4.9.0-11-amd64						Deb 9 Strech seit 2017
su
apt-get install linux-source-3.16			unter Umständen SW-Quellen änd.
								Siehe Seite 9
tar jxf /usr/src/linux-source-3.2.tar.bz2		ging bei DEB 7
tar xvfJ linux-source-3.16.tar.xz			DEB 8
apt-get install linux-headers-$(uname -r)
apt-get install gcc

Danach sollte es weiter gehen können.

./configure --with-cards=hda-intel
make
su make install
shutdown -r 0

pactl list modules                   deb 10

Zu guterletzt kann man den Audio-Ausgang testen.
Dies erfolgt mit linker Maustaste auf das Lautsprechersymbol (Xfce – Lautstärkenregelung eingeblendet).
Dort kann man dann die entsprechende Sound-Card auswählen (z.B. Internes Audio Analog Stereo)

Zum Anfang

Bluetooth

Unter Deb 12 ist PulseAudio der Standard Soundserver.
Dafür ist der entsprechende Bluetooth Treiber zu installieren.
Damit es leichter geht, ist für xfce noch ein Tool zum Verbinden zu installieren.

su
apt install bluetooth blueman
/usr/sbin/service bluetooth restart

Im folgenden finde ich dann unter  Anwendungen>Einstellungen>Bluetooth-Manager  eine Verwaltung.
Hier ist zunächst zu prüfen ob und welcher Bluetooth-Adapter der richtige ist.
Zur besseren Unterscheidung habe ich sie mir umbenannt.

select bt-device

Nachdem ich den gewünschten Adapter ausgesucht habe,
suche nach den zu verbindenen Gerät und koppel es,
indem ich erst Suchen anklicke, das gefundene selektiere und das Schlüsselsymbol anklicke.

connect headset

Leider kann ich dann immer noch nichts hören, da das Bluetooth-Gerät
als Lautsprecher oder Mikrophone noch eingestellt werden muss.
Dem Tonmischer pavucontrol ist das Ausgabegrät Bluetooth zunächst unbekannt.

connect headset bluez-alsa-utils

Zum Anfang

CD rippen

Um eine CD zu rippen, sprich auszulesen um sie auf dem PC zu speichern,
habe ich die Möglichkeit das über das CLI - command line interface zu machen
oder über eine GUI - graphical user interface. Beides hat Vor- und Nachteile, warum ich beides beschreibe.

Unveränderte .wav Dateien abzuspeichern, macht meiner Meinung nach keinen Sinn,
da dann das Tagging - Benamung mit Titel, Cover, etc. fehlt.
Bei den Alternative ist noch eine Komprimierung möglich.
.FLAC benötigt nur ca. 50% bei verlustloser Komprimierung.
.mp3 mit mind.192Kbit/s liegt bei ca. 10% Platzbedarf im Gegensatz zu .wav.

Um Fehler möglichst nicht hörbar zu machen, interpolieren viele CD-Spieler.
Um das Problem der Interpolation erkennbar zu machen oder zu minimieren,
kann eine CD mehrmals gelesen werden und die Ergebnisse miteinander verglichen werden.
Daher empfiehlt sich z.B. cdparanoia.
Zur Konvertierung installiere ich noch flac und lame.

su
apt-get install cdparanoia flac lame
exit

Zunächst kann ich mir einen Überblick verschaffen.

cdparanoia -vsQ
Checking /dev/sg0 for cdrom...
CDROM model sensed sensed: ASUS DRW-24B5ST 1.00
Table of contents (audio tracks only):
...

Nun kann man sich noch weitere Details des Laufwerks mit
-A   holen, wie Caching, Zeitverhalten, Leseverhalten, etc.

cdparanoia -A
=================== Checking drive cache/timing behavior ===================
Seek/read timing:
        [52:56.37]:   31ms seek, 0.96ms/sec read [13.9x]
        Drive does not cache nonlinear access

Und nun wird es konkret mit einen ganzen Album.
-B   ist nötig, um einzelne Dateien zu erhalten.

mkdir Mahler
cd Mahler
cdparanoia -B
ls
track01.cdda.wav  track02.cdda.wav ...

Die Konvertierung erfolgt separat.
Bei flac ist die folgende Zahl der Komprimierungsgrad 0&hellp;8
Für lame definiert -b eine feste MPEG-1 Bitrate

flac -5 *.wav
ls
track01.cdda.flac  track01.cdda.wav ...

for t in track*.wav; do lame -b 256 $t; done
Encoding track01.cdda.wav to track01.cdda.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III (5.5x) 256 kbps qval=3

ls
track01.cdda.flac  track01.cdda.wav   track02.cdda.mp3 ...

Einfacher geht es allerdings mit einem graphischen Tool z.B. Asunder

su
apt install lame lame-doc
apt install flac
apt install libopus0    → ist schon die neueste Version
apt install opus-tools
apt install asunder     → cdparanoia vorbis-tools wavpack

Asunder aufgerufen, muß erst einmal konfiguriert werden.
Also Ziel-Ordner einstellen und evtl. am Ende CD auswerfen.

Asunder konfig

Evtl. ist die Benamung des Albums, der einzelnen Titel anzupassen

Asunder konfig

Bei MP3 wähle ich mindestens 128kbps.
Zusätzlich erstelle ich mir noch eine verlustlose Kopie .flac

Asunder konfig

Bei der Datenbank, wo die Albennamen abgerufen werden, ist meist nichst zu ändern.

Asunder ripp

Und dann legt das Programm Asunder auch schon los.

Asunder ripping Zum Anfang

Musik taggen

Leider enthalten die Musikdatenbanken nicht jeden Titel.
Sollte man so etwas haben oder man möchte einfach nur den nicht nötigen Müll entfernen,
ist ein entsprechendes Programm zum editieren nötig.

su
apt-get install easytag puddletag

Puddletag

Gewünschte Titel auswählen und über Windows/Tag Sources Amazon oder MusicBrainz auswählen.
Evtl. über Edit Preferences/Tags auf das ältere ID3v2.3 stellen,
welches von mehr Windows Programmen unterstützt wird.

Zum Anfang

Musik abspielen

Zum Abspielen von Musik gibt es etliche Programme.
Daher habe ich eine kleine Übersicht gemacht mit den Vor- und Nachteilen.

Audacious leichtgewichtig, übersichtlich, keine Musikbibliothek, spielt mp3, flac Liste direkt beim drauf schieben
Clementine gute Performance, kein GTK
XNoise leichtgewichtig, unterstützt Video, spartanisches Interface (keinDEB)
Deadbeaf schnell, platzsparend, keine Bibliothek (kein DEB)
Aqualung ermöglicht flac mp3 Dateien in Liste zum Abspielen zu schieben
LXMusic war dabei... (Player von LXDE)

Zum Anfang

Quellen

linuxlinks.com   Best Free and Open Source Software – Audio
linuxhint.com   Noob’s Guide to Linux Audio: ALSA, OSS, and Pulse Audio Explained
freedesktop.org   PulseAudio - Documentation
freedesktop.org   PulseAudio - PulseAudio Modules
maczarr.de   Multiroom-Sound: Chromecast-Audio unter Linux nutzen
debianforum.de   Audiokonfiguration
raspberrypi.com   The best Raspberry Pi media players - 2019
runeaudio.com   Clients
instructables.com   Raspberry Pi As Hi-Fi Player With RuneAudio
moodeaudio.org   moOde™ audio player
technikbrennpunkt.de   Media Streaming Player mit dem Raspberry Pi selbst bauen
volumio.com   BUILD YOUR OWN
  Transform your Raspberry Pi, or PC with Volumio's innovative software.
somedudesays.com   Bluetooth on Debian or Ubuntu
https://wiki.ubuntuusers.de/Musik_verwalten/
http://www.tedfelix.com/linux/linux-midi.html
https://debianforum.de/forum/viewtopic.php?t=180146
https://installati.one/install-bluetooth-debian-12/

Zum Anfang