Which is why I obey the Microsoft master lords. If you're using one piece of Microsoft software, you're gonna use it for everything. Microsoft C# (wrapper) running Microsoft C++ (libopenmpt) running Microsoft Windows (OS) running MASM (x86).
There's a lot to be said about totalitarian design, you get great things like C#. But then you also have things Microsoft thinks are a great idea, like ASP.NET which came out really bad, but it made the best of the really abstract problem it was trying to solve, as opposed to JSP which is just a huge mess. But when you have everyone and their mother ignoring standards you end up with shit like SQL, where nobody is even CLOSE to the original ANSI SQL spec. You just end up with a horse designed by committee situation.
Anyway, yeah I don't plan on porting this to Mono or something, I'm just going to strictly contain it in Visual Studio running Windows. I don't see any other way of doing it, unless we abstract almost everything, including the wave form generator which would be a pain in the ass. I'm just going to make it use NAudio, since that seems to be the popular solution for playing audio out in C# apps.