AudioIO.jl
AudioIO.jl copied to clipboard
Use Wav.jl for opening .wav files
Either we should assimilate WAV.jl or just include the package. Perhaps we could check dependencies and just put up a warning if the library dependencies aren't present, that way the package is still useful in a pure-julia context.
https://github.com/dancasimiro/WAV.jl
include would be better than assimilate, as .wav files are used for storing time series data that aren't audio.
@ssfrr Is there anything that I could do to make this easier? I am working towards a new release.
I don't think there's anything in particular that makes it difficult. I just need to add some logic that looks at the filename and uses Wav.jl if it's a "*.wav" file and libsndfile for everything else. When I dig into it I can let you know if there's anything that makes it tricky.
In general I would like to find a way to make the packages complimentary rather than duplicating functionality, particularly for the interactive playback. Is the main reason you implemented the AudioQueue and PulseAudio interfaces rather than using AudioIO just licensing because of my inclusion of libsndfile?
I was not going to implement wavplay, but someone contributed the PulseAudio implementation for Linux. I implemented AudioQueue because I wanted to support MacOS X. I tried to use AudioIO first, but I ran into some complications. I think that I had trouble specifying the sample rate. So, I decided to use AudioQueue since it ships with the operating system.
The wavplay interface is as simple as it gets, so I convinced myself that the complexity of another package wasn't worth it. On the other hand, wavplay doesn't work on Windows.