Скажу больше:
если вы человек, имеющий хоть какое-нибудь отношение к музыке, вас обязательно окружает разнообразное MIDI оборудование,хотите вы этого или нет. Я мог бы вам еще страниц десять рассказывать, что такое MIDI, как оно появилось, развивалось, с чем его едят и зачем оно вам нужно. Но я этого делать не буду. Не хотите развиваться - не надо. Для тех же, кто хочет быть со своим MIDI оборудованием "на ты" и до конца использовать его возможности, мои советы и мысли на этот счет.
На самом деле, на мой взгляд, нет очень уж большой необходимости знать MIDI в совершенстве, но представлять, что там происходит, и уметь этим пользоваться далеко не лишне. Я прочитал достаточное количество литературы, и вся она была похожа на доклады из области кибернетики по вопросу создания искусственного интеллекта. Да простят меня программисты и другие умные люди, но я не хотел знакомиться ни с битами, ни с байтами, ни с их разнообразными состояниями. Вы видели когда-нибудь MIDI сообщение, расписанное до самых своих корней? Это никак не меньше, чем формула лекарства от рака, да нет, глобальнее. Сейчас я скажу еще одну кощунственную вещь для всего прогрессивного человечества, нодля того, чтобы программировать MIDI сообщения, многого знать и не нужно. Не верите? Читайте дальше.
Я не буду вам рассказывать ни про бит состояния, ни про систему десятеричного исчисления. Дочитав главу до конца, вы будете в состоянии послать своему MIDI оборудованию команду, не приводящую, во всяком случае, к его зависанию, а получив, по возможности, ответ, представлять, что ваш прибор от вас хочет.
В 1,07,00. Перед вами набор символов. С первого взгляда они кажутся непонятными, хотя ничего сложного в них нет. Надо лишь знать
общие законы MIDI сообщений и уметь считать до шестнадцати. Первая из этих цифр или букв (в нашем случае - В) показывает вашему прибору, что вы конкретно от него хотите (изменить номер программы, контроллера, нажать ноту и т.п.). Т.е. первым знаком в MIDI сообщении вы задаете как бы тему, область, в которой хотите работать. Вторая (1) - номер MIDI канала, на котором должны происходить изменения. Следующие две цифры (07) определяют, что именно делать. Если менять контроллер, то на какой. Если нажимать ноту, то какую именно. И наконец последние две цифры (00) определяют, так сказать, оставшиеся нюансы. Например, значение динамики нажатой ноты. Все эти цифры в данном примере являются абстрактными и приведены здесь лишь для наглядности восприятия и понимания основ процесса. Теперь поговорим более конкретно. В руководстве по эксплуатации модулей, MIDI сообщения могут описываться в десятеричном (раз, два, три и т.д.) или двоичном (1001 0111), что вообще загадка для простого человека, форматах, но в подавляющем большинстве случаев выписываться где-либо для последующей посылки их в ваш прибор они должны в шестнадцатеричном. Что есть шестнадцатеричный формат? Да ничего особенного. Идея состоит в том,'что мы можем посчитать до 255, но самое главное - записать это одним или двумя символами. Так, если в десятеричной системе число шестнадцать представлено двумя символами - символ 1 и символ 6 - 16, то в шестнадцатеричной это будет выглядеть как - F. Или 127 в десятеричной и 7F в шестнадцатеричной. Существуют специальные таблицы соответствия двух систем, но это лишнее. Простая арифметическая операция позволит вам перевести любое десятичное число в шестнадцатеричную систему. С первыми десятью цифрами ничего делать не нужно. В двух этих форматах они выглядят одинаково. Ноль равен нулю, единица равна единице и т.д. Но вот после девяти в десятеричной системе число десять будет записано как 10, а в шестнадцатеричной числа начинают подменятся буквами. Выглядит это так:
0=0; 1=1; 2=2; 3=3; 4=4; 5=5; 6=6; 7=7;
8=8; 9=9; 10=A; 11=B; 12=C; 13=D; 14=E; 15=F. С этим, я думаю все ясно. А как записать число, например, 45, в шестнадцатеричной системе? Нет ничего сложного. Если вы хотите перевести число из десятеричной системы в шестнадцатеричную надо:
разделить имеющееся число на 16 (в нашем случае 45 :16), получим 2 и остаток 13. Два в шестнадцатеричной системе так и будет выглядеть как два, а 13 как D. Вот и все. Число 45 в шестнадцатеричной системе будет выглядеть как 2D. Все еще непонятно?