Почему MIDI предлагает 127 нот - PullRequest
9 голосов
/ 24 февраля 2011

Являются ли значения нот 127 в MIDI музыкально значимыми (определенное количество октав или что-то в этом роде)? или он был установлен на 127 из-за двоичного формата файла, IE для целей вычислений?

Ответы [ 5 ]

20 голосов
/ 25 февраля 2011

В протоколе MIDI есть байты состояния (командные команды, такие как note-on или note-off) и байты данных (такие параметры, как значение основного тона и скорость). Способ определить разницу между ними по первому биту. Если этот первый бит равен 1, то это байт состояния. Если первый бит 0, то это байт данных. Это оставляет только 7 бит доступными для остальной части состояния или значения байта данных.

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

Теперь эти значения шага не соответствуют определенным шагам. Да, это правда, что обычно значение высоты тона 60 даст вам C4 или средний C. Большинство синтезаторов работают таким образом, но, конечно, не все . Даже не требуется, чтобы синтезатор использовал значение высоты звука для высот! MIDI не волнует ... это просто протокол. Вам может быть интересно, как работают альтернативные настройки ... они работают просто отлично. Это зависит от синтезатора, чтобы произвести правильные высоты для этих альтернативных настроек. MIDI просто обеспечивает выбор из 128 различных значений для отправки.

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

Подробнее о типах MIDI-сообщений вы можете прочитать здесь: http://www.midi.org/techspecs/midimessages.php

7 голосов
/ 24 февраля 2011

127 = 2 7 - 1

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

4 голосов
/ 16 июля 2011

Я думаю, что вам не хватает того, что MIDI был создан в начале 1980-х годов, не для запуска на персональных компьютерах, а для работы на музыкальных инструментах с крайне ограниченными возможностями обработки и хранения.Хранение 127 значений казалось ГИГАНТСКИМ тогда, особенно когда самая большая клавиатура обычно имеет только 88 клавиш, а большинство электронных инструментов имели только 48. Если вы думаете, что MIDI делает что-то странным образом, вероятно, это происходит из его юрского наследия.

Да, это правда, что обычно значение высоты тона 60 дает вам C4 или средний C. Большинство синтезаторов работают таким образом, но, конечно, не все.

Да ... всегда были разногласия по поводу того, где средний C находится в MIDI.На клавиатурах Yamaha это C3, на клавиатурах Roland это C4.Yamaha сделал это одним способом, а Роланд сделал это другим.

Теперь эти значения высоты звука не соответствуют конкретным шагам.

Не изначально.Однако в стандарте «General MIDI» A = 440, что является стандартной настройкой.General MIDI также описывает, какой патч - пианино, гитару и т. Д., Чтобы MIDI-файлы стали переносимыми через мультитембральные источники звука.

3 голосов
/ 04 октября 2013

Простая эффективность.

В качестве последовательного протокола MIDI был разработан на основе простых последовательных микросхем времени, которые будут принимать 8 бит данных и передавать их в виде потока из одного отдельного вывода последовательных данных с запрещенной скоростью.В мире MIDI это было 31,250 Гц.Добавлены биты остановки и запуска, чтобы все данные могли передаваться по одному проводу.Он был разработан, чтобы быть дешевым и простым, а простота была расширена до формата данных.

Самый старший бит из 8 битов данных использовался, чтобы сигнализировать, был ли байт данных командой или данными.Итак, чтобы послать среднюю ноту C на канал 1 со скоростью 56 А командные байты отправляются первыми, а команда для ноты - это старшие 4 бита этого командного бита 1001. Обратите внимание на 1 в старшем значащем бите, это былозатем идентификатор канала для канала 1 0000 (компьютеры, предпочитающие начинать отсчет с 0)

10010000 или 128 + 16 = 144

Затем следуют фактические данные примечания

72 для среднего C или 01001000

, а затем данные скорости снова задаются в диапазоне 0 -127 с 0 MSB

56 в нашем случае

00111000 Так что быидти вниз по проводу (игнорируя биты начала и остановки остановки)

144, 72, 56

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

Как уже говорилось, 127 бит покрывает практически любую западную клавиатуру, которую вы хотели бы упомянуть.Так что вполне логичный смысл, и выживание протоколов еще долго после того, как многие последовательные протоколы исчезли в безвестности, является отличным дополнением к http://en.wikipedia.org/wiki/Dave_Smith_(engineer) Дейву Смиту из Sequential Circuits, который начал обсуждения с другими производителями, чтобы все это установить.*

Современная музыка и композиция были бы значительно отличны без него и них.

Наслаждайтесь!

0 голосов
/ 02 апреля 2012

127 достаточно для покрытия всех клавиш пианино

...