title: Analyzing audio to create Guitar Hero levels automatically
body: <p>I'm trying to create a Guitar-Hero-like game (something like <a href="http://www.kongregate.com/games/Shinki/super-crazy-guitar-maniac-deluxe-3" rel="nofollow">this</a>) and I want to be able to analyze an audio file given by the user and create levels automatically, but I am not sure how to do that.</p>
  
  <p>I thought maybe I should use BPM detection algorithm and place an arrow on a beat and a rail on some recurrent pattern, but I have no idea how to implement those.</p>
  
  <p>Also, I'm using NAudio's BlockAlignReductionStream which has a Read method that copys byte[] data, but what happens when I read a 2-channels audio file? does it read 1 byte from the first channel and 1 byte from the second? (because it says 16-bit PCM) and does the same happen with 24-bit and 32-bit float?</p>