Remove high quality mode from codebase #7219
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Many, many years ago (93a456c), high quality mode was merely disabled after it was noted that it can be problematic (which in fact it is) rather than being completely removed. Remove it from the codebase so we can get rid of some code and clean things up a bit.
This feature (and
qualitySettings
as a whole actually) is problematic since the settings are not applied for all of our resampling states, and the code currently only applies it for the resampling state in the current audio device (which is only utilized when we are moving from one sample rate to another and does not apply for AFP and sample tracks for example, so essentially the effect of higher quality interpolation is not even observed).There are other reasons as well (having to reopen a new entire audio stream each time the quality changes, which does not seem like a good workflow, as well as the fact the oversampling multiplier is applied twice, since the sample rate of the audio device is set to
AudioEngine::processingSampleRate
, which is the original rate with the multiplier applied, so calls toAudioEngine::processingSampleRate
would get a sample rate ofdeviceSampleRate * multiplier * multiplier
).Since its disabled for the most part, its mostly just in the way at this point (regardless of all the problems it would bring if it was implemented in full effect), so there's no need for it to be in the codebase.