Формула такая:
Пример использования осцилляторов с периодом формы волны (x) period = x (0-1), а не x (0-2Pi)
Одна переменная для каждого аудиопотока, называемая акк / аккумулятор,
Каждый образец, накапливать его по:
var accadd = 1.0/( sampleRate / p2freq( note ) ) ;
acc+= accadd;
acc = acc%1.0;// not sure to do this as accurately using if statement. can reset acc every noteOn
Если вы используете классический грех с периодом 2pi, используйте 2pi вместо 1,0
Например, сигнал будет работать с 0-1 с частотой p2freq (примечание) в секунду.