10 de enero de 2014

Modificando el software libre Rivendell para que las radioemisoras puedan cumplir la Ley Resorte

Todavía algunos creen erróneamente que el software libre son "programas gratuitos que se descargan de Internet". Un programa puede ser gratuito, pero si no viene con su código fuente (sus planos, su receta) y con permiso legal para modificarlo y redistribuir las modificaciones, entonces NO ES software libre. Y queremos mostrar lo que el software libre nos permite hacer.

En Venezuela, el artículo 14 de la Ley de Responsabilidad Social en Radio, TV y Medios Electrónicos (que muchos conocen como "Ley Resorte"), señala que toda emisora de radio de nuestro país, "al difundir las obras musicales venezolanas deberá identificar sus autores, autoras, intérpretes y género musical al cual pertenecen". Es decir: la emisora está obligada a informar los autores, intérpretes y género de cada canción venezolana que coloque al aire, sin importar su género o estilo musical.

Foto: Revista Radio World
Las emisoras cumplen este artículo de la ley cuando hay locutores o presentadores en el estudio en vivo, pero de resto la mayoría de las emisoras dejan un computador con un software de automatización colocando canciones, y en esos casos no es fácil cumplir la ley. A veces se dejan canciones con audios pregrabados por locutores identificándolas, pero eso trae problemas e inconvenientes que describiremos luego.

Recientemente se nos requirió a la emisora Alba Ciudad 96.3 FM darle cumplimiento cabal al artículo 14 de la Ley Resorte, identificando las canciones no sólo cuando haya un locutor al aire, sino en todo momento. Como emisora del Ministerio de la Cultura, se nos pide dar el ejemplo.  Y, más allá de cumplir la legislación vigente, el identificar las canciones forma parte importantísima de la batalla cultural que libramos los sectores revolucionarios: se necesita dar a conocer los diferentes artistas, cultores y músicos locales -algunos de ellos considerados patrimonio cultural viviente dentro de sus regiones, pero desconocidos en el resto del país- que son invisibilizados por la industria cultural y las grandes transnacionales del entretenimiento. 

¿Qué soluciones podemos tener a este problema?
Estudiamos varias opciones. 
  1. Tener locutores las 24 horas, los 365 días del año: desde el punto de vista radiofónico es lo ideal, pues un locutor en vivo, conversando con la gente, transmitiendo alegría, leyendo noticias y mensajes de texto enviados por los usuarios e identificando a las canciones, es algo que sirve para mantener a la gente sintonizada. Pero es muy difícil, altamente costoso y muy poco humanitario para cualquier emisora el tener locutores trabajado todo el día, la noche y la madrugada, además de los sábados, domingos y feriados.
  2. Editar cada canción añadiéndole al comienzo de la misma la voz grabada de un locutor identificando el nombre de la canción, sus intérpretes, compositores y género: Esto se hace en muchas emisoras, pero tiene varias desventajas:
    • Modificas la canción de forma terrible: el inicio de muchas canciones es realmente hermoso, en particular en los géneros tradicionales  venezolanos (por ejemplo, los solos de arpa al comienzo de muchos joropos). Colocarle la voz de un locutor encima del principio de la canción las daña de forma terrible, e incluso ofende a algunos artistas. Incluso hemos escuchado casos donde se coloca la voz del locutor encima de la interpretación del vocalista, algo aún más irrespetuoso.
    • Habría que editar cada canción, grabarle el audio encima y volver a subirla al Rivendell. Es algo extremadamente trabajoso, y en el caso de nosotros, que tenemos más de 9 mil canciones venezolanas, tardaríamos varios años en terminar el trabajo.
    • Tienes que mantener dos copias de la canción: una sin edición alguna, y otra con la voz del locutor identificándola. Ello porque en aquellos programas donde hay locutores en vivo, es preferible que sea el locutor quien la identifique e incluso dé detalles adicionales de ella, sus intérpretes, género y compositores. En esos casos habría que poner la canción sin edición alguna. Esto ocupa mucho más espacio en disco duro y complica enormemente la administración del sistema.
    • Añadir una nueva canción al sistema requiere grabarle la identificación con el locutor.
Así que queremos proponer una tercera opción: grabar un audio por cada canción venezolana, identificando su nombre, intérpretes, compositores y género. Dichos audios no se incrustarían en cada canción, sino que se mantendrían por separado en el sistema. Por ejemplo: la canción "Fucking Reggaettón" de Dame Pa' Matala tendrá un archivo de audio adicional llamado 123456.wav, con la voz de un locutor identificando dicha canción. Estos audios se colocarán al aire antes de cada canción, y el software de automatización se encargaría de facilitarle el trabajo al operador.

Esto tiene varias ventajas:
  • La canción no se altera ni se modifica en Rivendell.
  • El operador puede decidir si colocar la canción con su audio de identificación (cuando no haya locutor en la cabina) o sin dicho audio (para dejar que un locutor o presentador la identifique).
  • No hace falta tener dos copias de la canción (una con el audio identificador y otra sin él), ahorrando valioso espacio en disco duro (para una emisora comunitaria, gastar Bs. 6 mil o Bs. 9 mil en un nuevo disco duro es impensable).
Pero esto sería complicado para el operador, pues al armar un playlist tendría que añadir no sólo las canciones, sino cada audio que identifica dichas canciones. Sería una labor tediosa y propensa a cometer errores humanos.

Captura del módulo RDAirplay del software libre Rivendell.


¿Cuál es la propuesta que estamos haciendo? Modificar el código fuente de Rivendell para que cada canción venezolana pueda tener señalado cual es su audio identificador, de forma tal que, cuando el  operador añada la canción al playlist, automáticamente también se añada su audio identificador, evitándole trabajo adicional.

Debido a que Alba Ciudad utiliza un software libre que también es usado por varias emisoras comunitarias del país, el poder buscar una solución a través del software sería beneficioso no sólo para nosotros, sino también para que estas emisoras se apresten a cumplir la ley y colaboren en esta batalla cultural que vivimos.

Esta es la modificación que hicimos:

En la aplicación RDLibrary, que es usada para cargar canciones y audios en el sistema Rivendell, hicimos una modificación al código fuente para añadir un nuevo campo que permite especificar cuál es el cartucho con el audio identificador de esta canción. Dichos audios deben importarse con anterioridad, pero eso se puede hacer de forma automatizada usando un DropBox. El musicalizador puede usar el botón "Seleccionar" para elegir el audio a importar, e incluso escucharlo previamente.
Si el cartucho no es de una canción venezolana o simplemente no se desea especificar un cartucho identificador, se deja dicho campo vacío.
En la aplicación RDAirPlay, que usa el operador del estudio en vivo para poner canciones al aire, hicimos una modificación para que, si el operador añade una cancion que tenga un audio identificando dicha canción, también se añada dicho audio a la lista de reproducción. Es decir: Cuando el operador oprima "Añadir" y seleccione una canción de la lista, y si dicha canción tiene un audio identificador asignado, y si la casilla "Añadir cartucho con identificación" está marcada, entonces se añadirán DOS audios al playlist: la tapa identificadora y la canción como tal.


El operador puede desmarcar la casilla  "Añadir cartucho con identificación" y así evitar que se añada la tapa identificadora junto con la canción, ello para los casos en los que hay un locutor en el estudio que quiera identificar la canción él mismo.


Estas modificaciones también las realizamos en RDLogEdit, que es el módulo en Rivendell que permite a los musicalizadores crear listas de reproducción para que los operadores las pongan al aire.


Rivendell es un software creado en 2004 por Fred Gleason y su equipo en la empresa Paravel Systems en Estados Unidos. Al ser software libre, su código fuente está disponible y podemos modificarlo y redistribuirlo, lo que nos permite hacer este tipo de adaptaciones para mejorar nuestro trabajo en Alba Ciudad (y posiblemente el de muchas otras emisoras venezolanas). El software Rivendell está programado en el lenguaje C++ bajo el ambiente de programación Qt. Tenía tiempo sin programar en C++, y me costó un poquito entender alguna partes, pues cada programador tiene su estilo y forma de programar. Pero, aprovechando mis vacaciones y la tranquilidad de mi hogar, me puse a hacer la modificación ;-) (hacerlo en las oficinas de la emisora sería imposible).

Hemos enviado al equipo de Rivendell el "parche" con las modificaciones que hemos realizado. Así es como funciona el software libre: programadores de todo el mundo envían parches a los líderes o programadores principales de una aplicación, éstos lo revisan y deciden si incorporarlo a la aplicación. A veces piden que se hagan modificaciones, o a veces simplemente se niegan pues no la ven necesaria.

Para aplicar el parche y probarlo o utilizarlo en tu radioemisora:
  • Descarga el código fuente de Rivendell 2.6.2 desde aquí; descomprímelo en tu carpeta personal (se creará la carpeta ~/rivendell-2.6.2).
  • Descarga el parche haciendo click aquí o al final de acá. Descomprime el archivo y coloca su contenido en la carpeta ~/rivendell-2.6.2 creada en el paso anterior. Se creará un archivo llamado "2014-01-05b.patch"
  • Desde un terminal, usa el comando "cd ~/rivendell-2.6.2" y, al ingresar a esa carpeta, ejecuta el comando: patch -p1 < 2014-01-05b.patch
  • Luego realiza los pasos habituales para compilar Rivendell (puedes encontrarlos acá).

Si el parche no es aceptado por el equipo de Rivendell, de cualquier forma es normal que terceros mantengan parches para aplicárselos a una aplicación de software libre. Es lo que hacen los mantenedores de paquetes en Debian y Ubuntu, por ejemplo.  En el caso de Rivendell, Alban Peignier, quien mantiene paquetes para las distribuciones Ubuntu y Debian, mantiene aquí una serie de parches que debe aplicar al código fuente original de Rivendell antes de poder crear los paquetes .deb que facilitan la instalación. Posiblemente nosotros tendremos que hacer lo mismo si el parche no es aceptado por el equipo de Rivendell, y tendremos que crear nuestro propio repositorio y nuestros propios paquetes. Habrá que probar el parche en cada nueva versión de Rivendell para ver si sigue funcionando sin problemas.

PD. los paquetes necesarios en Ubuntu 12.04 (y sus derivados) para compilar Rivendell son los siguientes (instálalos con sudo apt-get install): cvs gcc autoconf make automake bzip2 libtool  qt3-apps-dev       libjack-dev   libogg-dev   libvorbis-dev libid3-3.8.3-dev  libflac-dev  libsamplerate0-dev     libsndfile1-dev    libcdparanoia0-dev      libcurl4-gnutls-dev libpam0g-dev   libsoundtouch-dev   libalsa-ocaml-dev   libflac++-dev    libflac-ocaml-dev   libmad0-dev      libmp3lame-dev    libtwolame-dev    libmp3lame-ocaml-dev      libqt3-mt-mysql   build-essential dpkg-dev g++ g++-4.6 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libcurl4-openssl-dev   libdpkg-perl libmadlib libmadlib-dev libssl-dev libssl-doc libstdc++6-4.6-dev
Publicar un comentario