Canaima-radio

De Enciclopedia Colaborativa de la Comunidad Canaima

Tabla de contenidos

Introducción a este Wiki

La actualidad

Las transformaciones sociales y políticas sucedidas en Venezuela durante estas últimas dos décadas abren un gran debate sobre cómo deben entenderse y asumirse los medios de producción nacionales, en este caso aquellos relacionados con la comunicación e información. Este debate necesario se hace posible en el centro de la realidad instaurada: una realidad centenaria con una predominante política basada en desinformación, tergiversación y manipulación.

Colectivos de base y otras unidades productivas comprometidas con el proceso de cambios vienen armándose en pequeños y diversos cuadros de acción periodista ética, traspasando la lógica instituida y sirviéndose de herramientas tecnológicas para hacer la revolución de los medios alternativos y comunitarios. Esta revolución avanza conforme el colectivo se apropia del conocimiento necesario para implementar su propia radio, periódico, televisión, cine, teatro y literatura.

medios alternativos y comunitarios..

¿Por qué alternativos? Porque son una alternativa al régimen mediático dominante.

¿Por qué comunitarios? Porque provienen de las comunidades, desde el poder popular.

El proceso tecnológico de cambio

La alienación cultural es un fenómeno holístico, de manera que el uso de la tecnología como instrumento de producción lo es también y representa hoy un pilar fundamental de esta alienación.

Cuando un colectivo decide emprender un medio alternativo y comunitario, lo hace -muy probablemente- con tecnología conocida. He ahí que la gran mayoría de experiencias de automatización de radios, televisoras y otras expresiones de medios provengan del mundo privativo. Algunos programas de automatización de radios se pueden encontrar en [1].

El desconocimiento de otro tipo de tecnologías es natural y por ello, la propuesta plasmada en este documento trata de sumar al mundo alternativo y comunitario, aquel mundo que se construye con Software Libre.

Este espacio de documentación colaborativa pretende ser un aglutinador de ideas en torno al asunto de la puesta en marcha de radios comunitarios y alternativas: un nuevo paradigma comunicacional de radios basadas en tecnologías comunitarias y libres, como complemento y alternativa al movimiento de estos colectivos.

¿Quiénes son actores en la red nacional de medios alternativos y comunitarios?

  1. Medios alternativos comunitarios: colectivos apropiados de los medios de producción nacionales
  2. Minci: rector social y financiero
  3. Conatel: proveedor de bandas de radio en el espacio radioeléctrico venezolano
  4. Redtv: manejo técnico y transmisión

Hilo en listas.canaima.softwarelibre.gob.ve: Radios Comunitarias Libres

Desde el día sábado 7 de mayo de 2011 se generó un intercambio de experiencias en la lista de discusión de proyecto Canaima en cuanto al despliegue de radios basadas en Software Libre. El trabajo a continuación organiza el valioso conocimiento generado con el objeto de ser utilizado en procesos ulteriores de investigación y desarrollo.

Este trabajo es sistematizado con menciones destacadas en Hilo_en_listas_canaima_radios_comunitarias_libres. El hilo completo puede referenciarse desde [2].

Liberando a Makunaima Kariña: una experiencia de automatización de radio en Software Libre

Aquí se desarrolla la experiencia de implementar programas informáticos libres en una radio de reciente emergencia: Makunaima Kariña, dial FM 104.9. Se toma como marco referencial todo el conocimiento apropiado por el colectivo de Alba Ciudad en torno a Software Libre de radio y edición de audio.

Es propio destacar que las configuraciones del programa de radio rivendell y otras herramientas para la gestión de audio han sido implementadas y documentadas por el camarada Luigino Bracci, operador de Alba Ciudad.

Toda la transferencia de conocimientos en el sitio fue llevada a cabo por el camarada José Gregorio Sánchez.

La metodología de implementación de software reseñada a continuación ha sido tomada, esencialmente, desde http://softwarelibresocialista.blogspot.com/2011/06/como-instalar-rivendell-y-jack-en.html.

Aportes adicionales han sido incorporados a este documento en forma de notas bien identificadas.

Plataforma tecnológica

Se dispone de dos computadores.

El primer y más poderoso computador será nominado 'servidor' y está preparado con las siguientes características:

computador: 'servidor'
comando: sudo lshw -short

H/W path           Device      Class          Description
=========================================================
                               system         System Product Name
/0                             bus            P8P67 LE
/0/0                           memory         64KiB BIOS
/0/4                           processor      Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
/0/4/5                         memory         256KiB L1 cache
/0/4/6                         memory         1MiB L2 cache
/0/4/7                         memory         6MiB L3 cache
/0/4/4.1                       processor      Logical CPU
/0/4/4.2                       processor      Logical CPU
/0/4/4.3                       processor      Logical CPU
/0/4/4.4                       processor      Logical CPU
/0/4/4.5                       processor      Logical CPU
/0/4/4.6                       processor      Logical CPU
/0/4/4.7                       processor      Logical CPU
/0/4/4.8                       processor      Logical CPU
/0/4/4.9                       processor      Logical CPU
/0/4/4.a                       processor      Logical CPU
/0/4/4.b                       processor      Logical CPU
/0/4/4.c                       processor      Logical CPU
/0/4/4.d                       processor      Logical CPU
/0/4/4.e                       processor      Logical CPU
/0/4/4.f                       processor      Logical CPU
/0/4/4.10                      processor      Logical CPU
/0/27                          memory         8GiB System Memory
/0/27/0                        memory         4GiB DIMM Synchronous 1333 MHz (0.8 ns)
/0/27/1                        memory         DIMM Synchronous [empty]
/0/27/2                        memory         4GiB DIMM Synchronous 1333 MHz (0.8 ns)
/0/27/3                        memory         DIMM Synchronous [empty]
/0/1                           processor      
/0/1/4.1                       processor      Logical CPU
/0/1/4.2                       processor      Logical CPU
/0/1/4.3                       processor      Logical CPU
/0/1/4.4                       processor      Logical CPU
/0/1/4.5                       processor      Logical CPU
/0/1/4.6                       processor      Logical CPU
/0/1/4.7                       processor      Logical CPU
/0/1/4.8                       processor      Logical CPU
/0/1/4.9                       processor      Logical CPU
/0/1/4.a                       processor      Logical CPU
/0/1/4.b                       processor      Logical CPU
/0/1/4.c                       processor      Logical CPU
/0/1/4.d                       processor      Logical CPU
/0/1/4.e                       processor      Logical CPU
/0/1/4.f                       processor      Logical CPU
/0/1/4.10                      processor      Logical CPU
/0/2                           processor      
/0/2/4.1                       processor      Logical CPU
/0/2/4.2                       processor      Logical CPU
/0/2/4.3                       processor      Logical CPU
/0/2/4.4                       processor      Logical CPU
/0/2/4.5                       processor      Logical CPU
/0/2/4.6                       processor      Logical CPU
/0/2/4.7                       processor      Logical CPU
/0/2/4.8                       processor      Logical CPU
/0/2/4.9                       processor      Logical CPU
/0/2/4.a                       processor      Logical CPU
/0/2/4.b                       processor      Logical CPU
/0/2/4.c                       processor      Logical CPU
/0/2/4.d                       processor      Logical CPU
/0/2/4.e                       processor      Logical CPU
/0/2/4.f                       processor      Logical CPU
/0/2/4.10                      processor      Logical CPU
/0/3                           processor      
/0/3/4.1                       processor      Logical CPU
/0/3/4.2                       processor      Logical CPU
/0/3/4.3                       processor      Logical CPU
/0/3/4.4                       processor      Logical CPU
/0/3/4.5                       processor      Logical CPU
/0/3/4.6                       processor      Logical CPU
/0/3/4.7                       processor      Logical CPU
/0/3/4.8                       processor      Logical CPU
/0/3/4.9                       processor      Logical CPU
/0/3/4.a                       processor      Logical CPU
/0/3/4.b                       processor      Logical CPU
/0/3/4.c                       processor      Logical CPU
/0/3/4.d                       processor      Logical CPU
/0/3/4.e                       processor      Logical CPU
/0/3/4.f                       processor      Logical CPU
/0/3/4.10                      processor      Logical CPU
/0/100                         bridge         Sandy Bridge DRAM Controller
/0/100/1                       bridge         Sandy Bridge PCI Express Root Port
/0/100/1/0                     display        GT216 [GeForce GT 220]
/0/100/1/0.1                   multimedia     High Definition Audio Controller
/0/100/16                      communication  Cougar Point HECI Controller #1
/0/100/1a                      bus            Cougar Point USB Enhanced Host Controller #2
/0/100/1b                      multimedia     Cougar Point High Definition Audio Controller
/0/100/1c                      bridge         Cougar Point PCI Express Root Port 1
/0/100/1c.2                    bridge         Cougar Point PCI Express Root Port 3
/0/100/1c.3                    bridge         Cougar Point PCI Express Root Port 4
/0/100/1c.4                    bridge         82801 PCI Bridge
/0/100/1c.4/0                  bridge         PCI bridge
/0/100/1c.4/0/3                bus            VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller
/0/100/1c.5                    bridge         Cougar Point PCI Express Root Port 6
/0/100/1c.5/0      eth0        network        RTL8111/8168B PCI Express Gigabit Ethernet controller
/0/100/1c.6                    bridge         Cougar Point PCI Express Root Port 7
/0/100/1c.6/0                  storage        Marvell Technology Group Ltd.
/0/100/1c.6/0.1                storage        Marvell Technology Group Ltd.
/0/100/1c.7                    bridge         Cougar Point PCI Express Root Port 8
/0/100/1c.7/0                  bus            USB Controller
/0/100/1d                      bus            Cougar Point USB Enhanced Host Controller #1
/0/100/1f                      bridge         Cougar Point LPC Controller
/0/100/1f.2        scsi2       storage        Cougar Point 6 port SATA AHCI Controller
/0/100/1f.2/0      /dev/sda    disk           500GB ST3500418AS
/0/100/1f.2/0/1    /dev/sda1   volume         243MiB Linux filesystem partition
/0/100/1f.2/0/2    /dev/sda2   volume         2860MiB Extended partition
/0/100/1f.2/0/2/5  /dev/sda5   volume         2860MiB Linux swap / Solaris partition
/0/100/1f.2/0/3    /dev/sda3   volume         462GiB EXT4 volume
/0/100/1f.2/1      /dev/sdb    disk           1500GB WDC WD15EARS-00Z
/0/100/1f.2/1/1    /dev/sdb1   volume         1397GiB EXT4 volume
/0/100/1f.2/0.0.0  /dev/cdrom  disk           iHAS124   A
/0/100/1f.3                    bus            Cougar Point SMBus Controller
/1                             power          To Be Filled By O.E.M.
/2                             power          To Be Filled By O.E.M.
computador: 'servidor'
comando: sudo fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x64e996c1

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      248832   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              32         396     2928641    5  Extended
Partition 2 does not end on cylinder boundary.
/dev/sda3             396       60802   485206016   83  Linux
/dev/sda5              32         396     2928640   82  Linux swap / Solaris

Disk /dev/sdb: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x64e996b9

  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      182402  1465137152   83  Linux

El segundo computador, nominado 'preproducción', posee las siguientes caracaterísticas:

computador: 'preproducción'
comando: sudo lshw -short
 
H/W path              Device      Class       Description
=========================================================
                                  system      PROD00000000
/0                                bus         661 7MJ
/0/0                              memory      128KiB BIOS
/0/4                              processor   Intel(R) Pentium(R) 4 CPU 3.00GHz
/0/4/a                            memory      32KiB L1 cache
/0/4/b                            memory      2MiB L2 cache
/0/4/1.1                          processor   Logical CPU
/0/4/1.2                          processor   Logical CPU
/0/1b                             memory      1GiB System Memory
/0/1b/0                           memory      512MiB DIMM SDRAM Synchronous
/0/1b/1                           memory      512MiB DIMM SDRAM Synchronous
/0/1b/2                           memory      DIMM [empty]
/0/1b/3                           memory      DIMM [empty]
/0/100                            bridge      661FX/M661FX/M661MX Host
/0/100/1                          bridge      SiS AGP Port (virtual PCI-to-PCI bridge)
/0/100/1/0                        display     661/741/760 PCI/AGP or 662/761Gx PCIE VGA Display Adapter
/0/100/2                          bridge      SiS964 [MuTIOL Media IO]
/0/100/2.5            scsi0       storage     5513 [IDE]
/0/100/2.5/0.0.0      /dev/sda    disk        82GB HDS728080PLAT20
/0/100/2.5/0.0.0/1    /dev/sda1   volume      190MiB Linux filesystem partition
/0/100/2.5/0.0.0/2    /dev/sda2   volume      1430MiB Extended partition
/0/100/2.5/0.0.0/2/5  /dev/sda5   volume      1430MiB Linux swap / Solaris partition
/0/100/2.5/0.0.0/3    /dev/sda3   volume      75GiB EXT4 volume
/0/100/2.5/0.1.0      /dev/cdrom  disk        CD  R  LH52R1P
/0/100/2.7                        multimedia  AC'97 Sound Controller
/0/100/3                          bus         USB 1.1 Controller
/0/100/3.1                        bus         USB 1.1 Controller
/0/100/3.2                        bus         USB 1.1 Controller
/0/100/3.3                        bus         USB 2.0 Controller
/0/100/4              eth0        network     SiS900 PCI Fast Ethernet
/0/100/5                          storage     RAID bus controller 180 SATA/PATA  [SiS]
/0/1                  scsi2       storage     
/0/1/0.0.0            /dev/sdb    disk        SCSI Disk
/0/1/0.0.1            /dev/sdc    disk        SCSI Disk
/0/1/0.0.2            /dev/sdd    disk        SCSI Disk
/0/1/0.0.3            /dev/sde    disk        SCSI Disk
computador: 'preproducción'
comando: sudo fdisk -l

Disk /dev/sda: 82.3 GB, 82348277760 bytes
255 heads, 63 sectors/track, 10011 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1b27bc5c

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          25      194560   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              25         207     1464321    5  Extended
Partition 2 does not end on cylinder boundary.
/dev/sda3             207       10012    78756864   83  Linux
/dev/sda5              25         207     1464320   82  Linux swap / Solaris


Esquema de producción en red

Para explotar las bondades del trabajo colaborativo se ha pensando preparar una red de computadoras que permita compartir el trabajo. El esquema propuesto es el siguiente:


   Radio <-------+   +------->  Internet
                  \ /
                   |
                   |
           +---------------+   'servidor' es el computador que estará al aire los 365
           |   servidor    |   días del año.
           |   de radio    |
           |               |------|Base de datos|
           +---------------+
                   |
                   |
                   |
           +---------------+
           |               |   'preproducción' se conecta a 'servidor' para colocar en
           | preproducción |   la base de datos todas las pistas y cartuchos preparados
           |               |   fuera del aire.
           +---------------+

¿Qué está haciendo falta?

A pesar de contar con condiciones tecnológicas para llevar a cabo el proyecto de radio makunaima en Software Libre, para efectos de disponibilidad y

Red de trabajo local

  1. Un (1) suiche ethernet de 10/100/1000 Mbps de ocho puertos.
  2. Cables de red categoría 5e con conectores RJ-45.

Para la radio por Internet

  1. Una conexión dedicada DSL de 2Mbps.
  2. Un portal con el audio embebido.

Computadoras

  1. Tomando en cuenta que la computadora 'servidor' posee dos unidades de memoria RAM de 4GB cada una, en total 8GB, se propone dejar un solo bloque de memoria, teniendo finalmente un computador que use 4GB. Se esta medida suficiente para el trabajo de ese computador. Con 8GB se subutiliza mucho la capacidad del equipo en función de la carga real de trabajo.
  2. Cuatro tarjetas de audio: dos para salir a producción y dos de reserva. Se pueden utilizar tarjetas de audio tanto usb como pci.
    1. un ejemplo de tarjeta pci: http://articulo.mercadolibre.com.ve/MLV-31199098-tarjeta-sonido-pci-71-8-canales-digital-encore-enm232-8-via-_JM
    2. un ejemplo de tarjeta usb: http://articulo.mercadolibre.com.ve/MLV-30405867-tarjeta-de-sonido-usb-20-71-ch-optical-audio-sound-card-_JM

Redundancia

  1. Contar con otro equipo, con prestaciones similares al que estará en producción para utilizarlo en caso de contingencias.
  2. Tratar de utilizar tecnologías RAID para duplicar información.

Otras plataformas y proyectos derivados

  1. Un repositorio de fuentes audibles preeditadas. Esto dará mucho apoyo a aquellas radios que se estén iniciando, y permitirá no duplicar esfuerzos, sino reutilizar precisamente el conocimiento.

Cómo instalar Rivendell, Pulseaudio y Jack en Canaima GNU/Linux 3.0

Por Luigino Bracci, lbracci@gmail.com

A continuación vamos a describir los pasos para instalar Rivendell 1.7.2 en Canaima Linux 3.0, distribución basada a su vez en Debian Squeeze. Vamos a instalar además JACK y Pulseaudio para permitir que múltiples aplicaciones de audio puedan usar la tarjeta de sonido.

Una de las cosas que más nos interesa es lograr que Jack y Pulseaudio funcionen adecuadamente y de forma simultánea, para lo cual es de gran ayuda el módulo pulseaudio-module-jack, que permite que las aplicaciones que emiten sonido a través del servidor Pulseaudio, puedan ser “enrutadas” a través de Jack.

Sin embargo, el plugin propietario Adobe Flash no funciona adecuadamente con esta combinación (por ejemplo, los videos de Youtube no tienen sonido). Solucionar este problema no ha sido sencillo debido que Flash es un software propietario, y no es posible corregir el problema debido a que no tenemos acceso a su código fuente. Pero para eso se usan algunos paquetes Pulseaudio de KXStudio.

El procedimiento completo es el siguiente, una vez termine de instalar Canaima Linux 3.0:

Abra un terminal, entre en modo superusuario y, usando un editor como nano, añade al final del archivo /etc/apt/sources.list los siguientes repositorios:

archivo: /etc/apt/sources.list

[...]
# repositorios de paquetes jack y pulseaudio
deb http://ppa.launchpad.net/kxstudio-team/ppa/ubuntu maverick main 
deb-src http://ppa.launchpad.net/kxstudio-team/ppa/ubuntu maverick main 
[...]

(Nótese que KXStudio es un repositorio para Ubuntu, y el instalar paquetes de esa distribución en Debian y Canaima puede causar problemas gravísimos; en este caso, usaremos el repositorio para instalar sólo algunos paquetes, y luego lo removemos).

Añadir la clave de KXStudio y actualizar la lista de paquetes:

línea de comandos

# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DF8063EB
# aptitude update

Ahora, instalemos los paquetes de Pulseaudio y Pulse-Jack que vienen con KXStudio.

línea de comandos

# aptitude install pulse-jack pulseaudio-module-jack 

Una vez hecho esto, volvamos a usar un editor como nano para borrar de /etc/apt/sources.list los repositorios de KXStudio que añadimos antes.

De nuevo actualizamos los paquetes, e instalamos jackd y qjackctl, los paquetes necesarios para que Jack funcione en el computador.

línea de comandos

# aptitude update
# aptitude install jackd qjackctl

También vamos a instalar el paquete libasound2-plugins, que contiene un plugin para ALSA que permite que las aplicaciones suenen en JACK.


línea de comandos

# aptitude install libasound2-plugins

Para que este plugin funcione, tenemos que crear en la sesión del usuario un archivo .asoundrc (también puede crearse un archivo /etc/asound.conf, que funcionará entonces para TODOS los usuarios y usuarias del computador). El archivo deberá contener lo siguiente:

archivo: ~/.asoundrc

[...]
ctl.!default {
       type hw           
       card 0
}

pcm.!default {
       type plug
       slave { pcm "jack" }
}

pcm.jack {
       type jack
       playback_ports {
               0 system:playback_1
               1 system:playback_2
       }
       capture_ports {
               0 system:capture_1
               1 system:capture_2
       }
}
[...]

Para que el puente entre Pulseaudio y Jack funcione bien, debemos crear un archivo .pulse/client.conf

línea de comandos
$ mkdir   .pulse
$ cd  .pulse
$ nano client.conf

en la sesión del usuario que estemos instalando (o /etc/pulse/client.conf para TODOS los usuarios y usuarias), con el contenido:


autospawn = no


Vamos a usar QjackCtl para controlar Jack. Puede ser ubicado en Aplicaciones, Sonido y Video, Jack Control.

Nota “No se puede abrir el secuenciador ALSA como cliente El patchbay MIDI de ALSA no estará disponible.”

log de pulseaudio: 11:14:30.014 Patchbay desactivada. 11:14:30.016 Reiniciar estadísticas. 11:14:30.017 No se puede abrir el secuenciador ALSA como cliente El patchbay MIDI de ALSA no estará disponible. ALSA lib conf.c:1661:(snd_config_load1) _toplevel_:25:0:Unexpected char ALSA lib conf.c:3441:(snd_config_hook_load) /etc/asound.conf may be old or corrupted: consider to remove or fix it ALSA lib conf.c:3302:(snd_config_hooks_call) function snd_config_hook_load returned error: Argumento inválido ALSA lib conf.c:3687:(snd_config_update_r) hooks failed, removing configuration Cannot connect to server socket err = No existe el fichero o el directorio Cannot connect to server socket jack server is not running or cannot be started

No puede conectarse al servidor JACK como cliente. - La operación global falló. - No puede conectarse al servidor. Por favor revise la ventana de mensajes para mas información.


Para ello lo iniciamos, y en el botón Setup activamos el modo tolerante y monitoreo por hardware.

También activaremos las opciones “iniciar el servidor Jack al cargar qjackctl”, “Pedir confirmación al salir”, “Habilitar icono en bandeja de sistema”, “Iniciar minimizado” y “una sola instancia”.

Queremos que esta configuración sea lo más transparente posible para el usuario o usuaria. Para ello, activaremos QjackCtl de forma que se active automáticamente al iniciar la sesión.

Eso lo podemos hacer desde el menú Sistema, Preferencias, Aplicaciones al Inicio. Allí desactivamos "Sistema de sonido Pulseaudio" y "Pulseaudio sound system KDE Policy".

Luego, añadimos una nueva aplicación al inicio. Colocamos de nombre QjackCtl, y en comando colocamos /usr/bin/qjackctl

Y listo, con esto Jack se iniciará cada vez que se inicie sesión.

Sólo necesitamos ejecutar los comandos necesarios para que pulse-jack y Pulseaudio se ejecuten cada vez que se inicie Jack, permitiendo así que las aplicaciones nativas de Pulseaudio suenen por Jack.

En Qjackctl, en “Setup”, en "Opciones", activa "Script a ejecutar luego de iniciar" y coloca allí:

pulse-jack

Activa "Script a ejecutar antes de detener" y coloca:

killall pulseaudio

Con esto, debería ser suficiente para tener un ambiente donde las aplicaciones de sonido ALSA, Jack y Pulseaudio coexistan pacíficamente.

Instalar Audacity y usarlo con Jack

Puedes instalar Audacity con “aptitude install audacity”, y en su menú Editar -> Preferencias -> Dispositivos, puedes seleccionar a JACK como Servidor de sonido. Esto permitirá cosas interesantes.

Por ejemplo, si tienes Adobe Flash instalado (puedes instalarlo con “aptitude install flashplugin-nonfree”), ejecuta estos pasos:

Abre tu navegador Cunaguaro, vete a Youtube y pon a reproducir un video. Ahora, abre Audacity y oprime el botón para ponerlo a grabar. Por ahora estará grabando silencio. Vete a QjackCtl y oprime el botón Conexiones. Si conectas el ítem “alsa.jack” en la columna de salidas (que representa a Youtube siendo reproducido en modo ALSA), con el ítem “Portaudio “en la columna de entradas (que representa a Audacity), podrás ver que Audacity comienza a grabar el audio que se está reproduciendo a través de Youtube.


Si una vez instalado Audacity no abre, ejecutar los siguientes pasos:

Tener JACK iniciado y funcionando. En un terminal, renombrar el archivo .asoundrc ejemplo: $ mv .asoundrc .asoundrc2

Abrir Audacity. Entrar a Editar, Preferencias, Dispositivos. Elegir en servidor a “Jack Audio Connection Kit”. Cerrar Audacity Colocar de nuevo el nombre original:

$ mv .asoundrc2 .asoundrc Listo. Ya Audacity debería abrir sin problemas.

Plugines de Audacity

Puedes instalar algunos plugines para audacity abriendo el Gestor de paquetes Synaptic (en Sistema -> Administración) y buscando la palabra LADSPA, instalando los paquetes allí mostrados.

Algunos de los mejores plugines para Audacity son: cmt, rev-plugins, tap-plugins y mcp-plugins.


Instalando Rivendell en Canaima GNU/Linux

Ahora, vamos a instalar Rivendell 1.72. Desde el punto de vista de cómo maneja el audio el sistema, existen dos formas posibles con Rivendell: modo Jack y modo Alsa. La ventaja de instalarlo en modo Jack, es que Rivendell se comportará como una aplicación que emitirá sonidos junto al resto de programas que son capaces de hacerlo igualmente, pero sin ningún tipo de conflictos; si se instala en modo Alsa, Rivendell se apropia de la tarjeta de sonido y no permite que ninguna otra aplicación suene.

Rivendell se ha empaquetado para sistemas APT y está disponible desde el repositorio de Alban; funciona en distribuciones derivadas de Debian, incluyendo Debian squeeze -base de Canaima GNU/Linux 3.0.

$ aptitude show rivendell
Paquete: rivendell                               
Nuevo: sí
Estado: sin instalar
Versión: 1.7.2-3squeeze1
Prioridad: opcional
Sección: sound
Desarrollador: Alban Peignier <alban.peignier@free.fr>
Tamaño sin comprimir: 8106 k
Depende de: libasound2 (> 1.0.18), libc6 (>= 2.7), libflac8 (>= 1.2.1), libgcc1 (>= 1:4.1.1), libhpi,
            libice6 (>= 1:1.0.0), libid3-3.8.3c2a, libjack-jackd2-0 (>= 1.9.5~dfsg-14) | libjack-0.116,
            libqt3-mt (>= 3:3.3.8b), librivendell, libsamplerate0, libsm6, libstdc++6 (>= 4.1.1),
            libvorbisenc2 (>=1.1.2), libvorbisfile3 (>= 1.1.2), libx11-6, libxext6, libxi6, libxmu6,
            libxt6, bc, cdda2wav, cdparanoia, flac, libqt3-mt-mysql | libqt3c102-mt-mysql, mpg321, vorbis-tools
Recomienda: jackd, logrotate, lftp, lame
Tiene conflictos con: toolame
Descripción: contains a set of functionality needed to operate a radio automation system
 It consisting of the following components: 

 RDAdmin: a comprehensive application for the administration and configuration of Rivendell. 

 RDLibrary: the production audio interface. 

 RDCatch: the automatic recorder interface. 

 RDLogin: a small utility for logging users into and out of the system. 

 RDLogEdit: a basic air log creation and editing tool. 

 RDLogManager: a utility for the automatic generation of logs, based on templates. It also supports importation
 of schedule information from a wide variety of third-party traffic and music scheduling systems. 

 RDAirPlay: the on-air playout application.

Existe un problema y es que una de sus dependencias, cdda2wav, cambió de nombre a icedax, lo que impide la instalación de Rivendell. Sin embargo, hay formas de solucionar ese problema.

Paso 1: instalar cdda2wav

El paquete cdda2wav ha sido descontinuado en la versión actual de Canaima GNU/Linux 3.0. Para esta guía de instalación será necesario descargar ese paquete desde los repositorios originales de Debian lenny:

http://packages.debian.org/lenny/all/cdda2wav

vía línea de comandos

$ wget http://ftp.us.debian.org/debian/pool/main/c/cdrkit/cdda2wav_1.1.9-1_all.deb
$ sudo aptitude install icedax
$ sudo dpkg -i cdda2wav_1.1.9-1_all.deb

vía interfaz gráfica

  1. entrar en la dirección web http://packages.debian.org/lenny/all/cdda2wav/download
  2. seleccionar un repositorio de preferencia desde la lista
  3. descargar el paquete
  4. instalar el paquete desde su ubicación en el computador haciendo clic en el botón derecho del ratón y especificando la opción 'Abrir con instalador de paquetes GDebi'. Pedirá clave de root

Paso 2: Instalar el sistema manejador de base de datos mysql

Use synaptic o aptitude para instalar mysql-server.

vía línea de comandos

$ sudo aptitude install mysql-server-5.1 mysql-query-browser mysql-admin

Finalizando la instalación de mysql-server-5.1 el asistente de configuraciones de Debian (debconf) pedirá una contraseña para el usuario root de mysql.

configuración de servidor mysql
Cuadro 1. Configuración de servidor mysql

Guárdela, pues Rivendell se la pedirá más adelante.

Paso 3: instalar Rivendell

3.1. Configurar nuevo repositorio de paquetes

Abra un terminal, entre en modo superusuario y, usando un editor como nano, añade al final del archivo /etc/apt/sources.list los siguientes repositorios:

vía línea de comandos

$ sudo vim /etc/apt/sources.list

#
# Repositorios de Canaima GNU/Linux
#

# Repositorio Estable
#deb http://repositorio.canaima.softwarelibre.gob.ve/ aponwao usuarios 

# Repositorio de Pruebas
deb http://repositorio.canaima.softwarelibre.gob.ve/ roraima usuarios

# Repositorio de Desarrollo
#deb http://repositorio.canaima.softwarelibre.gob.ve/ auyantepui usuarios

# Repositorio de la Base (Debian)
deb http://universo.canaima.softwarelibre.gob.ve/ squeeze main contrib non-free

# Repositorio de actualizaciones de Emergencia
deb http://seguridad.canaima.softwarelibre.gob.ve/ seguridad usuarios

# Repositorio de paquete Rivendell de Alban
deb http://debian.tryphon.eu stable main contrib             <-- línea agregada
deb-src http://debian.tryphon.eu stable main contrib         <-- línea agregada


3.2. Autenticar el repositorio

Luego, añadir la clave del repositorio y actualizar la nueva lista de paquetes:

vía línea de comandos

$ sudo wget -q -O - http://debian.tryphon.org/release.asc > llave.asc
$ sudo apt-key add llave.asc
$ sudo aptitude update

3.3. Instalar y configurar los paquetes de Rivendell

Instale los paquetes de Rivendell, con:

vía línea de comandos

$ sudo aptitude install rivendell librivendell

Se instalarán los siguiente paquetes NUEVOS:     
  cdparanoia{a} flac{a} libao-common{a} libao4{a} libaudio-scrobbler-perl{a} 
  libaudio2{a} libconfig-inifiles-perl{a} libhpi{a} libid3-3.8.3c2a{a} libmng1{a} 
  libqt3-mt{a} libqt3-mt-mysql{a} librivendell libsamplerate0{a} mpg321{a} rivendell 
  vorbis-tools{a} 
Se RECOMIENDAN los siguientes paquetes, pero NO se instalarán:
  jackd lame lftp 
0 paquetes actualizados, 17 nuevos instalados, 0 para eliminar y 45 sin actualizar.
Necesito descargar 9588 kB de ficheros. Después de desempaquetar se usarán 24,5 MB.
¿Quiere continuar? [Y/n/?] y
Des:1 http://universo.canaima.softwarelibre.gob.ve/ squeeze/main cdparanoia i386 3.10.2+debian-9 [41,3 kB]
[...]

Una vez se descarguen los paquetes seleccionados y sus dependencias, se iniciará una serie de preguntas:

¿Configurar? Responda: sí.

configuración de rivendell vía debconf
Cuadro 2. Primera pantalla de configuración de rivendell

Remove Rivendell audio store and database if purging Rivendell? Responda: no.

configuración de rivendell vía debconf
Cuadro 3. Segunda pantalla de configuración de rivendell

How should the Rivendell daemons be started? Responda: init.d

Imagen:Imagen.png
Cuadro 4. Tercera pantalla de configuración de rivendell

Password for Rivendell: déjelo vacío.

configuración de rivendell vía debconf
Cuadro 5. Cuarta pantalla de configuración de rivendell

Unix User Account. Responda indicando su usuario de sistema.

configuración de rivendell vía debconf
Cuadro 6. Quinta pantalla de configuración de rivendell

UNIX group account for Rivendell. Responda: rivendell.

configuración de rivendell vía debconf
Cuadro 7. Sexta pantalla de configuración de rivendell

Select the samplerate to use for Rivendell. Responda: 44100.

Imagen:Imagen.png
Cuadro 8. Séptima pantalla de configuración de rivendell

Hostname for Rivendell: localhost

Imagen:Imagen.png
Cuadro 9. Octava pantalla de configuración de rivendell

Enter the MySQL account with which to connect to the MySQL server: rduser

Imagen:Imagen.png
Cuadro 10. Novena pantalla de configuración de rivendell

Enter the MySQL account password to use when connecting to the MySQL server: Aquí NO va a introducir la clave de root Mysql, sino otra distinta. Por ejemplo, "abcdef".

Imagen:Imagen.png
Cuadro 11. Décima pantalla de configuración de rivendell

Select the audio adapters to use. Responda: ALSA.

Imagen:Imagen.png
Cuadro 12. Décima primera pantalla de configuración de rivendell

3.4. Configurar otras cuestiones: usuarios y grupos del sistema; tiempo real y otras

Desde el terminal de root, añada su usuario de Canaima al grupo Rivendell y al grupo audio. Supongamos que mi usuario es "luigino":

línea de comandos
$ sudo adduser joaquinm rivendell
$ sudo adduser joaquinm audio

Modifique el archivo /etc/security/limits.conf para que las aplicaciones del grupo rivendell usen hilos en modo "realtime" o tiempo real, lo que permitirá que Rivendell se ejecute sin ser interrumpido por otras aplicaciones.

archivo: /etc/security/limits.conf

[...]
@rivendell - rtprio 99
@rivendell - memlock 250000
@rivendell - nice -10
[...]

Ahora, ejecute rdadmin, ya sea desde un terminar o desde el menú de Aplicaciones → Sonido y Video.

línea de comandos

$ rdadmin

Aparecerá una ventana indicándole que no se encontró la base de datos Rivendell. Aquí es donde usaremos la clave de root que introdujimos cuando instalamos Mysql: Usuario: root, clave: 1234

Indicará que se creó la base de datos, y luego le pedirá un usuario y una clave. En este momento ya estará funcionando el sistema básico de Rivendell. Para entrar al administrador, use "admin" y deje vacía la clave.

Este comando es importante para que funcione la permisología adecuada a la carpeta de sonidos (si no se ejecuta, no podrás importar canciones):


línea de comandos

# chown -R usuario  /var/snd 
(Sustituir "usuario" por tu usuario de Linux)

Ahora ya podemos probar que Rivendell emita sonidos. Rivendell trae un tono e prueba, a veces no funciona bien pero lo podemos generar con el comando:

(Como root)
línea de comandos

# rdgen -t 10 -l 16 /var/snd/999999_000.wav

Para que pueda leer e importar MP3, hay que instalar Lame desde los repositorios de Debian Multimedia (www.debian-multimedia.org). Para ello:

Añadir a /etc/apt/sources.list el repositorio:

archivo: /etc/apt/sources.list

deb http://www.debian-multimedia.org squeeze main non-free

Como root, ejecutar:

línea de comandos

# aptitude update 
(te saldrá un mensaje de error de clave GPG no encontrada)
# aptitude install debian-multimedia-keyring
(Indicarle “Si” para instalar) 
# aptitude update 
(el mensaje de error ya no debería salir)
# aptitude install lame

Iniciando y deteniendo los servicios (“demonios”) de Rivendell desde QJackCtl

Como último paso, ejecutemos desde el terminal de root estos comandos:

Desde el terminar de root, editar el archivo /etc/init.d/rivendell

  1. gedit /etc/init.d/rivendell

U oprimir Alt+F2, les sale la ventana para ejecutar comandos y desde allí colocar:

gksu gedit /etc/init.d/rivendell


Bajar hasta la línea 55 (aproximadamente), buscando una que comienza por “start-stop-daemon”, y colocarle “/sbin/” al comienzo (pegado, si dejar espacios) de forma tal que quede:

/sbin/start-stop-daemon --start --oknodo --chuid $DAEMON_USER --exec "/usr/bin/$daemon" –quiet

Bajar un poco más hasta la línea 64 y hacer lo mismo.

Guardar el archivo y cerrar.

En QjackCtl, cambiar los siguientes pasos en la configuración:

En “Setup”, "Opciones", haz que quede así:

"Script a ejecutar al iniciar el servidor": /etc/init.d/rivendell stop

"Script a ejecutar luego de iniciar": pulse-jack; /etc/init.d/rivendell start

"Script a ejecutar antes de detener": /etc/init.d/rivendell stop; killall pulseaudio

"Script a ejecutar luego de Terminar": killall jackd


Si algo sale mal...

Si Rivendell presenta problemas tras la instalación (por ejemplo, no suena, y has reiniciado la computadura y chequeado los pasos y sigue sin sonar), es posible que hayas cometido algún error que evite que funcione adecuadamente. Se puede desinstalar Rivendell y volver a instalarlo, o volver a ejecutar el script de reconfiguración. Para reinstalar Rivendell, usar (desde el terminal de root):

  1. dpkg-reconfigure rivendell

Para desinstalar Rivendell, usar (desde el terminal de root):

  1. aptitude purge rivendell librivendell

(y luego reinstalarlo según los pasos mostrados arriba).

Puede ser necesario borrar la base de datos, para lo cual puedes usar el programa “MySQL Administrator” que está en el menú de Aplicaciones, Programación. En “Server Hostname” coloca “localhost”, en Username coloca root y en la clave coloca la clave de root de Mysql que le asignaste cuando instalaste MySQL. En “Catalogs”, elimina Rivendell y en “User Administration”, elimina “rduser”. Luego puedes salirte e intentar ejecutar rdadmin.


Cómo añadir un 'dropbox' o carperta de trabajo de rivendell

Un dropbox es una carpeta dentro del computador en la cual se pueden añadir canciones en formato WAV, OGG o MP3, y Rivendell las importará automáticamente en grupo, sin tener que hacerlo una por una.

Para crear un dropbox:

  1. Crea una carpeta en alguna parte de tu computador (por ejemplo, en el Escritorio). Que el nombre sea lo más simple posible, sin espacios, acentos, etc. Por ejemplo, “dropbox”
  2. Ingrese a RdAdmin
  3. Haga click en “Administrar Computadoras”, seleccione la suya y haga click en “Edit”.
  4. Haga click en el botón “Dropboxes”
  5. Haga click en Añadir (“Add”)
  6. “Default group” es la categoría o grupo adonde se importarán las canciones.
NOTA IMPORTANTE: Es importante que el grupo escogido tenga un rango (“Nro de cartucho por omisión”
en la ventana de Grupos en Rdadmin). Es decir, que cuando entremos a “Administrar Grupos” en RdAdmin,
el grupo seleccionado tiene que tener “START CARTS” y “END CARTS” distintos a “[none]”

En “Path Spec” hacemos click en “Select” y buscamos la carpeta que queremos que sea nuestro Dropbox. Por ejemplo: “/home/usuario/Escritorio/Dropbox”

Al final del Path Spec, siempre hebe haber un asterisco, que indicará que importemos todo lo que haya allí. Por ehjemplo, en el caso anterior el “Path Spec” debe quedar así:

/home/usuario/Escritorio/Dropbox/*

  1. Dejar marcado “Delete source files after import”.
  2. Hacer click en “Normalize levels” y colocar -10 dB, esto normaliza el volumen del audio.
  3. Hacer click en “Autotrim cuts” y colocar -30 dB, Esto borra los blancos al comienzo y el final de la canción.
  4. Marca “Attempt to work around malformatted input types”.
  5. Oprime aceptar y cierra las distintas ventanas de Rdadmin que están abiertas.

Ya con esto la carpeta que creaste en tu escritorio debería funcionar como “Dropbox”. Copia algunos archivos MP3, WAV u OGG a esa carpeta, y los irá importando y se irán desapareciendo de la carpeta a medida que los importe. Cuando abras rdLibrary, verás las canciones allí a medida que las importe.

Entendiendo el proceso de importacion de contenidos de rivendell: el rdimport

El programa rdimport provee una funcionalidad la cual permite sistematizar la poblacion de contenidos (generalmente, canciones) en la libreria de rivendell (rdLibrary).

rdimport corriendo en una maquina que fue configurada en modo drop-box, se ve de la siguiente forma en una tabla de procesos:

1000      2533  0.0  0.0  21812  5264 ?        SN   Jul03   0:01 rdimport --persistent-dropbox-id=7 --drop-box  \
--log-mode --normalization-level=-10 --autotrim-level=0 --delete-source --startdate-offset=0 --enddate-offset=0 \
REVISAR /home/usuario/Escritorio/dropbox/*

Conversor de sonido

Un programa muy útil es el conversor de sonido, que permite convertir audios y videos de una gran cantidad de formatos a MP3, OGG y WAV. Para ello:

Desde un terminal de root, instala:

  1. aptitude install soundconverter gstreamer0.10-lame

(Para poder instalar gstreamer, debes tener activados los repositorios de Debian-Multimedia según explicamos arriba en la página 6)

Haciendo de Rivendell una arquitectura cliente-servidor

Documentación muy útil:


Revisar:

  1. si es necesario seguir manteniendo el directorio de trabajo ~Escritorio/dropbox en el servidor
  2. políticas de uso, acceso y modificación de contenidos desde computadoras clientes.

Paso a paso

Instalar un cliente rivendell

La idea central es mantener la forma de instalación que se describe en secciones anteriores. Sin embargo, para hacer funcionar a estas dos máquinas es necesario realizar configuraciones adicionales en cuanto a rivendell, mysql y el manejo de sistema de archivos por red.

Entonces, arrancando haremos la instalación de otra maquina con el programa rivendell y todas sus dependencias.

En un historial de comandos ejecutados sobre un terminal se resume esta actividad:

$ aptitude show icedax                                                          <-- cdd2wav entra en conflicto con icedax
$ sudo aptitude install icedax                                                  <-- instalación de icedax
$ sudo dpkg -i Descargas/cdda2wav_1.1.9-1_all.deb                               <-- instalación manual de cdd2wav (para lenny)
$ sudo aptitude install mysql-server-5.1 mysql-admin                            <-- instalación del manejador y herramientas de bd
$ sudo vim /etc/apt/sources.list                                                <-- incorporación de repositorio debian.tryphon.eu
$ sudo wget -q -O - http://debian.tryphon.eu/release.asc | sudo apt-key add -   <-- autenticación de repositorio debian.tryphon.eu
$ sudo aptitude update                                                          <-- actualización de paquetes
$ sudo aptitude install rivendell librivendell                                  <-- instalación de rivendell y librerías

Llegado es punto, rivendell volverá a realizar el cuestionario de rigor para su autoconfiguración, y deberemos especificar que queremos utilizar una base de datos que está en otro sitio, en nuestro caso, apuntando a la dirección IP (o nombre de servidor) 10.16.106.232.

Al acabar de responder a las preguntas, se hace lo siguiente:

$ sudo addgroup joaquinm rivendell
$ sudo addgroup joaquinm audio
$ sudo vim /etc/security/limits.conf 
$ sudo rdalsaconfig 
$ rdadmin

La ejecución de rdadmin en este punto fallará si no hemos hecho mayores cambios en el servidor ni en el cliente. Estos cambios son discutidos en la siguiente sección.

Cambios en el lado del servidor

Según la guía "remote client access" de la wiki de rivendell, continuaremos nuestra configuración de la arquitectura.

Básicamente se tienen que realizar dos grandes pero simples modificaciones:

  1. Al manejador de base de datos Mysql: esto permitirá que desde la máquina servidor pueda aceptar conexiones de otras máquinas, en este caso, la máquina cliente que venimos implementando.
  2. Al sistema de archivos por red: puesto que nos permitirá compartir contenidos entre máquinas, que en nuestro caso se traduce en que la máquina cliente pueda acceder y modificar la librería de audio que alberga la máquina servidor o máquina al aire.
Mysql en el lado del servidor

A grandes rasgos se hace lo siguiente:

  1. se comprueba que mysql se ejecuta únicamente recibiendo peticiones localmente, es decir, escuchando en 127.0.0.1:3306
  2. $ netstat -an | grep 3306
    tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN
    $ _   
    
  3. se editan las siguientes variables de /etc/mysql/my.conf de la siguiente manera:
  4. [...]
    
    #bind-address    = 127.0.0.1
    bind-address     = 0.0.0.0                   # cambiando esta variable de 127.0.0.1 a 0.0.0.0
    
    [...]
    
    general_log_file = /var/log/mysql/mysql.log  # se habilita el registro de eventos de depuración durante la actividad
    
    [...]
    
  5. se reinicia el servidor mysql
  6. $ sudo /etc/init.d/mysql restart
    $ _
    
  7. se comprueba localmente que ahora mysql se ejecuta escuchando peticiones en 0.0.0.0:3306
  8. $ netstat -an | grep 3306
    tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN
    $ _
    
  9. se comprueba este comportamiento haciendo un intento de conexión con la base de datos desde la máquina cliente
  10. $ telnet 10.16.106.232 3306
    Trying 10.16.106.232...
    Connected to 10.16.106.232.
    Escape character is '^]'.
    6
    5.1.49-3pl~WwpLk�PjG`1n[Z3.+0^]
    
    telnet> _
    

    Una vez hecho lo anterior, se configuran los permisos para que desde la máquina cliente se pueda manipular los contenidos albergados por el servidor. Entonces, nuevamente desde el servidor, se hace lo siguiente:

  11. se accede al servidor mysql vía terminal de comandos y se ejecuta:
  12. $ mysql --user=root mysql -p
    

    Esto pedirá contraseña del administrador de la base de datos mysql. Una vez dentro, ejecutar la siguiente sentencia SQL:

    mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER
             ON Rivendell.*
             TO 'rduser'@'%'
             IDENTIFIED BY 'contraseña';
    
    mysql> exit
    


    Esto debería mostrar un mensaje similar: "Query OK, 0 rows affected (0.05 sec)"

    En este caso particular se cambian los permisos del usuario 'rduser' cuando accede a la base de datos 'Rivendell', además indicando que este usuario puede acceder a esa base de datos desde cualquier sitio de la red. Las variables 'rduser', '%' y 'contraseña' deben ser reemplazadas de acuerdo a su configuración particular.

  13. se corroboran los permisos del usuario 'rduser' alterados en el paso anterior mediante un intento de conexión mysql con la base de datos desde la máquina cliente
  14. Entonces, desde el cliente, probar:

    $ mysql -u rduser -D Rivendell -h 10.16.106.232
    
    [...]
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>
    

    En este momento habremos comprobado que tenemos el tipo de comunicación necesaria para que desde la máquina cliente pueda accederse a los contenidos en la máquina servidor.

    Por ejemplo, muy particular de este escenario, y SÓLO PARA EFECTOS DE PRUEBA, procederemos a borrar algunos cartuchos de audio del grupo 'TEST' dentro de la librería de Rivendell. Comprobaremos con esto que tenemos permisos tanto para leer como para modificar contenidos en la base de datos del servidor desde la máquina cliente.

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | Rivendell          |
    +--------------------+
    2 rows in set (0.00 sec)
    
    mysql> use Rivendell;
    Database changed
    mysql> show tables;
    +----------------------+
    | Tables_in_Rivendell  |
    +----------------------+
    | AUDIO_PERMS          |
    | AUDIO_PORTS          |
    | AUTOFILLS            |
    | AUX_METADATA         |
    | CART                 |
    | CLIPBOARD            |
    | CLOCKS               |
    | CLOCK_PERMS          |
    | CUTS                 |
    | DECKS                |
    | DROPBOXES            |
    | DROPBOX_PATHS        |
    | ENCODERS             |
    | ENCODER_BITRATES     |
    | ENCODER_CHANNELS     |
    | ENCODER_SAMPLERATES  |
    | EVENTS               |
    | EVENT_PERMS          |
    | EXTENDED_PANELS      |
    | EXTENDED_PANEL_NAMES |
    | FEEDS                |
    | FEED_PERMS           |
    | GPIS                 |
    | GPOS                 |
    | GROUPS               |
    | HOSTVARS             |
    | IMPORT_TEMPLATES     |
    | INPUTS               |
    | LOGS                 |
    | MATRICES             |
    | NOWNEXT_PLUGINS      |
    | OUTPUTS              |
    | PANELS               |
    | PANEL_NAMES          |
    | PODCASTS             |
    | Production_SRT       |
    | RDAIRPLAY            |
    | RDCATCH              |
    | RDLIBRARY            |
    | RDLOGEDIT            |
    | RDPANEL              |
    | RECORDINGS           |
    | REPORTS              |
    | REPORT_SERVICES      |
    | REPORT_STATIONS      |
    | SAMPLE_LOG           |
    | SCHED_CODES          |
    | SERVICES             |
    | SERVICE_PERMS        |
    | STATIONS             |
    | SWITCHER_NODES       |
    | SYSTEM               |
    | TRIGGERS             |
    | TTYS                 |
    | USERS                |
    | USER_PERMS           |
    | VERSION              |
    | VGUEST_RESOURCES     |
    | WEB_CONNECTIONS      |
    +----------------------+
    59 rows in set (0.00 sec)
    
    mysql> select GROUP_NAME,TITLE,ARTIST from CART;
    +------------+-----------------------------------+------------------+
    | GROUP_NAME | TITLE                             | ARTIST           |
    +------------+-----------------------------------+------------------+
    | TEST       | Test Tone                         | Salem Radio Labs |
    | TEMP       | En Busca de un Sue�o              | Silvio Rodriguez |
    | TEMP       | Tu Imagen                         | Silvio Rodriguez |
    | TEMP       | De M�s                            | Silvio Rodriguez |
    | TEMP       | Vida y Otras Cuestiones           | Silvio Rodriguez |
    | TEMP       | Romanza de la Luna                | Silvio Rodriguez |
    | TEMP       | Trovador de Barro Negro           | Silvio Rodriguez |
    | TEMP       | Paloma M�a                        | Silvio Rodriguez |
    | TEMP       | Caballo                           | Silvio Rodriguez |
    | TEMP       | Cosa Est� en...                   | Silvio Rodriguez |
    | TEMP       | Rosana                            | Silvio Rodriguez |
    | TEMP       | Tonada Inasible                   | Silvio Rodriguez |
    | TEMP       | Por Todo Espacio, Por Todo Tiempo | Silvio Rodriguez |
    | TEMP       | Que Quisiste Ser                  | Silvio Rodriguez |
    | TEMP       | Ruinas                            | Silvio Rodriguez |
    | TEMP       | Esta Es la Vida                   | Silvio Rodriguez |
    +------------+-----------------------------------+------------------+
    16 rows in set (0.00 sec)
    
    mysql> DELETE FROM CART WHERE GROUP_NAME = 'TEST'
        -> ;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select GROUP_NAME,TITLE,ARTIST from CART;
    +------------+-----------------------------------+------------------+
    | GROUP_NAME | TITLE                             | ARTIST           |
    +------------+-----------------------------------+------------------+
    | TEMP       | En Busca de un Sue�o              | Silvio Rodriguez |
    | TEMP       | Tu Imagen                         | Silvio Rodriguez |
    | TEMP       | De M�s                            | Silvio Rodriguez |
    | TEMP       | Vida y Otras Cuestiones           | Silvio Rodriguez |
    | TEMP       | Romanza de la Luna                | Silvio Rodriguez |
    | TEMP       | Trovador de Barro Negro           | Silvio Rodriguez |
    | TEMP       | Paloma M�a                        | Silvio Rodriguez |
    | TEMP       | Caballo                           | Silvio Rodriguez |
    | TEMP       | Cosa Est� en...                   | Silvio Rodriguez |
    | TEMP       | Rosana                            | Silvio Rodriguez |
    | TEMP       | Tonada Inasible                   | Silvio Rodriguez |
    | TEMP       | Por Todo Espacio, Por Todo Tiempo | Silvio Rodriguez |
    | TEMP       | Que Quisiste Ser                  | Silvio Rodriguez |
    | TEMP       | Ruinas                            | Silvio Rodriguez |
    | TEMP       | Esta Es la Vida                   | Silvio Rodriguez |
    +------------+-----------------------------------+------------------+
    15 rows in set (0.00 sec)
    
    mysql> _
    

NFS en el lado del servidor

Configurar el servicio NFS es muy sencillo. En el lado del servidor será necesario:

  1. instalar la implementación de servidor nfs
  2. $ sudo aptitude install nfs-kernel-server
    
  3. agregar la entrada correspondiente al recurso o directorio que se va a compartir por la red en al archivo /etc/exports
  4. $ sudo vim /etc/exports
    # /etc/exports: the access control list for filesystems which may be exported
    #               to NFS clients.  See exports(5).
    #
    # Example for NFSv2 and NFSv3:
    # /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
    #
    # Example for NFSv4:
    # /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
    # /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
    # 
    
    # se permite el montaje del directorio '/var/snd' en la red 10.16.106.0
    /var/snd 10.16.106.0/255.255.255.0(rw,root_squash,sync)
    
  5. se exporta el sistema de archivos que acaba de compartirse
  6. $ sudo exportfs -rv
    $ _
    

Cambios en el lado del cliente

Mysql en el lado del cliente

En el lado del cliente, la base de datos local puede incluso no estar ejecutándose, por ejemplo:

$ netstat -an | grep 3306
tcp        0      0 10.16.106.150:37266     10.16.106.232:3306      ESTABLISHED
tcp        0      0 10.16.106.150:37259     10.16.106.232:3306      ESTABLISHED
tcp        0      0 10.16.106.150:37260     10.16.106.232:3306      ESTABLISHED
tcp        0      0 10.16.106.150:37268     10.16.106.232:3306      ESTABLISHED
tcp        0      0 10.16.106.150:37262     10.16.106.232:3306      ESTABLISHED
$ _

Las entradas arrojadas por 'netstat' son sólo vinculadas a conexiones establecidas (ESTABLISHED) de un programa cliente ejecutándose en la máquina cliente rivendell contra la base de datos residente en el servidor. Ninguna entrada en el 'netstat' indicando el puerto 3306 en escucha (LISTEN) es reflejada.

NFS en el lado del cliente

Este paso de la configuración es igualmente sencillo como para el caso del servidor. Hacer lo siguiente:

  1. instalar el cliente nfs
  2. $ sudo aptitude install nfs-client
    $ _
    

    Este paquete virtual contiene todo lo necesario para poner a funcionar un cliente nfs.

  3. agregar una nueva entrada en el archivo '/etc/fstab' que haga referencia al directorio remoto, en el servidor, que desea montarse localmente
  4. $ sudo vim /etc/fstab
    [...]
    
    10.16.106.232:/var/snd	/var/snd	nfs	defaults	0	0
    
    [...]
    

    Esto se hace desde /etc/fstab para que en cada arranque, el computador recuerde que debe montar el directorio remoto mencionado.

  5. hacer los cambios efectivos ahora
  6. $ sudo mount -a
    $ _
    

Una vez hecho esto, se puede comprobar que el montaje del directorio /var/snd remoto (el que reside en el servidor) es correcto.

$ ls -l /var/snd/
total 1466368
-rw-rw-r-- 1 joaquinm powerdev 32095700 jul  8 14:07 020001_001.wav
-rw-rw-r-- 1 joaquinm powerdev 28553684 jul  8 14:07 020002_001.wav
-rw-rw-r-- 1 joaquinm powerdev 42800152 jul  8 14:07 020003_001.wav
-rw-rw-r-- 1 joaquinm powerdev 45106152 jul  8 14:08 020004_001.wav
-rw-rw-r-- 1 joaquinm powerdev 28180112 jul  8 18:33 020005_001.wav
-rw-rw-r-- 1 joaquinm powerdev 39142836 jul  8 18:33 020006_001.wav
-rw-rw-r-- 1 joaquinm powerdev 32068028 jul  8 18:33 020007_001.wav
-rw-rw-r-- 1 joaquinm powerdev 30638308 jul  8 18:33 020008_001.wav
-rw-rw-r-- 1 joaquinm powerdev 29978792 jul  8 18:33 020009_001.wav
$ _

Si desea tenerse certeza de que los permisos de escritura funcionan bien, puede crear un archivo de pruebas en /var/snd de la maquina cliente y revisar su existencia luego desde el directorio /var/snd en la máquina servidor.

$ touch /var/snd/prueba.txt

Probar la arquitectura cliente-servidor

Desde la máquina cliente ejecutar rdlibrary. Si se siguieron los pasos, debería poder verse el repositorio de música que reside en la máquina servidor.

Una vista de las dos máquinas ejecutándose se muestra en la imagen a continuación.

rivendell funcionando cliente-servidor
Imagen 1. Dos computadores ejecutando Rivendell haciendo colaborativamente el trabajo de radio

Agregando otro dropbox a la plataforma

Ejecutar la siguiente cadena:

Aplicaciones > Sonido y Vídeo > rdadmin

Pedirá usuario y contraseña. coloque

usuario: admin contraseña: dejelo vacio

Luego:

Administrar computadoras > marque el servidor > editar > Dropboxes

Ahí encontrará el dropbox configurado previamente en la máquina servidor. No lo modifique. Agregue otra entrada, ejecutando 'Add' y luego especifique:

default group: grupo donde desea que lleguen las canciones alimentadas desde ese dropbox

path spec: camino hacia el directorio que desea utlizarse como carpeta de trabajo

log file: colocar una ruta hacia un archivo donde se almacenaran los registros del proceso de rdimport. Muy util para depurar errores.

Adicionalmente, seleccionar:

  1. delete source files ...
  2. normalize levels
  3. autorim cuts
  4. attempt to work around malformed files

Páginas web donde conseguir más información y recursos

Listas de correo de Rivendell (en inglés) http://groups.google.com/group/rivendell-dev (usar el bsucador) http://lists.rivendellaudio.org/pipermail/rivendell-dev/

Página oficial http://www.rivendellaudio.org/ (en “wiki” hay mucha información)

En español, hay alguna información y guías de instalación en: http://softwarelibresocialista.blogspot.com/

Realizado por Luigino Bracci Mi correo: Lbracci@gmail.com

Algunas consideraciones de la plataforma tecnológica de Makunaima

existirán dos computadoras conectadas a una red local. Una de ellas fungirá como servidor y será la computadora que lleve la gestión de la salida pública de la radio. La otra, se conectará al servidor, y su función será alimentar a esta primera de las pistas necesarias posterior al proceso de pre-producción.

Para cumplir este objetivo es necesario contar con un suiche que conecte ambas máquinas.

Para configurar los archivos .asoundrc consultar: http://alsa.opensrc.org/.asoundrc

Viendo al futuro cercano

Del éxito de Alba Ciudad, y ahora el que se viene materializando desde Makunaima Kariña, es esperado que otras iniciativas similares demanden este tipo de soluciones, cuya afinidad al contexto de las radios alternativas y comunitarias es total.

En este sentido, el siguiente paso es lograr que todas las configuraciones y el conocimiento asimilado de estas jornadas sea resumido en un simple 'aptitude install canaima-radio'. Para ello es necesario indagar en un conjunto de escenarios, que serán discutidos en la siguiente sección.

El paquete canaima-radio

Siguiendo la huella del esfuerzo del camarada willicab en 1 emprenderemos este proyecto.

canaima-radio, proyecto derivado de la comunidad Canaima, es una iniciativa para aglutinar herramientas de operación y automatización de radios basadas en tecnologías libres y con un enfoque en las radios alternativas y comunitarias.

Por tanto, el programa Rivendell es sólo una herramienta aunque no la única incluida en el paquete canaima-radio.

Preparación de Rivendell para el empaquetamiento

Algunas cuestiones que parece ser necesario tomar en cuenta son:

  1. [NF] inmediatez de los cambios en rdlibrary: se hace interesante poder operar Rivendell y revisar los cambios hechos en tiempo real. Se trata de no tener que refrescar, y menos tener que cerrar y abrir sus aplicaciones para ver realizado un cambio.
  2. [D] configuración vía debconf: existen varios detalles en las pantallas de configuración de rivendell. Entre ellas:
    1. error ortográfico (en inglés) en la pantalla de configuración del servidor donde reside la base de datos
    2. existe un error conceptual, en esa misma pantalla, el cual no explica que puede colocarse tanto un nombre de servidor (local o fqdn), como una dirección IP directamente. De ambas maneras funciona, pero sólo se especifica una. Estos detalles son fácilmente corregibles; basta reeditar el contenido escrito de las pantallas del debconf correspondiente.
Leyenda
NF: nueva funcionalidad
D:  detalle

Por otro lado, existen cuestiones del sistema subyacente para el cual se desea empaquetar este programa que son sumamente críticas. Las mencionamos a continuación:

  1. En el momento de configuración pueden pensarse las siguientes mejoras:
    1. Tipo de trabajo local y cliente-servidor. Esto permitiría escoger el esquema de trabajo a implementar. Esto implicaría desarrollar algunos scripts de configuración adicionales, pero muy necesarios
    2. Traducir al idioma español los contenidos de texto presentes en las pantallas de configuración.
    3. Corregir el error conceptual en la pantalla donde debe indicarse el servidor donde reside la base de base de datos mysql.
  2. Los problemas que se generan cuando se desea utilizar 'jack' (y eventualmente 'pulseaudio'). Se viene entendiendo que este problema es ocasionado por incapacidad del sistema para manejar tiempo real de aplicaciones.
  3. Núcleo en tiempo real: se necesita probar y experimentar para comprobar la tesis anteriormente planteada.
  4. Reducción de configuraciones manuales por parte del usuario.
  5. Paquetes ausentes y conflictivos en Canaima 3.0: revisar el comportamiento cdda2wma (oldstable) y icedax (lenny).

Bibliografía consultada

[1] Programas informáticos para automatización de radios. Fuente: http://www.analfatecnicos.net/pregunta.php?id=68

[2] Hilo de discusión de las listas de proyecto Canaima: "Radios Comunitarias Libres". Fuente: http://listas.canaima.softwarelibre.gob.ve/pipermail/discusion/2011-May/003615.html

[3]

Guía para configurar RAID 1. http://www.jerryweb.org/settings/raid/

http://wiki.debian.org/DebianInstaller/SataRaid

Bug en squeeze que impide la instalacion de grub en un sistema raid1. http://lists.debian.org/debian-user/2011/06/msg00606.html

Reporte del error con RAID 1: http://lists.debian.org/debian-user/2011/06/msg00359.html

Foro de discusion donde se reporta y se dan algunos datos para resolver la incidencia: https://bugs.launchpad.net/ubuntu/+source/ubuntu-meta/+bug/436340, https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/527401

http://advosys.ca/viewpoints/2007/04/setting-up-software-raid-in-ubuntu-server/ (<-- buenos consejos)

problema encontrado en la recuperacion del sistema, cuando se intenta instalar grub. problema de formato, resuelto aqui --> http://en.gentoo-wiki.com/wiki/Chroot_from_a_livecd

Blog de activista utilizando Rivendell. Muchas configuraciones disponibles. http://frederick.henderson-meier.org/category/rivendell/


guía para asignación de permisos de lectura, escritura y ejecución a archivos del sistema

Problemas encontrados

Error con pulseaudio y jack

14:54:25.943 XRUN callback (1).
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Sink was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Sink was not run: state = 1
JackAudioDriver::ProcessAsync Process error
14:54:27.366 XRUN callback (6 omitidos).
15:02:30.143 Cliente desactivado.
15:02:30.145 Script de apagado...
15:02:30.145 /etc/init.d/rivendell stop; killall pulseaudio
Stopping Rivendell daemons: caed ripcd rdcatchd.
15:02:30.555 El script de apagado finalizó satisfactoriamente.
15:02:30.555 JACK está deteniéndose...
jack main caught signal 15
JackClientSocket::Read time out
JackProcessSync::LockedTimedWait error usec = 92876 err = Connection timed out
JackEngine::ClientCloseAux wait error ref = 4
Released audio card Audio0
audio_reservation_finish
15:02:35.591 JACK ha sido detenido satisfactoriamente.
15:02:35.591 Script de post - apagado...
15:02:35.592 killall jackd
jackd: no process found
15:02:35.995 El script de post - apagado finalizó con estado 256.
15:02:37.613 Script de inicio...
15:02:37.613 /etc/init.d/rivendell stop
Cannot connect to server socket err = No existe el fichero o el directorio
Cannot connect to server socket
jack server is not running or cannot be started
Stopping Rivendell daemons: caed ripcd rdcatchd.
15:02:38.019 El script de inicio finalizó satisfactoriamente.
15:02:38.019 JACK está iniciándose...
15:02:38.019 /usr/bin/jackd -dalsa -dhw:0 -r44100 -p1024 -n2 -s -H
15:02:38.020 JACK se inició con PID=9006.
jackdmp 1.9.6
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2010 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
audio_reservation_init
Acquire audio card Audio0
creating alsa driver ... hw:0|hw:0|1024|2|44100|0|0|hwmon|swmeter|soft-mode|32bit
Using ALSA driver HDA-Intel running on card 0 - HDA Intel PCH at 0xfb400000 irq 22
configuring for 44100Hz, period = 1024 frames (23.2 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
15:02:40.185 Configuración del servidor salvada en "/home/makunaima/.jackdrc".
15:02:40.186 Reiniciar estadísticas.
15:02:40.194 Cliente activado.
15:02:40.194 Script de post - inicio...
15:02:40.195 pulse-jack; /etc/init.d/rivendell start
Initiated Pulseaudio successfully!
Starting Rivendell daemons: caed ripcd rdcatchd.
15:02:40.775 El script de post - inicio finalizó satisfactoriamente.
15:02:40.776 Cambios en las conexiones JACK.
19:44:03.145 XRUN callback (1).
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = rivendell_0 was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = rivendell_0 was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = rivendell_0 was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = rivendell_0 was not run: state = 1
JackAudioDriver::ProcessAsync Process error
19:44:03.405 XRUN callback (3 omitidos).
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = rivendell_0 was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = rivendell_0 was not run: state = 1
JackAudioDriver::ProcessAsync Process error
19:44:05.498 XRUN callback (1 omitidos).
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Sink was not run: state = 1
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackEngine::XRun: client = rivendell_0 was not run: state = 1
JackAudioDriver::ProcessAsync Process error
22:50:27.821 XRUN callback (7).
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Sink was not run: state = 1
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackEngine::XRun: client = rivendell_0 was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Sink was not run: state = 1
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackEngine::XRun: client = rivendell_0 was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackEngine::XRun: client PulseAudio JACK Sink finished after current callback
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackEngine::XRun: client = rivendell_0 was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Sink was not run: state = 1
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackEngine::XRun: client = rivendell_0 was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackEngine::XRun: client PulseAudio JACK Sink finished after current callback
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackEngine::XRun: client = rivendell_0 was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackEngine::XRun: client PulseAudio JACK Sink finished after current callback
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackEngine::XRun: client = rivendell_0 was not run: state = 2
JackAudioDriver::ProcessAsync Process error
22:50:28.445 XRUN callback (20 omitidos).
12:12:00.547 Cliente desactivado.
12:12:00.549 Script de apagado...
12:12:00.549 /etc/init.d/rivendell stop; killall pulseaudio
Stopping Rivendell daemons: caed ripcd rdcatchd.
12:12:00.958 El script de apagado finalizó satisfactoriamente.
12:12:00.958 JACK está deteniéndose...
jack main caught signal 15
12:12:02.923 Script de apagado...
12:12:02.923 /etc/init.d/rivendell stop; killall pulseaudio
Stopping Rivendell daemons: caed ripcd rdcatchd.
12:12:03.332 El script de apagado finalizó satisfactoriamente.
12:12:03.332 JACK está deteniéndose...
12:12:04.967 Script de apagado...
12:12:04.968 /etc/init.d/rivendell stop; killall pulseaudio
Stopping Rivendell daemons: caed ripcd rdcatchd.
12:12:05.377 El script de apagado finalizó satisfactoriamente.
12:12:05.377 JACK está deteniéndose...
12:12:05.389 JACK ha sido detenido satisfactoriamente.
12:12:05.389 Script de post - apagado...
12:12:05.390 killall jackd
12:12:05.390 JACK ha petado.
jackd: no process found
12:12:05.793 El script de post - apagado finalizó con estado 256.
12:12:07.156 Script de inicio...
12:12:07.156 /etc/init.d/rivendell stop
Cannot connect to server socket err = Conexión rehusada
Cannot connect to server socket
jack server is not running or cannot be started
Stopping Rivendell daemons: caed ripcd rdcatchd.
12:12:07.562 El script de inicio finalizó satisfactoriamente.
12:12:07.562 JACK está iniciándose...
12:12:07.562 /usr/bin/jackd -dalsa -dhw:0 -r44100 -p1024 -n2 -s -H
12:12:07.563 JACK se inició con PID=5599.
jackdmp 1.9.6
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2010 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
audio_reservation_init
Acquire audio card Audio0
creating alsa driver ... hw:0|hw:0|1024|2|44100|0|0|hwmon|swmeter|soft-mode|32bit
Using ALSA driver HDA-Intel running on card 0 - HDA Intel PCH at 0xfb400000 irq 22
configuring for 44100Hz, period = 1024 frames (23.2 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
12:12:09.644 Configuración del servidor salvada en "/home/makunaima/.jackdrc".
12:12:09.644 Reiniciar estadísticas.
12:12:09.651 Cliente activado.
12:12:09.652 Script de post - inicio...
12:12:09.652 pulse-jack; /etc/init.d/rivendell start
Initiated Pulseaudio successfully!
Starting Rivendell daemons: caed ripcd rdcatchd.
12:12:10.224 El script de post - inicio finalizó satisfactoriamente.
12:12:10.225 Cambios en las conexiones JACK.
13:16:06.100 XRUN callback (1).
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackEngine::XRun: client = PulseAudio JACK Sink was not run: state = 2
JackPosixMutex::Unlock res = 1
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackAudioDriver::ProcessAsync Process error
JackPosixMutex::Unlock res = 1
JackEngine::XRun: client = PulseAudio JACK Source was not run: state = 1
JackAudioDriver::ProcessAsync Process error
13:16:07.197 XRUN callback (4 omitidos).
14:34:04.954 Cliente desactivado.
14:34:04.955 Script de apagado...
14:34:04.956 /etc/init.d/rivendell stop; killall pulseaudio
Stopping Rivendell daemons: caed ripcd rdcatchd.
14:34:05.365 El script de apagado finalizó satisfactoriamente.
14:34:05.365 JACK está deteniéndose...
jack main caught signal 15
JackClientSocket::Read time out
JackProcessSync::LockedTimedWait error usec = 92876 err = Connection timed out
JackEngine::ClientCloseAux wait error ref = 3
Released audio card Audio0
audio_reservation_finish
Cannot write socket fd = 17 err = Broken pipe
14:34:10.348 JACK ha sido detenido satisfactoriamente.
14:34:10.348 Script de post - apagado...
14:34:10.348 killall jackd
14:34:10.349 JACK ha petado.
jackd: no process found
14:34:10.752 El script de post - apagado finalizó con estado 256.
14:34:25.753 Script de inicio...
14:34:25.753 /etc/init.d/rivendell stop
Cannot connect to server socket err = No existe el fichero o el directorio
Cannot connect to server socket
jack server is not running or cannot be started
Stopping Rivendell daemons: caed ripcd rdcatchd.
14:34:26.159 El script de inicio finalizó satisfactoriamente.
14:34:26.159 JACK está iniciándose...
14:34:26.159 /usr/bin/jackd -dalsa -dhw:0 -r44100 -p1024 -n2 -s -H
14:34:26.160 JACK se inició con PID=30344.
jackdmp 1.9.6
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2010 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
audio_reservation_init
Acquire audio card Audio0
creating alsa driver ... hw:0|hw:0|1024|2|44100|0|0|hwmon|swmeter|soft-mode|32bit
Using ALSA driver HDA-Intel running on card 0 - HDA Intel PCH at 0xfb400000 irq 22
configuring for 44100Hz, period = 1024 frames (23.2 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
14:34:28.271 Configuración del servidor salvada en "/home/makunaima/.jackdrc".
14:34:28.272 Reiniciar estadísticas.
14:34:28.280 Cliente activado.
14:34:28.280 Script de post - inicio...
14:34:28.280 pulse-jack; /etc/init.d/rivendell start
Initiated Pulseaudio successfully!
Starting Rivendell daemons: caed ripcd rdcatchd.
14:34:28.838 El script de post - inicio finalizó satisfactoriamente.
14:34:28.839 Cambios en las conexiones JACK.
14:39:53.275 Cambió el gráfico de conexiones de JACK.
14:39:53.375 Cambió el gráfico de conexiones de JACK.
14:39:53.601 Cambió el gráfico de conexiones de JACK.
14:39:55.704 Cambió el gráfico de conexiones de JACK.
14:39:55.828 Cambios en las conexiones JACK.
14:39:55.829 Cambió el gráfico de conexiones de JACK.
14:40:32.331 Cambió el gráfico de conexiones de JACK.
14:40:32.447 Cambios en las conexiones JACK.
14:42:56.150 Cambió el gráfico de conexiones de JACK.
14:42:56.320 Cambios en las conexiones JACK.
14:42:58.797 Cambió el gráfico de conexiones de JACK.
14:42:58.923 Cambios en las conexiones JACK.
14:50:49.192 Cambió el gráfico de conexiones de JACK.
14:50:49.365 Cambios en las conexiones JACK.
14:54:13.173 Cambió el gráfico de conexiones de JACK.
14:54:13.269 Cambios en las conexiones JACK.


Tomado desde [a]

Generally when you get an XRUN (a.k.a. a buffer under-run,) it means your system is not fast enough to process the audio chunk in the given amount of time (latency period.) See the top of our troubleshooting section on the wiki for things to try: http://mixxx.org/wiki/doku.php/troubleshooting The simplest is to increase the latency setting in Preferences->Sound Hardware a notch.

[a] http://www.mixxx.org/forums/viewtopic.php?f=3&t=2287#p8508

Básicamente, es imperativo implementar un kernel en tiempo real. De otra forma, este error seguirá sucediendo.