Audiotools
Sound, was ist das?
- periodische Luftdruckschwankungen empfinden wir als Ton
- Tonhöhe --> Frequenz
- Lautstärke --> Amplitude
- Hörbereich des menschlichen Ohres: zwischen 20Hz und 20kHz
- menschliche Sprache: 0,3 bis 3.4kHz
Digitalisierung
- einfachste Methode: Pulse Code Modulation (PCM)
- Abtastung (sampling) -> Quantisierung (quantization) -> Kodierung (code-word-generation)
- Abtastwerte werden unabhängig von anderen Abtastweren behandelt
- Abtastfrequenz => 2 * max. zu digitalisierende Frequenz (Nyquist-Shannon-Abtasttheorem)
Audio-Hardware
- Soundkarte(n) enthalten A/D-Wandler
- Geräteunterstützung durch Linux Sound System
Linux Sound Systeme
Treiberstack mit Gerätetreibern für Audiohardware:
- OSS (freie und proprietär Entwicklung)
- ALSA (ab Linuxkernel 2.6)
Soundkarte konfigurieren (RedHat-ähnliche Distributionen):
$ /usr/bin/system-config-soundcard
$ cat /etc/modprobe.conf
alias snd-card-0 snd-emu10k1
options snd-card-0 index=0
install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 && /usr/sbin/alsactl restore >/dev/null 2>&1 || :
remove snd-emu10k1 { /usr/sbin/alsactl store >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-emu10k1
- ALSA enthält Module und Bibliotheken um OSS zu emulieren
Infos/Troubleshooting:
$ cat /proc/asound/cards
0 [Audigy ]: Audigy - Sound Blaster Audigy
Sound Blaster Audigy (rev.3, serial:0x531102) at 0x9000, irq 11
Audiodevices (ALSA)
Gerätetreiber stellen Schnittstelle für Anwendungen bereit:
- als Devicefiles unter /dev/snd/
- typ. Aufbau: pcmCxDy
- x bezeichnet Soundkarte Nr.
- y bezeichnet Gerätenummer
OSS-Devices:
- /dev/dsp, /dev/audio, /dev/midi
Audioformate (Auswahl)
Bedingt durch Patente auf das MP3-Verfahren fehlt dessen Unterstützung in den meisten Linuxdistributionen.
Wiedergabe
xmms
- Multimedia-Player (vorrangig Audio)
- Funktionalität (fast) vollständig durch Plugins
- Eingabe-Plugins -> unterstütze Audioformate
- Ausgabe-Plugins -> unterstützte Soundsysteme, CD-Writer, usw.
- Plugins für Effekte, Fernsteuerung, Visualisierung
Beachte manuelle Auswahl des Ausgabeplugins anhand des verwendeten Soundsystems/Soundservers.
mplayer / gmplayer
- Multimedia-Player
- interessant für Medienanalyse:
$ mplayer -identify <infile>
...
ID_AUDIO_ID=0
Audio file file format detected.
ID_FILENAME=<infile>
ID_DEMUXER=audio
ID_AUDIO_FORMAT=85
ID_AUDIO_BITRATE=128000
ID_AUDIO_RATE=44100
ID_AUDIO_NCH=0
ID_LENGTH=286.00
- Codec-Auswahl erfolgt automatisch
- Codec für Wiedergabe manuell setzen mit der Option -ac <codec>
- verfügbare Codecs anzeigen:
- Wahl des Ausgabetreibers erfolgt automatisch (probieren)
- Festlegen des Ausgabetreibers mit der Option -ao <driver>
- verfügbare Ausgabetreiber anzeigen:
Grafische Oberfläche zum mplayer wird mit dem Kommando gmplayer aktiviert.
play, soxplay
- Shellscript
- Soundkonvertierung und Ausgabe mittels sox
$ sox <infile> -t ossdsp /dev/dsp
TiMidity?++
- Software-Synthesizer (MIDI-to-WAV Konverter)
- alternativ Ausgabe als wav, ogg -Format
- Anzeige von Songtexten (wenn vorhanden)
$ timidity -Os <infile.mid>
Mixer
- Einstellen von Lautstärke, Balance, Klang und Stummschalten der verfügbaren Audiokanäle
- Auswahl Eingangs- bzw. Aufnahmekanal
- zusätzlich Schalter für Soundkartenfeatures:
- 3D-Effekte, Digitalausgang, Mic Boost, ...
- integrierte Anwendungen in Desktopoberflächen (kmix, gnome-volume-control)
- text- / kommandozeilenbasierte Mixer: alsamixer, amixer
- Sichern, Wiederherstellen von Soundkarteneinstellunge: alsactl
Formatkonvertierung
Samplingrate, Auflösung, ...
- klassiche Anwendung
SoX (Sound eXchange)
- Detaillierte Ausgabe der Verarbeitungsschritte mit der Option -V
$ file <infile.wav>
infile.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 44100 Hz
$ sox <infile.wav> -r 8000 -b -c 1 <outfile_8000kHz_8bit_1channel.wav>
$ file <outfile_8000kHz_8bit_1channel.wav>
outfile_8000kHz_8bit_1channel.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 8 bit, mono 8000 Hz
Anzeigen der von SoX unterstützten Soundformate: sox -h (MP3-Support optional, erfordert libmad oder libmp3lame)
Soundeffekte mit SoX?
- diverse Filter, Echo, Hall
- Rückwärts
- Fade
- ...
Das Manual von
SoX? beschreibt die Effekte und mögliche Parameter.
man sox
verlustbehaftete Audioformate
- deutliche Reduzierung des Speicherplatzbedarfes / Übertragungsbandbreite bei geringem Qualitätstverlust
- MP3, OGG
$ lame --preset medium <infile.wav> <outfile.mp3>
- Variable vs. Konstante Bitraten
- Variable Bitraten (VBR) passen die Kodierung an die jeweiligen Anforderung des Inhalts an. -> konstante Qualität
- Konstante Bitraten -> variable Qualität
$ oggenc -q 4 <infile.wav> <outfile.ogg>
weitere Werkzeuge
- faac (AAC / MPEG4)
- ffmpeg
- mencoder
ID3-Tags
Metadaten wie Titel, Interpret, Album, usw. in Audiofiles (
mp3,
ogg).
- Anzeige wird von vielen Hardware- und Softwareplayer unterstützt
- Werkzeuge zum editieren: id3tag, xmms
$ id3info Kim_Norlen-Both_Hands.mp3
=== TPE1 (Lead performer(s)/Soloist(s)): Kim Norlen
=== TIT2 (Title/songname/content description): Both Hands
=== TYER (Year): 1998
=== TALB (Album/Movie/Show title): &&
=== TCON (Content type): Folk
=== COMM (Comments): ()[]: http://www.epitonic.com
=== TRCK (Track number/Position in set): 2
=== TDRC (): frame
=== COMM (Comments): (ID3v1 Comment)[XXX]: http://www.epitonic.com
*** mp3 info
MPEG1/layer III
Bitrate: 128KBps
Frequency: 44KHz
Digitale Audioextraktion
- Wiedergabe von CD-Audio in Systemen ohne analoge Verbindung zwischen CD-Laufwerk und Soundkarte.
- Encodieren von CD-Audio für die Nutzung auf MP3-Playern
- Problem: Sektoren einer CD-Audio nicht direkt adressierbar
- Werkzeuge zur digitalen Extraktion: cdparanoia
$ cdparanoia "1[:30.12]-1[1:10]" <outfile.wav>
- xmms als CD-Audio-Player mit digitaler Extraktion
- grip
- digitaler Audioextraktion
- Anbindung an CDDB
- Encoder: mp3, ogg
- cdrdao CD-R[W] disk-at-once Werkzeug
Soundserver
- erlauben konkurrierenden Zugriff auf Audiohardware
- Client/Server-Implementation für netzwerktransparente Verteilung
- zusätzlich Funktionen wie Synthesizer, Wellen- und Effektgeneratoren
- esd (Gnome)
- arts (KDE)
- JACK
Beachte die Auswahl des Audiotreibers in den Anwendungen.
Audio-Editoren
- unüberschaubare Anzahl von Werkzeugen zur Audiobearbeitung
- freier Mehrspur-Audio-Editor für verschiedene Systemplattformen
- Features:
- live Aufnahme, Digitalisieren von LP Und MC
- Import- / Exportformate: wav, aiff, ogg, mp3 (über optionalen MP3-Encoder)
- Editorfunktionen wie Copy & Paste, unbegrenztes Rückgängig machen
- Effekte, Plugins
Streaming Audio
Anwendungsgebiete bei Radiostationen
- Live Audiostream oder konservierte Aufzeichnungen
- oft verschiedene Streamingvarianten (Protokolle) parallel
HTTP, MP3-Stream
- Übertragung per HTTP-Protokoll
- URL wird meist in einer Playlist *.m3u hinterlegt
$ curl -o <myaudiofile> http://media.server/path/to/media
RTSP
- Wiedergabe per Realplayer / Helixplayer
- RTSP-URL über *.rm -Datei übergeben
- Aufzeichnung z.B. mittels mplayer
$ mplayer -dumpstream -dumpfile <myaudiofile> rtsp://media.server/path/to/media