Не зная об этом, почему бы вам просто не присвоить диапазон значениям и не воспроизвести этот диапазон по тонам.
-1 ... 1
50Hz ... 20,000Hz
Вы можете легко рассчитать его следующим образом:
//input is the float array
int minPitch = 50;
int maxPitch = 20000;
int pitch = (int)((input[idx] + 1) * ((maxPitch - minPitch) / 2) + minPitch);
Это даст вам высоту значения в массиве.