Qbix wrote:well our pc speaker emulation keeps it's last value active. (so that the low part). Then it detects that it hasn't changed in a "long" time and turns itself off. (which results in a jump to zero).
The correct image would be even a bit different.
It would be a slowly converging line towards zero. so when it turn off there is no click.
That would work if the converging line doesn't end up making a "humming" artifact. SpeakerCorrect2.png shows what I believe you're talking about.
Another way to fix the popping would be to do what the Tandy 3-voice emulation seems to do--place the zero point in the center of the waveform. This would eliminate the click, as well as the need for a converging line. SpeakerCorrect3.png shows what this would look like.
Edit:
Qbix wrote:well our pc speaker emulation keeps it's last value active. (so that the low part). Then it detects that it hasn't changed in a "long" time and turns itself off. (which results in a jump to zero).
So you're sort of saying that the speaker emulation code places the silence at either the top or bottom of the waveform, depending on when the silence occurs? I'm asking this because I have never seen the silence happen at the top of the waveform. Is it even possible to perform any of my suggestions without a complete overhaul of the code?
Edit again: Just saw wd's post. I'll let this rest.