El sitio web de la UCLM utiliza cookies propias y de terceros con fines técnicos y de análisis, pero no recaba ni cede datos de carácter personal de los usuarios. Sin embargo, puede haber enlaces a sitios web de terceros, con políticas de cookies distintas a la de la UCLM, que usted podrá aceptar o no cuando acceda a ellos.

Puede obtener más información en la Política de cookies. Si continuas navegando, entendemos que aceptas su uso. Aceptar

Diseño y desarrollo de una aplicación Android para la transcripción de música con tablaturas
Realizado por Joel Lozano Sadornil. Curso 2018/2019.

Logo 

Resumen

Tanto la telefonía móvil, como la música y su tecnología se han desarrollado hasta límites inesperados durante los últimos años. Gracias a ello actualmente tenemos acceso a amplios conocimientos musicales y de interpretación, y además, casi todo el mundo cuenta con un SmartPhone. Esto hace que cada vez existan más herramientas que combinan estos dos mundos, y ofrecen al usuario un gran catálogo de servicios que pueden llevar en su propio bolsillo.

A pesar de ello, no son demasiadas las herramientas disponibles para cubrir las necesidades de los músicos, especialmente las destinadas a músicos aficionados. Por ello se propone el desarrollo de una aplicación móvil enfocada a este sector.

TabTranscription sigue esa línea y ofrece la posibilidad de transcribir música de guitarra de manera automática. La aplicación utiliza tablaturas, la notación más común entre guitarristas no profesionales, y además permite la edición de estas. Esta aplicación está destinada a guitarristas de cualquier tipo, y su principal objetivo es facilitar a los usuarios la manera de guardar y compartir su propia música.

Este proyecto cubre todo el proceso de desarrollo de esta aplicación. Desde el estudio del sector y las herramientas existentes, hasta el planteamiento, diseño e implementación del servicio.

Motivación

La música es una de las ramas del arte que más se ha popularizado en las últimas décadas, sobre todo si nos centramos en la idea de estudiarla. Mientras en el pasado la interpretación de música quedaba reservada a quienes contaban con mejor situación económica, actualmente cualquiera puede acceder a los recursos necesarios para introducirse en este mundo.

Todo esto, sumado a los avances tecnológicos tanto en instrumentación y ordenadores como en lo referente a la telefonía, ha creado una importante relación de simbiosis que ha permitido grandes avances en el desarrollo de ambas. Desde instrumentos virtuales y simuladores que te permiten tener en casa todo lo necesario para crecer como músico, hasta aplicaciones que facilitan complicadas tarea, como por ejemplo la afinación de un instrumento.

En este punto se pueden separar todos los avances en dos grupos. Los dirigidos a artistas y productores profesionales, con tecnologías más complejas y a la vez menos accesibles. Y los dirigidos al público general, el cual tiene menos conocimientos y menos recursos que poder invertir en estas tecnologías.

Este segundo grupo es el que se encuentra más abandonado en términos tecnológicos, por lo que centraremos este proyecto en él. Se pretende ofrecer un servicio (por ahora inexistente de manera óptima) para los músicos aficionados, el cual se base en una aplicación móvil capaz de transcribir automáticamente música de guitarra a tablaturas.

Además, este proyecto no nace únicamente para cubrir una necesidad existente en el mundo de la música. Una de las principales circunstancias que han desembocado en el desarrollo de “TabTranscription” ha sido el deseo de unir dos grandes pasiones personales, la música y la programación. Tanto los conocimientos técnicos, como el conocimiento de las necesidades concretas de los músicos, permitirán el desarrollo de este proyecto.

Hace cuatro años decidí estudiar el Grado en Ingeniería de Sistemas Audiovisuales de Telecomunicaciones para unir mis destrezas técnicas con mi hobby, y hoy, pretendo reafirmar esa idea con el desarrollo de este trabajo fin de grado.

Objetivos

El principal objetivo que se pretende alcanzar con la realización de este proyecto es crear una aplicación Android capaz de transcribir música de guitarra de una manera efectiva. Con esta aplicación los músicos podrán guardar y compartir su música. Si bien, este servicio está implementado en algunos programas de ordenador, el fin de este proyecto es trasladar esta idea a nuestros bolsillos.

Como objetivos secundarios se persigue:

  • Ampliar los conocimientos sobre programación aplicada a sonido, y más específicamente, sobre programación en la plataforma Android y sobre las librerías java de procesado de audio.
  • Distribuir la aplicación en Google Play para que pueda llegar a cualquier músico o artista.
  • Crear una plataforma para facilitar el intercambio de música.

Desarrollo de la aplicación

La implementación de este proyecto ha incluido diferentes tareas, desde el estudio de las herramientas ya existentes y el estado del arte, hasta la implementación de la interfaz de usuario y del procesado del audio. En la siguiente figura podemos ver el esquema del funcionamiento básico de la aplicación

Fig1

Interfaz de usuario

Uno de los primeros pasos ha sido la implementación de las diferentes pantallas de la interfaz de usuario. Para ello se ha utilizado código xml junto con distintas funciones java utilizadas para la navegación entre las diferentes Activities de la aplicación

Además, el editor de las tablaturas diseñado en esta etapa es uno de los servicios más importantes que ofrecerá la aplicación, ya que es esencial dar la posibilidad de corregir los fallos que pueda tener la transcripción automática.

Fig2

Comunicación entre componentes y almacenamiento de datos

Otra de las partes esenciales de la aplicación es poder contar con un método eficiente para guardar la información generada, que en este caso se corresponde con las tablaturas.

Para ello se ha utilizado la notación JSON, ya que este método facilitará la implementación de la comunicación entre distintos usuarios de TabTranscription. En el siguiente cuadro de texto se observa la estructura que tendrá esta información al ser guardada, en la cual destaca el uso de etiquetas y el Array“Tabs”, que contiene la tablatura como tal.

Fig3

Procesado de audio

Por último tenemos la implementación de todo el procesado de audio. En este caso se realiza en 4 fases:

  • Captura de audio
  • Análisis temporal
  • Análisis frecuencial
  • Transcripción del resultado.

Estas tareas se han implementado en lenguaje java y gracias al uso de múltiples herramientas, entre las que hay que destacar la transformada rápida de Fourier, utilizada para la conversión de la señal.

Fig4

Conclusiones

La realización de este trabajo fin de grado ha supuesto un gran reto, ya que debía profundizar en mis conocimientos de Android hasta llegar a implementar un servicio complejo de procesado de audio. Además, aunque sí que tenía experiencia en la plataforma y el lenguaje utilizados, no tenía ninguna referencia o experiencia previa en el procesado de sonido en java.

Pese a ello y a la gran cantidad de dificultades encontradas en el camino, el proyecto se ha podido desarrollar adecuadamente cumpliendo los objetivos principales y algunos de los secundarios. Objetivos cumplidos:

  • Crear una aplicación de Android capaz de transcribir música de guitarra de una manera efectiva.
  • Ampliar los conocimientos sobre la programación basada en audio, en concreto sobre la programación en lenguaje java para la plataforma Android y sobre las librerías existentes para el procesado de audio.
  • Distribuir la aplicación en Google Play para que pueda llegar a cualquier músico o artista.

Además de los objetivos generales del proyecto, también podemos hacer balance de los resultados mediante los contenidos que se pretendían implementar en la aplicación”. Se han cumplido todos los objetivos mínimos y algunos de los objetivos extra o avanzados:

  • Detectar melodías simples.
  • Permitir editar las tablaturas para que se correspondan a la interpretación.
  • Cumplir los requisitos para que la aplicación pueda tener éxito.
  • Permitir añadir acordes en la edición aunque no se puedan detectar.
  • Permitir usar herramientas que faciliten la transcripción.
  • Como conclusión final cabe destacar que hemos conseguido desarrollar una aplicación que cumple los requisitos para que una aplicación tenga éxito y realice su tarea de forma óptima.

Puede hacer uso de esta la aplicación a través de este enlace.