Hola amables personas del mundo de la informática de audio,incrementar el tono de programación de una serie de muestras de audio
tengo una serie de muestras que respresent una grabación. Digamos que son 5 segundos a 44100Hz. ¿Cómo jugaría esto con un tono aumentado? ¿Y es posible aumentar y disminuir el tono de forma dinámica? Al igual que el tono aumenta lentamente para duplicar la velocidad y luego retroceder.
En otras palabras, quiero tomar una grabación y reproducirla como si estuviera siendo 'arañada' por un d.j.
El seudocódigo siempre es bienvenido. Voy a escribir esto en C.
Gracias,
EDIT 1
Permítame aclarar mis intenciones. Quiero mantener la reproducción a 44100Hz y, por lo tanto, necesito manipular las muestras antes de la reproducción. Esto también se debe a que quisiera mezclar el audio que tiene un tono aumentado con audio que se ejecuta a una velocidad normal de.
Expresado de otra manera, ¿tal vez necesito reducir el audio en el mismo número de muestras de alguna manera? De esa manera, cuando se reproduce, ¿sonará más rápido?
EDIT 2
Además, me gustaría hacer esto por mí mismo. No hay bibliotecas, por favor (a menos que sienta que podría elegir el código y encontrar algo interesante).
EDITAR 3
Una pieza de muestra de código escrito en C que tiene 2 argumentos (matriz de muestras y factor de inclinación) y luego devuelve una matriz de la nueva de audio sería fantástico!
PS he comenzado una recompensa por esto, no porque no creo que las respuestas ya dadas no son válidos. Solo pensé que sería bueno obtener más comentarios sobre el tema.
PREMIO DE BOUNTY
Sinceramente me gustaría poder distribuir el botín lo largo de varias respuestas diferentes, ya que eran un buen número que pensé que era muy servicial. Grito especial a Daniel por pasarme un código y AShelly y Hotpaw2 por poner en tales respuestas detalladas.
Aunque finalmente utilicé una respuesta de another SO question referenciada por datageist, el premio es para él.
Gracias de nuevo a todos!
Por favor, aclare EDIT 3. Raspar un registro como un DJ dará como resultado un archivo que no tiene la misma longitud. p.ej. Si un DJ hace girar un disco dos veces más rápido, un archivo de grabación de ese sonido sería la mitad de la longitud original en el tiempo. ¿Es esto lo que quieres? – hotpaw2
@ hotpaw2. Sí, lo siento por eso. He corregido EDIT 3. De hecho, sería la mitad de longitud y eso es exactamente lo que estoy buscando. Gracias :) –