Java Standard: Sound

Aus Wikibooks


Überblick[Bearbeiten]

Das Sound-Paket von Java besteht aus zwei grundsätzlich verschiedenen Komponenten.

  • javax.sound.sampled – Hier sind die Klassen zur Bearbeitung, Aufnahme und Wiedergabe von Audiodaten gruppiert, die aus einzelnen Abtastwerten bestehen.
  • MIDI-Daten – In diesem Paket befinden sich die Klassen, die für den Input/Output, die Sequenzierung und die Synthese von MIDI-Daten nötig sind.

Einleitung[Bearbeiten]

Darstellung im Computer[Bearbeiten]

Zuerst einmal muss man sich die Frage stellen, wie Schallwellen überhaupt im Computer dargestellt werden sollen. Hilfreich dafür ist ein einfaches Beispiel mit Mikrofonen. Schall besteht aus Druckwellen, die sich durch die Luft fortpflanzen. Die einfachste Möglichkeit ist also sicherlich die Aufzeichnung der Schwingungskurven, die ein Teilchen erfährt, wenn es den Schallwellen ausgesetzt wird. Mikrofone übersetzen nun diese Luftschwingungen in elektrische Schwingungen. Bis hierhin ist aber noch immer nichts digitales geschehen. Computer können aber nur digitale, also diskrete Daten bearbeiten. Mit den analogen Schwingungen können sie nichts anfangen. Deshalb werden diese Schwingungen nun diskretisiert.

Nun gibt es mehrere Fragen, die es zu beantworten gilt:

  • Wie exakt, also mit welcher Präzision sollen die Amplituden der Schwingungen aufgezeichnet werden?
  • Wie oft pro Sekunde soll überhaupt ein Wert aufgezeichnet werden?
  • Mit wievielen Mikrofonen soll die Geräuschwelle aufgezeichnet werden?

Hier kommen nun die Begriffe Samplerate, Samplesize und Kanäle ins Spiel. Die Samplerate gibt an, wieviele Signale pro Sekunde abgetastet werden sollen, die Einheit ist somit Hertz. Die Samplesize definiert den Wertebereich und damit Präzision der Abtastwerte, sie wird in Bits gemessen. Die Anzahl der Kanäle gibt an, wieviele Tonspuren simultan aufgezeichnet werden. Für eine handelsübliche CD sind beispielsweise 44100 Abtastwerte pro Sekunde, 16 Bit Samplesize und zwei Kanäle, also stereo üblich. Bei DVDs beispielsweise wird oft mit 20 oder sogar 24 Bit Samplesize bei einer Samplerate von 96 oder 192 kHz gearbeitet. Wegen der geringen Übertragungsrate sind diese hohe Qualitäten für die Übertragung per Telefon nicht im Geringsten geeignet.

Anfallende Datenmengen[Bearbeiten]

Für unkomprimierte Audiodaten lässt sich die benötigte Datenmenge pro Sekunde ganz einfach berechnen:

Samplerate SR, Samplesize S und Kanäle K

Datenmenge in Bytes = 

Schauen wir uns also mal ein kleines Beispiel an. Wir haben einen üblichen Song von 3 Minuten Länge mit CD-Qualität, das sind 180 Sekunden. Dann benötigen wir bereits:


Dies entspricht mehr als 31 Megabytes. Dies veranschaulicht, warum Kompressionsverfahren so wichtig sind.