I only had a few minutes to spend looking at this (gotta do real work today), but the attached code should get you somewhat better sound. Not that I changed the data type to single, and that the range is from 0-1 (I think that's what it needs to be when a real number). I also reduced the write frequency by pulling out whatever is in the queue and sending all of it.
Maybe this will get you a new starting point.
I think I am facing similar problems here in LabVIEW 8.6.1. I am trying to stream blocks of data from a cRIO to the sound card on my PC, but in every new iteration of my loop, when the buffer is filled, there is a gap in the audio. If I concatenate the audio to an array and play it outside the main loop it works fine.
I also tried the built in "Sound file to sound output" example, which works fine for sample.wav, but has problems playing larger audio files. This makes me suspect that write sound uses up a lot more resources than it should need. I'm an FPGA designer and quite new to labVIEW so it could as well that I have a poor understanding of the memory managment in LabVIEW.
I am ultimately trying to do something very similar to this http://vishots.com/2008/11/07/labview-based-electric-guitar-effects-pedals so if anyone knows how to get into contact with that guy, it probably would also help me.
I can provide my VI but right now it is a bit messy.
A quick heads up, generally, you will get more replies if you post in a new forum and then reference back to an old post using a link. Also, since this is outputting using a cRIO, there will be more issues that are fairly unrelated to the rest of this thread.
Are you programming in the real time environment, or down on the FPGA? Are you emptying your buffer every iteration? This is a little outside of any experience I have, but posting to a new thread will get a number of people to take a look at this and offer their ideas.