Has anyone looked at the possibility of using CUDA to benefit from the PC's graphics card (NVidia DirectX10 cards) as a way of supercharging fluidsynth?
CUDA allows an application to use the graphics processor and graphics card memory as fully accessible device allowing data to be bussed to and from the card and allowing parallel process applications to be sent to the card for it to run.
You can use all the parallel processors on the GPU (128 on most of the cards - with as many as 512 when using 2 9800 GX2 cards) to do all the hard work.
I don't know what the biggest overhead in fluidsynth is (cos I have no knowledge of the code-base) but I'm guessing you're probably modulating wav files
and mixing them together. Does fluidsynth just fire out 1 pre-mixed stereo audio stream - or does it send multiple streams for the soundcard to mix? I don't understand how this works.
Anyway whether its the hardware or software that's doing the hard work, CUDA would allow a massive speed-up.
You could use 2 processors per polyphonic note (for stereo) giving you 64 note polyphony for the standard cards and 256 notes for a multiple SLI configuration. [SLI is a Motherboard feature that allows multiple card to be installed in one PC on different PCI-E busses and it manages the distribution of all processing]
Also the clock speed of these processors is 1500 MHZ for most of the enabled cards. Processing sound would be much faster than realtime per processor.
The effective computational power of just one of the high end cards is 768GFlops ... that's over 1.5TeraFlops when using 2 cards in an SLI system.
There will be quite a few people who have these cards already installed in their PCs (if bought recently).