Detector de notas de guitarra 1.Descripción del problema 2. Elección del algoritmo 3. Implementación 4. Posibles mejoras
1. Descripción del problema OCTAVASNOTAS (Hz) MiFaFa#SolSol#LaLA#SiDoDo#ReRe# 1ra da ra
Especificaciones: Sistema de tiempo real. (Retardo menor que 100ms) Detectar una sola nota a la vez Reproducir un tono puro a la frecuencia de la nota detectada
2. Elección del algoritmo Análisis en el dominio de la frecuencia Presencia de armónicos
fft Muestras de la transformada de fourier equiespaciadas en frecuencia. Presición = fs / nfft(nfft número de muestras) Implementaciones fáciles de conseguir czt Muestras de la transformada de fourier en el rango de frecuencias de interés Precisión independiente del número de muestras Mayor complejidad en las cuentas
Cálculo de la czt
Detección de la nota Busqueda de máximos por octava Descartamos armónicos
Caso patológico Máximo en extremo de la octava
3. Implementación
Buffer de entrada nota volumen Procesamiento e Identificación loop principal interrupción 8 khz
Resultados obtenidos Ciclos por loop: MHz Tiempo de llenado del buffer: 512 muestras 8khz
4. Posibles mejoras Mejoras al algoritmo, análisis temporal, redundancia, eliminar efecto de armónicos,... Polifonía (Redes neuronales, Reconocimiento de patrones,...) Salida Midi