It looks like some of the options will do what you need, but I will answer your requirements for NAudio
low latency (immediate start of playback)
No audio library will start immediately. NAudio can easily work with delays of about 50 ms using the WaveOut API. Perhaps faster if you use WASAPI
code must be native C # (.Net 4.0)
NAudio code is native C # and contains shells for the Windows API
should be combined with WPF
NAudio works great with WPF
multiple simultaneous playbacks
Multiple playbacks supported. You can additionally create a mixer to have one playback and mix different inputs and outputs.
no restrictions on sound buffer manipulation
This is a great advantage of NAudio over some of your other options. You have full access to the data samples and you can manipulate the way you like.
guaranteed future (I want to use something that will support in a few years.)
There are no guarantees in open source software. But with its open source code, nothing prevents you from fixing bugs yourself. NAudio has been around for 10 years.
the sound player module should be a simple class (= c # code) and not an encapsulated dll
Well, you can copy the code into your own project, but there are quite a few helper classes, so it may be easier for you to just use the DLL.
source share