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
- ✅
float
anddouble
support - ✅ Encoding with dithering when reducing bit-depth
- ✅
nothrow @nogc
API - ✅ Archs:
x86
/x86_64
/arm64
Changelog
🔔 audio-formats
v3
- Complete removal of exceptions. The API is now 100%
nothrow @nogc
.AudioFormatsException
doesn't exist anymore. - BREAKING Instead, use
.isError
and.isValid
to check for errors.
🔔 audio-formats
v2
- Doesn't depend upon
dplug:core
anymore. - All exceptions thrown by
audio-formats
are 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-formats
as dependency to yourdub.json
ordub.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
framesRemainingInPattern
is unimplemented for XM currently.
- Registered by ponce
- 3.0.2 released 9 months ago
- AuburnSounds/audio-formats
- BSL-1.0
- Dependencies:
- none
- Versions:
-
3.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
-
2 downloads this week
-
7 downloads this month
-
552 downloads total
-
- Score:
- 0.9
- Short URL:
- audio-formats.dub.pm