Audio: Unterschied zwischen den Versionen
Codica (Diskussion | Beiträge) |
Codica (Diskussion | Beiträge) |
||
Zeile 435: | Zeile 435: | ||
==== mit ffmpeg ==== | ==== mit ffmpeg ==== | ||
− | Es geht | + | Es geht auch mit [https://ffmpeg.org/ffmpeg-filters.html#silenceremove ffmpeg]. Siehe das Beispiel in |
https://forum.manjaro.org/t/trim-silence-in-audio-files-by-directory/18988 . Der dazu benötigte Filter ist [https://ffmpeg.org/ffmpeg-filters.html#silenceremove silenceremove]. | https://forum.manjaro.org/t/trim-silence-in-audio-files-by-directory/18988 . Der dazu benötigte Filter ist [https://ffmpeg.org/ffmpeg-filters.html#silenceremove silenceremove]. | ||
+ | |||
+ | Beispiel, um aus einer WAV-Datei eine MP3-Datei zu machen, in der die Stille am Anfang und Ende nicht enthalten ist: | ||
+ | ffmpeg -i tmp/aufnahme.wav -af silenceremove=start_periods=1:stop_periods=1:detection=peak "tmp/OUTPUT.mp3" | ||
Siehe auch | Siehe auch |
Version vom 22. Mai 2022, 07:08 Uhr
Audio-Hardware
Hifi-Tests
Bezugsquellen
- Hifi-Regler Online-Shop mit eigenen Infos.
Verstärker
- Vollverstärker Denon PMA-500AE 230 €
- Vollverstärker Pioneer A-307R 260 €
- Vollverstärker Yamaha AX-397 290 €
- Verstärker NAD C315 BEE 350 €
- Digitaler Vollverstärker Onkyo A 9355 360 €
DigitalRadio
- TechniSat DIGITRADIO 580
HeimKinoAnlagen
5.1-Verstärker und Lautsprecher
- Yamaha YHT-394
- 5.1
- 400 €
- mit dem Yamaha Receiver RX-V 367
- Sony HT-IS 100
- 5.1
- RDS
5.1-Receiver
- dem Yamaha Receiver RX-V 367
- 180 €
- Yamaha Receiver RX-V 467
- mit Dolby True HD, Dolby Digital Plus
- Einmessung mit mitgel. Mikro
- 265 €
5.1-Lautsprecher
- Canton Movie 85-CX weiss Highgloss
- 165 mm Subwoofer
- harman/kardon HKTS 9
- 340 €
- Magnat Interior 501 A
- hat 170mm-Subwoofer-Bass
- 180 €
- Magnat Interior 5001 A
- hat 200mm-Subwoofer-Bass
- auch in weiß
- 230 €
Audioformate
Siehe Überblick zu verlustfreien Audioformaten
Daneben gibt es Formate zum Erfassen von Noten/Steuerungsbefehlen etc.:
Lieder herunterladen
Songs auch kaufen statt nur streamen kann man z.B. bei
- juke.com (u.a. von Saturn/Mediamarkt)
- musicload.de (von der Telekom)
Linux und Audio
Soundkarte
ALSA-SoundSystem
Der Benutzer, der auf die Soundkarte zugreifen will, muss zumindest beim ALSA-Soundsystem der Gruppe audio
angehören:
sudo adduser USER audio
Das Kommandozeilenprogramm
speaker-test
lässt die Funktion der Lautsprecher und der Soundkarte akustisch testen.
Mit
aplay -L
lassen sich die installierten (virtuellen) Soundkarten ausgeben.
Um alle Soundgeräte nacheinander zu testen, kann man Folgendes eingeben:
aplay -L | grep -e '^[^ ]' | xargs -n1 speaker-test -tw --nloops 1 -c2 -D
Falls die Soundkarte keinen Sound über HDMI abgibt, hilft evtl. ein Kernel-Parameter:
radeon.audio=1
Manchmal hilft die Initialisierung mit
sudo alsactl init
und ein anschließender Neustart.[1]
Die Konfiguration von ALSA erfolgt in der systemweiten Datei /etc/asound.conf
oder der benutzerspezifischen ~/.asoundrc
.
Wenn man eigene Geräte in diesen Dateien anlegen will, braucht man regelmäßig eine pcm- und eine ctl-Komponente. Erstere ist für den eigentlichen Audiostrom, letztere für die Kontrolle insbesondere der Lautstärke notwendig.[2]
Beispiel für asound.conf
Auf einem NUC6i3SYH, das als HTPC betrieben wird und auf dem dafür MPD und Kodi läuft, kann man - nach Deinstallation von Pulseaudio - mit folgender Konfiguration für ALSA in der /etc/asound.conf
auch gleichzeitig Ton von mpd und Kodi über HDMI ausgeben:
#Thx # https://superuser.com/questions/357278/how-to-configure-alsa # http://www.pro-linux.de/artikel/2/1462/alsa-konfigurieren.html # https://bbs.archlinux.de/viewtopic.php?id=21586&p=2 pcm.pch_hdmi { type hw card 0 device 3 } ctl.pch_hdmi { type hw card 0 device 3 } pcm.dmixer { type dmix ipc_key 1099 ipc_perm 0666 # important slave.pcm "pch_hdmi" slave { channels 2 # I am not sure, if this is required. } hint { show on description "My dmix on Nuckie" } } pcm.plugdmixer { type plug slave.pcm "dmixer" hint { show on description "nested plug and dmix on Nuckie" } } ctl.plugdmixer { type hw card 0 device 3 } pcm.!default { type plug slave.pcm "plugdmixer" hint { show on description "my default based on nested plug and dmix on Nuckie" } } ctl.!default ctl.plugmixer
Ich vermute, dass das eine plug
-Ebene zuviel ist, aber es funktioniert.
Pulseaudio
Pulseaudio ist ein SoundServer, der regelmäßig auf ALSA aufsetzt. Er wird nicht zwingend benötigt, wenn der in ALSA enthaltene Soundserver "dmix" ausreicht. Ein Soundserver dient v.a. dazu, dass auf einem Ausgabegerät gleichzeitig zwei Soundquellen abgespielt werden können.
Grundlegende Informationen über Pulseaudio liefert
pactl info
Die Ausgabemöglichkeiten (Sinks) liefert
pactl list sinks
Mit
pactl set-default-sink X
(wobei X für die Nummer des Sinks steht) kann die Standardausgabe geändert werden.
Das grafische System zur Einrichtung von PulseAudio nennt sich
pavucontrol
Außerdem kann man mit
paprefs
PulseAudio so einstellen, dass vom Netzwerk auf den Pulseaudio-Server zugegriffen werden kann. Um von einem lokalen MPD darauf zugreifen zu können, muss man angeblich[3] in der /etc/mpd.conf
den PulseAudio-Server nicht über localhost
, sondern über 127.0.0.1
ansprechen.
Wenn man keine Verbindung zu PulseAudio bekommt ("Verbindung verweigert"-Meldung bei pactl oder pavucontrol), hilft folgender Befehl zum Löschen alter Informationen:[4]
pax11publish -r
Möglicherweise hilft es auch, den User den Gruppen pulse
und pulse-access
hinzuzufügen:
sudo adduser USER pulse sudo adduser USER pulse-access
Pulseaudio findet ALSA-Geräte nicht
Wenn ALSA die Soundgeräte findet, Pulseaudio aber nicht, hilft eine Änderung von /etc/pulse/default.pa
:
load-module module-alsa-sink device=hw:0
Dabei muss "hw:0" durch das gewünschte ALSA-Gerät (mit aplay -L
anzuzeigen) ersetzt werden. Die Zeile kann auch wiederholt werden, um mehrere ALSA-Geräte in Pulseaudio aufzunehmen.
Pulseaudio nicht automatisch starten
Normalerweise wird pulseaudio automatisch gestartet, wenn ein Programm darauf zugreifen will. Das lässt sich vermeiden, indem in der Datei /etc/pulse/client.conf
der Wert autospawn
auf no
gesetzt wird.
Pulseaudio als Pulseaudio-Server im Heimnetz nutzen
Man sollte Avahi, PulseAudio einschließlich des Pakets pulseaudio-module-zeroconf installiert haben.
Bei normaler Verwendung muss die Datei /etc/pulse/default.pa
geändert werden (wenn nicht das GUI-Programm paprefs
genutzt wird). Folgende Zeilen sind hinzuzufügen:[5]
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16 auth-anonymous=1 load-module module-zeroconf-publish
Damit ist allerdings ein Sicherheitsrisiko verbunden, da alle Clients im Heimnetz ohne Authentifizierung darauf zugreifen können.
Bei Verwendung von PulseAudio als Systemdienst muss die Datei /etc/pulse/system.pa
gleichermaßen geändert werden.
Damit die Clients den Server finden, muss in deren /etc/pulse/default.pa
ergänzt werden:
load-module module-zeroconf-discover
Pulseaudio auf einem Rechner von verschiedenen Usern gemeinsam nutzen
Pulseaudio kann normalerweise nur von dem User genutzt werden, unter dessen Kennung der Pulseaudio-Server läuft. Ein Workaround ist das Aktivieren des Pulseaudio-Servers für das Netzwerk wie oben beschrieben. Man kann hier die erlaubten Zugriffe natürlich auf den eigenen Rechner (127.0.0.1) beschränken.
Damit die Clients auch über das Netzwerkprotokoll den Pulseaudio-Server ansprechen können, muss noch in der Datei /etc/pulse/client.conf
Folgendes eingefügt werden:
autospawn = yes default-server = 127.0.0.1
Eine wohl sicherere Alternative ist die Einrichtung von Unix-Sockets für PulseAudio.
Pulseaudio immer wach
Um zu verhindern, dass PulseAudio manche Sounds schlafen legt, hilft evtl. in /etc/pulse/default.pa
die Zeile
load-module module-suspend-on-idle
auszukommentieren (eine Raute # davor zu setzen).
Da Pulseaudio kein HDMI-Audio erzeugen kann, wenn kein HDMI-Video-Signal ausgegeben wird, muss der Bildschirm per Hand eingeschaltet werden, z.B. mit
DISPLAY=:0 xset dpms force on
Siehe auch
Ausgaben von Pulseaudio verschieben
Die Ausgabemöglichkeiten kann mittels
pactl list sinks
angezeigt werden.
Die derzeitigen Pulseaudio-Clients sieht man mittels
pactl list clients
Welche Clients welche Ausgabemöglichkeiten nutzen, zeigt
pactl list sink-inputs
oder kürzer
pactl list short sink-inputs
Einen Client kann man damit auf eine andere Ausgabemöglichkeit verschieben:
pactl move-sink-input $CLIENT_NR $SINK_NR_OR_NAME
Ausgaben in Datei mitschneiden
Möchte man die Audio-Ausgabe in einer WAV-/MP3-/OGG_Datei sichern, geht das mit Bordmitteln von Pulseaudio.
Zunächst mit
pacmd list-sink-inputs
den zutreffenden "Sink" ermitteln. (Nummer hinter "index:")
- WAV-Datei
parec --monitor-stream=$INDEX --file-format=wav aufnahme.wav
- OGG-Datei (Bitte Paket
vorbis-tools
installieren)
parec --monitor-stream=$INDEX | oggenc -b 192 -o aufnahme.ogg --raw -
Siehe
Siehe zu weiteren Mitschnittmöglichkeiten (z.B. krecord, gramofile)
Soundqualität
Mit einigen Einstellungen kann man die Soundqualität unter Linux erhöhen.
Auch scheint Dolby Atmos unter Linux zu funktionieren.
Pulseaudio-Infos
Siehe
Music Player
Stand-alone-Player
GUI-Player
- Amarok für KDE
- Banshee
- Rhythmbox
- VLC
- Mixxx - eine DJ-Software, mit der man u.a. taktgenaues Überblenden schafft.
Konsolen-Player
- mplayer
- vlc
Client-Server-Modell
MPD
Siehe MPD - den Music Player Daemon mit einer Vielzahl unterstützter Clients
DLNA
Siehe DLNA
DAAP
DAAP ist das von iTunes genutzte Protokoll.
DAAP-Server
DAAP-Clients
AirPlay
Für Linux gibt es als AirPlay-Client
- shareplay (AirPlay-Renderer),
- Totem Plugin.
Streaming-Anbieter
Spotify
Siehe Spotify
Audio-CDs
- Audio-CDs einlesen und konvertieren geht mit einem Ripper genannten Programm, z.B.
Podcasts
Das Herunterladen von Podcast lässt sich mit verschiedenen Podcatcher-Programmen verwirklichen.
Für die Kommandozeile bietet sich podget an.
Musiksammlung
CD rippen
- ripperX
- https://wiki.ubuntuusers.de/ripperX/
- Mir bekannte Tags für die Dateibenennung:[6]
- %# - Songnummer
- %s - Songtitel
- %a - Künstler
Musik taggen
graphische Tools zum Musik taggen
Die MusicBrainz-Datenbank ermöglicht das Analysieren von Musikdateien und deren Klassifikation. Das Tagging kann z.B. mittels des Tools "picard" durchgeführt werden. Aber auch AmaroK beherrscht das Updaten der Tags mittels MusicBrainz.
Taggen auf der Kommandozeile
Im Paket python-mutagen
ist das Tool mid3v2
enthalten. Dies kann z.B. benutzt werden, um einem MP3-File die notwendigen Meta-Informationen wie Künstler und Titel hinzuzufügen:
mid3v2 --artist 'Künstler' --album 'Album' --genre 'Genre' --song 'Liedtitel' music.mp3
Die möglichen Genres kann man sich mit
mid3v2 --list-genres
ausgeben lassen.
Dateistruktur anhand ID3-Tags
Die Musiksammlung lässt sich auf verschiedenste Arten organisieren. Auf der Kommandozeile hilft tagmp3
u.a. Z.B. beim Verschieben in eine Struktur Musikverzeichnis/Künstler/LiedNr-Liedtitel:
find "$importDir" -name "*.mp3" | ( while read musicFile; do if ! ((echo y; echo y;) | tagmp3 move "${destDir}/%A/%a/%t.mp3" "$musicFile"; ) then echo Error moving $musicFile to $destDir!!! exit 2; fi; done; )
Ein graphisches Werkzeug, unter Linux die Musiksammlung zu organisieren, ist easytag
.
Will man mit Java seine eigene Sammlung strukturieren hilft die JAudioTagger-API.
- Ein fertiges Produkt auf dieser Basis ist filerename.
Soundbearbeitung
Das Standard-Sound-Bearbeitungsprogramm ist Audacity.
Stille am Anfang und Ende abschneiden
Beim Rippen einer LP o.Ä. entsteht manchmal Stille am Anfang und Ende des Stücks, die auch automatisch entfernt werden kann.
Z.B. mit dem Plugin Trim Silence für Audacity. Es kann wohl auch für Batchbearbeitung genutzt werden.
mp3splt könnte ebenfalls helfen. Dazu braucht man aber eine CUE-Datei um die Schnittpunkte festzulegen.
Möglicherweise hilft auch mp3DirectCut.
mit ffmpeg
Es geht auch mit ffmpeg. Siehe das Beispiel in https://forum.manjaro.org/t/trim-silence-in-audio-files-by-directory/18988 . Der dazu benötigte Filter ist silenceremove.
Beispiel, um aus einer WAV-Datei eine MP3-Datei zu machen, in der die Stille am Anfang und Ende nicht enthalten ist:
ffmpeg -i tmp/aufnahme.wav -af silenceremove=start_periods=1:stop_periods=1:detection=peak "tmp/OUTPUT.mp3"
Siehe auch
- https://stackoverflow.com/questions/25697596/using-ffmpeg-with-silencedetect-to-remove-audio-silence
Komponieren
Mit NtEd kann man Partituren erstellen. Es stürzt aber ab und zu ab (Stand: 05/2020).
Auch mit MuseScore kann man Partituren erstellen und auch abspielen lassen.
Lilypond ist ein Werkzeug, um .ly-Textnotendateien in schönen Notensatz umzusetzen.
- Dafür gibt es den (Text-)Editor Frescobaldi.
- Denemo verwendet dagegen Lilypond nur im Hintergrund und lässt sich graphisch bedienen.
- Online kann man Lilypond auf http://lilybin.com/ editieren.
Siehe auch
- abc-Musiknotation
- https://wiki.linuxaudio.org/wiki/abcmiditutorial
- ABC-Javascript-Library abcjs
- Debian-Package abcmidi mit
abc2midi
- Debian-Package abcm2ps
- http://kurs.schacherl.info/ABC-Musiknotation/abc_syntax/abc_syntax.html
- https://wiki.ubuntuusers.de/Rosegarden/
MIDI
MIDI im Browser
Auch mit einigen Browsern kann man auf MIDI-Devices (oder deren Emulationen) zugreifen.
Siehe
- Tutorial zur Web MIDI API
- Debian-package timidity - erlaubt das Abspielen von MIDI-Dateien. Dazu sollte man einen Soundfont installieren.
Demos siehe
- Drum Machine - Open Source
- https://webaudiodemos.appspot.com/slides/webmidi.html#/
- https://www.audiotool.com/product/device/heisenberg/
- http://nicroto.github.io/viktor/
MIDI unter Linux
http://tedfelix.com/linux/linux-midi.html
Weiterführendes
Siehe auch
- ↑ Vgl. https://wiki.debian.org/ALSA
- ↑ Vgl. https://superuser.com/questions/357278/how-to-configure-alsa
- ↑ Siehe https://unix.stackexchange.com/questions/287678/pulseaudio-and-mpd
- ↑ Vgl. https://forum.ubuntuusers.de/topic/probleme-mit-pulseaudio-2/
- ↑ Vgl. https://www.raspberrypi.org/forums/viewtopic.php?t=11124
- ↑ Vgl. https://sourceforge.net/p/ripperx/bugs/41/