О кодировании нотного текста

Для обозначения высоты звука можно использовать либо пару «номер октавы – номер ноты в октаве», либо непосредственно номер клавиши на рояле (самая левая – 1-ая, всего 88 звуков). Очевидно, для указания клавиши достаточно 7 бит (это даст 128 разных значений).

Обозначение длительности звука требует указания на одну из стандартных величин: 1, ½, ¼, 1/8, 1/32, 1/64, 1/128, то есть всего нужно различить 8 градаций длительности, и для этого достаточно трех двоичных разрядов. Но в музыке используются и «затянутые» длительности (нота+точка, нота+две точки), а также множество других дробных длительностей (триоли, квинтоли и пр.); может задаваться и темп исполнения. Для их адекватного представления нужно использовать большее число двоичных разрядов. В «серьезных» программах – нотных редакторах типа Finale, Encore при вводе нот путем «наигрывания» с клавиатуры синтезатора можно заказывать точность отслеживания длительностей до 1/2048 – 1/4096, то есть для указания длительности используется число в 11-12 двоичных разрядов.

Указание динамических оттенков от fff до ppp (7 градаций) требуют еще трех двоичных разрядов.

Нужны также указания темпа и стиля исполнения. Из литературы известно, что в авторских указаниях используются до 120 их словесных обозначений, следовательно, для однозначной фиксации этого признака нужно еще 7 двоичных разрядов. Стоккато – легато и другие обозначения исполнительских штрихов тоже достаточно многообразны; пусть их будет еще 256 (то есть нужен еще 1 байт).

Таким образом, для кодирования одного музыкального звука требуется примерно 8+7+11+8+7=41 двоичный разряд, то есть не менее 6 байт на каждую исполняемую ноту (вспомним, что для букв и один байт кажется избыточным).

Рассчитывая далее, на компьютерную обработку или «исполнение» музыки звуковой платой или внешним синтезатором, следует также добавить указание на инструмент (стандартная звуковая плата воспроизводит 128 звучаний инструментов, то есть требуется 1 байт), его среднюю громкость (1 байт), а для организации стереозвучания - на пространственное расположение инструмента относительно слушателя. Примем, что достаточной будет точность в 5 угловых градусов – это потребует указания 180:5=24 различных угловых положений, на что нужно 5 двоичных разрядов. Таким образом, следует добавить, по крайней мере, 3 байта на «инструментовку». Итак, полное описание одного звука требует не мене 8 байт.

На основе подобных рассуждений был разработан стандарт обмена данными между электронными синтезаторами, поддерживаемый и компьютерами, так называемый MIDI - интерфейс (Musical Instruments Digital Interface – “цифровой способ общения музыкальных инструментов»), который кроме исходного нотного текста, позволяет фиксировать еще и динамические характеристики исполнения, работу на педалях и т.п.