Javier Sánchez Sierra imparte clase de iOS en Berklee College of  Music. CTO/cofundador en Flits, Luraki y Lingualia. Realizó el Post-Doctorado en Music & Technology Innovation en el  CCRMA, Universidad de Stanford, 2008-2011. Tiene más de 30 Apps publicadas en el AppStore desde 2009 y por suerte para nosotros, es profesor en GeeksHubs Academy.

En nuestro curso «Recetas de Audio en iOS» nos enseñará la importancia que tiene el audio en las Apps y a cómo usar las herramientas para implementarlas. Así es como nuestro profesor experto ve el curso: 

¿Alguna vez te has fijado en la música que hay detrás de cada una de tus Apps que utilizas? Lo más normal es que relacionemos música con juegos, pero no siempre es así. En muchas ocasiones las Apps disponen de efectos de audio o simplemente de un pequeño tema que se escucha al comienzo de la misma.

En el caso de los juegos, os recomiendo un ejercicio muy interesante, que consiste simplemente en analizar los distintos sonidos que tiene el juego. Podemos encontrar temas de audio que se usan como entrada a la App, sonidos o efectos de transición entre vistas, temas de fondo de ambiente, sonidos que aparecen al interactuar con elementos del entorno, efectos repetitivos o temas que se reproducen al  finalizar cada juego/partida.

Podríamos hacer una analogía entre los componentes de audio y los elementos gráficos de una App. Nadie duda de la importancia de contar con un buen diseñador que nos detalle cada una de las vistas de la App y las transiciones e interacciones de las mismas. El desarrollador ha de ser lo suficientemente hábil para poder implementar esa propuesta de diseño.

Pues lo mismo ocurre con los componentes de audio. Por lo general, ha de haber un encargado de elegir qué temas y estilos son los más adecuados para cada escena de la App. Hay Apps que requieren de grandes equipos de personas a cargo del diseño de sonidos y efectos. Pero hemos de ser nosotros, como desarrolladores,  quienes seamos capaces de implementar estas propuestas utilizando los recursos de audio disponibles en iOS.

De eso trata este curso, de conocer los recursos disponibles en iOS para poder  reproducir sonidos y efectos en tiempo real, a medida que el usuario interacciona con el entorno. Desde pequeños efectos a temas complejos.

En el curso, comenzaremos utilizando las clases que permiten acceder a la librería de música del dispositivo. Podremos diseñar nuestro propio reproductor de audio y utilizar controles  a medida para navegar por los temas seleccionados, reproducirlos, parar, variar el volumen etc. Podremos también acceder a los metadatos del tema, como son el nombre del artista, álbum, pista, imagen del disco, etc.

Presentaremos también el framework AVFoundation, que nos permite reproducir ficheros de audio o realizar grabaciones utilizando el micrófono del dispositivo. Veréis que sencillo es crear una “nota de voz” y almacenarla, o cómo podemos reproducir un tema musical de fondo y añadirle nuestra voz a modo de Karaoke y grabar el resultado.

Otro framework muy interesante que presentamos en el curso es el AVAudioEngine, que se presentó en la WWDC del año 2014. Permite crear una “Audio graph” de una manera muy sencilla. Es lo que viene a ser una configuración virtual de un estudio. Podemos tener diferentes inputs, como una entrada de micrófono o varios temas musicales, a los que podemos añadir ciertos efectos (ecualizadores, reverbs, delays, distorsiones,etc) y que podemos mezclar controlando volumen y panoramización, para obtener así la salida deseada. La verdad es que es un módulo muy versátil y fácil de implementar.

Si queríamos crear este tipo de “Audio Graphs” antes de que apareciese AVAudioEngine, había que utilizar Core Audio, que es un framework de más bajo nivel que requiere implementar en lenguaje C. Core Audio aun está disponible, pero ya ha quedado relegado a casos en los que se requiere un control más fino del flujo de audio. No cabe duda de que es más complejo de utilizar pero los métodos y callbacks permiten realizar operaciones que no se podrían llevar a cabo de otra manera. Por ejemplo, es posible acceder a cada “sample” del audio y crear nuestros propios filtros utilizando matemática compleja (transformada de Fourier), utilizando para ello otros módulos tipo Accelerate Framework, que permiten realizar cálculos en tiempo real utilizando la GPU. Al fin y al cabo, AVAudioEngine  viene a ser un “wrapper” de Core Audio, que permite realizar las funciones más habituales directamente en Swift/Objective-C, un auténtico lujo.

Aparte de aquellas Apps de tipo juego, que utilizan el audio como complemento, hay Apps en las que el audio es el centro de las mismas. ¿Sabías que hay más de 70.000 Apps disponibles en el AppStore en la categoría de música? Hay multitud de ejemplos. Como la famosa Ocarina para iPhone de la startup Smule, que ya a finales de 2008 llegó al millón de descargas, a $0.99 cada una. Podemos encontrar multitud de instrumentos virtuales: pianos, violines, guitarras, batería, aplicaciones de Karaoke, aplicaciones de streaming de audio, aplicaciones de reconocimiento de temas musicales, etc.

Volviendo al la parte de diseño de audio, hay numerosas plataformas web en las cuales podemos encontrar multitud de temas musicales y efectos para nuestras Apps. Basta que especifiques el estilo: 8-bits, acción, aventura, épico, horror, orquestal, retro, estrategia, vocal, y un montón más. He encontrado auténticas joyas por tan solo 10€.


¿Te animas a probar estos frameworks? Seguro que ya tienes en la cabeza alguna App que te permita poner todo esto en práctica y te puedo enseñar a utilizarlas. ¡Venga, anímate y apúntate a nuestro curso!