.

No sabía que se cumplen 50 años desde que en Philips inventasen el cassette compacto en el formato que los que tenemos algunos años hemos conocido como medio principal para almacenar música. Con este aiversario como pretexto en este artículo desarrollan un reproductor con presentación de cassette, apoyado en el elemento audio:

Vintage format meets modern web tech: an HTML5 audio player with realistic controls. Today we want to share an audio player with you that looks like an old school music cassette.

El resultado es bastante vistoso aunque, como se señala en el propio artículo, es sólo un experimento. Todos los recursos están disponibles, incluyendo el arte gráfico y la música utilizada en la implementación, para los que puedan requerirlos.

.

riffwave.js es una pequeña herramienta en JavaScript para codificar sonidos a un formato que puede ser utilizado por elemento audio de HTML5. En concreto, genera un PCM dentro de un contenedor RIFF para los sonidos sintetizados.

Por alguna razón lo primero que pensé es si podría reproducir los prácticas relacionadas con la señal chirp que hace años tuve que hacer. Creo que las teníamos que hacer en Maple aunque puede que fuese en MATLAB.


A linear chirp waveform; a sinusoidal wave that increases in frequency linearly over time.

Dicen que una idea es una responsabilidad pero si fuese responsable de todas las ideas que se me ocurren probablemente estaría en la cárcel :P. Además, tampoco es que me sobre el tiempo así que por aquí lo dejo, por si hubiese oportunidad de revisitarlo.

.

Hace exactamente veinte días que apuntaba para tiempos ociosos un breve texto introductorio a la Web Audio API donde se ve algunas de las cosas con las que se puede empezar a cacharrear. Claro que se está condicionado a que los navegadores de los usuarios implementen estos recursos, pero ese no es la única limitación que un programador se puede encontrar.

En el mismo sitio que leía el artículo citado mencionaban a principios de año el caso del sonido en Cut The Rope, juego cuya versión web se supone que se apoya en HTML5 pero que recurre a Flash para el sonido. Uno de los desarrolladores, Robby Ingebretsen, explica por qué:

[…] sonidos cortos, repetitivos, en los que el tiempo es crítico, como los que hay en un juego, pueden cargar tu tarjeta de sonido de distinta manera y, francamente, no todos los navegadores hacen un buen trabajo en esa circunstancia.

[…] Intentamos: reciclar elementos audio, instanciar elementos audio en cada reproducción, usar «sprites» de sonido (donde combinamos sonidos en un conjunto reducido de ficheros de audio y usamos offsets para reproducir los efectos de sonido) y utilizar distintas estrategias de codificación, pero nada corregía los problemas con fiabilidad.

El hecho de que haya tenido que hacer un artículo completo explicando por qué no lo han usado revela la dificultad de hacer entender, incluso a gente que se supone formada, que a veces las cosas no funcionan como deberían y no hay mucho que se pueda hacer al respecto, salvo buscar alternativas. En el caso concreto del sonido en HTML5, hay una entrada en en HTML5 Doctor, otro sitio de referencia, que repasa el estado de este ámbito a día de hoy.

Y los que sólo quieran un rato de diversión siempre pueden jugar a Cut The Rope. Los valientes, si lo desean, pueden arriesgarse con la versión que usa el audio HTML5.

.

Reconozco que me gusta programar. Qué se le va a hacer, cada uno tiene sus vicios. Y si os digo que me siento cómodo programando en JavaScript seguro que más de uno me llamaría hasta pervertido y otros me dirían que eso no es programar. Lo dicho, qué se le va a hacer.

Hace poco me topaba audiolib.js, un proyecto que explora un aspecto de la programación en JS que no me resulta demasiado familiar:

audiolib.js is a powerful toolkit for audio written in JS.

It ships with most of the common tools […] In addition, it hosts these tools in a comprehensive framework, that makes it simple to write a single effect and provides the higher level abstraction on top of that, making the whole system comfortable for both users and plugin authors.

Lo malo es que no tengo mucho tiempo para curiosear más a fondo pero tendré que esperar a que surja algún proyecto donde pueda sacarle partido.

.

A veces los bugs no son algo malo.

Hace unos días meniconaba los experimentos de Jacob Seidelin apoyados en un trabajo previo de un grupo de programadores que aprovecha un bug presente en una versión de desarrollo de Firefox. Pues bien, a finales de mayo David Humphrey publicaba la décima entrega de los experimentos con el audio desarrollados por dicho grupo de desarrolladores:

Since my last post, quite a few new people have joined our group, a lot has changed in our implementation, and we’ve achieved a few things worth writing about. I also can’t keep these demos under wraps any longer, so it’s time for another post.

Lo vi en Ajaxian, como en las ocasiones anteriores.