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

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

Байты данных







Информацию с органов управления можно разделить на два основных вида: логический и числовой. Если, например, педаль имеет только два состояния (нажата или отпущена, On/Off), то это — логическая информация. Если же мы крутим колесо, то каждое его положение представляется одним значением из некоторого диапазона.

Как это закодировать? Для логической информации достаточно, по идее, одного бита. Если бит сброшен (0), то педаль (или кнопка) отпущена, если установлен (1), то нажата. Но минимальной единицей информации в MIDI является байт, в данном случае байт данных. Поэтому придется использовать его целиком, несмотря на то, что реально нужен только один бит.

Для числовой информации один MIDI-байт позволяет закодировать 128 различных значений (от 0 от 127). А если изменения в звуке требуют более тонкой градации? Тогда используются два байта. Диапазон значений, который можно закодировать двумя обычными байтами, составляет 216-1, то есть от 0 до 65535. Но в MIDI, как говорилось в предыдущей статье, один бит из байта расходуется по служебной необходимости, поэтому два MIDI-байта дают в наше распоряжение только 14 бит. Но и это уже неплохо: 214 дает 16384 различных значений. Для изменений параметров синтеза этого более чем достаточно.

Мы уже говорили, что два байта составляют машинное слово. На рисунке 2 показана схема "MIDI-слова". Старшие биты обоих байтов заняты (сброшены в 0; напомню, что таким образом приемник может всегда отличить байт данных от статус-байта, в котором старший бит установлен в 1). Биты с 0 по 6 составляют младший значащий MIDI-байт (LSB, Least Significant Byte), c 8 по 14 — старший значащий байт (MSB, Most Significant Byte).

 

 

 


MSB и LSB на практике
Для того, чтобы передать число, большее 127, его нужно преобразовать в два MIDI-байта, то есть в пару MSB:LSB. Предположим, что орган управления (например, колесо) реагирует на самые аккуратные наши движения и может передавать свое положение в диапазоне от 0 до 16383. Мы повернули колесо в положение 11960. Какие MSB и LSB будут сгенерированы?

Число 11960 (шестнадцатеричное 0x2EB8) в двоичной форме записывается как 10111010111000. Для получения LSB нужно взять младшие семь бит (0111000) и дополнить их слева нулевым битом, как признаком байта данных (см. рис. 2, "упаковка"). Получится 00111000 (десятичное 56, шестнадцатеричное 0x38). Для получения MSB берем старшие семь бит (1011101) и также дополняем нулевым старшим битом. Получается 01011101 (десятичное 93, шестнадцатеричное 0x5D). Таким образом, число 11960 в виде пары MSB:LSB записывается как 93:56 (или, в шестнадцатеричном виде, 0x5D:0x38).

На практике, естественно, никто с нулями и единицами не заморачивается. Для упаковки числа в пару MSB:LSB нужно просто разделить число на 128. MSB будет частным от деления, LSB — остатком. Но обычный калькулятор так вот сразу вам частное и остаток не покажет. Поэтому алгоритм такой. Делим 11960 на 128, калькулятор дает 93,4375. Дробную часть отбрасываем, получаем MSB. Умножаем MSB на 128, получаем 11904. Вычитаем это число из исходного (11960 — 11904). Получаем LSB.

Распаковка выполняется с точностью до наоборот: умножаем MSB на 128, а затем прибавляем LSB (93 x 128 + 56 = 11960).


Работая с устройствами, удобнее представлять пару MSB:LSB не как одно большое число, а как результат грубой и тонкой настройки. MSB можно представлять в виде линейки с крупным делением шкалы (128 отрезков, рис. 3). Но если поднести к линейке лупу, то мы увидим, что каждый отрезок состоит еще из 128 частей. Можно представить MSB сантиметрами, а LSB — миллиметрами. Зачастую тонкая настройка не нужна даже для тех параметров, которые ее позволяют. Достаточно "сантиметровой линейки". С помощью нее можно оперировать шагами по 128. Установили MSB в 93, получили значение 11904, установили в 94 — получили 12032. Во многих случаях такой точности вполне достаточно.

 

 

Но бывает, параметр нужно задать абсолютно точно. Например, в MIDI предусмотрено до 16384 банков звуков. Команда "выбрать примерно 15-й банк" здесь не пройдет. Нужен точный номер банка, а, следовательно, пара MSB:LSB.

 







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



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

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

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

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

Объект, субъект, предмет, цели и задачи управления персоналом Социальная система организации делится на две основные подсистемы: управляющую и управляемую...

Законы Генри, Дальтона, Сеченова. Применение этих законов при лечении кессонной болезни, лечении в барокамере и исследовании электролитного состава крови Закон Генри: Количество газа, растворенного при данной температуре в определенном объеме жидкости, при равновесии прямо пропорциональны давлению газа...

Ганглиоблокаторы. Классификация. Механизм действия. Фармакодинамика. Применение.Побочные эфффекты Никотинчувствительные холинорецепторы (н-холинорецепторы) в основном локализованы на постсинаптических мембранах в синапсах скелетной мускулатуры...

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

Выработка навыка зеркального письма (динамический стереотип) Цель работы: Проследить особенности образования любого навыка (динамического стереотипа) на примере выработки навыка зеркального письма...

Словарная работа в детском саду Словарная работа в детском саду — это планомерное расширение активного словаря детей за счет незнакомых или трудных слов, которое идет одновременно с ознакомлением с окружающей действительностью, воспитанием правильного отношения к окружающему...

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