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.)
Host Audio Engine Logic
-
- KVRian
- 537 posts since 23 Jan, 2008 from Hamburg, Germany
-
- KVRist
- 40 posts since 26 Feb, 2010
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
-
- KVRian
- Topic Starter
- 522 posts since 19 Jul, 2007 from Netherlands
+1Benutzername 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.)
My thoughts exactly! I am also a lot more productive with C# compared to C++ - but thats just me