aboutsummaryrefslogtreecommitdiffstats
path: root/libs/joal.README.md
blob: d5660996f0a2ea341cdea15b6aa62c3799b4f291 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180

JOAL, OpenAL API Binding for Java™

Original document location

Git Repository

This project's canonical repositories is hosted on JogAmp.

Overview

The JOAL Project hosts a reference implementation of the Java bindings for OpenAL API, and is designed to provide hardware-supported 3D spatialized audio for applications written in Java.

This project also hosts the Sound3D Toolkit, a high level API for spatialized audio built on top of the OpenAL bindings. This toolkit is designed to provide access to all the features of OpenAL through an intuitive, easy to use, object-oriented interface.

JOAL is part of the JogAmp project.

The JogAmp project needs funding and we offer commercial support!
Please contact Göthel Software (Jausoft).

License

See LICENSE.txt.

Platform Support

JOAL is tested against OpenAL-Soft (github repo), the cross-platform, software implementation of the OpenAL 3D audio API.

See OpenAL-Soft environment variables and configuration example.

All JOAL platform builds contain a self-build native library of OpenAL-Soft, version v1.23.1 from our fork.

Our builds expose the following audio backends:

GNU/Linux

  • PipeWire
  • PulseAudio
  • ALSA
  • OSS
  • SndIO (linked)
  • WaveFile
  • Null

Android/Linux

  • PipeWire
  • OpenSL
  • WaveFile
  • Null

Windows

  • WinMM
  • DirectSound
  • WASAPI
  • WaveFile
  • Null

MacOS

  • CoreAudio
  • WaveFile
  • Null

Build Requirements

This project has been built under Win32, GNU/Linux, Android/Linux and MacOS.

Check GlueGen's HowToBuild for basic prerequisites.

Additionally the following packages and tools have been used:

     apt-get install cmake autoconf \
             libpipewire-0.3-dev \
             libpulse-dev libpulse0:amd64 libpulse0:i386 pulseaudio \
             libsndio-dev \
             libasound2-dev libasound2:amd64 libasound2:i386

On Debian 11 Bullseye, use bullseye-backports apt -t bullseye-backports install libpipewire-0.3-dev to have libpipewire-0.3>=0.3.23, i.e. version 0.3.65.

JOAL requires the GlueGen workspace to be checked out as a sibling directory to the joal directory. See GlueGen's HowToBuild https://jogamp.org/gluegen/doc/HowToBuild.html

Directory Organization:

make/           Build-related files and the main build.xml
src/            The actual source for the JOAL APIs.
src/test/       A couple of small tests
build/          (generated directory) Where the Jar and DLL files get built to
www/            JOAL project webpage files

GIT

JOAL can be build w/ openal-soft, which is a git submodule of JOAL. This is the default for our JogAmp build on all platforms.

Cloning [and pulling] JOAL incl. openal-soft can be performed w/ the option '--recurse-submodules'.

   > cd /home/dude/projects/jogamp/
   > git clone --recurse-submodules git://jogamp.org/srv/scm/joal.git
   > cd joal ; git pull --recurse-submodules

JOAL Build Instructions:

Change into the joal/make directory

   > cd /home/dude/projects/jogamp/make/

To clean:

   > ant clean

To build:

   > ant -Dtarget.sourcelevel=1.8 -Dtarget.targetlevel=1.8 -Dtarget.rt.jar=/your/openjdk8/lib/rt.jar

To build docs:

   > ant -Dtarget.sourcelevel=1.8 -Dtarget.targetlevel=1.8 -Dtarget.rt.jar=/your/openjdk8/lib/rt.jar javadoc

To test:

   > ant -Dtarget.sourcelevel=1.8 -Dtarget.targetlevel=1.8 -Dtarget.rt.jar=/your/openjdk8/lib/rt.jar runtests

Instead of properties, you may also use environment variables, see GlueGen's HowToBuild https://jogamp.org/gluegen/doc/HowToBuild.html.

Contact Us

Acknowledgments

Original JOAL and Sound3D authors

  • Athomas Goldberg
  • Wildcard
  • Java Games Initiative
  • Software Advanced Technologies Group
  • Sun Microsystems

Since roughly 2010, JOAL development has been continued by individuals of the JogAmp community, see git log for details.