Провел некий реверс-инжиниринг, просидев часок-другой с миди-клавиатурой, Cubase и Sonar, сделал таблицу MIDI-сообщений типа «Note On/Off» для Mackie Control. Вдруг кому пригодится для настройки контроллеров, фут-свичей или самодельных миди-контроллеров, например, на базе Arduino.
Tаблица MIDI-сообщений Mackie Control
MIDI note number | Key number (Piano) | Note names (English) | Cubase | Track # | Sonar | Track # |
0 | C-2 | Record Enable | Track #1 | Record Enable | Track #1 | |
1 | C#-2 | Track #2 | Track #2 | |||
2 | D-2 | Track #3 | Track #3 | |||
3 | D#-2 | Track #4 | Track #4 | |||
4 | E-2 | Track #5 | Track #5 | |||
5 | F-2 | Track #6 | Track #6 | |||
6 | F#-2 | Track #7 | Track #7 | |||
7 | G-2 | Track #8 | Track #8 | |||
8 | G#-2 | Solo | Track #1 | Solo | Track #1 | |
9 | A-2 | Track #2 | Track #2 | |||
10 | A#-2 | Track #3 | Track #3 | |||
11 | B-2 | Track #4 | Track #4 | |||
12 | C-1 | Track #5 | Track #5 | |||
13 | C#-1 | Track #6 | Track #6 | |||
14 | D-1 | Track #7 | Track #7 | |||
15 | D#-1 | Track #8 | Track #8 | |||
16 | E-1 | Mute | Track #1 | Mute | Track #1 | |
17 | F-1 | Track #2 | Track #2 | |||
18 | F#-1 | Track #3 | Track #3 | |||
19 | G-1 | Track #4 | Track #4 | |||
20 | G#-1 | Track #5 | Track #5 | |||
21 | 1 | A-1 | Track #6 | Track #6 | ||
22 | 2 | A#-1 | Track #7 | Track #7 | ||
23 | 3 | B-1 | Track #8 | Track #8 | ||
24 | 4 | C0 | Select | Track #1 | ||
25 | 5 | C#0 | Track #2 | |||
26 | 6 | D0 | Track #3 | |||
27 | 7 | D#0 | Track #4 | |||
28 | 8 | E0 | Track #5 | |||
29 | 9 | F0 | Track #6 | |||
30 | 10 | F#0 | Track #7 | |||
31 | 11 | G0 | Track #8 | |||
32 | 12 | G#0 | Monitor | Track #1 | ||
33 | 13 | A0 | Track #2 | |||
34 | 14 | A#0 | Track #3 | |||
35 | 15 | B0 | Track #4 | |||
36 | 16 | C1 | Track #5 | |||
37 | 17 | C#1 | Track #6 | |||
38 | 18 | D1 | Track #7 | |||
39 | 19 | D#1 | Track #8 | |||
40 | 20 | E1 | ||||
41 | 21 | F1 | ||||
42 | 22 | F#1 | ||||
43 | 23 | G1 | ||||
44 | 24 | G#1 | ||||
45 | 25 | A1 | ||||
46 | 26 | A#1 | ||||
47 | 27 | B1 | ||||
48 | 28 | C2 | ||||
49 | 29 | C#2 | ||||
50 | 30 | D2 | ||||
51 | 31 | D#2 | Chanel Settings | |||
52 | 32 | E2 | ||||
53 | 33 | F2 | Select Primary Time Format | |||
54 | 34 | F#2 | Help view | |||
55 | 35 | G2 | ||||
56 | 36 | G#2 | Console view | |||
57 | 37 | A2 | Event list | |||
58 | 38 | A#2 | Piano roll view | |||
59 | 39 | B2 | Video | |||
60 | 40 | C3 | Staff view | |||
61 | 41 | C#3 | Lyrics | |||
62 | 42 | D3 | Add audio track | |||
63 | 43 | D#3 | Add midi track | |||
64 | 44 | E3 | ||||
65 | 45 | F3 | ||||
66 | 46 | F#3 | Change track name | |||
67 | 47 | G3 | ||||
68 | 48 | G#3 | ||||
69 | 49 | A3 | Close project | |||
70 | 50 | A#3 | ||||
71 | 51 | B3 | ||||
72 | 52 | C4 (middle C) | Save As | |||
73 | 53 | C#4 | ||||
74 | 54 | D4 | Read Enable | |||
75 | 55 | D#4 | Write Enable | |||
76 | 56 | E4 | ||||
77 | 57 | F4 | Project | |||
78 | 58 | F#4 | Mixer | Envelope / Offset mode | ||
79 | 59 | G4 | Save project | |||
80 | 60 | G#4 | ||||
81 | 61 | A4 | ||||
82 | 62 | A#4 | ||||
83 | 63 | B4 | ||||
84 | 64 | C5 | To Start Selection | |||
85 | 65 | C#5 | To End Selection | |||
86 | 66 | D5 | Loop (Cycle) | |||
87 | 67 | D#5 | Punch In | |||
88 | 68 | E5 | To Previous Marker / Zero | |||
89 | 69 | F5 | Loop on/off | |||
90 | 70 | F#5 | To Next Marker / Project End | |||
91 | 71 | G5 | Rewind | Rewind | ||
92 | 72 | G#5 | Fast Forward | Fast Forward | ||
93 | 73 | A5 | Stop | Stop | ||
94 | 74 | A#5 | Play | Play/Pause | ||
95 | 75 | B5 | Record | Record | ||
96 | 76 | C6 | Cursor Up (Previous Track) | Cursor Up (Previous Track) | ||
97 | 77 | C#6 | Cursor Down (Next Track) | Cursor Down (Next Track) | ||
98 | 78 | D6 | Previous Fragment | Zoom Out | ||
99 | 79 | D#6 | Next Fragment | Zoom In | ||
100 | 80 | E6 | ||||
101 | 81 | F6 | Run/stop the audio engine | |||
102 | 82 | F#6 | Play/Stop | |||
103 | 83 | G6 | Record | |||
104 | 84 | G#6 | Select? | Track #1 | ||
105 | 85 | A6 | Track #2 | |||
106 | 86 | A#6 | Track #3 | |||
107 | 87 | B6 | Track #4 | |||
108 | 88 | C7 | Track #5 | |||
109 | C#7 | Track #6 | ||||
110 | D7 | Track #7 | ||||
111 | D#7 | Track #8 | ||||
112 | E7 | |||||
113 | F7 | |||||
114 | F#7 | |||||
115 | G7 | |||||
116 | G#7 | |||||
117 | A7 | |||||
118 | A#7 | |||||
119 | B7 | |||||
120 | C8 | |||||
121 | C#8 | |||||
122 | D8 | |||||
123 | D#8 | |||||
124 | E8 | |||||
125 | F8 | |||||
126 | F#8 | |||||
127 | G8 |
Замечание №1: В некоторых контроллерах имеется возможность задать номер midi-канала в зависимости от типа посылаемых сообщений (CC, PC, Note On/Off). Это, в частности, относится к midi foot-контроллеру Behringer FCB1010. В Mackie Control прием сообщений типа Note On/Off прибит гвоздями к каналу №1, таким образом, следует в настройках контроллера указывать этот канал для данного типа сообщений.
Замечание №2: В Cakewalk Sonar есть грабли: штатный плагин, реализующий взаимодействие через Mackie Control, пытается выполнить процедуру рукопожатия (handshake) с управляющим устройством, из-за чего (из коробки) все нерукопожатные контроллеры тупо не работаю. На эти грабли я наступил с контроллером Behringer MOTOR61, в котором, якобы, реализован полностью данный протокол, но нет :). К счастью земля полна народными умельцами, таким умельцем оказался Алексей Железов (автор «AZ Controller is a Control Surface plug-in for CakeWalk Sonar DAW») , который допилил плагин MakieControl.dll добавив в него возможность это рукопожатие отключить. Как обойти эти грабли, описано в одной из тем его форума: http://www.azslow.com/index.php?topic=341.0
На скрине включена галочка «Disable handshake».
FCB1010
В Bank#0 миди фут-свича Behringer FCB1010 забил отправку сообщений для управления DAW в соответствии с составленной таблицей, получилось так:
Номер педали | 6 | 7 | 8 | 9 | 10 |
Midi note # | 96 | 97 | 86 | 88 | 90 |
DAW Command | Cursor Up (Previous Track) | Cursor Down (Next Track) | Loop (Cycle) | To Previous Marker / Zero | To Next Marker / Project End |
Номер педали | 1 | 2 | 3 | 4 | 5 |
Midi note # | 91 | 92 | 93 | 94 | 95 |
DAW Command | Rewind | Fast Forward | Stop | Play | Record |
Для событий типа «Note On/Off» необходимо установить канал №1.