I've no experience with mono on a Mac but at least under Linux you'll get a long way with it.

Don't worry much about speed issues. .NET applications use optimized machine code on execution, just like any C++ application. The major difference is that it will be compiled just before it's executed by the user and not when the developer presses F7.

I've created a rendering engine with realtime raytracing in plain C# and it was not much slower than the highly optimized C++ version.

Just try to minimize PInvoke overhead whenever you can and try to avoid the garbage collection in realtime threads if possible (reuse objects, buffers etc.)

You could look at my program PianoRollComposer's source code. It's in C, for Windows, but it's very simple and should be easy to follow. Search for VSTthread. It sends MIDI input to a VST plugin and then sends the wave data to ASIO for audio output. http://jdmcox.com

Benutzername wrote:I've no experience with mono on a Mac but at least under Linux you'll get a long way with it.

Don't worry much about speed issues. .NET applications use optimized machine code on execution, just like any C++ application. The major difference is that it will be compiled just before it's executed by the user and not when the developer presses F7.

I've created a rendering engine with realtime raytracing in plain C# and it was not much slower than the highly optimized C++ version.

Just try to minimize PInvoke overhead whenever you can and try to avoid the garbage collection in realtime threads if possible (reuse objects, buffers etc.)

+1

My thoughts exactly! I am also a lot more productive with C# compared to C++ - but thats just me