|
|
intro | getting started | conv2aas | example | faq api : index | general | sfx | mod | misc | mixer |
The Apex Audio System (AAS) is a sound library for the GBA. It includes a highly efficient mixer, MOD playing routines and support for up to 16 channels. It is designed for developers using a GCC-based development environment.
MIXING RATE 8-32 KHz, optionally dynamic. NUMBER OF CHANNELS Up to 16. FEATURES (PER CHANNEL) Looping, pitch and volume control. MEMORY USAGE ~3.2K IWRAM, ~3.3K EWRAM (includes code and all buffers).
AAS includes easily the fastest audio system yet made for the GBA, using an average of only ~1% CPU per active channel at 32 KHz. (Most GBA mixers use at least twice as much CPU power mixing at just 16 KHz!) AAS also supports up 16 channels and a dynamic mixing rate that adjusts automatically depending on the pitch of the sounds being played.
The exact CPU usage varies depending on the configuration, but the average CPU usage for CreamOfTheEarth.mod in different situations is shown below:
Mixing mode Mono Stereo 32 KHz 3.6% 4.1% 32 KHz, dynamic 3.0% 3.2% 24 KHz 3.2% 3.5% 24 KHz, dynamic 3.0% 3.2% 16 KHz 2.7% 3.0% 16 KHz, dynamic 2.7% 3.0%
The sources are hosted on Github: https://github.com/stuij/apex-audio-system
Pull requests are welcome, as are forks of course. If you want to report issues, open an issue on the Github project issue tracker.
For a more realtime interactive experience, join gbadev on Discord. There's a good chance there's one or two people there that have used AAS before.
Apex Audio System was made by James Daniels of Apex Systems back in 2003 for his GBA game Payback. Until about 2008, the library underwent several revisions, the latest of which was v1.11. At the beginning of 2021, James was so kind to donate the sources to the community. AAS has since been updated to be used with the lastest devkitArm release.
The current release is v1.13.
Changes in v1.13:
- fixed bug in conv2aas which broke converting wav files to the internal format
- because of above fix, playing the ambulance wav sound in the examples will now work correctly
- modernized and simplified interrupt handling code in examples by basing them on libtonc interrupt routines
- added $TOOLS var at top of top-level Makefile to resolve GBA tools folder to find gbafix
- minor cleanup of licensing messages
- updated documentation
- the release package now also includes the source
- in the release package moved library code+headers, example GBA binaries and conv2aas for both Linux and Windows to the build folder
- cleaned up code a bit to squash error messages, make the code more readable and to fix obvious issues
Changes in v1.12:
- AAS is now open source under a MIT license and is hosted on Github
- code was updated to work with current devkitPro
- examples and code are driven by toplevel makefile
- library and example roms are to be found under ‹root›/build
- updated documentation
AAS is now distributed under the MIT license. For licensing terms, see the LICENSE file in the root of this repo or go to http://opensource.org/licenses/MIT
James only had one request when handing over the sources: that users of the library include a credit to Apex Designs. In essence this is now covered by the MIT license. It's up to you how you want to fill this in, but please be respectful of this requirement.