DIZ а как в твоём синтезаторе реализован "трекинг" нот.. (если я правильно выражаюсь).. тоесть попросту как контроллер вычисляет нужную частоту ноты? по формуте или из таблички ?? если из таблички то как тогда организовать плавный питч??
fn = Atune + 2^(n/12) + 2^(dtune/1200)
где
fn - частота звука
Atune - частота настройки (А=440Hz)
n - номер ноты
dtune - частота растройки в центах
TAB1(n) = 2^(n/12), n={1..12}
TAB2(dtune) = 2^(dtune/1200), dtune={1..100}
100центов=1нота(полутон)
для переключения октав илпользуй сдвиг влево, если на октаву ниже, и вправо - на октаву выше (fn<<1, fn>>1)
если делать по принципу накопления фазы, то там ещё сильно упростить можно (в частности можно избавиться от деления)