Su solución cambiará el tono hacia arriba una cantidad fija según la frecuencia de la "onda sinusoidal" más alta. Por ejemplo, si lo alimenta con una onda sinusoidal de 440 Hz, entonces emitirá una onda sinusoidal de 880 Hz. 880 Hz es una octava más alta que 440, así que estás bien hasta ahora.
Sin embargo, la música no es solo una onda sinusoidal única. Una sola nota tendrá armónicos. Normalmente, cada armónico es un entero múltiple (o divisor) de la fundamental. Digamos que su nota de 440 Hz tiene un armónico en 880 Hz. Ese armónico está en un volumen más bajo que el fundamental.
Cuando ejecute esto a través de su algoritmo, seleccionará los 440 Hz y hará que todo aumente a otros 440 Hz. Lo que termina es que lo fundamental sale correctamente como 880 Hz, pero el armónico sale como 1320 Hz, pero debería ser 1760 Hz.
¡El resultado es que tu única nota ahora está fuera de sintonía consigo misma! Ahora considere que una sola nota no es solo una fundamental y una armónica, sino que podría haber cientos de armónicos, cada uno fuera de tono con la otra. ¡Ay!
Para dificultar aún más las cosas, no puede diferenciar las notas con la suficiente precisión. Por ejemplo, el medio C es 523.25 Hz. Pero C # sobre C media es 554.37 Hz. Ambos caerán en la misma bandeja FFT, por lo que los cambiará a la misma cantidad de Hz a pesar de que son notas diferentes que requieren una cantidad de turno diferente. Más fuera de tono cambiando.
FFT y FFT inversa no se utilizan para desplazadores de tono profesionales. Bueno, a veces se usan FFT, pero los datos del contenedor no solo se mueven y se colocan en una FFT inversa para cambiar el tono del audio, ya que esto hace que se produzcan ruidos de mal sonido.
Los algoritmos profesionales de cambio de tono están patentados, lo que tiene algunas cosas buenas y malas. Para usted lo bueno es que una búsqueda de patentes descubrirá todo tipo de documentación sobre cómo lo hacen los profesionales.