264 midi-реализация, Äîïîëíèòåëüíûé ìàòåðèàë, Òàáëèöà äåñÿòåðè÷íûõ è øåñòíàäöàòåðè÷íûõ âåëè÷èí – Инструкция по эксплуатации Roland Fantom-XR

Страница 262: Ïðèìåðû ôàêòè÷åñêèõ midi-ñîîáùåíèé

Advertising
background image

264

MIDI-реализация

| | | 0 - 100.0 [%] |

+——————————————————————————————————————————————————————————————————————————————+

x: BLOCK NUMBER (0-F)

Part 1 (MIDI ch = 1) x = 1

Part 2 (MIDI ch = 2) x = 2

: : :

Part 9 (MIDI ch = 9) x = 9

Part10 (MIDI ch = 10) x = 0

Part11 (MIDI ch = 11) x = A

Part12 (MIDI ch = 12) x = B

: : :

Part16 (MIDI ch = 16) x = F



Drum Setup Parameter

+——————————————————————————————————————————————————————————————————————————————+

| Start | |

| Address | Description |

|—————————————+————————————————————————————————————————————————————————————————|

| 41 m0 00 | 0aaa aaaa | Drum Map Name 1 (32 - 127) |

| | | 32 - 127 [ASCII] |

| 41 m0 01 | 0aaa aaaa | Drum Map Name 2 (32 - 127) |

| | | 32 - 127 [ASCII] |

| 41 m0 02 | 0aaa aaaa | Drum Map Name 3 (32 - 127) |

| | | 32 - 127 [ASCII] |

| 41 m0 03 | 0aaa aaaa | Drum Map Name 4 (32 - 127) |

| | | 32 - 127 [ASCII] |

| 41 m0 04 | 0aaa aaaa | Drum Map Name 5 (32 - 127) |

| | | 32 - 127 [ASCII] |

| 41 m0 05 | 0aaa aaaa | Drum Map Name 6 (32 - 127) |

| | | 32 - 127 [ASCII] |

| 41 m0 06 | 0aaa aaaa | Drum Map Name 7 (32 - 127) |

| | | 32 - 127 [ASCII] |

| 41 m0 07 | 0aaa aaaa | Drum Map Name 8 (32 - 127) |

| | | 32 - 127 [ASCII] |

| 41 m0 08 | 0aaa aaaa | Drum Map Name 9 (32 - 127) |

| | | 32 - 127 [ASCII] |

| 41 m0 09 | 0aaa aaaa | Drum Map Name 10 (32 - 127) |

| | | 32 - 127 [ASCII] |

| 41 m0 0A | 0aaa aaaa | Drum Map Name 11 (32 - 127) |

| | | 32 - 127 [ASCII] |

| 41 m0 0B | 0aaa aaaa | Drum Map Name 12 (32 - 127) |

| | | 32 - 127 [ASCII] |

|—————————————+———————————+————————————————————————————————————————————————————|

| 41 m1 rr | 0aaa aaaa | Play Note Number (0 - 127) |

| 41 m2 rr | 0aaa aaaa | Level (0 - 127) |

| 41 m3 rr | 0aaa aaaa | Assign Group Number (0 - 127) |

| | | NON, 1 - 127 |

| 41 m4 rr | 0aaa aaaa | Panpot (0 - 127) |

| | | RAMDOM, L63 - 63R |

| 41 m5 rr | 0aaa aaaa | Reverb Send Level (0 - 127) |

| | | 0.0 - 1.0 |

| 41 m6 rr | 0aaa aaaa | Chorus Send Level (0 - 127) |

| | | 0.0 - 1.0 |

| 41 m7 rr | 0000 000a | Rx. Note Off (0 - 1) |

| | | OFF, ON |

| 41 m8 rr | 0000 000a | Rx. Note On (0 - 1) |

| | | OFF, ON |

|—————————————+————————————————————————————————————————————————————————————————|

m: Map number (0 = MAP1, 1 = MAP2)

rr: drum part note number (00H-7FH)

4. Äîïîëíèòåëüíûé ìàòåðèàë

„ Òàáëèöà äåñÿòåðè÷íûõ è
øåñòíàäöàòåðè÷íûõ âåëè÷èí.

(К концу чисел в шестнадцатеричном выражении добавляется "Н".)
В MIDI-документации величины данных и адреса/размеры эксклюзивных сообщений и пр.
выражены в виде шестнадцатеричных величин для каждого 7-битного байта.
На следующей таблице приведены соотношения шестнадцатеричных и десятеричных величин.

+——————+——————++——————+——————++——————+——————++——————+——————+

| D | H || D | H || D | H || D | H |

+——————+——————++——————+——————++——————+——————++——————+——————+

| 0 | 00H || 32 | 20H || 64 | 40H || 96 | 60H |

| 1 | 01H || 33 | 21H || 65 | 41H || 97 | 61H |

| 2 | 02H || 34 | 22H || 66 | 42H || 98 | 62H |

| 3 | 03H || 35 | 23H || 67 | 43H || 99 | 63H |

| 4 | 04H || 36 | 24H || 68 | 44H || 100 | 64H |

| 5 | 05H || 37 | 25H || 69 | 45H || 101 | 65H |

| 6 | 06H || 38 | 26H || 70 | 46H || 102 | 66H |

| 7 | 07H || 39 | 27H || 71 | 47H || 103 | 67H |

| 8 | 08H || 40 | 28H || 72 | 48H || 104 | 68H |

| 9 | 09H || 41 | 29H || 73 | 49H || 105 | 69H |

| 10 | 0AH || 42 | 2AH || 74 | 4AH || 106 | 6AH |

| 11 | 0BH || 43 | 2BH || 75 | 4BH || 107 | 6BH |

| 12 | 0CH || 44 | 2CH || 76 | 4CH || 108 | 6CH |

| 13 | 0DH || 45 | 2DH || 77 | 4DH || 109 | 6DH |

| 14 | 0EH || 46 | 2EH || 78 | 4EH || 110 | 6EH |

| 15 | 0FH || 47 | 2FH || 79 | 4FH || 111 | 6FH |

| 16 | 10H || 48 | 30H || 80 | 50H || 112 | 70H |

| 17 | 11H || 49 | 31H || 81 | 51H || 113 | 71H |

| 18 | 12H || 50 | 32H || 82 | 52H || 114 | 72H |

| 19 | 13H || 51 | 33H || 83 | 53H || 115 | 73H |

| 20 | 14H || 52 | 34H || 84 | 54H || 116 | 74H |

| 21 | 15H || 53 | 35H || 85 | 55H || 117 | 75H |

| 22 | 16H || 54 | 36H || 86 | 56H || 118 | 76H |

| 23 | 17H || 55 | 37H || 87 | 57H || 119 | 77H |

| 24 | 18H || 56 | 38H || 88 | 58H || 120 | 78H |

| 25 | 19H || 57 | 39H || 89 | 59H || 121 | 79H |

| 26 | 1AH || 58 | 3AH || 90 | 5AH || 122 | 7AH |

| 27 | 1BH || 59 | 3BH || 91 | 5BH || 123 | 7BH |

| 28 | 1CH || 60 | 3CH || 92 | 5CH || 124 | 7CH |

| 29 | 1DH || 61 | 3DH || 93 | 5DH || 125 | 7DH |

| 30 | 1EH || 62 | 3EH || 94 | 5EH || 126 | 7EH |

| 31 | 1FH || 63 | 3FH || 95 | 5FH || 127 | 7FH |

+——————+——————++——————+——————++——————+——————++——————+——————+

D: десятеричная (величина)
Н: шестнадцатеричная (величина)
*

Десятеричные величины, такие как MIDI-канал, выбор банка и изменение программы
показаны на единицу больше соответствующей величины, поданной в вышеприведенной в
таблице.

*

7-битный байт может выражать данные в диапазоне 128 шагов. Для данных, где
необходима более высокая точность, мы должны использовать 2 или более байта.
Например, два шестнадцатеричных числа aa bbH, выражающих два 7-битных байта,
обозначают величину aa x 128 + bb.

*

В случае если величины имеют знак +/-, то 00H = -64, 40H = +/-0, а 7FH = +63, поэтому
десятеричное выражение будет на 64 меньше, чем величина, данная в вышеприведенной
таблице.

*

В случае с двумя типами, 00 00Н = -8192, 40 00Н = +/-0, а 7F 7FH = + 8191. Например, если
aa bbH выражены как десятеричные, получится aa bbH-40 00H = aa x 128 + bb-64 x 128.

*

Данные, обозначенные как "Использование полубайтовых данных" выражены в 4-битных
единицах. Величина, выраженная как 2-байтовая полубайтовая 0а 0bH обозначает величину
х 16+b.

<Пример 1> Каким является десятеричное выражение 5АН?
Из вышеприведенной таблицы: 5АН = 90

<Пример 2> Какое десятеричное выражение величины 12 34Н, данной как шестнадцатеричная
для каждого 7-битного байта?
Из вышеприведенной таблицы: поскольку 12Н = 18, 34Н = 52, то 18 х 128 + 52 = 2356

<Пример 3> Какое десятеричное выражение полубайтовой величины 0А 03 09 0D?
Из вышеприведенной таблицы: поскольку OAH = 10, 03Н = 3, 09Н = 9, 0DH = 13, то ((10 х 16 +
3) х 16 + 3 = 41885

<Пример 4> Какое полубайтовое выражение десятеричной величины 1258?

16 ) 1258

16 ) 78 ...10

16 ) 4 ...14

0 ... 4

Поскольку, исходя из вышеприведенной таблицы, 0 = 00Н, 4 = 04Н, 14 = 0ЕН, 10 = 0АН, то в
результате: 00 04 0Е 0АН.

„ Ïðèìåðû ôàêòè÷åñêèõ MIDI-ñîîáùåíèé.

<Пример 1> 92 3E 5F
"9n" - состояние "Note-on", а "n" - номер MIDI-канала. Поскольку 2Н = 2, 3ЕН = 62 и 5FH = 95,
то это - сигнал "Note-on" с MIDI CH (MIDI-каналом) = 3, номером ноты 62 (название ноты D4)
и скоростью 95.

<Пример 2> CЕ 49
CnH - состояние "Program Change/Изменение программы" и "n" - номер MIDI-канала.
Поскольку ЕН = 14, а 49Н = 73, то это - сигнал "Program Change/Изменение программы" с
MIDI CH = 15, номером программы 74.

<Пример 3> EA 00 28
EnH - состояние "Pitch Bend Change/Изменение изгиба питча" и "n" - номер MIDI-канала.
Второй байт (00Н=0) - LSB, а 3-й байт (28Н=40) - MSB, но величина изгиба питча является
числом cо знаком, в котором 40 00Н (=64 х 128 + 0 = 8192) - 0, поэтому эта величина изгиба
питча равна 28 00Н-40 00Н = 40 х 128 + 0-(64 х 128+0) = 5120-8192 =-3072

Если чувствительность изгиба питча установлена на 2 полутона, то -8192 (00 00Н) вызовет
изменение питча на -200 центов, так что в этом случае -200 х (-3072) (-8192) = -75 центов
изгиба питча, применяемого к MIDI-каналу 11.

<Пример 4> B3 64 00 65 00 06 0C 26 00 64 7F 65 7F
BnH - состояние "Control Change" и "n" - номер MIDI-канала. Относительно "Control Changes/
Смен режимов управления", 2-й байт - номер управления, а 3-й байт - величина. Когда два или
более сообщения подряд имеют одинаковое состояние, MIDI выдает положение "бегущее
состояние", которое позволяет стирать байт состояния второго и следующих сообщений.
Таким образом, приведенные выше сообщения, имеют следующее значение.
В3

64 00 (MIDI-кан.4) нижний байт номера параметра RPN: 00Н

(В3)

65 00 (MIDI-кан.4) верхний байт номера параметра RPN:00Н

(В3)

06 0С (MIDI-кан.4) верхний байт величины параметра: 0СН

(В3)

26 00 (MIDI-кан.4) нижний байт величины параметра: 00Н

(В3)

64 7F (MIDI-кан.4) нижний байт номера параметра RPN:7FH

(B3)

65 7F (MIDI-кан.4) верхний байт номера параметра RPN: 7FH

Иными словами, приведенные выше сообщения определяют величину 0С 00Н для номера
параметра RPN 00 00Н на MIDI-канале 4, а затем устанавливают номер параметра RPN на 7F
7FH.

Номер параметра RPN 00 00Н является чувствительностью изгиба питча, а MSB величины
указывает единицы в полутонах, величина 0СН = 12 устанавливает максимальный диапазон
изгиба питча на +- 12 полутонов (1 октава). (На GS-звуковых генераторах LSB
чувствительности изгиба питча игнорируется, но LSB следует передавать в любом случае (с
величиной 0), так чтобы операция была правильной на любом устройстве.)

После определения номера параметра для RPN и NRPN, все сообщения ввода данных (Data
Entry), которые передаются на том же канале, будут действительными, так что после передачи
нужной величины неплохо было бы установить номер параметра на 7F 7FH во избежание
сбоев. Поэтому (В3) 64 7F (B3) 65 7F находятся в конце.

События бегущего состояния для данных исполнения (таких как Standard MIDI File data/
данные стандартного MIDI-файла), как указано в <Примере 4>, нежелательны. Потому что,
если воспроизведение прекращается во время сонга, а затем перематывается вперед или назад,

Advertising