mackron / dr_libs

Audio decoding libraries for C/C++, each in a single source file.
Other
1.24k stars 205 forks source link

AIFF Decoder #222

Closed paulreimer closed 1 year ago

paulreimer commented 3 years ago

miniaudio is such a well-designed & implemented audio lib -- it has almost everything I can imagine using for my project(s).

One additional thing that would make it perfect for my use-case (a new piece of DJ software) would be AIFF file support.

I'm not sure if dr_libs would be a better repo to contain this issue, or if an external library approach for AIFF decoding would be the better way to go (similar to *.ogg support via stb_vorbis). As well, I'm not up-to-date on any licensing issues that might prevent adding support for AIFF/AIFC files.

I might be able to make an attempt at adding support for this (with some guidance 🤞 on how/where to start, and quite a bit of time learning, to reach the quality level of these repos).

mackron commented 3 years ago

This is something that's been requested before, and I'm open to the idea, but it's fairly low on my (long!) priority list. I was thinking it might be best to just add it straight to dr_wav from the dr_libs repository and just have it work seamlessly. dr_wav already supports variants of WAV for proper 64-bit support (RF64 and Wave-64), so I figure adding AIFF as just another variant might work? I'm not sure if this is necessarily the best option, and I haven't made a final decision, but it'd at least avoid the need to maintain yet another library.

If you need it in miniaudio right now, you can actually implement a custom decoder to support this. See the custom_decoder example if that's something you might find useful. I can give you some guidance on this if that's something you're interested in.

mackron commented 2 years ago

Transferred this one over to dr_libs.

mackron commented 1 year ago

I've gone ahead and added support for decoding AIFF/AIFC files to dr_wav. It will be amalgamated into miniaudio very soon. Note that it only supports decoding of audio data. It does not support parsing of metadata, nor does it support writing.

This is in the dr_libs dev branch.

mackron commented 1 year ago

This has now been amalgamated into miniaudio's dev branch. I'll go ahead and close this one now.