| Ross Bencina wrote:
> I don't know what multitasking code is currently in the mac build... but a
> long time ago when I built the CsoundRB binaries... I used a method that
> called GetNextEvent() or similar every processing loop (or atleast
> sometimes) to allow background processing. I don't know if this method is
> being used at the moment - but if it is I could believe that this would
> cause a 25% performance degredation.
This is correct. In order to allow the transport control which allows
you to pause and listen to a partially rendered score, we had to allow
the MacOS some time to process events. This also means that the MacOS
has time to do lots of other things, which will depend upon your
specific setup, but may include checking to see if you inserted a
floppy, updating the blinking time clock on your menu bar, lighting that
annoying drive monitor light that Norton Utilities installed for you
without asking, etc.... So it will be slower than it would be without
any user interactivity. And how much slower will vary from machine to machine.
As I have mentioned before, the solution is to run inside an interrupt,
which would bring the latency way down and the speed up. But the csound
core is simply not written in such a way as to allow the Mac to run it
inside an interrupt, without major revisions.
--
Mike Berry
mikeb@nmol.com
http://www.nmol.com/users/mikeb
|