Patch "audio: change naming scheme of FLOAT_CONV macros" and
patch "audio: consistency changes" should have been a review
for ed2a4a7941 "audio: proper support for float samples in
mixeng", but I was too slow.
Patch "audio: change mixing engine float range to [-1.f, 1.f]"
definitely needs to be tested by macOS users. I verified
PulseAudio, SDL2 and ALSA (actually libasound) work, but I
don't want to introduce a regression for CoreAudio. I spent
some time on https://developer.apple.com but I couldn't find
the answer if CoreAudio uses the [-1.f, 1.f] range too. The
results from my favorite search engine suggest the answer is
yes.
@Howard:
I need your help once again. Can you please test if you can
hear (or see) clipping with my patches? Don't forget to set all
volume controls in the guest and on the host to 100% or 0dB to
get a reliable result. Compared to qemu without these patches I
expect the playback volume is a bit louder, but there's still
no clipping.
Volker Rümelin (5):
qapi/audio: add documentation for AudioFormat
audio: change naming scheme of FLOAT_CONV macros
audio: consistency changes
audio: change mixing engine float range to [-1.f, 1.f]
audio: fix saturation nonlinearity in clip_* functions
audio/mixeng.c | 26 +++++++++++++-------------
audio/mixeng_template.h | 22 ++++++++++------------
qapi/audio.json | 14 ++++++++++++++
3 files changed, 37 insertions(+), 25 deletions(-)
--
2.16.4
Hi,
I applied these to Mark's screamer branch to create a new OSX build. Testing was done by playing system sounds, and an MP3/Internet radio with QuickTime/iTunes. With or without 6dB, the max volume is way out of my comfort zone. I hear no real difference in quality compared to a build from the current screamer branch. If any, it might sound a bit better. That means there still is some minimal crackling (clipping?) in the high volume parts of the audio I played with OSX guests, not Mac OS 9.x guests.
So as there is no regression,