Уровень громкости MIDI и взаимодействие экспрессии

Я не могу понять взаимосвязь между сообщением MIDI-контроллера 0x07 (общий канал громкости) и сообщением MIDI-контроллера 0x0B (громкость выражения). Я вижу, что последнее можно использовать для крещендо и диминуэндо, но, учитывая, что оно имеет значения от 0 до 127, каково значение по умолчанию и как эти значения соотносятся с первым?

Допустим, я фиксирую громкость для канала 1 на 100 с CC 0x07 в начале и никогда не меняю его. Как реализовать диминуэндо, периодически отправляя сообщения CC 0x0B? Какое первое значение CC 0x0B я должен отправить? 100 или 127, при условии, что выражение представляет собой процент от объема? А что, если вместо этого я хочу исполнить крещендо?

Ответы (3)

Из стандарта GM2:


3.3.6 Выражение (cc#11) Значение по умолчанию: 127 (7FH) [...] Изменяет громкость, установленную Volume Volume (cc#7) на указанном канале.

Примечание. Выражение (cc#11) и громкость канала (cc#7) используются для разных целей. Громкость канала (cc#7) следует использовать для установки общей громкости канала перед воспроизведением музыкальных данных, а также для микширования в стиле фейдерных движений, в то время как Expression (cc#11) следует использовать во время воспроизведения музыкальных данных, чтобы ослабить запрограммированные данные громкости MIDI (cc # 7), создавая таким образом диминуэндо и крещендо. Это позволяет слушателю постфактум отрегулировать относительное сочетание инструментов, не разрушая динамического выражения этого инструмента.

Используемая формула:

Усиление в дБ = (40 * log10(cc7/127)) + (40 * log10(cc11/127))


Итак: если вы хотите использовать любую динамику для каждого инструмента, значение контроллера по умолчанию 7f соответствует ffffffff (или как вы хотите называть самую громкую возможность: я просто слишком сильно соблазнился и должен был перевести 7f в семь fs), и вам, вероятно, придется сразу начать с чего-то меньшего.

Думаю, я понял. Скажем, первая нота крещендо имеет скорость «p», а последняя — скорость «mf». И я установил числовые значения для p и mf, и p — это самая низкая скорость, которую я имею во всей песне для начальных нот под шпилькой крещендо. Я устанавливаю cc11 на то же значение p в начале песни и постепенно изменяю его, чтобы в конце шпильки он получил то же значение скорости последней ноты под шпилькой. Я прав? Мне действительно нужно это крещендо-диминуэндо, чтобы лучше имитировать настоящую скрипку с помощью MIDI. Для фортепианного крещендо я просто использую скорость.
Не перепутайте выражение с «играть сильнее или мягче» (по телефону, конкретизация будет позже)
Даже на самых простых устройствах воспроизведения семплов [ромплеры] более сильное воспроизведение [более высокая скорость] по крайней мере откроет фильтры, сделав звук ярче, что является грубым приближением к тому, что делает настоящий акустический инструмент. Увеличение громкости, на cc7 или 11 не будет; это только сделает его громче.
В традиционной нотной записи на первой и последней ноте любой шпильки есть динамическая индикация, такая как mf, p, f, mp и т. д. Например, вы делаете крещендо от p до mf, охватывающее более двух нот. Это то, что я пытаюсь сделать в MIDI.
тогда, вероятно, вам нужно сделать это по скорости [или, если вам повезет], некоторые высококлассные семплеры семейства скрипичных могут использовать колесо модуляции, например, в качестве отдельного регулятора динамики. Вам придется поэкспериментировать с вашим конкретным инструментом. Если экспрессия специально не привязана хотя бы к фильтрам, то это будет похоже на включение записи настоящей скрипки — это не заставит игрока играть сильнее.

фактический ответ находится в документах, которые вы можете скачать по адресу https://www.midi.org/specifications/item/general-midi-2 .

Громкость (7) по умолчанию равна 100, поэтому вы можете немного увеличить ее. Выражение (11) по умолчанию равно 127.

Громкость следует использовать один раз в начале дорожки/канала для установки общей громкости. Expression должен быть непрерывным контроллером для микширования, чтобы сделать крещендо/диминуэндо (если это не встроено в скорость нот). Эти 2 регулятора плюс скорость плюс мастер-громкость (по каналам) создают общее событие для громкости миди. Есть стандарт того, как они работают вместе, но я бы не стал полагаться на него, потому что не каждый синтезатор будет реагировать на этот алгоритм. Особенно старые аппаратные синтезаторы, которые могут даже не реагировать на 7, 11 или основную громкость.

Подводя итог, можно сказать, что миди — это самая запутанная, переработанная мусорная корзина оооооооочень стандартного SSS, с которой я когда-либо сталкивался. Лишь немногие производители придерживаются именно этого. Так что просто будьте готовы полностью испортить миди-файл, который у вас есть, чтобы получить синтезатор, который вам нужен, чтобы делать правильные вещи. Но, ну, это единственный известный мне "стандарт". И никто не пытался сделать лучше. Миди — это маленькое благословение и огромное проклятие.

Оказалось, что моя клавиатура Yamaha поддерживает CC11, но голос скрипки появляется и исчезает лучше, если я просто постоянно увеличиваю/уменьшаю громкость канала CC7, так что я так и сделаю. Я согласен с тем, что стандарт MIDI очень похож на HTML... думаю, что Yamaha не использует MIDI в качестве внутреннего формата хранения, а использует собственный собственный формат, который поддерживает все функции синтезатора.

Наспех сконструированный ответ...

Это два отдельных значения, оба по умолчанию равны 127.
Установка любого из них уменьшит громкость ниже 127.
127 для обоих — «максимальная громкость», все остальное — уменьшение, но может считаться «каналом» или «шиной» в зависимости от устройства. , влияющие на отправку до/после отправки.

Master vol со значением 100 и выражение со значением 120 такие же, как мастер со значением 120 и выражение со значением 100, поэтому на самом деле они взаимозаменяемы.

Некоторые машины реагируют так, как будто они на самом деле являются одним и тем же контроллером внутри, другие могут влиять на овердрайв или другие настройки плагинов, как если бы один был каналом, а другой главным элементом управления - эмпирически это единственный способ проверить.

[предостережение - раньше это была моя сильная сторона, но я уже 17 лет не в бизнесе]

и поскольку мой ответ и ответ пользователя 38161 были опубликованы с разницей в несколько секунд - в его ответе нет ничего неправильного, и его техническое объяснение является лучшим, но разные производители по-разному работают с фактической цепочкой сигналов]

я почти уверен, что значение по умолчанию для выражения равно 100...
Означает ли это, что если я устанавливаю CC #7 и хочу использовать CC #11 для динамики, я также должен установить CC#11? Например, если CC#7 равно 100, а я оставлю CC#11 равным 127 (в соответствии со значением по умолчанию в соответствии со спецификациями), я не смогу реализовать крещендо, потому что я не могу сделать CC#11 выше, только ниже, чтобы сделать диминуэндо. Должен ли я всегда устанавливать CC # 11 на 127/2 ~ 63, чтобы иметь возможность играть как крещендо, так и диминуэндо?
@StephenHazel - возможно, вы правы, но я просмотрел столько документации, сколько смог найти, и нигде не вижу ссылок на нее [т.е. я не нахожу не только противоречивой информации, но и вообще никакой информации по умолчанию]. Если вы можете найти какую-либо официальную цитату, я буду более чем рад включить ее в ответ :)
У меня было наоборот. объем (7) равен 100. Выражение (11) равно 127. Документ можно скачать здесь: midi.org/specifications/item/general-midi-2