On Mon, 2009-08-10 at 17:40 -0400, David Robillard wrote:
Software is
the free 'C for CUDA' compiler and SDK from Nvidia
Latency low enough to make realtime use feasible?
What I do is - imagining that I am a Jack client with near zero
processing time - what I do is that I 'receive previous/send next/launch
kernel' in one go. Current process is in principle a 192 voice Minimoog
style polysynth with 4 external audio inputs + a ton of midi in. Mixdown
to 16 stereo (midi)channels, further mixdown to 8 out (1 stereo 'house'
+ 3 stereo 'fx send') Sorting the dynamically assigned voices to their
respective channels is currently the main bottleneck - or so it seems.
With buffersize 3 × 1.3 ms @96KHz I have clockcycles to spare and can at
ease display a stream of video (320×200) simultaniosly for doing a
soundtrack to some movie or something. And more ...
With buffersize 3 × 0.7 ms .. I'll have to back off somewhat regarding
number of voices.
With buffersize 3 × 0.3 ms .... nope, can't do that, sorry! (but still
works for code on the host)
The Jack interface is not really here yet though. It must be understood
that there can only be one transfer to the device for each run which
must include all inputs, otherwise you'll get absolutely nothing done.
That transfer can OTOH be pretty huge, way more than I personally have
any use for at this point in time.
64in + 64 out @96KHz + lots of controllers, left in some place we all
(as well as Jack) knows about would not be asking for too much from the
hardware. That is not the problem.
The general hostility against non-GPL software is tougher though, and
unfortunately makes me feel like - by presenting these ideas - like I've
just dressed up in pink rubber-suit with a sign on my back saying "puke
on me" ...
Oh well, you'll have to wipe off your own monitors when you are done :-D
/j