It seems that now we are getting more and more close to the interesting points of a convolution application.
There are already different required features for the system and I'm very curious how all of them will be carried out.
So Hulkss has shown his 19 filters - 37 paths example. The high number of filters is necessary by multichannel or multiyway systems or even more by combined multichannel/multiway system. The users expect the best accuracy, thus double point precision is the basic layout. Of course it is a question to use the best available mathematical methods to keep the CPU load as low as possible and to get the realtime factor as high as possible. This may include using a sophisticated and specialized math library like FFTW or Lapack (IMHO it will be very difficult to create a better FFT-solution).
As I've already written in a previous
message people expect individual filters for different samplerates and also the possibility to switch online between different filters.
E.g. the Hulkss example would thus result in a managment of 342 filters in total (19 filters x 6 samplerates x 3 filterbanks).
Typically we use 65536 filter taps with 44.1 and 48 kHz samplerate. To keep the frequency resolution the same a 88.2/96 kHz filter requires 131072 taps and a 176.4/192 kHz filter need 262144 taps. So with high resolution audio and non-compromise filters we have a real challenge for the convolution engine.
Oh, we can even easily enlarge the challenge: this will happen in case of a zero-latency convolution with non-uniform partition sizes running in multiple threads.
Last but not least :
If beside the "normal" playback and streaming MC would manage the handling of external sound signals (soundcard input) then we have the ultimate playback engine
But I guess this will take some time. A "simple" convolution is developed quickly. But a sophisticated solution takes some more time.
PS: I have forgotten a wish. If MC also would behave like a virtual audio driver then it can get the sound stream from other applications, theoretically even from competing players. Imagine a Foobar playback by the MC audio engine
With a virtual audio driver a bitperfect playback is a new challenge as the driver needs to collect the data before the kmixer.