Análisis
En nuestros dias el frujo de información digital es cada día más grande y al mismo tiempo el intercambio de musica, pero si bien todos pueden tener la misma información digital en sus computadoras no todos tienen la misma calidad en sus equipos de reproducción fisicos (parlantes, equipos de musica, audifonos, etc) por lo que se hace necesario recurrir a la modificacion de las bandas de frecuenia de la música para suplir estas falencias. Para ellos se piensa en el desarrollo de una interfas gráfica que permita interactuar en primera medida con algunas configuraciones básicas de manejo de audio y asi dejar planteado el desafío de desarrollar algoritmos que permitar mejorar la calidad auditiva de las personas a través de correcciones via software de los espectros musicales.
"Filtro mágico" logra cargar un archivo de audio, reproducirlo y además controlar el eculizador, modificando las ganancia de las bandas de frecuencia para realizar las correcciones necesarias.
Si se carga más de un archivo de audio, estos se ponen en una lista que luego podrá ser reproducida bajo los requerimientos del usuario.
Características:
Soporta archivos .mp3, ogg, wav.
Se utiliza de la clase Basicplayer:
La ecualización se hace a partir de filtros pasabanda.
Cada banda de frecuencia es modificada en un rango de [-6,6][dB]
Casos
de Uso
Antes de definir los casos de uso se plantean los requerimientos funcionales que la aplicación debe tener:
Caso de
Uso 1:
Nombre: Cargar playlist.
Propósito: Cargar más de un archivo mp3.
Actor: Usuario.
Pre-Condición: Haber cargado un archivo previamente.
Evento: El Usuario desde el botón abrir archivo carga una archivo.mp3 luego de haber cargado otro previamente.
Post-Condición: Las canciones cargadas aparecen una lista en la pantalla.
Tipo: Manual.
Curso Normal de Eventos
Actor |
Sistema
|
El usuario presiona la opcion inicio/cargar para un archivo
|
El sistema despliega una ventana emergente para la búsqueda de el archivo
|
El usuario selecciona el archivo de interes
|
El sistema carga la ruta del archivo al programa.
|
|
Despliega en la playlist el nombre del archivo |
Nuevamente presiona la opción inicio/cargar para un archivo
|
El sistema despliega una ventana emergente para la busqueda de el archivo
|
Selecciona el archivo de interes.
|
Carga la ruta del archivo al programa |
|
Despliega en la playlist el nombre del archivo
|
Curso Alternativo de Eventos
Actor
|
Sistema
|
Cancelar la ventana emergente para cargar el archivo
|
Cierra la ventana y de la playlist inalterada
|
Caso de Uso 2:
Nombre: Ecualizar archivos.
Propósito: Modificar ganancia de bandas de frecuencias en el archivo reproduciéndose actualmente.
Actor: Usuario.
Pre-Condición: No existe.
Evento: Un archivo .mp3 se está reproduciendo.
Post-Condición: La ganancia de las diferentes bandas disminuye su intensidad si el slider se sube del punto medio y aumenta su intensidad si el slider se baja. La Ganancia fluctúa entre [-6,6] [dB]..
Tipo: Manual.
Curso Normal de Eventos
Actor
|
Sistema
|
El usuario presiona play para reproducir archivo previamente cargado.
|
El sistema la reproduce. |
|
Elección de uno de los Slide con una frecuencia puntual y modificación su valor desplazando el Slide.o
|
Curso Alternativo de eventos
Actor
|
Sistema
|
Presiona el botón de "set default" |
Reinicia los valores de los slide a 0, quedando con la configuración inicial |
Caso de Uso 3:
Nombre: Balance.
Propósito: Disminuir el volumen de un parlante con respecto al otro, para balancear la salida de audio hacia uno.
Actor: Usuario.
Pre-Condición: Un archivo .mp3 se está reproduciendo.
Evento: El usuario mueve un slider horizontal hacia izquierda o derecha indicando para cual lado quiere que se balancee el audio en reproducción.
Post-Condición: Si el slider se ubica hacia la derecha del punto central, se oye más fuerte ese parlante y viceversa.
Tipo: Manual.
Curso Normal de Eventos
Actor
|
Sistema
|
El usuario arrastra con el mouse el slider de balance en alguna dirección. |
El Sistema toma el nuevo valor y cambia las ganancias de los canales. |
|
El Sistema envía señal de audio con nuevo balance de ganancia por canal en la salida. |
Pruebas de Caso de Usos
Prueba Caso de Uso 1:
A continuación se muestra la aplicación con una playlist cargada mostrándose en pantalla.
Prueba Caso de Uso 2:
Se reproduce un archivo de prueba con tonos puros dentro de las diferentes bandas y se va modificando a través de la interfaz los diferentes valores de ganancia de los filtros al mover la barra deslizadora. De esta manera se comprueba de mejor manera si cada uno de los filtros están funcionando.
Diagrama UML de clases:
Dificultades Encontradas:
Una de las principales dificultades fue comprobar que la biblioteca utilizada funcionaba como debía en relación a los filtros pasabanda que utiliza y conocer las frecuencias que modificaba con estos filtros, lo que dio lugar a una extensa prueba del caso de uso 2.
Otra dificultad fue intentar reproducir la lista de canciones constantemente, es decir, en un loop continuo que solo se detuviera cuand el usuario lo indicara como los reproductores de hoy en dia funcionan.
Bugs Conocidos:
Bugs de esta versión: Es posible cargar una lista de archivos de audio y reproducirla, pero no automáticamente. Se debe presionar Play cada vez que se quiera escuchar una canción de la playlist.
Implementación:
A continuación se muestra una imagen de la aplicación funcionando
Código Fuente: