Студопедия — Взаимодействие устройств. Инициировать передачу семпла может как передающее, так и приемное устройство
Студопедия Главная Случайная страница Обратная связь

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

Взаимодействие устройств. Инициировать передачу семпла может как передающее, так и приемное устройство






Инициировать передачу семпла может как передающее, так и приемное устройство. В первом случае вы просто нажимаете кнопку на передней панели передатчика (либо выбираете соответствующую функцию из меню), после чего на его MIDI-выход передается сообщение Dump Header. Для приемника оно служит сигналом того, что сейчас будет передаваться семпл. Запросить семпл можно и с приемника (если устройства соединены методом закрытой петли). В этом случае приемник посылает на MIDI-вход передатчика сообщение Dump Request и ожидает ответной реакции в виде сообщения Dump Header.

Некоторые старые устройства передают семпл только после получения запроса, а сами инициировать передачу не могут. Например, семплер Akai S 900. С его передней панели нельзя ни запросить семпл с другого устройства, ни начать передачу. Так что, соединив MIDI-кабелями два Akai S 900, вы вряд ли сможете заставить их обменяться семплами по SDS, придется повозиться с дискетами.

После того как Dump Header отправлен, передатчик ждет ответной реакции от приемника не менее двух секунд. За это время приемник должен проанализировать заголовок и решить, сможет ли он принять семпл (поддерживается ли формат, достаточно ли памяти под семпл и т. д.). Если приемник готов принять семпл, он отправляет сообщение ACK, после чего передатчик начинает посылать пакеты данных. Если не готов — сообщение CANCEL или WAIT. В первом случае передатчик немедленно прекращает передачу семпла, во втором — ждет неопределенно долго, до тех пор, пока приемник не ответит либо подтверждением, либо отменой. Возможен вариант, когда заголовок Dump Header прошел неудачно, в этом случае приемник посылает сообщение NAK, а передатчик повторяет заголовок.

Если в течение двух секунд с момент отправки заголовка от приемника не поступило никаких сообщений, передатчик считает связь односторонней (открытая петля) и начинает передавать пакеты данных.

Семь раз проверь, потом отправь…

В современных устройствах ручное управление памятью считается просто неприличным. Прибор сам в состоянии выделить блок нужного объема, а при необходимости — произвести дефрагментацию и прочие сопутствующие задачи. Однако в старых семплерах пользователь зачастую сам должен был контролировать процесс: перед загрузкой нового семпла убедиться, что для него достаточно памяти, а при замене одного семпла другим — что новый семпл не превышает по размерам старый.

В совсем раритетных устройствах (таких, например, как Sequential Circuits Prophet 2000 и 2002) приходилось вручную выделять память под вновь загружаемый семпл. В противном случае, семпл с длиной большей, чем у текущего, будет обрезан, а в конце семпла с меньшей длиной останется кусок старого семпла.


Каждый пакет состоит из 127 байт (структура описана ранее). Из них 120 байт отводятся на сами данные. Нумерация пакета начинается с 0x00, доходит до 0x7F (127) и сбрасывается обратно в 0x00. Это позволяет приемнику различать новые пакеты и те, которые были посланы повторно из-за ошибок при передаче. После отправки пакета передатчик ждет от приемника ответа (ACK, NAK, WAIT или CANCEL) в течение 20 мс. Если за это время ответа не последовало, передатчик считает связь односторонней и начинает передачу следующего пакета.

В процессе получения пакета приемник вычисляет так называемую "бегущую" контрольную сумму. То есть, после получения первого и второго байта пакета выполняет над ними операцию XOR, сохраняя результат в специальной ячейке памяти. Затем, при поступлении третьего байта выполняет операцию XOR над ним и содержимым этой ячейки, полученный результат заменяет предыдущее содержимое ячейки. И так далее. Пример вычисления контрольной суммы для четырех байт 110, 93, 48, 11 показан на рис. 8.


В результате, к концу пакета над всеми его байтами уже проведена операция XOR, и контрольная сумма сосчитана. Если она совпадает с той, которую передал приемник в конце пакета, считается, что пакет прошел успешно. В случае двусторонней связи передатчик отвечает приемнику сообщением ACK и ждет следующего пакета. Если контрольная сумма отличается — отправляет сообщение NAK с номером сбойного пакета и ждет от передатчика его повторной пересылки. Если приемнику необходимо время для обработки пакета, он посылает передатчику сообщение WAIT. Передатчик ждет неопределенно долго, до тех пор, пока не придет одно из трех сообщений: ACK, NAK или CANCEL. В последнем случае, а также при получении сообщения, не входящего в категорию Generic Handshaking, передатчик немедленно прекращает отправку пакетов.

В процессе двусторонней передачи возможна ситуация, когда передатчик посылает пакет с одним номером, а получает от приемника сообщение NAK с другим. В этом случае, если передатчик не имеет возможности вернуться к требуемому номеру пакета и переслать его вне текущей последовательности, сообщение NAK должно быть проигнорировано. Подобная ситуация возможна и на приемном "конце": при получении сбойного пакета приемник отправляет сообщение NAK с одним номером, а в ответ может получить пакет с другим. В этом случае приемник оставляет сбойный пакет в покое, так, как будто он прошел нормально.

Процесс передачи пакетов продолжается до тех пор, пока все звуковые данные семпла не будут переданы. Даже если осталось менее 120 "звуковых" байт, последний пакет передается полностью, а неиспользуемые байты заполняются нулями. Если в процессе получения семпла у приемника заканчивается доступная память, он посылает передатчику сообщение Cancel.







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



Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

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

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

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

Билиодигестивные анастомозы Показания для наложения билиодигестивных анастомозов: 1. нарушения проходимости терминального отдела холедоха при доброкачественной патологии (стенозы и стриктуры холедоха) 2. опухоли большого дуоденального сосочка...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

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