August 31, 2012 11:20 am

Mi primera aplicación para Windows Phone: cómo desarrollé BitSynth

— Andy Myers

[La gente crea aplicaciones por muchas razones. Para algunos es una cosa seria. Para otros es un pasatiempo, como el equivalente para niños grandes de construir con Legos. Algunas personas lo hacen por la misma razón por la que corren un maratón: sólo para probar que sí pueden. ¿Tienes una primera aplicación para Windows Phone de la cual estés orgulloso(a)? Cuéntanos tu historia en la sección de comentarios.]

Me encanta hacer cosas, en especial las que están relacionadas con la música. Como músico electrónico, no hay nada que disfrute más que crear mis propios y extraños instrumentos—teclados con circuitos, Game Boys modificados—y después verlos cobrar vida en una canción. Es un pasatiempo extraño, lo sé, pero soy un apasionado de ello y me ha traído horas de sano entretenimiento.

Hace algunos meses, tras notar una falta de aplicaciones para sintetizadores de 8 bits para Windows Phone (no es sorprendente, dado su exclusivo nicho), me inspiré para intentar hacer una. Nunca antes había desarrollado una aplicación, pero ¿realmente podría hacerlo? Tenía muy poca experiencia en programación y las pocas veces que había intentado aprender en el pasado no me había ido tan bien. Sin embargo, comencé a bosquejar algunas ideas y antes de que lo supiera ya estaba enganchado a la idea. No había marcha atrás. Simplemente tenía que desarrollarla y tenía que aprender a hacerlo.

La cruda realidad

Al principio soñé en grande. Quería crear una aplicación épica para sintetizadores. Tendría una docena o más de sonidos predeterminados, una variedad de al menos tres octavas, muchísimas manijas y deslizadores para ajustar cualquier parámetro, grabación, muestra, control de acelerómetro imaginable.

Sketch of BitSynth

Al reverso de una servilleta: antes de sentarme junto a mi PC, hice este pequeño bosquejo de mi futura aplicación.

Yo no lo sabía, pero desarrollar una aplicación lleva tiempo, en especial si eres como yo y no tienes idea de lo que haces. Muy pronto tuve claro que si quería que mi aplicación viera la luz del día, tendría que ser mucho más realista. Por lo tanto, simplifiqué la aplicación. Decidí enfocarme en sólo algunas funciones e intenté que dichas funciones fueran increíbles. Para el teclado, diseñé tres sonidos sencillos en mi Game Boy y grabé cada nota como un archivo WAV individual (esto es una nota por sonido, por llave, lo cual—como verán a continuación—equivale a varios archivos WAV). Estas muestras se volverían la base para mi aplicación. Presiona una tecla para que suene una muestra.

BitSynth sound files

Instrumentos de la vieja escuela: usé mi viejo Game Boy para grabar sonidos que finalmente usé en mi aplicación.

Las aventuras de la programación

Después de algunos meses—y de muchas preguntas confusas y tazas de café—pude terminar y publicar mi primera (y única) aplicación. Está escrita en el lenguaje de programación XNA y se llama BitSynth (¿Por qué ese nombre? Pensé que se escucharía bien).

BitSynth 1.0 era muy austera en comparación con mi versión original. Sólo tenía tres sonidos diferentes a través de un teclado de una octava y media. Sin embargo, me di cuenta de que una vez que tenía el marco en su lugar, fue mucho más fácil agregar funciones a mi aplicación. Por lo tanto, continué trabajando y después de un mes publiqué BitSynth 2.0, el cual se acerca más a lo que había imaginado originalmente.

La versión más reciente te permite cambiar entre cuatro sonidos, tocar en casi tres octavas, elegir si quieres que un sonido se reproduzca de forma periódica o continua cuando tocas una tecla. Incluso usa el acelerómetro integrado del teléfono para hacer unos increíbles efectos especiales. Te invito a que lo descargues y lo pruebes.

Quizá te preguntes: ¿cualquier puede desarrollar una aplicación? Ahora creo que la respuesta es sí, aunque esto dio inicio a una interesante discusión con mi esposa, quien al principio no estaba de acuerdo. Ella es muy inteligente—mucho más que yo—pero odia las matemáticas. No podía entender que alguien con aversión a los números pudiera alguna vez programar lo que sea. Es cierto que las habilidades matemáticas son importantes para la programación, en especial si quieren desarrollar un juego (lo cual espero poder hacer un día).

How the finished BitSynth looks 

Paraíso de 8 bits: así se ve la versión final de BitSynth.

Pero todavía hay mucho por hacer. Todo el tiempo escucho historias sobre jóvenes que desarrollan las más increíbles aplicaciones. En lo personal no soy experto en matemáticas—y en definitiva no soy un joven—pero creo que parte de la razón por la que pude terminar este proyecto es que hay herramientas y recursos en verdad increíbles para personas con distintas habilidades (como estos videos).

Esto no quiere decir que aprender cómo programar sería fácil para todos—en definitiva no lo fue para mí. Desarrollar BitSynth me llevó más tiempo del que pensé y, a final de cuentas, tuve que hacer mucho más sencillas mis ideas. Me topé con varios obstáculos, y más de una vez tuve que pedir a un amigo programador que me ayudara. Incluso tuve que empezar desde cero en algún momento.

Sin embargo, terminé y lo más importante es que me divertí todo el tiempo y aprendí muchísimo.

7000 descargas y las que se acumulen

My download stats

¿Y cómo reaccionó el mundo? Hasta el momento de escribir esta historia, BitSynth ha sido descargada más de 7,000 veces. Me divierte muchísimo revisar cada semana el Windows Phone Dev Center para ver las más recientes estadísticas y los comentarios sobre mi aplicación de todas partes del mundo. Es raro pensar que cualquier persona puede entrar a Internet, descargar herramientas gratuitas y crear algo para que lo usen miles de personas todos los días.

Programar una aplicación fue un respiro para mí, justo como escribir una canción sería un respiro para un programador, pero siempre es bueno salir de tu zona de confort y probar nuevas cosas. Me da gusto haberlo hecho.