| |
|
|
| |

audio basics
Treu der Devise "alles ist ein File" kann man die Soundkarte wie eine normale Datei ansprechen. z.B:
cat blabla.au > /dev/audio
(Die Datei sollte dabei im ".au"-Format sein. Unter Debian findet man z.B. im Verzeichnis /usr/share/afterstep/desktop/sounds einige Sounds (sofern man Afterstep installiert hat ansonsten findet man z.B. auf:
http://sunsite.sut.ac.jp/multimed/sounds/sound_effects/
viele ".au"-Files.. )
Obiger "cat"-Befehl schreibt nicht in eine echte Datei sondern in ein "device". Alle Daten, die nach "/dev/audio" geschrieben werden, werden nicht gepspeichert sondern auf der Soundkarte ausgegeben.
umgekehrt kann man auch von der Soundkarte aufnehmen:
cat /dev/audio > blabla.au
speichert das, was man beim Mikro hineinredet in einer Datei namens "blabla.au" (Abbruch mit "control-c")
Um die Lautstärke verstellen zu können, oder um auszuwählen von welcher Quelle aus Sound aufgezeichnet wird, muss man den "Mixer" der Soundkarte bedienen können. Dazu gibt es viele Programme. z.b:
aumix
oder das grafische:
xmix &
".wav"-Files kann man auch direkt auf "/dev/audio" oder "/dev/dsp" schreiben, jedoch stimmt dabei meist die Geschwindigkeit nicht. Zum Abspielen sollte man daher ein echtes Programm benutzen. z.B. "sox". Ein Shell-Script, das "sox" mit den richtigen Parametern aufruft, namens "play", ist in den meisten Distributionen inkludiert:
play blabla.wav
würde "blabla.wav" abspielen. "play" funktioniert auch mit ".au" oder ".aiff" (Macintosh Format) und vielen anderen Formaten.
Das Gegenteil von "play" ist "rec":
rec bla.wav
für ".wav"-Files gibt es noch:
wavp blabla.wav
spielt ebenfalls "blabla.wav" ab.
Wichtig zum Verstehen von Audio (nicht nur unter Unix sondern generell): Digitales Audio wird "gesamplet", also die analoge Kurvenform abgetastet. Wichtig für die Qualität des Audio ist wie oft pro Sekunde abgetastet wird ("sample rate"), wieviele Bits pro Wert gespeichert werden und wieviele Channels aufgezeichnet werden (üblich 2="stero" 1="mono")
* CD-Qualität: 44100 Hz "sample rate". 16 Bit pro Wert. Stereo
* ISDN Sprachqualität: 8000 Hz. 8 Bit pro Wert (in einer speziellen Kodierung). Mono.
Das bedeutet, dass 1 Sekunde Audio bei
CD: 44100 * 2 Bytes * 2 Channels = 176400 Bytes benötigt
ISDN: 8000 * 2 Bytes * 1 Channel = 64000 Bytes benötigt.
wavr -l 5 -c 1 -r 22050 -d 16 -f blabla.wav
nimmt ein ".wav"-File auf und zwar 5 Sekunden lang mit einem Channel (mono) und 22050 Hz Abtastrate und 16 Bit Tiefe pro Wert.
Natürlich kann man auch das Programm "sox" direkt aufrufen um Sound aufzunehmen oder abzuspielen.
sox -t ossdsp /dev/dsp bla.aiff
würde auf einem Linux-Rechner vom "device" /dev/dsp (so ähnlich wie "/dev/audio") ein File im Macintosh ".aiff"-Format aufzeichnen.
"sox" kann man auch verwenden, um ein Audio-Format in ein anderes umzuwandeln oder die "sample rate" herunterzurechnen:
sox bla.aiff -c 1 -r 10000 bla.wav
würde ein ".aiff"-File names "bla.aiff" in ein ".wav"-File namens "bla.wav" umwandeln und dabei auf einen Channel umrechnen und eine Sampling-Rate von 10000 Hz umrechnen. (Will man nur von einem Format in ein anderes umrechnen benötigt man nicht einmal eine Soundkarte).
Zum Sbspielen von ".mp3"-Dateien verwendet man am besten das Programm "mpg123" auf der "commandline" oder das Programm "xmms" wenn man unter "X11" arbeitet.
mpg123 Billy_Bragg_-_The_Internationale.mp3
würde z.B. obiges ".mp3" abspielen. Da das ".mp3"-Format mit Patenten belastet ist, wird das ".ogg"-Format immer populärer. Das "commandline frontend" dazu heisst "ogg123".
ogg123 *.ogg
würde alle ".ogg"-Files aus dem aktüllen Verzeichniss abspielen. Will man selbst ".mp3s" produzieren empfiehlt sich der Encoder "lame" bzw. für ".ogg"-File der Encoder "oggenc".
Neuere Versionen von "xmms" spielen auch ".ogg" ab. Ansonsten aber auf jeden Fall ".mp3s":
xmms *.mp3 &
Unter Linux gibt es 2 Arten von Soundtreibern. "alsa" und "OSS". Der Anwender muss sich darum aber nicht kümmern. Um jedoch das Problem zu lösen, dass eventüll 2 Programme gleichzeitig auf die Soundkarte zugreifen wollen, oder dass man Audio via Netzwerk verwenden will, gibt es Bestrebungen dafür, einen "dämon" zu etablieren, der den direkten Zugriff auf die Soundkarte abnimmt. Die 2 beliebtesten dabei sind:
* esd (auch "esound" oder "enlightenment sound dämon" genannt) und:
* arts (das Audio System der neuen KDE-Versionen)
Zum Teil können Audio-Programme wie "xmms" direkt mit diesen Servern sprechen. Oder man verwendet Programme wie "esdcat":
mpg123 -s blabla.mp3 | esdcat
würde das File "blabla.mp3" nach "stdout" schreiben und mittels "esdcat" an den Soundserver schicken.
Zum Abspielen von CD's benötigt man gar keine Soundkarte (man kann einen Kopfhörer direkt an das CD-Laufwerk anstecken. Hat man eine Soundkarte, so ist diese meist mit dem CD-Laufwerk verbunden und man kann den Mixer verwenden um die Lautstärke zu regeln, etc..)
Um das CD-Laufwerk bedienen zu können, benötigt man ein Programm. Auch hier gibt es relativ viele. z.b:
workbone
(ein "commandline tool")
workman &
klassisch "X11" im "Openlook Style". oder:
gcd &
Will man die Audio-Daten einer CD direkt in ein ".wav" oder ".mp3" umwandeln, ohne die CD analog abzuspielen und von der Soundkarte wieder digitalisieren zu lassen, kann man das Programm "cdparanoia" verwenden. (auf schlechten Laufwerken funktioniert das allerdings nicht gut). Zum kompletten Rippen - also die nackten Audio-Daten lesen, in ".mp3" umwandeln und die Songtitel anhand der "cddb" CD-Datenbank benennen, gibt es ebenfalls einige Scripts. z.B.
"AutoRip"
Als letzter Punkt: ".midi" (oder ".mid") Files. Midi-Dateien enthalten keine direkten Klänge sondern nur die "note" und Hinweise auf beim Abspielen zu
verwendende Instrumente. Praktisch zum Abspielen von .mid files:
timidity mozart_sonata.mid
EXERCISES:
* Versuche eine CD abzuspielen.
* Versuche ein Audio-File direkt mit "cat" nach "/dev/audio" abzuspielen.
* Versuche ein Audio-File direkt von "/dev/audio" zu lesen.
* Verwende die "play" und "rec" Scripts zum Abspielen und Aufnehmen von Sound-Files in verschiedenen Formaten und mit verschiedenen Sampleraten.
* Verwende das "sox"-Programm, um ein Audio-Format in ein anders umzuwandeln und um die "sample rate" eines Files herunterzurechnen.
* Versuche mit "mpg123" und/oder "xmms" ".mp3"-Files abzuspielen.
* Wenn auf deinem System die "ogg tools" installiert sind, dann versuche mittels "oggenc" ein ".wav"-File in ".ogg" umzuwandeln und dieses dann
abzuspielen.
* Wozu dienen "esd" und "arts"?
* Wie kann man ein ".mid"-File abspielen?
REFERENCES:
2 ausgezeichnete HOWTO-Files:
Sound-Playing-HOWTO
Sound-HOWTO
Diverse "man-pages":
man sox
man mpg123
man timidity
...
|
|
| |
|
|
|