Сижу, занимаюсь сабжем :) То, что начиналось когда-то как библиотечка для dithering'a (libSAD: scale & dither), неожиданно для меня самого переросло в одноимённый плеер. Начинал я писать эту либу для предпологаемой интеграции в Audacious, но отказался от этой затеи в связи с необходимостью домать API плагинов и убеждать майнтайнеров в необходимости это делать :) Основная идея в следующем: плагин-декодер запрашивает вывод в своём нативном формате (float, fixed-point (с указанием длины дробной части), signed/unsigned int8/16/24 etc.), который уже без участия декодера преобразуется в выходной формат (16 или 24 bit). Притом этот процесс происходит всегда по кратчайшему пути, который выбирается динамически исходя из необходимости минимизировать погрешности округления. Именно на этом этапе сигнал также масштабируется (software volume + Replay Gain), и, естесственно применяется dithering. Вот недавно попробовал приделать некоторую визуализацию, что вылилось в сражение с дико тормозящим Cairo...
В общем, работа далека до завершения: версию 0.0.1 выпущу, думаю, только осенью (скоро уезжаю, так что летом работать не смогу)...
PS: API плеера позволяет приделывать к нему и другие интерфейсы, например, имеется, не показанная на скриншоте, консольная версия.
>>> Просмотр (1280x1024, 262 Kb)