Do you know of any .NET library which can decode several types of audio files? Ideally, it should be platform agnostic, so it can be used with .NET and Mono - on Windows and *NIX.
I already tortured Google searching for a library which meets my needs, but unfortunately I could not find anything. So before writing a lot of wrapper classes for GStreamer and friends, I thought I could ask here. :)
Supported audio files should be (at least)
- MP3,
- OGG Vorbis, and
- FLAC (optional).
As the application I would need this for is just for fun, the library should be open source - or at least free. Also, a nag screen displayed to a user would probably be bad or impractical, because I am planning on putting this into a service process.
I would need use this library/these libraries in order to decoding audio files and passing a byte[] to my libOFA wrapper, so that I can produce a MusicDNS fingerprint for it. My experimental application would most likely run on a Linux based server.
There is the ffmpeg library and utilities that converts audio and video formats. Then, couple with the FFmpeg.NET library, you can do the encoding/decoding in .NET. All the formats you mentioned are supported.
The FMOD Ex sound system is a revolutionary new audio engine for game developers, multimedia developers, sound designers, musicians and audio engineers. Based on the years of experience from Firelight Technologies' previous products, FMOD Ex aims to push the capabilities of audio for games, whilst at the same time using minimal resources and remaining fully scalable.
FMOD Non-Commercial License
If your product is not intended for commercial gain and does not include the FMOD library for resale, license or other commercial distribution, then use of FMOD is free. Yes that's right, free from license fees!.
If you are talking about decoding the files to play them (i.e. for listening), I'd suggest jumping into the Windows Media Player SDK.
It will play anything that has a codec installed and doesn't cost anything.
http://msdn.microsoft.com/en-us/library/aa969732.aspx
If you want something closer to the metal (i.e. for learning), you might also check out the Windows Media Format SDK.
http://msdn.microsoft.com/en-us/library/aa387410.aspx
Alvas.Audio is the only product I've ever seen that does this (and I only learned about it from this post). I think the licensing situation with MP3s has hindered the development of .NET products that do this.