Figura 1: Datos Obtenidos de un piano
Una aplicación de escritorio desarrollada en Python para el registro, análisis y visualización de ondas sonoras. Diseñada especialmente para el estudio de física de ondas y acústica.
- Grabación de alta calidad (44.1 kHz, 32-bit float)
- Duración configurable de grabación (1-10 segundos)
- Reproducción del audio grabado
- Interfaz intuitiva con controles de grabación
- Detección automática del período mediante autocorrelación
- Cálculo de frecuencia temporal (f = 1/T)
- Cálculo de frecuencia angular (ω = 2πf)
- Visualización de la oscilación completa
- Vista ampliada para medición precisa del período
- Transformada Rápida de Fourier (FFT) para análisis de frecuencias
- Detección de frecuencia fundamental
- Identificación de armónicos principales
- Reconocimiento automático de notas musicales
- Visualización del espectro de frecuencias
- Detección automática de notas musicales en español (Do, Re, Mi, etc.)
- Análisis de 8 octavas por nota musical
- Identificación de armónicos y su relación con la fundamental
- Precisión de ±50 cents para detección de notas
- Tres gráficas simultáneas:
- Oscilación completa en el tiempo
- Vista ampliada para medición del período
- Espectro de frecuencias (FFT)
- Interfaz oscura optimizada para análisis
- Marcadores automáticos de períodos y frecuencias
- Exportación de gráficas en alta resolución
Importante: Asegurate de tener git instalado en tu sistema o descarga el archivo .zip desde github.
- Clona o descarga el repositorio:
git clone https://github.com/tu-usuario/audio-spectrometer.git
cd audio-spectrometer- Instala las dependencias:
pip install -r requirements.txt- Ejecuta la aplicación:
python ProyectodeFFT.py- Configura la duración de grabación (1-10 segundos)
- Presiona "Grabar Sonido" y produce el sonido que deseas analizar
- Presiona "Analizar Grabación" para procesar los datos
- Observa los resultados en las gráficas y paneles de información
- Reproducir Audio: Escucha la grabación realizada
- Guardar Gráficas: Exporta las visualizaciones en PNG o PDF
- Análisis Temporal: Observa el período y frecuencia de la onda
- Análisis Espectral: Identifica frecuencias dominantes y armónicos
- Período (T): Tiempo que tarda la onda en completar un ciclo
- Frecuencia (f): Número de ciclos por segundo (Hz)
- Frecuencia angular (ω): Frecuencia en radianes por segundo
- Frecuencia fundamental: Frecuencia principal del sonido
- Armónicos principales: Múltiplos de la frecuencia fundamental
- Nota musical: Nota musical más cercana a la fundamental
- Gráfica 1: Visualiza toda la grabación para observar patrones
- Gráfica 2: Vista ampliada con marcadores de período
- Gráfica 3: Espectro de frecuencias con picos marcados
audio_spectrometer.py
├── AudioSpectrometer (clase principal)
├── setup_gui() (interfaz gráfica)
├── analyze_temporal_properties() (análisis temporal)
├── analyze_spectral_properties() (análisis espectral)
└── frequency_to_note() (reconocimiento musical)
- CHUNK: Tamaño del buffer de audio (4096)
- RATE: Frecuencia de muestreo (44100 Hz)
- FORMAT: Formato de audio (paFloat32)
- Rango de frecuencias musicales (80-2000 Hz)
OSError: [Errno -9996] Invalid input device
Solución: Verifica que tu micrófono esté conectado y funcionando.
ModuleNotFoundError: No module named 'pyaudio'
Solución: Instala PyAudio siguiendo las instrucciones específicas de tu sistema operativo.
- Reduce el volumen de entrada del micrófono
- Asegúrate de que no haya ruido de fondo excesivo
- Verifica que el micrófono esté funcionando correctamente
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
Para preguntas, sugerencias o reportes de bugs, puedes contactar a través de:
- Issues: GitHub Issues
- NumPy - Computación científica
- Matplotlib - Visualización de datos
- PyAudio - Interfaz de audio
- Tkinter - Interfaz gráfica de usuario
Desarrollado con ❤️ para el estudio de la física de ondas y la acústica