Audio: Unterschied zwischen den Versionen

Aus CodicaTipps
Zur Navigation springen Zur Suche springen
Zeile 435: Zeile 435:
  
 
==== mit ffmpeg ====
 
==== mit ffmpeg ====
Es geht wohl auch mit [https://ffmpeg.org/ffmpeg-filters.html#silenceremove ffmpeg]. Siehe das Beispiel in  
+
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

Verstärker

DigitalRadio

HeimKinoAnlagen

5.1-Verstärker und Lautsprecher


5.1-Receiver

5.1-Lautsprecher

  • Canton Movie 85-CX weiss Highgloss
    • 165 mm Subwoofer


  • Magnat Interior 501 A
    • hat 170mm-Subwoofer-Bass
    • 180 €



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

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
  • daapd (nicht mehr in Debian-Paketen)
  • mt-daapd
  • forked-daapd
DAAP-Clients
AirPlay

Für Linux gibt es als AirPlay-Client

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

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

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

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

MIDI unter Linux

http://tedfelix.com/linux/linux-midi.html

Weiterführendes

Siehe auch