Host Audio Engine Logic

DSP, Plug-in and Host development discussion.
Benutzername
KVRist
278 posts since 23 Jan, 2008 from Hamburg, Germany

Post Wed Nov 14, 2012 3:18 am

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.)

DougCox
KVRist
40 posts since 26 Feb, 2010

Post Wed Nov 14, 2012 8:10 am

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

obiwanjacobi
KVRian
519 posts since 19 Jul, 2007 from Netherlands

Post Thu Nov 15, 2012 4:35 am

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 :hihi:
Grtx, Marc Jacobi.
Blog | VST.NET | GMPI.NET | MIDI.NET

Return to “DSP and Plug-in Development”