Use a noise generator in read and write tests, instead of sin/cos (which vary slightly by platform)
Add mono tests (before we only tested stereo)
Remove padding from raw format. The wav format pads the file to an even number of bytes. There's no reason to do this for raw files. In fact, if we do, the reading/writing is no longer bijective, since we can't tell how long the original data was (due to lack of a header telling you how many samples there are). This bug wasn't noticed before because we were only doing stereo tests, which have 2 channels, so are always a multiple of 2 bytes.