Why does the standard waveform from audio out get distorted when I reduce the amplitude?
Primarily because the documentation is poorly written. If you want to play at half amplitude you need to use

soundsc(y,48000,[-2 2]);


The range argument is the input amplitude range that gets mapped to the maximum available range of the sound card. So if the max of your input exceeds the max in the range argument, you will get clipping.