В самой первой версии плеер умел только 64 ноты из миди-диапазона от 0 до 127. Этого поначалу было вполне достаточно - кастельвании использовали в среднем 35-40 нот.
Затем я освоил pitch_bend, который может быть от -8192 до +8191 к основной ноте. Это минус\плюс октава, то есть -12 от ноты если значение pitch_bend = 0 и +12 от ноты, если pitch_bend = 16383. Я приводил примеры из текста миди - там после включения каждой ноты указывается с каким смещением от основной частоты она играет. Ну вот если посчитать эти смещения как отдельные ноты, то они и будут дополнительными. Тогда я расширил значение до 256 - кастельвании с утками зазвучали лучше, появились эти самые ууииии-ууиии, уаауу-уааууу, ну и тд. А когда стал конвертировать ренегата и робокопа, оказалось что им 256 нот уже мало. Пришлось делить 16384 значения pitch_bend, что приводило к потере некоторых частот.
Для эксперимента я создал три отдельные таблицы нот для каждого канала. Получается (в теории) можно играть независимо 768 разных частот. На практике это не так - многие каналы пересекаются. Но всё равно это позволило расширить диапазон, не вылезая при этом из значения байта (256).

- - - Добавлено - - -

Вот пример из робокопа:
Код:
79	On	ch=1	n=104	v=127
79	Pb	ch=1	v=7839	
79	Par	ch=1	c=11	v=46
84	Pb	ch=1	v=7163	
91	Pb	ch=1	v=4526	
98	Pb	ch=1	v=2371	
105	Pb	ch=1	v=7163	
112	Pb	ch=1	v=4526	
119	Pb	ch=1	v=2371	
126	Pb	ch=1	v=1126	
133	Pb	ch=1	v=4526	
140	Pb	ch=1	v=2371	
147	Pb	ch=1	v=1126	
154	Pb	ch=1	v=0	
161	Pb	ch=1	v=2371	
168	Pb	ch=1	v=0	
175	Off	ch=1	n=104	v=0
В начале включается нота 104 (3322,44 КГц), но тут же её частота понижается (v=7839) на 8192-7839=353 от изначальной (это примерно на четверть тона ниже). А дальше её частота вообще скачет вниз в паре мест до нуля - это уже равно ноте 104-12=92 (1661,22 КГц). Ну и тд и тп. Соответственно между существующими миди-нотами (0..127) у меня появляются дополнительные (заранее неизвестно сколько их будет).