Студопедия — MIDI File Dump
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

MIDI File Dump







Протокол MIDI File Dump предназначен для обмена файлами любого типа между устройствами, имеющими MIDI-интерфейс. Разработчики предлагают следующие применения протокола:

- Обмен стандартными MIDI-файлами между секвенсорами (то есть, без использования дискет или сетевых жестких дисков).
- Передача стандартных MIDI-файлов, содержащих карту темпа, между синхронизаторами и секвенсорами.
- Передача данных, возможно в форме сообщений SysEx, между устройствами.
- Передача файлов любого типа между компьютерами разной архитектуры и файловой организации, имеющими MIDI-интерфейс.

Для каждого файла передается его полное имя, так что возможна последовательная передача нескольких файлов (например, содержимого каталога) с минимальным вмешательством пользователя.

Сообщения File Dump (Request, Header и Data Packet) относятся к группе Non-Real Time универсальных сообщений SysEx, имеют Sub ID 1, равный 7, и начинаются с заголовка, показанного на рис. 12. Сообщение Header имеет Sub ID 2, равный 1, сообщение Data Packet — 2, сообщение Request — 3. Байт "ss" содержит идентификатор устройства — источника сообщения (широковещательный номер 0x7F здесь запрещен). Он нужен приемнику сообщения для того, чтобы в дальнейшем знать, какому передатчику отвечать.


Сообщение Request имеет структуру, показанную на рис. 13. В поле содержится тип запрашиваемого файла (4 ASCII-символа). Он может принимать одно из шести значений: "MIDI" (стандартный MIDI-файл), "MIEX" (MIDIEX, то есть файл, содержащий только сообщения SysEx в том виде, в каком они хранятся в буфере устройства), "ESEQ" (формат секвенсоров Yamaha), "TEXT" (текстовый ASCII-файл, содержащий символы с кодами, не превышающими 127), "BIN " (двоичный файл, то есть, по сути, любой файл MS-DOS), "MAC " (файл Macintosh, содержащий заголовок MacBinary). Если устройство получило сообщение Request с типом файла, который не поддерживается, оно должно ответить запросившему устройству сообщением Cancel.


В поле содержится имя запрашиваемого файла. Длина имени не ограничена (она может быть и нулевой), а конец сообщения определяется по байту EOX. Отсутствие имени файла означает "прошу передать текущий загруженный". Имя файла может содержать также полный путь: с символами обратной косой черты (PC) или двоеточиями (Mac).

Структура сообщения Header показана на рис. 14. Поля и аналогичны сообщению Request, а в поле находятся четыре MIDI-байта, содержащие длину файла (LSB идет первым). Максимальная длина файла может составлять 228 или примерно 268 Мб. Если передающее устройство не имеет файловой системы, то в сообщении Header оно опускает имя файла, а в сообщениях Data Packet посылает текущее содержимое памяти. При приеме файла такое устройство также игнорирует имя и заполняет память содержимым принятого файла.


Сообщение Data Packet отличается по структуре от аналогичного сообщения SDS тем, что между номером пакета и данными вводится байт, содержащий число исходных (незакодированных) байт в пакете, минус один (рис. 15). Например, 64 байта исходного файла кодируются для передачи в 74 MIDI-байта данных, следовательно, поле будет равно 73. Всего в пакете может быть передано 128 закодированных байт, а максимальная длина всего сообщения Data Packet равна 137 байтам.

 

 

Для передачи по MIDI исходные байты данных кодируются так, что каждой группе из семи исходных байт соответствует группа из восьми MIDI-байт. В первом MIDI-байте посылаются семь старших битов исходных байт, в остальных — по семь оставшихся битов от каждого байта (рис. 16).


Если число исходных байт не делится без остатка на 7, посылается неполная группа, в которой первый байт содержит несколько (менее семи) старших битов из байтов исходной группы (рис. 17). Так как максимальное число передаваемых в пакете байт равно 128, то всего может быть передано 112 исходных (незакодированных) байт (16 x 7). Подобная схема кодирования увеличивает объем передаваемых данных всего лишь на 12% по сравнению с исходным.


Процесс передачи файла выглядит очень похоже на процесс передачи семпла, описанный ранее. Устройство, желающее получить файл (или содержимое памяти другого устройства), может отправить передатчику сообщение Request. В течение 200 мс после этого передатчик должен ответить сообщением Header, WAIT или CANCEL. Отправка файла может начаться и без предварительного запроса, прямой посылкой в приемник сообщения Header.

После отправки заголовка передатчик ждет до 200 мс, и, если за это время не приходит ни одно из сообщений ACK, WAIT или CANCEL, передатчик считает связь односторонней и посылает первый пакет данных. Процесс передачи пакетов аналогичен SDS с той лишь разницей, что передатчик ждет от приемника ответа в течение 50 мс (а не 20, как в SDS), после чего, при отсутствии ответа, считает связь односторонней. После отправки последнего пакета передатчик посылает сообщение EOF (End Of File).

Подытожим вышесказанное. Протоколы SDS и MIDI File Dump, несмотря на перечисленные недостатки, — удобное и надежное средство для передачи данных между MIDI-устройствами. SDS более распространен, а MIDI File Dump более универсален, так как допускает передачу любых данных, в том числе и семплов (в виде двоичного файла).

 







Дата добавления: 2015-08-30; просмотров: 476. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Кишечный шов (Ламбера, Альберта, Шмидена, Матешука) Кишечный шов– это способ соединения кишечной стенки. В основе кишечного шва лежит принцип футлярного строения кишечной стенки...

Принципы резекции желудка по типу Бильрот 1, Бильрот 2; операция Гофмейстера-Финстерера. Гастрэктомия Резекция желудка – удаление части желудка: а) дистальная – удаляют 2/3 желудка б) проксимальная – удаляют 95% желудка. Показания...

Ваготомия. Дренирующие операции Ваготомия – денервация зон желудка, секретирующих соляную кислоту, путем пересечения блуждающих нервов или их ветвей...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Studopedia.info - Студопедия - 2014-2024 год . (0.014 сек.) русская версия | украинская версия