JavaSound
aus BORG Wiki, der freien Wissensdatenbank
| Fehlendes Bild VerwaistIcon.png Bild:VerwaistIcon.png | Dieser Artikel wurde von seinem ursprünglichen Autor als verwaist markiert. Dies bedeutet, dass er an ihm zwar nicht mehr weiterarbeiten, ihn aber auch nicht löschen will. Du kannst ihn also gerne erweitern und dann in deine Benutzerkategorie überführen. Dokumentiere das aber auch in der Diskussionsseite. |
Dieser Artikel behandelt die Verarbeitung von Audiodaten (sampled audio und MIDI) in Java mit Hilfe des JavaSound Paketes. Es führt in die Grundlegende Architektur ein und erklärt mittels Beispielen die Verwendung in eigenen Projekten.
| Inhaltsverzeichnis |
Einführung
Das Java Sound API (kurz JSA) stellt die rudimentärste Funktion zur Verarbeitung von Audiodaten in der Java Plattform dar. Sie stellt starke Funktionen zur Audioverarbeitung bereit und ist erweiterbar. Zum Beispiel stellt es Funktionen zur Installation, zum Zugriff und zur Manipulation von Systemressourcen, wie Mixern, MIDI-Synthesisern und anderen Ton- und MIDI-Geräten, sowie spezielle FileReader/-Writer und Audioformatkonvertern bereit.
Das auf dem JSA aufbauende und als Erweiterung (also optional zum herunterladen) Java Media Framework (JMF), ist zwar höher und daher einfacher zu bedienen, es erlaubt aber keine genaue Kontrolle über die Audioverarbeitung.
Aufbau
Das JSA ist über 2 Pakete (packages) verteilt, welche die Bereiche Sampled Audio und MIDI abdecken.
- javax.sound.sampled - Stellt Funktionen zur Aufnahme, Mischung und Wiedergabe von verarbeiteten Audiodaten (sampled audio) bereit
- javax.sound.midi - Stellt Funktionen zur Generierung und Sequenzierung von MIDI-Daten bereit
Die jeweiligen Unterpakete psi erlauben die Funktionalität des JSA zu erweitern. Für uns sind sie nicht von Interesse.
Sampled audio
Als sampled audio werden digitalisierte Töne, Geräusche usw. bezeichnet. Diese sind einfach fortlaufende Momentaufnahmen eines Signals. Im Falle von Audio ist dieses Signal eine Welle, dass zunächst über ein Mikrofon von einem akkustischen in ein elektrisches Signal umgewandelt wird, und dann von einem Analog-Digital-Konverter/Wandler in ein verarbeitetes digitales Format (= sampled audio) gebracht wird.
Beispiele für diese Formate sind WAV, MP3, OGG/Vorbis, AAC etc. sampled audio-Formate.
MIDI
| TODO | MIDI überarbeiten, Artikelstuktur überarbeiten |
Im Gegensatz hierzu steht das Musical Instrument Digital Interface kurz MIDI. Dieses bezeichnet eigentlich ein als Industriestandard ausgewiesenes Protokoll. Im Sprachgebrauch steht es aber für alles, was man mit MIDI machen kann. Bekannte Anwendungen sind zum Beispiel das MIDI-Keybaord oder durch den Computer "generierte" Musik.
Funktionsweise MIDI kann man als eine Art Kochrezept zur Erzeugung von Tönen sehen: Anstatt selber Audiodaten zu sein, steuern sie ein Gerät, dass diese dann erzeugt.
Diese Steuerungasanweisungen werden als events bezeichnet (vgl. events generell in Java). Sie werden durch den sequencer erzeugt. Dieser kann in Hardware (auf Soundkarten meist als eigener Chip verwirklicht) oder in Software implementiert sein.
Um aus den events aber wieder Töne zu machen schickt man diese an den Synthesiser, welcher wieder in Hard- oder Software vorhanden sein kann. Dieser greift auf eine Tondatenbank zurück, mit der er dann den Ton erzeugt.
So ist es zum Beispiel möglich, dass man mit einem Keyboard Gitarre oder Oboe spielen kann.
- Weitere Informationen hierzu bei Wikipedia (de) (http://de.wikipedia.org/wiki/Musical_Instrument_Digital_Interface) und (en) (http://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interface)
Weblinks
- http://java.sun.com/products/java-media/sound/index.jsp - JavaSound Homepage
Quellen
- http://java.sun.com/j2se/1.5.0/docs/guide/sound/programmer_guide/contents.html - JavaSound API Programmer's Guide

