Audio de Android: cambiar el tono

La documentación de Android para SoundPool dice que "la aplicación también puede alterar el tono ajustando la velocidad de reproducción en tiempo real para efectos doppler o de síntesis". Así que intenté hacer esto, usando el método setRate para variar sin problemas de una nota a otra, pero el resultado es terrible: la variación del sonido es muy desigual. Aquí está el código que probé. Por favor, dime si hay una mejor manera.

int streamId = soundPool.play (soundId, 1, 1, 1, 0, 1.0f);
for (float x = 0; x < 1; x += 0.005) {
  SystemClock.sleep (10);
  soundPool.setRate (streamId, 1 + x);
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta