Yeah, the midi output thing is cool, but it would be cooler if it just played back a sample of the VB.
Now, on the px/ms thing....Google search didnt help me so I am going to try to logic this out... Maybe you can use this to figure it out.
You can make the note lengths however you want them i would assume, you would just need to handle it so that if the note is X length in px, play the sound for Y ms.
So what you would need to do is get a default length, such as the length of a quarter note, which I will refer to as L. Then, you need to determine how long that length is going to play for, based on the tempo. This length of time will be referred to as T. You can get this length of time by dividing 60,000 by the current BPM.
So then to make a half note, set it up to where if the length of the note == L * 2, have it play for T * 2. There is probably a practical way to set it up to allow for infinite expansion in both directions.
You would also want the vertical line thingy to move L px every T ms. I guess you would use a timer object for that, or at least, thats how they taught me to do it in VB...
Thats what I could come up with, also, I apologize if I misunderstood the request.