• Sábado 14 de Diciembre de 2024, 21:31

Autor Tema:  Afinador Musical C++  (Leído 3409 veces)

JORE

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Afinador Musical C++
« en: Miércoles 14 de Abril de 2004, 15:49 »
0
Tengo que hacer una aplicación que consiste en un afinador musical. Capto con
    micrófono instrumento de cuerda y tengo que hacer FFT para afinar... Alguien puede orientarme en cómo hacerlo?
    Características
    - Capto con el micrófono, usando Directsound (u otro). Tengo que representar
    la señal sinusoidal del sonido captado en una gráfica. La discreta después de
    FFT también. Mi problema es que no sé cómo hacer paso a paso la captación del
    sonido, desde que se capta con el micrófono hasta que lo represento
    gráficamente en la pantalla con el gráfico sinusoidal. Sobretodo entender el
    tema de buffers y los pasos que debo dar con exactitud. Gracias.

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Afinador Musical C++
« Respuesta #1 en: Martes 4 de Mayo de 2004, 17:08 »
0
Bueno, para empezar no se como podriamos obtener la informacion del microfono, asi que si digitalizamos la señal por nuestra cuenta y madamos por decir al puerto paralelo esatria resuelto esa parte, pero implica uso extra de hardwere; despues almacenar los datos en una arreglo ó matriz para hacer el proceso, tambien se puede guaradr en un archivo, como es un "afinador" supongo que los datos no seran muchos si hacemos la finacion cuerda por cueda(corta duracion), yo diria unos segundos y si las señales estaran en un rango de 400 a 500 Hz(si no me equivoco o confundo) sera necesario una frecuencia de muestreo de digamos 250Hz y con una configuracion basica del ADC0804(100ns) esta parte estaria cubierta ademas de hacer la toma de datos del puerto con un retardo que se satisfactoria para la frecuencia de muestreo. En fin el proceso en si necesitara un algoritmo que detecte que detecte o compare una señal(datos del puerto con otro dato almacenado) y esto no lo conosco, creo que se puede encontrar en lo que se llama el "Procesamiento Digital De Señales".

wagr

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Afinador Musical C++
« Respuesta #2 en: Lunes 6 de Septiembre de 2004, 18:56 »
0
busca por fressa, alli existen programas para discapacitados y ejemplos com codigo fuente abierto para utilizar la captura de audio por microfono, lo unico que piden es que no puedes vender el programa que tu hagas si tienes dudas mandas el correo que alli te piden y si tienes suerte te lo contestaran con buenos resultados,... a mi me funciono para mi tesis.

kingfuzz

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Afinador Musical C++
« Respuesta #3 en: Jueves 9 de Septiembre de 2004, 06:07 »
0
:lightsabre: Hola amigo, mira no he desarrollado un programa de música o como el que quieres crear, pero lo que te puedo comentar es que el Mi o E en clave americana, oscila en 440 Mhz... es la partida para generar un afinador (es la norma internacional - Universal para afinar una Guitarra)... lo que te recomiendo, si sabes tocar algún instrumento de cuerdas, en especial guitarra, o bajo, también puede ser, es que te consigas un afinador de aguja, este te indica a cuantos oscila cada cuerda en Mhz, en el caso del Mi 440 Mhz, en los digitales, algunos solo muestra la Nota en clave americana, tendras claro a cuantos Mhz estara afinado cada cuerda. Algunas marcas Korg, Boss, Fender, etc - Dato algunos permiten afinar instrumentos eléctricos y acústicos(mediante un microfono), guitarras españolas o como algunos llaman clásicas... Yo creo que uno de los pasos, además es buscar un código para simular un osciloscopio (y poder poner un microfono en la tarjeta de sonido, directamente una guitarra eléctrica o un micrófono profesional unidireccional o bidireccional para instrumentos acústicos), el osciloscopio permite la medicion de ondas, y que a ciertas frecuencias ya investigadas y determinadas, te reconozca y diga en que tono esta cada cuerda (caso de tu programa lo que tendras que crear ya teniendo el codigo del osciloscopio), asi el afinador o programa permitirá, valga la redundancia afinar al tono que se desee, Re - Re# - Mi - o Fa (pero aqui ya es mucha tension de las cuerdas), ahora bien, puedes en el mismo programa a crear considerar escoger el instrumento a cuerdas que se quiere afinar... espero que este pequeño aporte de conocimiento e ideas te pueda ayudar, saludos amigo...