Midi Громкость "Сжатие"?

Предположим, ваш миди-инструмент, скажем, пианино vst, имеет 16 «слоев». Когда вы вводите ноту со скоростью «1», вы услышите очень тихую ноту ppp. Когда вы вводите ту же ноту со скоростью «127», вы услышите совершенно другой звук, более громкий (fff) и, конечно же, с другим тембром или тоном. (Поскольку инструмент vst имеет 16 слоев, и давайте предположим, что эти «слои» приблизительно соответствуют разным уровням силы, прикладываемой к клавишам настоящего фортепиано.)

Вот вопрос: как СОХРАНИТЬ тот же диапазон динамической чувствительности (1-127), но уменьшить диапазон ГРОМКОСТИ, в пределах которого работает этот диапазон динамической чувствительности? Уменьшение громкости (cc7) этого не делает, потому что это просто делает ВСЕ скорости тише. То, что я пытаюсь сделать, это, например, сохранить скорость «1» одинаковой, но по мере продвижения вверх по слоям скорости, чтобы получить более тихую скорость на «127». Вы получаете все те же изменения тембра, что и скоростные «слои», но теперь с более узким диапазоном громкости или громкости.

Если вы сжимаете, изменяя скорость нот MIDI перед сэмплером, вы не получаете «все те же изменения в тембре», потому что ноты с высокой скоростью будут сопоставлены с другим слоем семпла в сэмплере, поэтому -> другой тембр. Чего вы на самом деле хотите? Действительно ли тембр должен быть точно таким же? (A) Input Velocity 127 ==> pp или mp или mf или любой другой сэмпл играл громче, чем обычно, или (B) входная Velocity 127 ==> ff сэмпл проигрывался тише , чем обычно? Должен ли Velocity 127 запускать тот же файл сэмпла, что и раньше, но не так громко , или другой файл сэмпла ?

Ответы (2)

Вы можете взвешивать скорости по-разному, используя кривую скорости. Кривая — это функция, которая изменяет входящие значения скорости. Для эффекта сжатия вы хотите взвесить низкие скорости, близкие к 1 (умножьте их на единицу, оставьте без изменений), и по мере увеличения значений скорости вес уменьшается: вес около 0,8 для значений скорости около 50 и взвешивание около 0,5 для значений скорости около 120, чтобы привести один пример.

В зависимости от взвешивания (функции, кривой) у вас может быть эффект гейта, экспандера, компрессора или лимитера.

Многие клавиатуры изначально имеют функцию кривой скорости нажатия. Ableton Live имеет миди-эффект скорости, предназначенный для этой цели, другие DAW должны иметь аналогичные инструменты, поэтому у вас есть несколько вариантов того, где применить кривую.

Я предполагаю (я надеюсь), что в Kontakt 5 может быть что-то в этом роде.
@john Так и есть! Вы можете создавать свои собственные сценарии скорости или использовать те, что включены в комплект.
Вам нужно будет сделать это внутри того, что делает фактическое воспроизведение семпла, иначе при значении 110 всегда будет давать сэмпл, назначенный на этот вход, с громкостью, назначенной на его выход. tbh, если вы не планируете создавать свою собственную версию набора сэмплов для повторного использования, я бы сделал это в аудио с компрессором.
@Tetsujin Пороги являются переменными, как и материал, на который нацелена скорость. Я предполагаю, что OP должен сделать это перед DAW или синтезатором, поскольку он напрямую работает с MIDI. Оказавшись внутри DAW, вы можете выбирать из множества MIDI-эффектов и сред сценариев, а внутри синтезатора все зависит от того, какой синтезатор вы используете.
@Tetsujin Кривые сжатия и скорости звука не взаимозаменяемы. В синтетических средах вы хотите, чтобы скорость запускала разные вещи по-разному. Оба могут использоваться для динамического управления громкостью, но звучат они ОЧЕНЬ по-разному, потенциально совершенно по-разному, даже если скорость используется только для управления амплитудой.
Да, я знаю; Раньше я зарабатывал этим на жизнь ;-) Я все еще говорю, что вам нужно изменить способ обработки поступающих скоростей в самом плагине, чтобы иметь какое-то реальное значение. Ничто из того, что вы сделаете до этого, не изменит вывод. Вам придется перебалансировать 1-80, например, чтобы поменять местами сэмплы на 80/128 от их исходных переключателей скорости, в то же время [или вам повезет, и это произойдет естественным образом] отрегулировать общую кривую громкости. [Я мог бы нарисовать это на старой пивной циновке за 2 минуты, взмахнув рукой; пытаться объяснить это в тексте не так просто ;)

Теоретически, если бы вы использовали разные каналы для всех разных голосов, вы могли бы изменить громкость канала перед рендерингом каждой ноты.

Например, предположим, что вы собираетесь играть ноты CDE (MIDI 60, 62, 64) со скоростью 30, 60 и 90 соответственно. (Диапазон громкости/скорости от 0 до 127). Предположим, что скорости 30, 60 и 90 запускают слои 3, 6 и 9 ваших сэмплированных инструментов.

Теперь, чтобы каждая нота звучала одинаково по громкости, даже если скорость увеличивается (30, 60, 90), вы можете изменить громкость канала непосредственно перед воспроизведением каждой ноты. Например:

- Channel volume = 90
- Play C / note 60 at velocity 30
- Silence note 60
- Channel volume = 60
- Play D note 62 at velocity 60
- Silence note 62
- Channel volume = 30
- Play D note 64 at velocity 90
- Silence note 64

Очевидно, для этого:

A) Вы не можете сделать это во время игры, вы должны как-то запрограммировать это в системе или изменить громкость канала непосредственно перед началом каждой ноты в постобработке.

B) Вы должны использовать отдельный канал для каждой ноты, которая воспроизводится одновременно.

Наконец, обратите внимание, что, хотя это эффективно ограничивает громкость на определенном уровне, это будет звучать иначе, чем при использовании компрессора. Компрессор изменяет огибающую Attack-Sustain-Release каждой ноты, до некоторой степени сглаживая ее. Приведенный выше подход не меняет форму огибающей, а просто надувает или сдувает ее, чтобы пики оставались в пределах желаемого диапазона.

На самом деле, мне было бы любопытно послушать, как бы это звучало...