Попробовал реализовать нечто подобное. Получилось вот такПочему бы не начать с какой-нибудь простенькой реализации smooth min, например, с такой:
Я сделал что-то своё, но получилось практически копия твоего, за исключением того что при Ratio=1 колено не становится бесконечным и не отслаивается от "ноги"например, с такой:
Я сделал что-то своё, но получилось практически копия твоего
Теперь надо придумать как реализовать сглаживание в разовой шкале.
Пока ещё не избавился от одной степенной функции отвечающей за Ratio. Надо подумать как её реализовать через выше изученные приближения.
Пять дней на размышления и решение пришло после погружения (в прямом смысле) под воду. ))теперь про вычисление произвольной степени:
Эта инфа не давала покоя. Пять дней на размышления и решение пришло после погружения (в прямом смысле) под воду. ))Проблема заключается в куче операций log10 и 10^x. На каждый семпл такое. А операции эти крайне медленные.
Тут важно определиться вот с чем.
Обычно в компрессорах в RC-фильтре болтается уже сигнал, который gout в терминологии Вашего исходника, т.е. непосредственно множитель. А не его значение в дБ (т.е логарифм), как это сделано у Вас.
Является ли именно этот момент, так сказать, mojo данного компрессора? Мое мнение - сомнительно. Дело в том, что в пределах 6дБ разница между логарифмом сигнала и собственно сигналом всего-то 4% (log2(x+1) примерно равно x).
И так как тут все обсуждают типичный GR порядка 3дБ, то явно не эти 4% играют рояль.
Да, для очень больших изменений управляющего сигнала, поведение будет заметно отличаться.
В общем, я бы для теста перешел бы из дБ в разы (как это и сделано в, пожалуй, абсолютном большинстве компрессоров) и выбросил из секции @ sample все логарифмы и степени, оставил бы только +-* (еще бы, конечно, и корень прибить, но это не так напряжно, как логарифмы/степени). После этого надо сравнить поведение. Я не думаю, что что-то на слух изменится, но зато производительность заметно возрастет.
Это позволит избавиться от степенной функции в сэмпэльной части.А почему бы вообще тогда не отказаться от компрессия в логарифмической шкале в пользу линейной?
в линейных, др.словами в разах.Это Xrms и Threshold в каких единицах?
@Rst7, использовал выражение (Xrms-Treshold)/Ratio + Treshold
и столкнулся с проблемой - если Ratio выставить на 2:1, то GR максимально получается в 6 дБ. Если 4:1 - то 12, если 8 - то 18
Не знаю, хорошо это или плохо.
Применил линейной приближение, т.е. сделал 4 плеча через каждые 6 дБ (величина изменяемая) - получился значительно больший GR.Версия без таблицы поправок:
Пока только в HycompressorНадеюсь когда-нить появится галочка dual-mono))
всё ещё пользуюсь и надеюсь)))Надеюсь когда-нить появится галочка dual-mono))
Будет. Скоро Будет. А также HighPass.всё ещё пользуюсь и надеюсь)))
Сделал. Обновлениe на Boostyвсё ещё пользуюсь и надеюсь)))
Бывает такое, говорят подождать надо, порой долгоРешение правильное. Только Бусти висит на странице оплаты подписки.