2

I am wanting To create a software based multi-track recording studio using visual studio 2010 and C#.NET. I have two questions:

  1. When it comes to good performance, I am wanting to know what is the best programming language in visual studio 2010 to program a multitrack software recording studio?

  2. I want to program my own vst plugins. What is the best programming language to use in visual studio 2010 to accomplish this task?

I have read about vst.net so I am aware of it and have looked into it.

Thanks for any answers or comments to my questions!

Frekster
  • 1,138
  • 1
  • 14
  • 32

2 Answers2

2

Please have a look at http://vstnet.codeplex.com/

VST.NET allows VST Plugin developers to write Plugins in any .NET language. It makes the transition between the C++ and .NET world smooth and easy. The Framework built on top of the interop layer provides a clear and structured architecture accelerating development considerably.

Jeremy Thompson
  • 61,933
  • 36
  • 195
  • 321
  • Hi Jeremy and thanks for the reply. Yeah, I seen vst.net prior to my post. The only concern I have with vst.net is it is marshaling back/forth from managed code to unmanaged code and that has a performance penalty. I don't know how the performance will be, say, if I have 20 tracks playing at once and some vst plugins created with vst.net on each track - vst.net reverb, vst.net delay, vst.net compression, etc. do you know if there is any performance tests done on vst.net within a multi-track software recording product? – Frekster Apr 20 '12 at 04:03
  • I had a quick look at the Tests in the source code of VST.Net and could only see a couple of Unit Tests, no integration or perf tests. Hopefully other people in the community can comment on what the perf will be like on a 20 track player. With the marshaling IMHO it wont be that much of a performance overhead, especially if you use Blittable types (basically value types that have a common representation in both managed and unmanaged memory): http://www.guidanceshare.com/wiki/Interop_(.NET_1.1)_Performance_Guidelines_-_Marshaling and http://msdn.microsoft.com/en-us/magazine/cc164193.aspx – Jeremy Thompson Apr 20 '12 at 04:19
  • 1
    If you're really concerned about the performance penalty, man up and write it in C++. Otherwise, code first and then benchmark it to determine if performance is really an issue. But trust me, the CPU hit required to do your actual DSP processing is going to be much higher than your plugin's wrapper. – Nik Reiman Apr 20 '12 at 07:37
  • 1
    VST.NET comes with several working sample plugins. I suggest you take the delay sample plugin and rig up your DAW with a couple of those. Sure the delay is not heavy DSP processing but you can get an idea of any overhead that is involved. – obiwanjacobi Apr 21 '12 at 09:30
  • Thanks Nik and obiwanjacobi for the feedback. I will keep your guys suggestions in mind and try them out. – Frekster Apr 21 '12 at 13:43
0

I found that the .net 4 framework comes with decent support for PARALLEL PROGRAMMING for c#.net and vb.net. This reduces my concerns of poor performance for digital signal processing (DSP) when using c#.net for the project. I think using vst.net along with PARALLEL PROGRAMMING I should be able to do this project in vs 2010 using c#.net. If there are still some performance issues in the application I will take those on a per item basis and may have to program a c++ dll to handle those at a lower level. Thanks everyone for the feedback!

Frekster
  • 1,138
  • 1
  • 14
  • 32