¿Cómo hicieron para montar una radio en internet?

Bueno, esta sección va dedicada a alguien que quiera montar una radio en internet como la hicimos en RadioGNU.

Introducción: Antes de poder comenzar

Antes que nada, entendamos cómo funciona un sistema de flujo de datos (streaming) de audio por internet:

  • Primero (abajo a la izquierda) está la fuente del sonido que se transmite. Este puede ser de dos principales tipos:
    • Audio en vivo, producida por un micrófono o por música transmitida por un locutor en vivo
    • Audio de archivos, en los cuales reposa el contenido a transmitir, ya sea voz (podcasts), música o ambos.
  • Segundo, todo el audio es manejado a través de una herramienta llamada jack, junto a su interfaz gráfica llamada qjackctl
  • Luego, está la herramienta con la que se convierte esa fuente de audio en un Flujo de Datos (streaming) que será al final lo que escucharán en la radio. En nuestro caso recomendamos el uso de IDJC. Esta página usará el IDJC como programa de ejemplo.
  • Seguidamente, está el servidor (en este caso ICECAST) donde es llevado este Flujo de Datos (streaming) para poder ser recibido por los oyentes de la radio
  • Junto al ICECAST, se usará una herramienta (que es un lenguaje de programación) llamada LiquidSoap, la cual se usará para administrar los puntos de montaje o dicho de otra forma: lo que el usuario escuchará finalmente en la radio.
  • Finalmente, los oyentes que usan su reproductor libre favorito para escuchar la radio.

Implementos y Cachivaches necesarios

En principio sólo con una computadora con GNU/Linux y un micrófono de bajo presupuesto será suficiente para lograr de forma primitiva lo que necesitaremos. Sin embargo en un ambiente ideal la configuración sería así:

  • Un micrófono dinámico de buena calidad (recomendado SHURE SM58 o similar). Los micrófonos de condensador, si se tiene un buen presupuesto, pueden ser buenos también. Marcas recomendadas: Røde, Maudio, Senheizer, AKG y SHURE.
  • Para poder tener más de un micrófono, un Mezclador o Cónsola. Margas recomendadas: MACKIE y Behringer. Una Cónsola ideal para la radio es una como ESTA o ESTA. No es necesario que la cónsola tenga efectos, eso aumenta su precio y los efectos que trae no son útiles para la radio.
  • Un limiter/gate/compressor. Una buena opción puede ser ESTA, pero cualquier GATE hace el trabajo (ver abajo)
  • Un computador con GNU/Linux con tarjeta de sonido. Aunque casi todas lo son, es improtante verificar que sean de al menos 16 bits y que sean Full Dúplex.

Sobre el “GATE” o “Compuerta” sumado al Compresor y al Limitador, es importante señalar que dará al sonido una señal proveniente del micrófono donde no hayan picos producidos por alto volumen y lo que es más importnate: se eliminarán los sonidos que sean de baja señal. Con esto, cuando una persona habla se le escucha siempre al mismo volumen y si alguien que no está frente al micrófono hace un ruido o dice algo no se escuchará, dejando exclusivamente la voz del locutor la que sea procesada.

Instalando el Software Necesario

En las distintas pruebas que hemos realizado, nos hemos encontrado con que lo más recomendable es compilar el IDJC desde las fuentes. Estas instrucciones son para hacerlo en Debian Squeeze.

Instalamos JACK y las herramientas necesarias para compilar el IDJC:

aptitude install build-essential jackd qjackctl vorbis-tools alsa libjack-dev libvorbis-dev libogg-dev libmad0-dev \
libsamplerate-dev libflac-dev libsndfile-dev libavcodec-dev libavformat-dev libspeex-dev python-gtk2-dev \
python-mutagen checkinstall

Hecho esto podremos proseguir con la compilación del IDJC. Nos descargamos el paquete (para el momento de escribir esto la versión actual es la 0.8.1) desde la página oficial del proyecto:

http://sourceforge.net/projects/idjc/

Descomprimimos y compilamos las fuentes:

tar xzf idjc-0.8.1.tar.gz
cd idjc-0.8.1
./configure
make
sudo checkinstall

usando “checkinstall” en vez de “make install” estaremos generando un paquete .deb que además se entenderá con el sistema de dependencias de APT.

Poniendo el Kernel a Punto

Para que el JACK pueda trabajar en tiempo real adecuadamente requiere, en algunas distribuciones, hacer más de un paso. En el caso de Trisquel GNU/Linux (la recomendada por RadioGNU) se debe editar el archivo /etc/security/limits.conf y allí agregar al final estas tres líneas:

@audio - rtprio   99
@audio - nice    -10
@audio - memlock  4000000

En otras distribuciones será necesario tener un kernel RT (realtime) instalado. En el caso de Trisquel GNU/Linux no es necesario tal paso. Después será necesario unir el usuario con el cual se esté autenticado y agregarlo al grupo AUDIO en /etc/groups. Para que se esté totalmente seguro de que estos datos son cargados, se recomienda volver a comenzar una sesión nueva de usuario. Reiniciar será recomendable si se acaba de hacer un cambio a los valores del kernel… debe haber una forma de hacerlo sin reiniciar la máquina. Quien sepa como hacerlo se agradecerá.

Finalmente, en el archivo /etc/group se añade el usuario que se esté usando al grupo AUDIO y se reinicia la sesión, para que los cambios surtan efecto.

Levantando el JACK (con qjackctl)

Hemos instalado jack en el proceso anterior. La manera más sencilla de invocarlo es usando una aplicación llamada qjackctl. Después de haber hecho el APTITUDE ya está en el menu del sistema, dentro de la categoría correspondiente:

Al invocarlo tendremos una pantalla como esta:

Antes de darle a INICIAR, tenemos que verificar que su configuración sea correcta. Para ello tendremos que asegurarnos de varias configuraciones antes. Lo primero es que para que funcione todo en TIEMPO REAL, es necesario que nuestro kernel soporte tal cosa, de lo contrario dará errores. Se sugiere la primera vez no activar esta opción.

Otras dos configuraciones son importantes y darán finalmente la latencia con la cual trabajaremos. Brevemente, “latencia” significa retardo, y es en este caso el retardo que tendrá el sonido desde que entra al sistema hasta que sale del mimso. Evidentemente, mientras menos retardo será mejor. La combinación de la FRECUENCIA DE MUESTREO y los CUADROS POR SEGUNDO darán como resultado la latencia resultante. A mayor latencia menor uso del procesador: a menor latencia mayor consumo de procesador y viceversa:

Se recomienda mantener en todo momento la frecuencia de muestreo en 44100, ya que valores menores al transmitir música pueden cambiar sensiblemente desfavorable la calidad del audio.

Eventualmente, si esos valores no son soportados por el hardware actual, sucederán unos perjudiciales eventos llamados los XRUNS. Estos, se verán en la pantalla del qjackctl en forma de dos números, que inicialmente están en cero:

Ahí se pueden ver sobre la palabra DETENIDO, es un cero con otro cero al lado. Estos números deben permanecer en cero. Cambiar a un número mayor no es bueno, por lo que habrá que modificar las configuraciones para que esto se mantenga en cero.

En Proceso

Esta página está en proceso

 
comoradio.txt · Last modified: 2010/08/28 17:17 by tr0n
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki