Вижу,здесь тоже баталии о форматах. Кратко,чтобы не затевать больших дискуссий.
1. Процессоры Intel давно имеют 32-разрядные форматы представления данных, как целочисленные (fixed), так и с плавающей запятой (float), давно имеют встроенные матпроцессоры, всегда работающие с форматом float, появилась возможность работать с 64-bit fixed форматом.
2. Переход на 32-bit float сам по себе не дает преимуществ перед 32 fixed, при условии, что вычисления в 32-fixed реализованы грамотно, а это требует усилий и знаний теории дискретных операций. По сравнению же с 16-bit fixed формат 32-bit float всегда имеет преимущество, за исключением особо контрастных случаев очень тщательной реализации в 16-bit fixed и грубых ошибок при реализации алгоритма в 32-bit float.
3. К сожалению, времена тщательной разработки аппаратных реализаций, когда в распоряжении программистов были только 16-bit/24-bit fixed DSP, требовался грамотный подход к выбору алгоритмов, масштабированию данных/промежуточных результатов, применения поблочно-плавающих форматов, т.е. ко всему тому, что ведет к снижению погрешностей, ушли. Львиная доля современных плагинописателей даже не пытается реализовывать весь процесс вычислений в формате 32-bit/64 бит fixed. Такие вычисления принципиально будут выполняться гораздо быстрее, т.к. сумматор и матричный умножитель работают как жесткая электрическая схема, а вычисления с плавающей запятой всегда требуют несколько стадий выполнения по небольшой, но все же программе вычислений, в которой само по себе суммирование/умножение являются одной из стадий. Операция деления в алгоритмах используется редко, в некоторых ее нет вообще, в других - заменена умножением на обратную величину.
Но писать плагины таким образом невыгодно по экономическим соображениям, проще применять 32-bit/64-bit float и предложить пользователю купить более мощный PC. Поскольку реально ни с какого АЦП (максимум- это 22 действительных бита в лабораторных условиях сродни поискам гравитационных волн) не будет больше чем 15-17 действительных бит, то в большинстве случаев достаточен 16-bit fixed формат для записи входных данных, с отбросом младших разрядов АЦП, конечно, с максимальным динамическим диапазоном, настроенном органами регулировки в АНАЛОГОВОЙ приемной части и на выходах источника звука.
А вот хранение промежуточных лучше делать в 32-bit float. Незачем терять значащие разряды при экспандировании динамического диапазона в процессе обработки, до перехода в аналог. Нельзя сказать, что хранить в 16-bit fixed промежуточные данные совсем нельзя. Уровень внесенных погрешностей при конвертировании будет зависить от конкретной схемы обработки, и если не хотеть ломать на этим голову - то нужно использовать 32-bit float. В принципе, нормализованные данные могли бы отлично храниться в 24/32-bit fixed, но это снижает скорость работы, т.к требует преобразований форматов.
4. 64-бит float всегда будет работать лучше (с точки зрения погрешностей) чем 16/32-bit fixed, но скорость выполнения будет существенно меньше. Опять-таки, при грамотной реализации 32-bit fixed этот формат, с учетом типов применяемых в обработке звука операций/алгоритмов и физических ограничений АЦП/ЦАП, был бы оптимальным.
Ну если только вы не строите сеть из 100 дорожек и 200 плагинов... Гигантомания в этом вопросе расцвела высоко и далеко, оставив музыку далеко позади себя.
5. Про цифровое микширование я писал в другом форуме, кратко - если вы используете как сумматор компьютер, выводите конечный результат по ОДНОМУ каналу ЦАП, у вас больше 8-10 дорожек, то можете все, что здесь, написано, не читать, т.к смысла в этом не будет. При таком микшировании вы внесете такие искажения в сигнал, что нюансы с форматами, при разумном использовании обработки/плагинов в PC, уже будут величиной меньшего порядка. Если же вы привыкли использовать по 100 плагинов - микшируйте как хотите, т.к качественного звука уже не будет принципиально, потому что бездумно применяя миллиарды, пусть даже линейных, операций к дискретным данным, вы последовательно отбеливаете спектр, финалом чего будет практически некоррелированный шумоподобный сигнал. Слушая многие опусы, можно сделать вывод, что это удается достигнуть уже всего лишь на 2-м миллиарде сложений/умножений.
Дмитрий Поляков.
http://musphere.narod.ru