diff options
| author | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
|---|---|---|
| committer | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
| commit | 33613a85afc4b1481367fbe92a17ee59c240250b (patch) | |
| tree | 670b842326116b376b505ec2263878912fca97e2 /Master/Reference Architectures and Patterns/hjp5/html/k100308.html | |
| download | Studium-master.tar.gz Studium-master.tar.bz2 | |
Diffstat (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100308.html')
| -rw-r--r-- | Master/Reference Architectures and Patterns/hjp5/html/k100308.html | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100308.html b/Master/Reference Architectures and Patterns/hjp5/html/k100308.html new file mode 100644 index 0000000..e9654e5 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100308.html @@ -0,0 +1,156 @@ +<html>
+<head>
+<title>
+Handbuch der Java-Programmierung, 5. Auflage
+</title>
+</head>
+<body>
+<a name="startofbody"></a>
+<script language="JavaScript" src="hjp4lib.js">
+</script>
+<script language="JavaScript">
+installKbdHandler("97,#startofbody;101,#endofbody;116,cover.html;122,k100003.html;115,search.html;105,index.html;100,JDKDOCS;112,APIDOCS;104,k100307.html;106,k100307.html;107,k100309.html;108,k100312.html");
+</script>
+<table border=0 cellpadding=0 cellspacing=1 width="100%">
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100307.html"> << </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100307.html"> < </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100309.html"> > </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100312.html"> >> </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
+<td align="right">Kapitel 49 - Sound
+</table>
+<hr>
+
+
+<!-- Section -->
+<a name="sectlevel2id049001"></a>
+<h2>49.1 Grundlagen und Konzepte </h2>
+<hr>
+<ul>
+<li><a href="k100308.html#sectlevel2id049001">49.1 Grundlagen und Konzepte</a>
+</ul>
+<hr>
+
+<p>
+Seit der Version 1.3 besitzt das JDK Sound-Fähigkeiten, die weit
+über die in <a href="k100251.html#appletsound">Abschnitt 39.3</a>
+erläuterten Möglichkeiten hinausgehen. Mit Hilfe des Sound-APIs
+können Samples abgespielt oder aufgenommen werden. Es können
+Midi-Dateien erzeugt oder wiedergegeben werden, und es ist möglich,
+direkt auf angeschlossene oder eingebaute Tonerzeuger zuzugreifen.
+Das API abstrahiert alle für das Erzeugen und Bearbeiten von
+Sounds wesentlichen Konzepte und unterstützt die Erkennung und
+Verwendung unterschiedlichster Hardware-Komponenten.
+
+<p>
+Das Sound-API ist allerdings nicht ganz leicht zu bedienen und wird
+in der Literatur sehr stiefmütterlich behandelt. Die Schwierigkeiten
+haben mehrere Ursachen:
+<ul>
+<li>Einerseits handelt es sich um ein Low-Level-API, also eines, bei
+dem schon zur Erzielung relativ einfacher Effekte recht viel Programmieraufwand
+nötig ist.
+<li>Andererseits kann das API wenig Annahmen über standardmäßig
+verfügbare Hardware machen. Soll beispielsweise eine Flötenmelodie
+erklingen, muss das Programm erst einmal herausfinden, ob ein Synthesizer
+eingebaut oder über einen der Midi-Ports erreichbar ist. Zudem
+muss er das entsprechende Instrument zur Verfügung stellen können.
+Erst dann kann dieser konfiguriert und mit den entsprechenden Tonerzeugungs-Kommandos
+beschickt werden.
+<li>Zu guter Letzt erfordert der Umgang mit dem Sound-API ein grundlegendes
+Verständnis für viele der auf diesem Gebiet relevanten Konzepte.
+Das API ist sehr eng an Begriffe angelehnt, die direkte Pendants in
+der elektronischen oder elektronikunterstützten Musik haben.
+Ohne ein Basiswissen in Themenbereichen wie <a name="ixa103526"><i>Samples</i></a>,
+<a name="ixa103527"><i>Midi</i></a>, <a name="ixa103528"><i>Tracks</i></a>,
+<a name="ixa103529"><i>Timecodes</i></a>, <a name="ixa103530"><i>Sequencer</i></a>,
+<a name="ixa103531"><i>Synthesizer</i></a> <a name="ixa103532"><i>Soundbanks</i></a>
+oder <a name="ixa103533"><i>Mixer</i></a> sind die korrespondierenden
+Klassen und Interfaces schwerlich korrekt zu verwenden.
+</ul>
+
+<p>
+Wir wollen deshalb in diesem Kapitel einen sehr pragmatischen Ansatz
+wählen. Erforderliche Begriffe werden, wo nötig, lediglich
+kurz erklärt, denn wir gehen davon aus, dass beim Leser bereits
+ein Grundstock an einschlägigen Grundkenntnissen vorhanden ist.
+Oder wenigstens die Bereitschaft, sich diese während des Lesens
+und Experimentierens anzueignen. Auch werden wir die APIs nur ansatzweise
+erläutern, denn mehr ist aus Platzgründen nicht möglich.
+
+<p>
+Die Beispielprogramme wurden so gewählt, dass sie einen unmittelbaren
+Praxisnutzen haben. Sie stellen leicht einzusetzende Routinen zum
+Abspielen von Samples sowie zum Erzeugen einfacher Midi-Sequenzen
+und zum Abspielen von Midi-Files zur Verfügung. Damit werden
+die wichtigsten Standardfälle beim Einsatz von Sound abgedeckt.
+
+<p>
+Das Sound-API dient als Basis für alle Arten von Sound-Support
+in Java. Seine Anwendungsgebiete reichen von interaktiven Applikationen
+oder Spielen mit Sound-Unterstützung über Media-Player und
+Musik-Tools bis hin zu Telefonie- und Konferenz-Applikationen. Des
+weiteren ist das Sound-API Basis höherer Programmierschnittstellen,
+wie etwa des <a name="ixa103534"><i>Java Media Framework</i></a>,
+das eine Schnittstelle zum Abspielen und Erzeugen einer ganzen Reihe
+von Audio- und Videoformaten zur Verfügung stellt.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=1></td>
+<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+Die Beispiele in diesem Buch funktionieren natürlich nur dann,
+wenn auf dem Computer, an dem sie nachvollzogen werden sollen, eine
+geeignete (und vom Java-Sound-API unterstützte) Sound-Hardware
+vorhanden ist. Dabei handelt es sich typischerweise um eine Sound-Karte,
+es kann aber (wenigstens beim Midi-API) auch eine Midi-Schnittstelle
+mit angeschlossenem Synthesizer verwendet werden. Ist eine solche
+Hardware nicht verfügbar, erklingt beim Ausführen der Beispielprogramme
+entweder gar nichts (oder das Falsche) oder es wird eine Ausnahme
+ausgelöst.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#CC0000">
+<tr>
+<td><font color="#FFFFFF"> Warnung </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+<hr>
+<table border=0 cellpadding=0 cellspacing=1 width="100%">
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage, Addison
+Wesley, Version 5.0.1
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100307.html"> << </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100307.html"> < </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100309.html"> > </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100312.html"> >> </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
+<td align="right">© 1998, 2007 Guido Krüger & Thomas
+Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
+</table>
+<a name="endofbody"></a>
+</body>
+</html>
|
