audio-formats 3.0.2
Streaming decoding support for popular audio formats.
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
audio-formats
audio-formats is meant to be the easiest package to load and write sounds in D.
Features
- ✅ Decode from WAV / QOA / MP3 / FLAC / OPUS / OGG / MOD / XM
- ✅ Encode to WAV / QOA
- ✅ File and memory support
- ✅ Seeking support
- ✅ Chunked support
- ✅
floatanddoublesupport - ✅ Encoding with dithering when reducing bit-depth
- ✅
nothrow @nogcAPI - ✅ Archs:
x86/x86_64/arm64
Changelog
🔔 audio-formats v3
- Complete removal of exceptions. The API is now 100%
nothrow @nogc.AudioFormatsExceptiondoesn't exist anymore. - BREAKING Instead, use
.isErrorand.isValidto check for errors.
🔔 audio-formats v2
- Doesn't depend upon
dplug:coreanymore. - All exceptions thrown by
audio-formatsare nowAudioFormatsException. They must be clean-up withdestroyAudioFormatException. - v2.1 QOA format decoding support (https://github.com/phoboslab/qoa). Note that the QOA bitstream isn't finalized, and will change.
- v2.2 QOA format encoding support.
🔔 audio-formats v1
- Initial release.
How to use it?
- Add
audio-formatsas dependency to yourdub.jsonordub.sdl. - See the transcode example for usage.
What formats are supported exactly?
| Decoding | Encoding | Seeking support | |
|---|---|---|---|
| 📀 WAV | Yes | Yes | Sample |
| 📀 MP3 | Yes | No | Sample |
| 📀 FLAC | Yes | No | Sample |
| 📀 OPUS | Yes (LGPL) | No | Sample |
| 📀 OGG | Yes | No | Sample |
| 📀 QOA | Yes | Yes | Sample |
| 📀 MOD | Yes | No | Pattern+Row |
| 📀 XM | Yes | No | Pattern+Row |
Some of these decoders were originally translated by Ketmar, who did the heavy-lifting.
License
- ⚖️ Boost license otherwise.
- ⚖️ MIT license when including QOA.
- ⚖️ LGPL v2.1 for OPUS. (use DUB subconfigurations) to choose, default is boost.
External links and references
- https://github.com/Zoadian/mp3decoder
- https://github.com/rombankzero/pocketmod
- https://github.com/Artefact2/libxm
Ultra secret options
-The following version identifiers can be used to enable/disable decoder level features
| Version Identifier | Feature |
| AF_LINEAR | Use linear sampling for MOD modules instead of Amiga sampling | | | |
Bugs
framesRemainingInPatternis unimplemented for XM currently.
- 3.0.2 released a year ago
- AuburnSounds/audio-formats
- BSL-1.0
- Dependencies:
- none
- Versions:
-
Show all 34 versions3.0.2 2024-Feb-11 3.0.1 2023-Sep-30 3.0.0 2023-Sep-30 2.2.1 2023-Jul-07 2.2.0 2023-Apr-16 - Download Stats:
-
-
0 downloads today
-
3 downloads this week
-
13 downloads this month
-
719 downloads total
-
- Score:
- 1.3
- Short URL:
- audio-formats.dub.pm