Obtención de notas de una guitarra clásica con Arduino

1

Tuve una idea para un proyecto que consiste en encontrar las notas que se están tocando en una guitarra clásica usando un Arduino. Ahora, nunca he usado un Arduino antes, así que no estoy seguro de si esto es factible o si hay una mejor manera.

Necesito detectar la frecuencia de cada cadena y luego tratar de hacer coincidir esa frecuencia con la nota correcta. No puedo usar un solo sensor para todas las cuerdas, porque cada nota puede estar en varias posiciones en el diapasón. La información sería transmitida de forma inalámbrica a una computadora. Podría ser la información sin procesar (que procesará la computadora) o la placa podría hacer el trabajo duro por sí misma, pero tal vez eso aumentaría la latencia.

¿Tiene alguna sugerencia sobre cómo hacer esto? ¿Hay un sensor óptico que pueda detectar la frecuencia con la que vibra una cuerda y que podría colocarse debajo de cada cuerda?

    
pregunta Mike42

2 respuestas

1

Lo que debes hacer es muestrear el sonido en una forma de onda y luego ejecutar una transformada rápida de Fourier en ella.

Dudo mucho que el Arduino sea lo suficientemente poderoso como para hacer esto. En su lugar, sugeriría usar algo más en sintonía con el procesamiento de la señal digital, como un dsPIC u otro microcontrolador basado en DSP.

    
respondido por el Majenko
1

Calcular las notas del sonido es una tarea enorme. De hecho, se resolvió por primera vez hace apenas unos años. Lo siento, parece que no puedo encontrar la referencia al artículo científico. Que yo sepa, aún no hay un producto comercial que resuelva esta tarea.

Para instrumentos que solo pueden producir una nota a la vez, el enfoque FFT puede funcionar.

Para instrumentos polifónicos como una guitarra, es un poco más difícil.

En una guitarra eléctrica es relativamente fácil porque existen sensores para cada cuerda.

Una guitarra clásica no ofrece la forma de detectar cuerdas hechas de metal.

Tal vez la detección óptica para cada cadena podría funcionar: enlace

Creo que la tarea más importante es tener una configuración de sensor que realmente detecte lo que está sucediendo con las cadenas, independientemente de cómo se procesarán los datos.

    
respondido por el posipiet

Lea otras preguntas en las etiquetas