>[оверквотинг удален]
> с аудио сервером.
> Еще настораживает http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/...
> BUGS
> Resampling is low quality; down-sampling especially should be avoided when recording.
> Processing is done using 16-bit arithmetic, thus samples with more than 16
> bits are rounded. 16 bits (i.e. 97dB dynamic) are largely enough
> for most applications though. Processing precision can be increased to 24-bit
> at compilation time though.
> Он хоть с dithering'ом до 16 бит округляет? Если без - то
> это совсем не 97dB dynamic, ибо THD около -80dB будет ... Честно скажу, я ни разу не звуковик, и если разницу между MP3 и оригиналом ещё, может, и услышу, то кто где - не факт, что определю. Тем не менее, вот, что я вижу в функции конвертирования из "нативного" в запрошенный формат (обратная функция содержит аналогичный код):
odata += p->bfirst;
for (f = todo * p->nch; f > 0; f--) {
/* convert adata to u32 */
s = (int)*idata++ + ADATA_UNIT;
s <<= 32 - ADATA_BITS;
/* convert u32 to uN */
s >>= oshift;
/* convert uN to sN */
s -= obias;
/* packetize sN */
for (i = obps; i > 0; i--) {
*odata = (unsigned char)s;
s >>= 8;
odata += obnext;
}
odata += osnext;
}
ADATA_BITS по умолчанию 16, но можно при компиляции выставить в 24. Надеюсь, этот код даст вам ответ на вопрос; я, к сожалению, слабо понимаю, как оно вообще может работать. :-\ Но работает ведь...
Насколько я знаю, собственно автор считает, что если звук читать или писать надо профессионально, то нужно избегать ресемплирования как такового. То есть, если писать - то писать в нативном формате, и уже в звуковом редакторе, если надо, что-то перегонять. С моей, непрофессиональной точки зрения, выглядит достаточно логично. Но истиной в какой-либо инстанции я, конечно, тут не являюсь и являться не могу. :)