⚠️ Forum Maintenance: Feb 6th, 8am - 14pm (UTC+2)
QAudionInout/Output and 24 bit audio
Has anyone had any luck getting those classes to work with 24bit audio?
The device info says only 8 and 16 bit are supported, but the actual device supports 24bit audio just fine, which leads me to believe the Qt classes are far from polished, a suspicion reaffirmed by the fact that when I pass a 24bit format to nearestFormat() it returns a 8bit format, even when 16bit is supported. And I always thought 16 is closer to 24 than 8...
If you're on Windows AFAIK Qt uses the legacy "Windows Multimedia Extensions":http://en.wikipedia.org/wiki/Windows_legacy_audio_components#Multimedia_Extensions_.28MME.29 to detect supported formats. This API supports only up to 16 bit and only up to 44.1 kHz.
Why Qt uses that? I don't know, but multimedia on Windows are a total mess even outside Qt. Microsoft can't seem to make its mind and the "officially recommended" API changed violently over the years. My guess is that MME is the safest, though not feature rich, common denominator.
If you're not on Windows then sorry, I don't know ;)
Hmm, if it is MME that is being utilized, then I guess it makes no sense to use low level audio, since it will not offer latency benefits.
It would be nice if Qt supported DirectSound and WASAPI and provided some choice which one to use.
Since Vista DirectSound is layered on top of WASAPI and actually deprecated (although still widely used). It's not available on Windows CE and Windows Runtime, which Qt supports, so it would be wasteful to invest there. WASAPI on the other hand is not available on XP, which is supported too. I'm not sure what's the story with using these on MinGW, which is also supported. It's like I said, a mess.
I don't think anyone is willing to maintain multiple backends for this. Qt already supports plethora of configurations on Windows and that's a drag. Just look how much confusion the ANGLE/OpenGL split did and how long it takes to piece it back together.
Too much work for too few people affected I think. But that's just me saying. You might get a different story from the actual devs on the mailing list.
Well, it is not a big deal, after some pain I got RtAudio working with Qt with ASIO and WDM/KS. RtAudio has backends for linux and mac too.