title: Best way to start audio programming?
body: <p>I want to start programming a synthesizer. I reckoned that I would need to use the sound card, so I started to google. After a while, discovered many options:<br>
    - WaveOut API - I've heard that this one is outdated, so I scrapped this one.<br>
    - WASAPI - Seemed a little bit too low level for what I wanted.<br>
    - DirectSound, XAudio, XAudio2 - Seem reasonably fine, but I want to have as little latency as possible.<br>
    - Asio - Seemed like exactly what I want!<br></p>
  <p>I did find a couple of tutorials and source code to get me started on audio programming. Sadly, the <a href="http://www.tmsoft.com/tutorial-sound.html" rel="nofollow noreferrer">only one I got to work</a> uses the waveOpen API, which I don't want to use.</p>
  <p>Then I found <a href="http://www.codeproject.com/Articles/24536/Low-Latency-Audio-using-ASIO-Drivers-in-NET" rel="nofollow noreferrer">this tutorial</a>, which seemed perfect for my needs.
  This tutorial is, suprisingly, the only usable (well, not that usable since I can't get it to work) resource I can find on using ASIO. Thing is, I can't get it to work. When I run the demo I get a 'Application has stopped working'-error, followed by the console output:</p>
  <blockquote>
  <p>Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'BlueWave.Interop.Asio, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format. File name: 'BlueWave.Interop.Asio, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'   at BlueWave.Interop.Asio.Test.TestConsole.Main(String[] args)</p>
  <p>WRN: Assembly binding logging is turned OFF.To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].</p>
  </blockquote>
  <p>When I try to compile, I got a whole lot of <strike>Rosie</strike> errors:
  <img src="https://i.stack.imgur.com/2t3Ip.png" alt="the errors I get, duh" /></p>
  <p>This is after I manually placed msvcr90.dll and msvcd90.dll in C:\Windows\System32 (I couldn't get them to install any other way). Ow yeah, and of course I installed ASIO4ALL before all this.</p>
  <p>So, this is not really a question, but I'm merely asking for general advice. I think it shouldn't be THAT hard to get asio working, but at the same time a link to another resource for learning the ASIO API would be great, as well as any other advice. (Maybe it's easier to just go and try to get Xaudio2 working? I don't know...)</p>
  <p>Thanks in advance, and sorry if you think my question is a long or boring read!</p>
  <p>EDIT: Thanks for the reactions. I have come across the <a href="http://www.tropicalcoder.com/ASIOHostDLL.htm" rel="nofollow noreferrer">ASIOHost API by TropicalProgrammer</a>. No idea if it's any good, but it looks promising. I'm looking into it currently. There may be better options, but I have to admit that I got my mind set on ASIO currently.</p>