Springe zum Hauptinhalt

Audio

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)

quantisierung.png


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

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

OSS-Devices:

  • /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

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:

$ mplayer -ac help

  • Wahl des Ausgabetreibers erfolgt automatisch (probieren)
  • Festlegen des Ausgabetreibers mit der Option -ao <driver>
  • verfügbare Ausgabetreiber anzeigen:

$ mplayer -ao help

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

audacity_logo.jpg

  • 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

  • Werbebanner mit Text und Bluttropfen-Männchen

    Blut spenden und Leben retten!

    DRK-Blutspendedienst Nord-Ost sucht Neuspenderinnen und Neuspender – Rektor Prof. Dr. Gerd Strohmeier übernimmt Schirmherrschaft der „Uni-Challenge“ am 5. November 2024 beim Studentenwerk Chemnitz-Zwickau …

  • Grafik mit zwei Tieren, die sich anschauen.

    „Election Night“ zur US-Präsidentschaftswahl 2024

    An der TU Chemnitz wird am 5. November 2024 die Nacht der US-amerikanischen Präsidentschaftswahl mit Fachvorträgen, einem Quiz, Public Viewing und amerikanischen Snacks ausgestaltet …

  • Logo

    Perspektiven für Open Science und die akademische Lehre

    Der vierte Tag der digitalen Hochschulbildung „TUCdigital“ am 7. November 2024 bietet Lehrenden, Studierenden, Beschäftigten aus der Verwaltung sowie Gästen Gelegenheit zum intensiven Erfahrungsaustausch über Open Science …

  • Porträt einer Frau vor einer Grafik.

    Vortragsreihe „Expertenabend – Science Meets Public“ geht in die nächste Runde

    Gesellschaft der Freunde der TU Chemnitz e. V., Universitätsbibliothek und TUCed – An- Institut für Transfer und Weiterbildung GmbH laden am 13. November 2024 Interessierte zum Expertenabend zum Thema „Den Geist, den ich rief - Generative KI und Neurorobotik in der Welt von Industrie x.0 – Übernehmen Maschinen die Verantwortung?“ ein …