Blargg's Audio Libraries |
Home | News | Info | Code | Misc | Contact | |
These libraries perform audio synthesis and are based on an efficient band-limited sound algorithm that provides good sound quality in several game music players and NES emulators.
The libraries are written in portable C++ (some provide a C interface as well) and licensed under the GNU Lesser General Public License (LGPL). They should work well even with older C++ compilers and have been compiled on many platforms: Windows, Linux for several architectures, Mac OS X, Mac OS Classic, MorphOS (Amiga), PlayStation Portable, GP2X, and Nintendo DS. An archive of previous releases is available in case the latest version doesn't work. Post to the discussion forum for help or to give feedback.
Game_Music_EmuGame_Music_Emu emulates game music in several popular file formats:
Game_Music_Emu works in C and C++ and has been made very easy to use. Sound is generated using high-quality yet efficient band-limited synthesis. Substantial documentation and examples are provided, including a mini player using SDL. Modular design gives flexibility and allows easy elimination of unused features and music formats. Game_Music_Emu-0.5.2.zip (C and C++)
Patches
This library is used in: foo_gep (Foobar2000), Game Music Box (Mac Classic/OS X), Audio Overload (Windows, Linux, OS X), Audacious Media Player (Linux), Fox Audio Player (Linux, Windows), Geronto.player (Amiga), OldPlay (GP2X), ZsnexBox (Xbox), Modo (PSP) Blip_BufferBlip_Buffer implements an efficient band-limited sound buffer for high-quality emulation of sound chips. After setting the source clock rate and output sample rate, sound waves are made by specifying the time points where amplitude changes occur. Samples can be read from the buffer at any time. It also supports adjustable low-pass filtering (treble) and high-pass filtering/DC removal (bass). Blip_Buffer-0.4.0.zip (C++)
This library is used in: Mednafen, FamiTracker (Windows), and the sound libraries on this page Nes_Snd_EmuNintendo NES 2A03 APU sound chip emulator. Nes_Snd_Emu-0.1.7.zip (C++)
This library is used in: Nemulator (Windows), aNESe (Windows), Reminesce (Windows), Game_Music_Emu (above) Gb_Snd_EmuGame Boy PAPU sound chip emulator. Gb_Snd_Emu-0.1.4.zip (C++)
This library is used in: Mednafen, VBA-M (Windows, Linux), Game_Music_Emu (above) Sms_Snd_EmuSega Master System SN76489 PSG sound chip emulator. Supports Game Gear stereo channel assignment register. Sms_Snd_Emu-0.1.1.zip (C++)
snes_spcSuper Nintendo (SNES) SPC-700 APU emulator and S-DSP emulators. Includes full APU emulator with save state support and SPC music file dumping. Also includes two S-DSP emulators that can be used on their own: one highly accurate, the other three times faster. The DSP emulators are based on past research by others and hundreds of hours of recent research by me. The accurate DSP passes over a hundred strenuous timing and behavior validation tests that were also run on the SNES. As far as I know, it's the first DSP emulator with cycle accuracy, properly emulating every DSP register and memory access at the exact SPC cycle it occurs at, whereas previous DSP emulators emulated these only to the nearest sample (which occurs every 32 clocks). snes_spc-0.9.0.zip (C and C++)
|