Zum Inhalt springen

Java Sound

aus Wikipedia, der freien Enzyklopädie

Java Sound ist die grundlegende Programmierschnittstelle der Referenzimplementierung von Java zur Ein- und Ausgabe von Audiodaten via Steuerdaten (MIDI) oder Bitstream-Format (beispielsweise WAV). Sie ist explizit hardwarenah angelegt und bietet Möglichkeiten zur Klangmanipulation sowie kontrollierten Pufferung der Audiowiedergabe.

Das anwenderorientierte Java Media Framework (JMF) und dessen inoffizieller Nachfolger JavaFX bauen auf Java Sound auf.[1]

Java Sound wurde 1999/2000 mit der JDK-Version 1.3 veröffentlicht. In Version 1.1 war es nur mittels Applets und Suns eigenem Au-Dateiformats möglich, Töne auszugeben. Ab Version 1.2 war die Wiedergabe von WAV-, MIDI- und AIFF-Dateien unterstützt.

Mit Java Sound wurde in Version 1.3 eine universelle Schnittstelle eingeführt, welche Audiodaten hardwarenah verarbeitet und neben der Ausgabe auch die Aufnahme von Audiodaten ermöglichte. Die Unterstützung weiterer Dateiformate wurde in höhere Abstraktionsebenen ausgelagert.

In Version 1.5 wurde eine Reihe weiterer Standards implementiert, Kompatibilität mit verschiedenen Betriebssystemen hergestellt, die Ansteuerung von Ein- und Ausgabe-Geräten verbessert, Werkzeuge zur Manipulation von MIDI-Daten nachgereicht sowie eine Reihe von Bugs behoben.[2] Seitdem werden die Audio-Funktionalitäten von Java in Softwarebibliotheken weiterentwickelt, die auf Java Sound aufbauen.[1]

Bis 2003 wurde parallel eine Open-Source-Implementierung namens Tritonus entwickelt.[3] Da Java selbst seit 2006 zunehmend quelloffen ist, wurde das Projekt nicht weiterverfolgt.[4]

Java Sound spezifiziert vier Pakete, davon zwei für Dienstschnittstellen:

  • javax.sound.sampled definiert Schnittstellen zur Aufnahme und Wiedergabe, sowie zum Mischen von digitalem Ton
  • javax.sound.midi definiert Schnittstellen zur MIDI-Synthese, -Sequenzierung und zum Transport von Ereignisse
  • javax.sound.sampled.spi und javax.sound.midi.spi (SPI: Service Provider Interface = Plug-ins) definieren Schnittstellen zur Erstellung zusätzlicher Dienste durch Drittanbieter, beispielsweise
  • David Brackeen, Bret Barker, Laurence Vanhelsuwé: Developing Games in Java. New Riders Publishing, Los Angeles 2003, ISBN 1-59273-005-1, 4. Sound Effects and Music.
  • Manuel René Robledo Esparza: Java Sound als Plattform für die Entwicklung studiotauglicher Audioapplikationen. Stuttgart 2004, S. 40, 52–67, 90–94 (bsz-bw.de [PDF; 5,9 MB]).
  • Guido Krüger, Thomas Stark: Handbuch der Java-Programmierung. 6., aktualisierte Auflage. Addison-Wesley, München / Boston 2009, ISBN 978-3-8273-2874-8, S. 1229–1250.
  • Jan Newmarch: Linux Sound Programming. Apress, Berkeley 2017, ISBN 978-1-4842-2495-3, S. 197–210, 327–342.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. 1 2 Christian Ullenboom: Java SE 9 Standard-Bibliothek. 3., aktualisierte und überarbeitete Auflage. Rheinwerk Computing, Bonn 2017, ISBN 978-3-8362-5874-6, 9.5 Audiodateien (rheinwerk-verlag.de [abgerufen am 24. Juli 2026]).
  2. Java Sound API: What's new in version 1.5.0. In: oracle.com. Abgerufen am 24. Juli 2026 (englisch).
  3. Tritonus: Open Source Java Sound. In: tritonus.org. 7. Mai 2004, abgerufen am 24. Juli 2026 (englisch).
  4. Dave Phillips: Java Sound & Music Software for Linux, Part 1. In: Linux Journal. 5. September 2008, abgerufen am 24. Juli 2026 (englisch).