A wrapper for {@link AudioBuffer}s and similar to the built in JOAL net.java.games.sound3d.Source, though less restrictive. The class extends {@link Vec3D} and so can be used to position the sound in 3D space (providedthe underlying audio hardware does support 3D audio). Unfortunately due to OpenAL's limitations only mono samples can be positioned in that way. Stereo samples will can only manipulated in terms of gain/volume.
If the position of an AudioSource is changed via the public x,y,z vector components, the updatePosition()
method needs to be called afterwards in order to reflect the changes in the OpenAL context.