Являются ли 127 значений нот в MIDI музыкально значимыми (определенное количество октав или что-то в этом роде)? или он был установлен на 127 из-за двоичного формата файла, IE для вычислительных целей?
Почему MIDI предлагает 127 нот
Ответы (6)
127 = 27 - 1
Это максимальное положительное значение 8-битного целого числа со знаком, поэтому оно является значимым ограничением для форматов файлов — это максимальное значение, которое вы можете хранить в байте (на большинстве систем), не делая его беззнаковым. .
В протоколе MIDI есть байты состояния (подумайте о командах, таких как note-on или note-off) и есть байты данных (подумайте о параметрах, таких как значение высоты тона и скорость). Способ определить разницу между ними - по первому биту. Если этот первый бит равен 1, то это байт состояния. Если первый бит равен 0, то это байт данных. Это оставляет только 7 битов доступными для остальной части значения байта состояния или данных.
Итак, чтобы коротко ответить на ваш вопрос, это больше связано со спецификацией протокола, но так получилось, что он хорошо соответствует большому количеству доступных значений высоты тона.
Теперь эти значения высоты тона не соответствуют конкретным высотам тона. Да, это правда, что обычно значение высоты тона 60 даст вам C4 или среднее C. Большинство синтезаторов работают таким образом, но, конечно, не все. Это даже не требование, чтобы синтезатор использовал значение высоты тона для высоты тона! MIDI не имеет значения... это просто протокол. Вам может быть интересно, как работают альтернативные настройки... они работают просто отлично. Синтезатор должен воспроизвести правильную высоту звука для этих альтернативных настроек. MIDI просто обеспечивает выбор из 128 различных значений для отправки.
Кроме того, если вам интересно, почему так важно, чтобы этот первый бит обозначал, что представляют собой данные... Существуют системные сообщения в реальном времени, которые могут быть вставлены в середине какой-либо другой команды. Это такие вещи, как часы синхронизации, которые часто используются, среди прочего, для синхронизации LFO.
Подробнее о типах MIDI-сообщений можно прочитать здесь: http://www.midi.org/techspecs/midimessages.php
Я думаю, что вы упускаете из виду, что MIDI был создан в начале 1980-х не для работы на персональных компьютерах, а для работы на музыкальных инструментах с крайне ограниченными возможностями обработки и хранения. Хранение 127 значений тогда казалось ГИГАНТСКИМ, особенно когда самая большая клавиатура обычно имеет всего 88 клавиш, а большинство электронных инструментов — только 48. Если вы думаете, что MIDI делает что-то странным образом, вполне вероятно, что это связано с его юрским наследием.
Да, это правда, что обычно значение высоты тона 60 дает вам C4 или среднее C. Большинство синтезаторов работают таким образом, но, конечно, не все.
Да... всегда были разногласия по поводу того, где в MIDI находится середина C. На клавиатурах Yamaha это C3, на клавиатурах Roland — C4. Yamaha поступила так, а Roland — иначе.
Теперь эти значения высоты тона не соответствуют конкретным высотам тона.
Не изначально. Однако в стандарте «General MIDI» A = 440, что является стандартной настройкой. General MIDI также описывает, какой патч является фортепиано, какой — гитарой и т. д., так что MIDI-файлы становятся переносимыми между мультитембральными источниками звука.
Простой КПД.
В качестве последовательного протокола MIDI был разработан на основе простых последовательных микросхем того времени, которые принимали 8 битов данных и передавали их в виде потока с одного отдельного вывода последовательных данных с установленной скоростью. В мире MIDI это было 31 250 Гц. Он добавил стоповые и стартовые биты, чтобы все данные могли передаваться по одному проводу. Он был разработан, чтобы быть дешевым и простым, и простота была распространена на формат данных.
Старший бит из 8 битов данных использовался для обозначения того, является ли байт данных командой или данными. Итак, чтобы послать ноту Middle C ON на канал 1 со скоростью 56, байты команды отправляются первыми, и команда для Note on была старшими 4 битами этого командного бита 1001. Обратите внимание на 1 в старшем бите, это было за которым следует идентификатор канала для канала 1 0000 (компьютеры предпочитают начинать счет с 0)
10010000 or 128 + 16 = 144
За этим последовали фактические данные Note
72 для среднего C или 01001000
а затем данные скорости снова указываются в диапазоне 0-127 с 0 MSB
56 в нашем случае
00111000 Итак, что будет дальше по проводу (игнорирование стоп-старта и битов синхронизации было)
144, 72, 56
Для почти мертвых микрокомпьютеров того времени в электронных клавиатурах способность отделять команду от данных, просто взглянув на первый бит, была находкой.
Как уже было сказано, 127 бит покрывают почти любую западную клавиатуру, которую вы хотите упомянуть. Таким образом, это вполне логично, и сохранение протоколов спустя долгое время после того, как многие последовательные протоколы исчезли в безвестности, является отличным дополнением к http://en.wikipedia.org/wiki/Dave_Smith_(engineer) Дэйв Смит из Sequential Circuits, который начал обсуждения с другими производителями, чтобы установить все это на место.
Современная музыка и композиция были бы совсем другими без него и их.
Наслаждаться!
127 достаточно, чтобы покрыть все клавиши пианино
0 ~ 127 хорошо подходит для преобразования АЦП.
Многие аппаратные MIDI-устройства полагаются на выполнение аналого-цифровых преобразований (АЦП). Учитывая, что MIDI является протоколом связи в реальном времени, при выполнении преобразования АЦП с использованием последовательное приближение (обычно используемый алгоритм), хорошим практическим правилом является использование 8-битного разрешения для быстрых вычислений. Это даст значения в диапазоне 0 ~ 1023, которые можно преобразовать в диапазон MIDI, разделив на 8.