Биение и двухэтапное затухание звука пианино
Я работаю над математически смоделированным фортепианным синтезатором. Прямо сейчас я использую модальный подход, где звук формируется суммой экспоненциально затухающих синусоид (гармоник).
Прямо сейчас я могу вычислить частоты синусоид (конечно, с учетом негармоничности). Для начальных значений амплитуды я использую данные, полученные из реальных сэмплов для фортепиано, поскольку сейчас это проще. Мне плевать на фазы, только струя.
Моя главная проблема - скорость распада. Чтобы симулировать биение и двухэтапное затухание, я использую 2 или 3 показателя примерно одинаковой частоты (в зависимости от количества строк для конкретной ноты).
Для случая 3 струн теория предполагает, что один из показателей будет затухать быстрее, а два - затухать примерно с одинаковой скоростью, но из-за небольшой разницы в частотах они будут вызывать биение.
Этот метод описан в литературе, но не приведен алгоритм для получения фактических значений.
На данный момент я использую простые формулы, которые я создал сам, и они не основаны на какой-либо физике, а выдают приличный звук после многих проб и ошибок.
Мой вопрос: есть ли метод для расчета этих скоростей распада на основе более физического подхода?
Ключевой момент - метод должен производить значения скоростей распада до того, как произойдет сам синтез, поэтому методы, основанные на построении системы с обратной связью, которые воспроизводят это поведение, не будут работать для меня.
1 ответ
Если вы синтезируете свои строковые партиалы с несколькими перекрывающимися режимами (с незначительной отстройкой) и запускаете свои партиалы с одной и той же фазы, вы, естественно, получите 2-х ступенчатое затухание - сначала громкое, так как ваши приставки синхронизированы, затем произойдет быстрое затухание когда ваши частички выходят из фазы.