Con la ayuda
de Processing se creó esta aplicación, la cual es capaz de darnos la sensación de
usar una batería real ya que al utilizarla en un dispositivo Android con
pantalla táctil, nos permite tocar sobre las diferentes partes del instrumento,
y reproducir el sonido correspondiente.
Entre las
partes que se incluyeron de una batería real en este programa tenemos:
·
Kick
·
Hi-Hat
·
Crash
·
Splash
·
Toms
·
Snare
·
Ride
·
Floor
Antes de explicar el proceso de desarrollo de la aplicación hay que tener claro el concepto de objeto y clase en el campo de la programación.
Una clase es un modelo que define las variables y métodos comunes a todos
los objetos de un cierto tipo; Un ejemplo de esto es cuando haces galletas de
figura de estrellas la clase seria el molde. Las función principal de una clase
es la que define las características de un conjunto de objetos que comparten
algunas características como: almacenar los mismos tipos de datos y pueden
ejecutar las mismas operaciones.
Un objeto es una instancia (Proceso de creación de un objeto de una clase)
de una clase. Estos constas de una estructura y al igual que los objetos del mundo real
comparte dos características: estado (Atributos) y comportamiento
(Operaciones).
En este orden de ideas que una clase es la encargada tanto de darle la
estructura a los objetos, como el comportamiento de los mismos.
Teniendo esto en cuenta, la programación de esta aplicación se hizo basándose
en la utilización de objetos, lo cual ha hecho que este sea más limpio y
eficiente. Se definió un objeto por cada parte de la batería los cuales fueron
declarados por su nombre como tal, y estos se declararon bajo una clase llamada
Drum. Cada uno de estos objetos es
en realidad para la creación de un botón de forma circular, con unas
dimensiones y posición específica, el cual será el encargado de reproducir el
sonido, y agregar algunos efectos gráficos.
En la estructura de los objetos se tuvo en cuenta entonces el la posición central
del circulo que se adaptara a la imagen de fondo, el radio del circulo y el
nombre del archivo de sonido que debe reproducirse al darle clic.
Todas estas dimensiones son recalculadas para adaptarse al ratio entre el
ancho y alto de la ventana de manera que si el tamaño de la pantalla del
dispositivo cambia, la imagen no se distorsionara, ni los botones estarán fuera
de posición.
En la clase Drum, se crearon
tres funciones, overDrum, la cual es
la encargada de detectar si la persona está tocando dentro del radio de alguno
de los círculos; tap, esta función realiza
un pequeño efecto grafico cuando se toca la pantalla en botones, el cual se ve
como un circulo que aparece y se
desvanece con el tiempo, de afuera hacia adentro, lo cual fue logrado
aprovechando algunas funciones de Processing para definir la transparencia de
los dibujados; por último se encuentra la función beat, la cual simplemente reproduce los sonidos que debe tener cada
parte de la batería, en esta parte se resolvió un problema de la librería Maxim (Utilizada para cargar los
archivos de sonidos y reproducirlos), el cual consiste en que si se usa el
mismo objeto AudioPLayer para
reproducir varios archivos de sonido a la vez, o muy rápidamente (lo cual podría
ocurrir al usar una batería) el programa debe esperar a que termine de sonar un
archivo para luego reproducir otro. La solución dada fue crear un vector de
objetos Reproductores de audio, y cargarles secuencialmente el sonido el
usuario pida que vaya reproduciendo, sobrescribiéndose a sí misma cuando ya se
haya utilizado todos los espacios del vector.
Source Code
![]() |
Desarrollado por: Miguel Romero Geraldino
|


No hay comentarios:
Publicar un comentario