> ADATA_BITS по умолчанию 16, но можно при компиляции выставить в 24.Это не поможет, если ваша звуковая плата будет в 16 битном режиме.
> Надеюсь,
> этот код даст вам ответ на вопрос; я, к сожалению, слабо
> понимаю, как оно вообще может работать. :-\ Но работает ведь...
Код действительно заковыристый, похоже автор серьезно относится к экономии ресурсов (как cpu, так и памяти). Dithering'а нет. О качестве самого ресемплинга сказать ничего не могу (он должен быть в отдельной функции), но скорее всего будет тоже подход - с минимальным потреблением cpu.
Качественный ресемплинг довольно ощутимо грузит cpu.
Есть хороший сайт, на котором наглядно можно посмотреть качество ресемплинга в различных программных пакетах (как открытых, так и закрытых).
http://src.infinitewave.ca
В идеале должен быть только исходный сигнал - одна яркая линия. Все остальные линии - призвуки порожденные преобразованием. Чем их больше и чем они ярче (громче) - тем хуже.
Преобразование в дешевых кодеках будет примерно равно Secret Rabbit Code (ZOH).
Более дорогие решения с полноценным, но слабым DSP (например старые sb live/audigy) - Secret Rabbit Code (Linear).
Для вашей ситуации, я бы рекомендовал использовать плеер с качественным преобразованием. Например mpv при настройках по-умолчанию при необходимости использует lavrresample (ffmpeg).
Проверить свою систему можно и на слух.
http://knk.bplaced.net/audio/resampling_test_44.wav
http://knk.bplaced.net/audio/resampling_test_44.mp3
Если ресемплинг более-менее качественный, то вы услышите просто тональный набор.
Если ресемплинг имеет серьезные проблемы - то услышите сирену, чем она громче, тем хуже.
Вот пример плохого преобразования при использовании алгоритма zoh в audacity:
http://knk.bplaced.net/audio/bad_resampling_44-48_zoh.wav
> Насколько я знаю, собственно автор считает, что если звук читать или писать
> надо профессионально, то нужно избегать ресемплирования как такового. То есть, если
> писать - то писать в нативном формате, и уже в звуковом
> редакторе, если надо, что-то перегонять. С моей, непрофессиональной точки зрения, выглядит
> достаточно логично. Но истиной в какой-либо инстанции я, конечно, тут не
> являюсь и являться не могу. :)
Все верно, но не будете же вы конвертировать в аудио редакторе каждый mp3 перед прослушиванием.