Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Программирование звука > Портаменто в MIDI


Автор: Jin X 25.03.20, 11:36
Хочу включить портаментов в MIDI.
Что я делаю не так?
C0 18 — program change (guitar)
B0 41 7F — portamento on
B0 05 7F — portamento time MSB = 127 (максимальное время); можно добавить и B0 25 00 – time LSB, но это ничего не изменит
90 3C 7А — note on (можно заменить на B0 54 3C – portamento control, разницы нет)
90 48 7А — note on (на октаву выше)
(hex)
Портаменто нет...

p.s.
http://www.muzoborudovanie.ru/articles/midi/midi2.php
http://www.artcomposer.ru/guides/RolandInFocus.pdf

Автор: Jin X 25.03.20, 13:15
Короче, это виндовый GS-синтезатор не поддерживает портаменто просто. Поставил виртуальный midi-драйвер, всё заработало...

Автор: Prince 25.03.20, 15:13
Нашёл на музыкальном форуме. Синтезатор нужно переключить в одноголосный режим, контроллер 126. Ещё, мало ли, синтезатор может игнорить сообщения. Попросил знакомого музыканта записать миди файл с портаменто. Если у него будет время.

А, опоздал.

Автор: Jin X 27.03.20, 16:01
Цитата Prince @
Синтезатор нужно переключить в одноголосный режим, контроллер 126
Это ещё зачем? :huh:
Но я попробую, спасибо :)

Автор: Jin X 27.03.20, 18:57
Нет, не помогает 126-й в виндовом GS.
Ладно, придётся через Pitch Wheel Change делать, а эту штука, благо работает :)

Автор: Prince 28.03.20, 18:15
Цитата
Это ещё зачем?

По смыслу, портаменто применим для одноголосной мелодии. Видимо, некоторые синтезаторы умеют портаменто только если канал/синтезатор в poly_off/mono. Там, где я это находил, советовали mono включить. Да, дефолтный синтезатор игнорит портаменто, тоже пробовал.

Автор: Jin X 28.03.20, 20:13
Вопрос по реверу.
Я правильно понимаю, что ревер включается через Control Change #91 (Effect Control 1 - Reverb Send Level) и туда посылается 1 байт данных?
Т.е. B0 91 7F – это максимальный ревер. И тип ревера выбрать нельзя.

Автор: Prince 28.03.20, 21:51
:-?
Не знаю.
http://www.digitalmusicacademy.ru/lesson-m...change-messages
http://midi.teragonaudio.com/tech/midispec/eff1.htm
https://www.midi.org/specifications-old/item/general-midi-2
Итог беглого чтения:
Effect 1 Depth(91) - общее сообщение, на него производитель может повесить что угодно. В спецификации GM повесили Reverb Send Level. Девайс должен работать в режиме совместимости с GM, тогда Effect 1 Depth скорее всего будет воспринят как Reverb Send Level.
И. помимо 91 ещё для ревербератора используются 12 и 44 контроллеры, задающие Reverb Decay Time for a reverb unit built into a GM sound module.
В GM2 как будто присутствуют:
Reverb Send Level
Reverb Type
Reverb Time

Первая ссылка:
Цитата
Стандартных сообщений для управления эффектами всего семь (поэтому многие производители в дополнение к стандартным сообщениям широко используют сообщения SysEx или NRPN).

Первые два сообщения, Effect Control 1 (Control Change #12 / Control Change #44) и Effect Control 2 (Control Change #13 / Control Change #45), — непрерывного типа и высокого разрешения. Стандартная реакция на них протоколом не определена, принимающее устройство может использовать их для любого параметра, имеющего отношение к встроенному эффекту.

Следующие пять сообщений относятся к контроллерам низкого разрешения:

Сообщение Effect 1 Depth (Control Change #91, оно же Reverb Send Level) изначально называлось просто External Effect Depth (глубина внешнего эффекта). Часто применяется для управления количеством реверберации (или уровнем посыла на ревербератор).

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)