A555555
Цитата:
Нужно во внешних фильтрах, для ffdshow Audio Processor выбрать "Предпочесть".
Цитата:
Чтобы исключить (в случае если исходный сигнал с разрядностью 32 float и содержит амплитуду > 0dB) обрезание, по идее нужно:
Разрешить LAV выводить сигнал с точностью 32-bit float.
Разрешить ffdshow Audio Processor'у обрабатывать PCM - Вкладка Codecs -> поставить all supported (если хочешь ffdshow обрабатывать только 32 float, то соответственно и выбрать 32-bit float)
Разрешить ffdshow Audio Processor'у обрабатывать сигнал с точностью 32 float - Вкладка Processing -> 32-bit floating point
Если хочешь избежать понижения разрядности виндовым микшером, а сделать ffdshow и выводить на микшер уже 24-bit, то на этой вкладке можно сразу включить и Dithering. Noise shaping - можно не включать.
На вкладке Volume включить Normalize (номализацию, которая приведёт амплитуду сигнала перед преобразованием float > int к 0dB)
На вкладке Mixer, можешь смикшировать в стерео (2/0/0) и выбрать нормализованую матрицу ели хочешь.
На вкладке Output разрешить выходные форматы: 16-bit integer и 24-bit integer.
При таком раскладе у тебя получится правильная цепочка:
LAV будет обрабатывать и выводить потерьные форматы с точностью 32 float, исключая обрезание на стадии декодирования, дальше ffdshow Audio Processor будет принимать 32 float, нормализовывать до 0dB, правильно понижать разрядность float > int и выдавать на выход (микшер Win) уже обработанный сигнал.
Если в основном пользуешь правильные рипы, и исходники из доверенных источников , то нормализацию можно не гонять всё время, а включать как раз при подозрении на обрезание.
P.S.
Цитата:
Как в точности делает DirectSound, по большому счёту, одному Microsoft известно, не вникая в спецификации нагуглить подробности вряд ли получится. ffdshow Audio Processor полностью прозрачен и выдаёт на выход то что ему укажешь.
Цитата:
Я его по мериту сразу после LAV audio поставил, но чё то не цепляется.
Нужно во внешних фильтрах, для ffdshow Audio Processor выбрать "Предпочесть".
Цитата:
И в нём нужно, что-то настраивать?
Чтобы исключить (в случае если исходный сигнал с разрядностью 32 float и содержит амплитуду > 0dB) обрезание, по идее нужно:
Разрешить LAV выводить сигнал с точностью 32-bit float.
Разрешить ffdshow Audio Processor'у обрабатывать PCM - Вкладка Codecs -> поставить all supported (если хочешь ffdshow обрабатывать только 32 float, то соответственно и выбрать 32-bit float)
Разрешить ffdshow Audio Processor'у обрабатывать сигнал с точностью 32 float - Вкладка Processing -> 32-bit floating point
Если хочешь избежать понижения разрядности виндовым микшером, а сделать ffdshow и выводить на микшер уже 24-bit, то на этой вкладке можно сразу включить и Dithering. Noise shaping - можно не включать.
На вкладке Volume включить Normalize (номализацию, которая приведёт амплитуду сигнала перед преобразованием float > int к 0dB)
На вкладке Mixer, можешь смикшировать в стерео (2/0/0) и выбрать нормализованую матрицу ели хочешь.
На вкладке Output разрешить выходные форматы: 16-bit integer и 24-bit integer.
При таком раскладе у тебя получится правильная цепочка:
LAV будет обрабатывать и выводить потерьные форматы с точностью 32 float, исключая обрезание на стадии декодирования, дальше ffdshow Audio Processor будет принимать 32 float, нормализовывать до 0dB, правильно понижать разрядность float > int и выдавать на выход (микшер Win) уже обработанный сигнал.
Если в основном пользуешь правильные рипы, и исходники из доверенных источников , то нормализацию можно не гонять всё время, а включать как раз при подозрении на обрезание.
P.S.
Цитата:
А то что ffdshow Audio Processor лучше преобразует, чем сам DirectSound это факт или может и наоборот получится? Как и не факт, что LAV, когда у него будет ресемплер, будет это делать лучше DirectSound-а?
Как в точности делает DirectSound, по большому счёту, одному Microsoft известно, не вникая в спецификации нагуглить подробности вряд ли получится. ffdshow Audio Processor полностью прозрачен и выдаёт на выход то что ему укажешь.