summaryrefslogtreecommitdiffstats
path: root/www
diff options
context:
space:
mode:
Diffstat (limited to 'www')
-rw-r--r--www/devmaster/lesson1.htm50
-rw-r--r--www/devmaster/lesson2.html158
-rw-r--r--www/devmaster/lesson2.zipbin0 -> 199725 bytes
-rw-r--r--www/index.html4
4 files changed, 198 insertions, 14 deletions
diff --git a/www/devmaster/lesson1.htm b/www/devmaster/lesson1.htm
index 4c28451..e10f674 100644
--- a/www/devmaster/lesson1.htm
+++ b/www/devmaster/lesson1.htm
@@ -3,10 +3,18 @@
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
+<link rel="stylesheet" type="text/css" href="general.css">
+<style>
+<!--
+td {font-family:arial,helvetica,sans-serif;font-size:x-small;}-->
+</style>
+</head>
<body>
-<div align="center"><IMG SRC="http://games.dev.java.net/images/navbar.gif" WIDTH=454 HEIGHT=43 BORDER=0 ALT="" USEMAP="#navbar_Map"></div>
+
+<div align="center">
+
+<IMG SRC="http://games.dev.java.net/images/navbar.gif" WIDTH=454 HEIGHT=43 BORDER=0 ALT="" USEMAP="#navbar_Map"></div>
<MAP NAME="navbar_Map">
<AREA SHAPE="rect" ALT="Wiki" COORDS="340,0,386,43" HREF="http://wiki.java.net/bin/view/Games">
<AREA SHAPE="rect" ALT="Weblogs" COORDS="286,0,339,43" HREF="http://weblogs.java.net/weblogs/project/games">
@@ -14,16 +22,24 @@
<AREA SHAPE="rect" ALT="JavaGames Home" COORDS="91,0,215,43" HREF="http://community.java.net/games">
<AREA SHAPE="rect" ALT="www.java.net" COORDS="1,1,91,44" HREF="http://www.java.net" TARGET="_self">
</MAP>
+<br>
+ <table border="0" cellspacing="0" style="border-collapse: collapse" width="100%" cellpadding="0" id="AutoNumber1" height="12" bgcolor="#666699">
+ <tr>
+
+ <td width="47%" height="12"><b><font color="#FFFFFF">OpenAL Tutorials</font></b></td>
+ <td width="53%" height="12"> <p align="right"><font color="#66CCFF">&nbsp;
+ </font><font color="#66FF99">&nbsp;</font><a href="http://devmaster.net/"><font color="#66FF99">DevMaster.net</font></a></td>
+ </tr>
+ </table>
+<p align="left" class="title"><span class="title"><font size="5">Single Static
+Source</font></span><font size="4"><br>
+<b>Lesson 1</b></font></p>
-<p align="center" class="title"><span class="title"><font size="5">Single Static
- Source</font></span><font size="4"><br>
- <b>Lesson 1</b></font></p>
-<p align="center" class="title"><b><font size="4">from <a href="http://www.devmaster.net">DevMaster.net</a></font></b></p>
-
-<p align="center" class="title"> <span class="author">Author: <a href="mailto:[email protected]"><font color="#888888">Jesse
- Maurais</font></a> </span><br>
- Adapted for Java by: <a href="mailto:[email protected]"><font color="#888888">Athomas Goldberg</font></a></p>
-<p>Welcome to the exciting world of OpenAL! OpenAL
+<p align="right" class="title"> <span class="author">Author: <a href="mailto:[email protected]"><font color="#888888">Jesse
+ Maurais<br>
+ </font></a></span>Adapted for Java by: <a href="mailto:[email protected]"><font color="#888888">Athomas
+ Goldberg</font></a></p> </p>
+ <p>Welcome to the exciting world of OpenAL! OpenAL
is still in a stage of growth, and even though there is an ever larger following
to the API it still hasn't reached it's full potential. One of the big reasons
for this is that there is still not yet hardware acceleration built in for
@@ -255,7 +271,15 @@ enough for you. It may have been a little too simple for the 1337 h4X0r, but we
all got to start somewhere. Things will get more advanced as we go along.</p>
<p> <a href="http://joal-demos.dev.java.net/files/documents/534/256/lesson1.zip">Download
the Java Source and Ant Build File</a></p>
-<p>&copy; 2003 <a href="http://www.devmaster.net">DevMaster.net</a> all rights
- reserved. </p>
+<table border="0" cellspacing="1" style="border-collapse: collapse" width="100%" id="AutoNumber2" bgcolor="#666699">
+ <tr>
+ <td width="47%"> <p dir="ltr"><font color="#FFFFFF" size="1">� 2003 DevMaster.net. All rights
+ reserved.</font></td>
+ <td width="53%"> <p align="right" dir="ltr"><a href="mailto:[email protected]">
+ <font color="#FFFFFF" size="1">Contact us</font></a><font color="#FFFFFF" size="1"> if you want to write
+ for us or for any comments, suggestions, or feedback.</font></td>
+ </tr>
+</table>
+<p>&nbsp;</p>
</body>
</html>
diff --git a/www/devmaster/lesson2.html b/www/devmaster/lesson2.html
new file mode 100644
index 0000000..a03ec7d
--- /dev/null
+++ b/www/devmaster/lesson2.html
@@ -0,0 +1,158 @@
+<html>
+
+<head>
+
+<title>DevMaster.net - OpenAL Tutorials: Lesson 2</title>
+
+</head>
+
+<body>
+
+<table border="0" cellspacing="0" style="border-collapse: collapse" width="100%" cellpadding="0" id="AutoNumber1" height="12" bgcolor="#666699">
+ <tr>
+ <td width="47%" height="12"><b><font color="#FFFFFF">OpenAL Tutorials</font></b></td>
+ <td width="53%" height="12">
+ <p align="right"><font color="#66CCFF">&nbsp; </font><font color="#66FF99">&nbsp;</font><a href="http://devmaster.net/"><font color="#66FF99">DevMaster.net</font></a></td>
+ </tr>
+</table>
+
+<p align="left" class="title"><span class="title"><font size="5">Looping and
+Fade-away</font></span><font size="4"><br>
+<b>Lesson 2</b></font></p>
+
+<p align="right" class="title"> <span class="author">Author: <a href="mailto:[email protected]"><font color="#888888">Jesse
+ Maurais<br>
+ </font></a></span><span class="author">Adapted for Java By: <a href="mailto:[email protected]"><font color="#888888">Jesse
+ Maurais</font></a> </span></p>
+<p>Hope you found the last tutorial of some use. I know I did. This will be a
+real quick and easy tutorial. It won't get too much more complicated at this
+point.</p>
+<pre >
+ <font color="#0000FF">import </font>java.nio.ByteBuffer;
+ <font color="#0000FF">import </font>net.java.games.joal.AL;
+ <font color="#0000FF">import</font> net.java.games.joal.ALC;
+ <font color="#0000FF">import</font> net.java.games.joal.ALFactory;
+ <font color="#0000FF">import</font> net.java.games.joal.util.ALut;
+
+
+ <font color="#0000FF">public</font> <font color="#0000FF">class</font> LoopingAndFadeaway {
+ <font color="#0000FF">static</font> <font color="#0000FF">int</font>[] buffer = <font color="#0000FF">new</font> <font color="#0000FF">int</font>[1];
+ <font color="#0000FF">static</font> <font color="#0000FF">int</font>[] source = <font color="#0000FF">new</font> <font color="#0000FF">int</font>[1];
+ <font color="#0000FF">static</font> <font color="#0000FF">float</font>[] sourcePos = { 0.0f, 0.0f, 0.0f };
+ <font color="#0000FF">static</font> <font color="#0000FF">float</font>[] sourceVel = { 0.0f, 0.0f, 0.1f };
+ <font color="#0000FF">static</font> <font color="#0000FF">float</font>[] listenerPos = { 0.0f, 0.0f, 0.0f };
+ <font color="#0000FF">static</font> <font color="#0000FF">float</font>[] listenerVel = { 0.0f, 0.0f, 0.0f };
+ <font color="#0000FF">static</font> <font color="#0000FF">float</font>[] listenerOri = { 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f };
+ <font color="#0000FF">static</font> AL al;
+ <font color="#0000FF">static</font> ALC alc;</p></pre>
+<p>There is only one change in the code since the last tutorial in this fist
+section. It is that we altered the sources velocity. It's 'z' field is now 0.1.</p>
+<pre class=code>
+ <font color="#0000FF">static</font> <font color="#0000FF">int</font> loadALData() {
+ <font color="#0000FF">if</font> (al.alGetError() != AL.AL_NO_ERROR) {
+ <font color="#0000FF">return</font> AL.AL_FALSE;
+ }
+ <font color="#0000FF">int</font>[] format = <font color="#0000FF">new</font> <font color="#0000FF">int</font>[1];
+ <font color="#0000FF">int</font>[] size = <font color="#0000FF">new</font> <font color="#0000FF">int</font>[1];
+ ByteBuffer[] data = <font color="#0000FF">new</font> ByteBuffer[1];
+ <font color="#0000FF">int</font>[] freq = <font color="#0000FF">new</font> <font color="#0000FF">int</font>[1];
+ <font color="#0000FF">int</font>[] loop = <font color="#0000FF">new</font> <font color="#0000FF">int</font>[1];
+
+
+ <font color="#006600"> // Load wav data into a buffer.</font>
+
+ al.alGenBuffers(1, buffer);
+ <font color="#0000FF">if </font>(al.alGetError() != AL.AL_NO_ERROR)
+ <font color="#0000FF">return</font> AL.AL_FALSE;
+ ALut.alutLoadWAVFile(
+ &quot;wavdata/Footsteps.wav&quot;,
+ format,
+ data,
+ size,
+ freq,
+ loop);
+ al.alBufferData(buffer[0], format[0], data[0], size[0], freq[0]);
+ ALut.alutUnloadWAV(format[0], data[0], size[0], freq[0]);
+
+ al.alGenSources(1, source);
+ al.alSourcei(source[0], AL.AL_BUFFER, buffer[0]);
+ al.alSourcef(source[0], AL.AL_PITCH, 1.0f);
+ al.alSourcef(source[0], AL.AL_GAIN, 1.0f);
+ al.alSourcefv(source[0], AL.AL_POSITION, sourcePos);
+ al.alSourcefv(source[0], AL.AL_POSITION, sourceVel);
+ al.alSourcei(source[0], AL.AL_LOOPING, AL.AL_TRUE);
+ <font color="#0000FF"> if </font>(al.alGetError() != AL.AL_NO_ERROR) {
+ <font color="#0000FF">return</font> AL.AL_FALSE;
+ }
+ <font color="#0000FF">return</font> AL.AL_TRUE;
+ }</pre>
+<p>Two changes in this section. First we are loading the file &quot;Footsteps.wav&quot;.
+ We are also explicitly setting the sources 'AL_LOOPING' value to 'AL_TRUE'.
+ What this means is that when the source is prompted to play it will continue
+ to play until stopped. It will play over again after the sound clip has ended.</p>
+<pre class=code>
+ <font color="#0000FF">static <span class=codeKeyword>void</span> </font>setListenerValues() {
+ al.alListenerfv(AL.AL_POSITION, listenerPos);
+ al.alListenerfv(AL.AL_VELOCITY, listenerVel);
+ al.alListenerfv(AL.AL_ORIENTATION, listenerOri);
+ }
+
+ <font color="#0000FF">static <span class=codeKeyword>void</span> </font>killALData() {
+ al.alDeleteBuffers(1, buffer);
+ al.alDeleteSources(1, source);
+ Alut.alutExit();
+ }
+</pre>
+<p>Nothing has changed here.</p>
+<pre class=code>
+ <font color="#0000FF">public static void main</font>(String[] args) {
+ ALut.alutInit();
+ al = ALFactory.getAL();
+
+ <font color="#0000FF">if</font>(loadALData() == AL.AL_FALSE) {
+ System.exit(1);
+ };
+ setListenerValues();
+ al.alSourcePlay(source[0]);
+ <font color="#0000FF">long</font> startTime = System.currentTimeMillis();
+ <font color="#0000FF">long</font> elapsed = 0;
+ <font color="#0000FF">long</font> ticker = 0;
+ <font color="#0000FF">long</font> lastTime = 0;
+ <font color="#0000FF">while</font> (elapsed < 5000) {
+ elapsed = System.currentTimeMillis() - startTime;
+ <font color="#0000FF">if</font> (ticker > 100) {
+ ticker = 0;
+ sourcePos[0] += sourceVel[0];
+ sourcePos[1] += sourceVel[1];
+ sourcePos[2] += sourceVel[2];
+ al.alSourcefv(
+ source[0],
+ AL.AL_POSITION,
+ sourcePos);
+ }
+ ticker += System.currentTimeMillis() - lastTime;
+ lastTime = System.currentTimeMillis();
+ }
+ ALut.alutExit();
+ }
+}</pre>
+<p>The only thing that has changed in this code is the loop. Instead of playing
+and stopping the audio sample it will slowly get quieter as the sources position
+grows more distant. We do this by slowly incrementing the position by it's
+velocity over time. The time is sampled by checking the system clock which gives
+us a tick count. It shouldn't be necessary to change this, but if the audio clip
+fades too fast you might want to change 100 to some higher number. </p>
+<p><a href="http://devmaster.net/tutorials/OpenAL/lesson2.zip">Download the Java
+ Source and Ant Build file.</a></p>
+<p align="right"><b> </b></p>
+<table border="0" cellspacing="1" style="border-collapse: collapse" width="100%" id="AutoNumber2" bgcolor="#666699">
+ <tr>
+ <td width="47%"> <p dir="ltr"><font color="#FFFFFF" size="1">� 2003 DevMaster.net.
+ All rights reserved.</font></td>
+ <td width="53%"> <p align="right" dir="ltr"><font color="#FFFFFF"><a href="mailto:[email protected]">
+ <font size="1">Contact us</font></a><font size="1"> if you want to write
+ for us or for any comments, suggestions, or feedback.</font></font></td>
+ </tr>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/www/devmaster/lesson2.zip b/www/devmaster/lesson2.zip
new file mode 100644
index 0000000..27e591c
--- /dev/null
+++ b/www/devmaster/lesson2.zip
Binary files differ
diff --git a/www/index.html b/www/index.html
index 2efae9e..308ef4e 100644
--- a/www/index.html
+++ b/www/index.html
@@ -94,8 +94,10 @@
<td valign="top" bgcolor="#FFFFFF"><ul>
<li> OpenAL Tutorials (<a href="http://www.devmaster.net">www.devmaster.net</a>)
<ul>
- <li><a href="devmaster/lesson1.htm">lesson1</a>: Single
+ <li><a href="devmaster/lesson1.htm">lesson 1</a>: Single
Static Source</li>
+ <li><a href="devmaster/lesson2.html">lesson 2</a>: Looping
+ and Fadeaway</li>
</ul>
</li>
</ul></td>