I fixed a bug in my write routine that made it allocate and use all space in the buffer no matter how little you wrote. Then fixed the bug I created there (it turns out get_from_user returns the number of bites NOT written). I learned to use audacity to convert files and have now played Weird Science from Oingo Boingo, or at least the first buffer-full of it, by dd'ing my raw file to /dev/analog0
PS. It also sounds kinda demonic if you converted the audio sample, but not the project rate in audacity and end up playing at half speed with half your samples missing.