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: 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
$ 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
Device | Anmerkung |
---|---|
controlC0 | Controlinterface, Card 0 (z.B. Mixer) |
midiC0D0 | Midi-Interface, Card 0, Interface 0 |
pcmC0D0p | PCM Interface, Card 0, Interface 0, playback |
pcmC0D0c | PCM Interface, Card 0, Interface 0, capture |
timer | Timer |
- /dev/dsp, /dev/audio, /dev/midi
Audioformate (Auswahl)
Format | Name | Anmerkung |
---|---|---|
wav | WAVE | Containerformat, enthält meist unkomprimierte PCM-Daten http://de.wikipedia.org/wiki/Wav |
aiff | AIFF | Containerformat für linear PCM-Daten |
mp3 | MPEG-1 Audio Layer 3 | verlustbehaftetes, hochkomprimierendes Audioformat, Patente auf angewandte Verfahren http://de.wikipedia.org/wiki/Mp3 |
ogg | Ogg Vorbis | patentfreies, verlustbehaftetes, hochkomprimierendes Audioformat http://de.wikipedia.org/wiki/Vorbis |
midi | MIDI | Befehle zur Ansteuerung (virtueller) Instrumente, keine originalgetreue Wiedergabe http://de.wikipedia.org/wiki/Musical_Instrument_Digital_Interface |
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
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:
$ mplayer -ac help
- Wahl des Ausgabetreibers erfolgt automatisch (probieren)
- Festlegen des Ausgabetreibers mit der Option -ao <driver>
- verfügbare Ausgabetreiber anzeigen:
$ mplayer -ao help
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
SoX
unterstützten Soundformate: sox -h (MP3-Support optional, erfordert libmad
oder libmp3lame
)
Soundeffekte mit SoX?
- diverse Filter, Echo, Hall
- Rückwärts
- Fade
- ...
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
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