Montaje de un sistema de streaming basado en
Pablo Felip www.pablofelip.tk abril 2016 Este documento se distribuye bajo una licencia Creative Commons de tipo
Reconocimiento NoComercial
Montaje de un sistema de streaming basado en piCorePlayer
ÍNDICE 1. Introducción y objetivos. 2. Logitech Media Server (LMS). 2.1 Instalación del LMS. 2.2. Configuración del LMS. 2.2.1. Inicio del servidor. 2.2.2. Establecer la carpeta de medios. 2.2.3. Compatibilidad con DSD (DSDPlayer) 2.2.4. Spotify (opcional). 2.2.5. Otros complementos (opcional). 2.2.6. IP fija en el servidor (opcional). 3. piCorePlayer. 3.1 Instalando piCorePlayer en la tarjeta SD. 3.2 Configuremos piCorePlayer. 3.2.1. Primer inicio de piCorePlayer y acceso a su panel de control web. 3.2.2. Activemos los ajustes avanzados. 3.2.3. ¿Necesitamos reproducir ALAC o WMA? 3.2.4. ¿Cable o WIFI? 3.2.5. Dispositivo de salida. 3.2.6. Frecuencia máxima soportada. 3.2.7. Ajustes relativos a la reproducción de DSD. 3.2.8. Cuidado con el control de volumen. 3.2.9. Activar AirPlay (opcional). 4. Una app para controlarlos a todos. 5. Casi 70 páginas y varias horas después.
Página 1 de 68
Montaje de un sistema de streaming basado en piCorePlayer
1. Introducción y objetivos. El objetivo de esta guía es describir los pasos necesarios para construir un sistema de streaming de bajo coste basado en piCorePlayer (pCP en adelante), una distribución gratuita y extremadamente ligera disponible para Raspberry Pi, capaz de reproducir audio en alta resolución (PCM 192/24 y DSD). El sistema consta, en líneas generales, de 4 bloques funcionales:
1. Servidor de medios Integrado por un ordenador o NAS que ejecuta un componente servidor denominado Logitech Media Server (LMS en adelante). LMS es un servidor multimedia (audio, vídeo e imágenes) de código abierto, mantenido por una Comunidad (con “C” mayúscula) de usuarios tras el abandono por parte de Logitech, y disponible para sistemas Windows, OS X y Unix / Linux, por lo que también podremos encontrarlo como complemento instalable en la práctica totalidad de sistemas NAS de cierto nivel. LMS es responsable de gestionar y compartir la colección musical contenida en una o varias carpetas de archivos, pero también desempeña funciones críticas de configuración y control de los distintos reproductores que integraremos en el sistema. En esencia, es el “cerebro” del sistema de streaming. 2. Reproductor . Recurriremos a una modesta Raspberry Pi de 1ª, 2ª o 3ª generación en cuya tarjeta SD habremos instalado piCoreplayer , un sorprendente desarrollo gratuito que la convierte funcionalmente en un reproductor Squeezebox de Logitech.
Página 2 de 68
Montaje de un sistema de streaming basado en piCorePlayer
3. Controlador . Para indicarle a pCP qué debe reproducir emplearemos un dispositivo móvil o tableta dotado de alguna de las excelentes apps de control disponibles. Por esta razón, una vez tengamos el sistema funcionando, no será necesario disponer de dispositivos de entrada o salida (teclado, ratón, monitor o TV) ni en la Raspberry Pi ni en el servidor de medios. A este modo de funcionamiento a ciegas se le suele de denominar headless (literalmente, sin cabeza). 4. DAC . El reproductor se conectará a un DAC a través de la conexión HDMI, USB o I2S de la Raspberry Pi. La salida de audio analógica integrada en la Raspberry Pi se considera de calidad insuficiente (aunque en la RPi 2 y 3 parece haber mejorado bastante) como para ser utilizada en un sistema de sonido de alta fidelidad. La guía presupone que dispones de los siguientes elementos: PC o Mac en red local cableada o WIFI.
No tiene por qué ser de gran potencia.
Raspberry Pi 1 , 2 o 3.
piCorePlayer ya es compatible con la RPi 3.
DAC USB / I2S o receptor multicanal con conexión HDMI
Adaptador WIFI USB (si conectamos la Raspberry vía WIFI). Tarjeta SD/microSD de al menos 128MB.
Logitech Media Server (LMS) 7.9.x: http://downloads.slimdevices.com/nightly/index.php?ver=7.9
Servidor de medios de Logitech.
DSD Player 1.0 (repositorio LMS) : http://triodeplugins.googlecode.com/svn/trunk/testrepo.xml
Plugin de reproducción de DSD para LMS de Triode
piCorePlayer: https://sites.google.com/site/picoreplayer/home/download
Imagen a grabar en la tarjeta SD.
Win32 Disk Imager: https://sourceforge.net/projects/win32diskimager/
Utilidad para grabar imágenes.
PuTTY: http://www.putty.org/
Utilidad de conexión ssh.
Advanced IP Scanner www.advancedipscanner.com/es
Identificación de la IP de piCorePlayer
Por último, señalar que en principio es posible segregar el componente servidor (1A en el diagrama anterior) del almacenamiento físico en sí (1B), puesto que son funciones independientes. En esta guía, no obstante, por sencillez y practicidad se asumirá que ambas están concentradas en el mismo equipo, que será un PC o Mac con la suficiente capacidad de almacenamiento para contener la biblioteca musical.
Página 3 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Antes de comenzar puedes ver esta presentación introductoria para familiarizarte con el procedimiento que se describe a continuación.
Presentación En la guía se ha optado por desarrollar el proceso utilizando un PC con Windows 7 dado que se ha entendido que este será el escenario más frecuente, especialmente cuando se trata de destinar un PC ya de cierta edad a actuar como servidor de nuestro sistema de streaming. No obstante se aportarán las indicaciones necesarias para tratar de contemplar otros escenarios.
Página 4 de 68
Montaje de un sistema de streaming basado en piCorePlayer
2. Logitech Media Server (LMS). Comenzaremos descargando, instalando y configurando LMS en su versión 7.9 , versión que ya admite la reproducción de archivos DSD.
2.1 Instalación del LMS. Para realizar la instalación hay que dirigirse a la página donde se localiza el repositorio de LMS 7.9:. http://downloads.slimdevices.com/nightly/index.php?ver=7.9 Comprobaremos que hay versiones para una gran variedad de sistemas, algunos bastante exóticos, incluyendo por supuesto Windows, OS X y Linux. Puesto que, como se ha indicado, esta guía está desarrollada pensando fundamentalmente en un servidor Windows, optaremos por el archivo ejecutable correspondiente.
Tras la descarga haremos doble clic en el icono de instalación y, una vez aceptados los consabidos avisos de seguridad del sistema, el proceso comenzará de inmediato. Tan solo deberemos seleccionar el idioma y hacer clic en los botones Aceptar / Siguiente para completar la instalación. En un momento de la misma veremos como un globo de ayuda en el área de notificación nos indicará que LMS está ya instalado e iniciándose. Página 5 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Página 6 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Después de hacer clic en Aceptar en la última ventana del asistente de instalación, se lanzará el panel de control de LMS. A través de este panel de control, que siempre estará disponible para su invocación desde el icono que se muestra en el área de notificación de la barra de tareas podremos, entre otras cosas: ○ ○ ○ ○ ○ ○
Controlar el inicio y la detención del servidor. Establecer el arranque en automático al iniciar el sistema (si así lo deseamos). Determinar qué carpetas contienen archivos multimedia y forzar un escaneado de las mismas. Reiniciar los ajustes y preferencias del servidor y/o eliminar la caché. Actualizar el servidor. Acceder a información de estado y diagnóstico.
Página 7 de 68
Montaje de un sistema de streaming basado en piCorePlayer
○ Abrir el panel de control web, que como veremos nos permitirá llevar a cabo la mayor parte de los procesos anteriores (con la excepción de los relativos al inicio y detención del servidor y a la inicialización de sus preferencias y caché).
La primera vez que se inicie el panel de control comprobaremos como un mensaje nos advertirá de que determinadas funciones relativas al arranque y la detención del propio servidor no estarán disponibles a menos que lo ejecutamos como administrador. Esto puede lograrse utilizando el menú contextual (botón derecho del ratón) del icono que se despliega en el área de notificación del sistema.
Si seguimos esta indicación ya dispondremos de una instancia del panel de control totalmente funcional. NOTA Es posible que instantes después de haber iniciado el panel de control de LMS aparezca en pantalla un mensaje indicando que hay actualizaciones disponibles . Al tratarse de una aplicación en continuo desarrollo el ciclo de actualización es extremadamente rápido. En general las actualizaciones son seguras, no obstante conviene no apresurarse y, una vez tengamos el sistema funcionando a nuestro gusto, tener al menos la precaución de esperar un tiempo prudencial antes de instalar una actualización para que hipotéticos errores no detectados puedan ser subsanados por los desarrolladores antes de que nos puedan afectar de un modo catastrófico. Podemos comprobar en todo momento qué versión de LMS está instalada en la pestaña Información del panel de control. Página 8 de 68
Montaje de un sistema de streaming basado en piCorePlayer
2.2. Configuración del LMS. 2.2.1. Inicio del servidor. Lo primero que haremos es dirigirnos a la pestaña Estado del panel de control del LMS para revisar las opciones relativas a su inicio. Aquí podremos detener e iniciar manualmente el servidor ① , además de decidir su modo de inicio ② , que podrá ajustarse a una de estas 3 posibilidades.
A. No iniciar automáticamente : será necesario “levantar” el servidor manualmente desde el panel de control de Logitech Media Server. B. Ejecutar automáticamente al iniciar sesión : LMS estará detenido en tanto permanezcamos en la pantalla de introducción de usuario y clave del sistema operativo, si es que está configurado para mostrarla, y arrancará tan pronto como iniciemos sesión. C. Ejecutar automáticamente al iniciar el sistema : El servidor LMS arrancará con el sistema, sin necesidad de que el usuario inicie sesión en él. En este caso deberemos introducir en el panel de control del LMS el nombre y clave correspondiente al usuario del sistema con cuyos privilegios y permisos se ejecutará el servidor. Es importante mencionar que dicho usuario deberá tener permisos de acceso a la carpeta que contenga los archivos multimedia, de lo contrario LMS no podrá verlos y por tanto no funcionará correctamente. Página 9 de 68
Montaje de un sistema de streaming basado en piCorePlayer
NOTA ¿Cómo debemos configurar este ajuste correspondiente al arranque del LMS? Existen varios factores a tener en cuenta pero, en general: ○ Si estamos configurando un sistema dedicado (esto es, siempre disponible) escogeremos la opción B o la C, de modo que LMS esté listo para funcionar tan pronto como el equipo arranque. ○ Si el PC no se emplea en exclusiva para proporcionar el servicio LMS a los reproductores que tengamos en red y somos conservadores con respecto al consumo de recursos (aunque LMS no es en absoluto tragón en este sentido), optaremos por la opción A.
Con el objetivo de hacer esta guía lo más universal posible y puesto que el panel de control utilizado hasta el momento es el correspondiente a plataformas Windows, el resto de la configuración la realizaremos desde la interfaz web de control que nos ofrece LMS, que es homogénea en todas las versiones de LMS. Podemos acceder a este panel de control web de tres maneras: ○ Haciendo clic en el botón Configuración avanzada en la pestaña Avanzada del panel de control del LMS que hemos venido utilizando.
○ Usando un navegador en el mismo equipo en el que se ejecuta LMS, bastará con dirigirlo a la dirección 127.0.0.1:9000 y a continuación seleccionar el enlace Configuración .
○ Si deseamos, en cambio, realizar la configuración desde otro navegador, quizás porque el PC que hemos destinado al servidor va a funcionar en el ya mencionado modo headless (es decir, a ciegas, sin monitor, teclado ni ratón). tendremos que conocer la IP de dicho PC para introducirla en el navegador
Página 10 de 68
Montaje de un sistema de streaming basado en piCorePlayer
(por ejemplo, 192.168.1.253:9000 ), para a continuación seleccionar nuevamente el enlace Configuración . ¿Cómo averiguar la dirección IP propia? El propio panel de control del LMS nos lo indicará en la pestaña Diagnósticos . Claro que lo más probable es que esta IP varíe al reiniciar puesto que nuestro router doméstico nos la estará asignando dinámicamente a través de DHCP (de hecho, en el transcurso de la confección de esta guía lo ha hecho en varias ocasiones). Más adelante veremos cómo configurar nuestro servidor con una IP fija (estática) de modo seguro.
2.2.2. Establecer la carpeta de medios. Pertrechados ya con la IP del servidor LMS, nos centraremos ahora en la configuración de la carpeta de medios que LMS debe vigilar y servir al reproductor que más tarde asociaremos. Nos dirigimos pues al área de control de la interfaz web, concretamente a la primera pestaña, denominada Configuración básica .
En ella estableceremos el nombre de nuestra biblioteca ① (esto solo es útil si disponemos de varios servidores LMS en red) y, más importante, la ruta de la carpeta o carpetas en las que tenemos archivos de audio y que deseamos que LMS vigile y exponga a los reproductores conectados en red ② . No hay que olvidarse de marcar la casilla correspondiente ( Música ) para indicar que se trata de archivos de sonido. Tampoco debemos olvidarnos de hacer clic en el botón Aplicar para confirmar los cambios. LMS comenzará inmediatamente a escanear la carpeta para localizar los archivos de audio que contiene. Página 11 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Para que LMS vuelva a escanear periódicamente la(s) carpeta(s) de medios nos dirigiremos a la pestaña Avanzada y seleccionaremos en el desplegable la opción Volver a examinar la biblioteca de música . Allí activaremos el temporizador ( Temporizador para volver a examinar a encendido ) y estableceremos la hora del examen. No nos olvidemos de Aplicar los cambios.
Página 12 de 68
Montaje de un sistema de streaming basado en piCorePlayer
En cualquier momento será posible solicitar un escaneado manual utilizando el botón Volver a examinar situado en la pestaña Configuración básica .
2.2.3. Compatibilidad con DSD (DSDPlayer) Vamos ahora a hacer que nuestro servidor LMS sea compatible con archivos DSD de tipo DFF y DSF. Para ello instalaremos DSDPlayer , un complemento que aparece ya automáticamente en la sección Complementos de terceros de las últimas versiones de LMS sin necesidad de agregar manualmente su repositorio (hay una sección para añadir más repositorios en la parte inferior de la página de complementos). DSDPlayer admite dos estrategias de reproducción de audio codificado en DSD: ○ Conversión a PCM : El audio DSD se transforma en PCM a una frecuencia y resolución determinadas, que . DSDPlayer establece teniendo en cuenta las capacidades del reproductor. Esta es la única opción si nuestro DAC no soporta DSD. ○ Reproducción nativa por medio de empaquetado DoP : DoP es el acrónimo de DSD over PCM . Se trata de una codificación, surgida al amparo de la proliferación de DACs conectados por USB, que empaqueta un flujo de datos DSD dentro de un paquete que tiene toda la pinta de ser audio en PCM. Los paquetes DoP son recibidos por el DAC, que desentierra el flujo DSD y lo reproduce como tal, esto es, de modo nativo.
Página 13 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Además, DSDPlayer permite establecer determinados parámetros que afectan a la conversión de DSD a PCM (calidad y ajustes del filtrado empleado en el proceso de remuestreo) y, además, tanto ellos como el modo de reproducción del audio en DSD pueden establecerse de modo independiente para cada reproductor. Volveremos a tocar esta cuestión cuando llegue el momento de configurar la reproducción DSD en pCP, entretanto nos contentaremos con instalar el complemento, para lo que bastará con localizarlo en la sección correspondiente a los Complementos de terceros , marcar la casilla de verificación y hacer clic en el botón Aplicar para confirmar los cambios (es posible que tengas que hacer clic sobre este botón en dos ocasiones).
Será necesario reiniciar el LMS, cosa que podremos hacer ahora o posponer para otro momento.
Si optamos por reiniciar ahora y, tras unos segundos, volvemos a la pestaña de complementos, veremos como DSDPlayer aparecerá ahora en la sección de Complementos activos . Página 14 de 68
Montaje de un sistema de streaming basado en piCorePlayer
2.2.4. Spotify (opcional). La activación del complemento de Spotify es un tanto farragosa puesto que requiere de tres pasos y la instalación de 2 complementos, además de disponer de una cuenta de tipo premium en Spotify: 1. Registro de nuestro servidor LMS en mysqueezebox.com , un portal web que permite la activación de ciertos complementos, como por ejemplo los correspondientes a Spotify y Tidal, y la configuración simple de algunos aspectos de los reproductores asociados al LMS. 2. Activación del complemento oficial de Spotify. 3. Instalación del plugin complementario de soporte de Spotify. Registro en mysqueezebox.com. Nuevamente accederemos al panel de control web en http://IP_del_servidor:9000 y a continuación haremos clic en Configuración para dirigirnos a la pestaña mysqueezebox.com . Allí haremos clic sobre Necesito crear una cuenta en mysqueezebox.com y seguiremos las instrucciones en pantalla. Tan solo necesitaremos indicar nuestro país, dirección de correo electrónico y establecer una contraseña. Tras completar el proceso (y verificar la cuenta de correo electrónico a través del enlace incluído en el mensaje que se nos enviará) podremos acceder a mysqueezebox.com como usuario ya autentificado..
Página 15 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Las credenciales de inicio de sesión obtenidas deberemos introducirlas en la pestaña mysqueezebox.com del LMS. Tras hacer clic en el botón Aplicar debe aparecer un mensaje en la parte superior de la ventana indicando que los cambios se han guardado, confirmando de este modo que el usuario y clave introducidos son correctos.
Página 16 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Activación del complemento oficial de Spotify. No dirigiremos a la Galería de aplicaciones de mysqueezebox.com que se puede encontrar en http://www.mysqueezebox.com/appgallery iniciando sesión con el usuario y clave registrados. Allí veremos un conjunto de aplicaciones que conectan con una serie de proveedores de contenido de audio en línea.
Nos desplazaremos hacia el final de la lista de aplicaciones para localizar la correspondiente a Spotify, haremos clic sobre su icono y a continuación en el botón Instalar aplicación .
Página 17 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Seguidamente utilizaremos el enlace Configurar para introducir las credenciales de nuestra cuenta premium en Spotify e iniciaremos sesión en el servicio.
Finalmente, activaremos el complemento haciendo clic en Enable Spotify Account para seguidamente iniciar nuevamente sesión, esta vez en el servicio de Spotify con nuestras credenciales premium. Al finalizar comprobaremos que la velocidad de bits de reproducción está ajustada a Alta (320 kbps) .
Página 18 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Activación del plugin complementario de soporte de Spotify (Spotify Protocol Handler). El plugin oficial solo funciona con determinados reproductores, entre los que no se encuentra piCorePlayer (que de oficial tiene poco, claro). Para poder utilizarlo necesitamos un complemento adicional que nuevamente localizaremos en la sección de Complementos de terceros del panel de control web del LMS e instalaremos de un modo análogo a DSDPlayer. Este complemento se denomina Spotify Protocol Handler .
Página 19 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Si en algún momento recibimos alguna advertencia del cortafuegos de Windows haremos clic en Permitir acceso . NOTA Debemos asegurarnos de instalar Spotify Protocol Handler . Existe otro complemento de nombre similar (3rd Party Spotify Plugin ), pero está obsoleto y ya no funciona correctamente.
Página 20 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Ahora nos dirigiremos a la pestaña Avanzada y en el desplegable seleccionaremos Spotify Protocol Handler para, a continuación, aceptar los términos de uso (clic en la casilla de verificación I Agree , clic en Aplicar ).
Esto activará el complemento, en cuyo panel de configuración, nuevamente (y van…), deberemos introducir nuestras credenciales premium de Spotify. Tras ello haremos clic con el ratón, como siempre, en Aplicar y nos aseguraremos de que el complemento se está ejecutando y ha iniciado sesión correctamente en Spotify (sección Status ).
Página 21 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Ha sido largo pero ya hemos terminado. El procedimiento ha resultado más complicado de lo habitual como consecuencia de los recientes cambios introducidos por Spotify en su servicio, lo que nos ha obligado a recurrir a un nuevo plugin complementario al oficial para poder seguir disfrutando del servicio en reproductores distintos a los Squeezebox Touch y Radio.
2.2.5. Otros complementos (opcional). El ecosistema Squeezebox ofrece docenas de complementos distintos. Algunos de ellos conectan el servidor LMS con diversos proveedores musicales en Internet; otros, sin embargo, añaden o mejoran sus funcionalidades. La buena noticia es que la mayor parte de estos complementos se instalan de un modo mucho más sencillo que el que hemos tenido que sufrir para disfrutar de Spotify. Existe una sección dedicada a los complementos del LMS en su wiki , que además conduce a un activo foro de discusión (en inglés) en el que se puede encontrar gran cantidad de información de soporte e ideas de uso. http://wiki.slimdevices.com/index.php/Logitech_Media_Server_Plugins Podemos ojear los complementos disponibles en la sección Complementos del panel de control web del LMS. Además, es posible añadir otros no inicialmente relacionados indicando repositorios adicionales en el recuadro
Página 22 de 68
Montaje de un sistema de streaming basado en piCorePlayer
situado en la parte inferior de dicha sección (el wiki y foro anteriores son un buen lugar para obtener las direcciones de estos repositorios).
Otros complementos (los menos) se pueden encontrar en la galería de aplicaciones de mysqueezebox.com. Algunos recomendables de entre estos últimos pueden ser SomaFM , SHOUTcast o TuneIn Radio , que dan acceso a una enorme cantidad de emisoras de radio por Internet.
Además, puede que quizás también encuentres interesantes estos otros que no están activados por defecto: Complemento
Se obtiene en...
Descripción
AirPlay Bridge
Web LMS
Integra en LMS dispositivos AirPlay como reproductores.
AutoRescan
Web LMS
Detecta automáticamente los cambios en las carpetas de la biblioteca.
Chromecast bridge
Web LMS
Integra en LMS dispositivos Chromecast como reproductores.
Local Player
Web LMS
Activa la reproducción local en el servidor usando Squeezelite.
Tidal
mysqeezebox.com
Acceso al conocido servicio de streaming de alta calidad
UPnP/DLNA bridge
Web LMS
Integra en LMS dispositivos UPnP como reproductores.
2.2.6. IP fija en el servidor (opcional). Lo habitual es que el ordenador en el que hemos instalado LMS esté configurado para obtener un dirección IP dinámica en nuestra red, IP que es asignada normalmente por el router doméstico que en ella se encuentra a Página 23 de 68
Montaje de un sistema de streaming basado en piCorePlayer
través de un protocolo denominado DHCP (acrónimo de Dynamic Host Configuration Protocol , protocolo de configuración dinámica de anfitrión). Por medio de este protocolo se le cede temporalmente a cada equipo (cliente) conectado a la red local, bien de modo cableado, bien de modo inalámbrico, una dirección IP para que pueda transmitir y recibir información. Esta cesión es válida durante un periodo de tiempo que puede oscilar entre unas pocas horas y varios días, pasado el cual la concesión expira y el cliente debe solicitar una nueva dirección IP al servidor DHCP. El servidor DHCP gestiona un conjunto o rango de direcciones IP en préstam o, lleva la cuenta de cuáles han sido cedidas, a quién y hasta cuándo. De esta forma se garantiza que la dirección IP es única para cada equipo de la misma red local y se maximiza el uso de las IP disponibles. De lo contrario, si dos o más equipos reciben la misma IP se producirá un conflicto que dejará sin conexión a todos salvo al primero al que se le ha asignadoo, aunque en la práctica puede ocurrir que también este se ve afectado. Probablemente esto se entenderá mejor con un diagrama.
RECAPITULEMOS: ○ Cada equipo de nuestra red necesita una dirección IP única para poder comunicarse. ○ Esta dirección es asignada habitualmente por nuestro router empleando un mecanismo denominado DHCP. ○ Como consecuencia, las direcciones IP de los equipos conectados en red varían con el tiempo.
Página 24 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Ahora bien ¿supone un problema que nuestro servidor LMS esté configurado con una IP dinámica que cambie con el tiempo? La respuesta corta es: en principio no. Los protocolos utilizados por el LMS para comunicarse con los reproductores asociados están diseñados para que estos últimos sean capaces de descubrir por sí mismos la presencia del servidor de medios y averiguar su dirección IP. A pesar de ello, es una buena práctica asignar una IP fija a los elementos de una red que actúan como servidores para reducir la probabilidad de eventuales fallos y facilitar su localización y acceso desde otros equipos. Es por ello que en esta sección aprenderemos a configurar el servidor LMS con una IP fija (estática). NOTA Esta guía no pretende, ni mucho menos, ser un documento de referencia por lo que hace a la configuración de redes TCP/IP. Por tanto, a continuación se describirán una serie de procedimientos sin profundizar en su fundamentación técnica. Además, dada la enorme diversidad de routers y sistemas operativos (y versiones de los mismos), estos procedimientos pueden no ajustarse totalmente a la configuración del lector. Dividiremos el proceso en varias fases: 1. Averiguar la dirección IP , máscara de red , puerta de enlace y servidor de nombres (DNS) del ordenador que ejecuta LMS (servidor). 2. Acceder al panel de control del router. 3. Configurar el servidor DHCP (router) de modo que la IP que deseamos asignar de modo estático quede excluida del rango que se cede dinámicamente. 4. Configurar el servidor con IP fija. Vamos con ellas. 1. Averiguar los parámetros de configuración IP del ordenador que ejecuta LMS. Haremos clic con el ratón en el icono que representa a la conexión de red en el área de notificación de la barra de tareas. Se desplegará un pequeño panel en el que identificaremos cómo se denomina la conexión que el ordenador está empleando actualmente. A continuación haremos clic, secuencialmente en: 1. El texto Abrir Centro de redes y recursos compartidos .
Página 25 de 68
Montaje de un sistema de streaming basado en piCorePlayer
2. El texto a la derecha de Conexiones en la sección de la ventana correspondiente a la conexión de red que hemos identificado hace un momento. Lo más probable es que tan solo aparezca una, pero si nuestro ordenador dispone de varios adaptadores de red (por ejemplo uno cableado y otro inalámbrico) es posible que se muestren ambas
3. El botón Detalles en la ventana de Estado de Conexión de área local .
Página 26 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Aparecerá otra ventana denominada Detalles de la conexión de red . Aquí es donde queríamos llegar.
Anotaremos los parámetros: ○ ○ ○ ○
Dirección IPv4. Máscara de subred IPv4. Puerta de enlace predeterminada IPv4. Servidor DNS IPv4.
En el caso de un Mac (OS X), esta información la podrás encontrar en las distintas pestañas del panel de configuración de la red, ubicado en: Preferencias del Sistema ⇨ Red ⇨ Ethernet Aquí el término Router es empleado en lugar de Puerta de enlace predeterminada .
Página 27 de 68
Montaje de un sistema de streaming basado en piCorePlayer
2. Acceder al panel de control del router Necesitaremos conocer la dirección web de administración del router y el usuario y clave para acceder. Lo habitual es que baste con escribir en la barra de direcciones del navegador algo como esto... http://IP_puerta_de_enlace_IPv4 ...para que aparezca la página de autenticación:
El usuario suele ser admin y la clave algo como admin , password , guest , el nombre del fabricante o, simplemente, una cadena vacía (en blanco, pulsar intro). También puede suceder que el usuario esté en blanco y la clave sean admin o Admin . Un buen lugar para tratar de averiguar el usuario y la clave del router que vienen configurados de fábrica (los proveedores de Internet son extraordinariamente vagos y muchas veces no los modifican) es esta:
Página 28 de 68
Montaje de un sistema de streaming basado en piCorePlayer
http://portforward.com/default_username_password/ También puedes buscar el manual del router, en el que siempre se indica la dirección de administración y el usuario y clave requeridos. Rebusca en esa caja que tienes tirada en el trastero o, si no la encuentras, busca en Google la marca y modelo exacto de tu router más (símbolo + ) la palabra manual, seguramente llegarás a la web de soporte del fabricante, a la que por otra parte siempre puedes dirigirte paso a paso. Por ejemplo:
Búsqueda de DLink DIR 655 +manual Página 29 de 68
Montaje de un sistema de streaming basado en piCorePlayer
En cualquier caso, todo esto es algo que depende en gran medida del modelo concreto de router del que dispongamos y de las posibles modificaciones que haya efectuado sobre él el proveedor de Internet que nos lo facilite (si es que se trata de un router cedido). Es posible que la compañía nos haya entregado algún documento que recoja la información necesaria para que lo podamos administrar, o, en su defecto, al menos usuario y clave estén anotados en la parte inferior del dispositivo. Si no es así siempre podemos llamar al número de atención al cliente para que nos indiquen cómo conectarnos al router para revisar su configuración (buena suerte). 3. Configurar servidor DHCP del router para eliminar del rango de cesión la IP a asignar al servidor LMS De nuevo, el lugar al que nos debemos dirigir varía en gran medida en función de la marca y modelo de nuestro router. En general deberemos buscar algún lugar del menú de configuración (probablemente esté en inglés) donde se hable de configuración de red local (network configuration) , DHCP , rango de direcciones IP ( DHCP IP Address Range) , etc. Lo que estamos tratando es de identificar el rango de direcciones IP que el servidor DHCP está ofreciendo a los dispositivos configurados con IP dinámica. Por ejemplo, en el caso de un DLink DIR 655 los ajustes del servidor DHCP se localizan aquí: SETUP ⇨ NETWORK SETTINGS ⇨ DHCP SERVER SETTINGS
Página 30 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Aquí el rango de direcciones del servidor DHCP es el comprendido entre la IP 192.168.1. 201 y la 192.168.1. 254 . Podemos ver también que el servicio DHCP está activado y que el tiempo de validez de la cesión son 1440 minutos (24 horas).
Debemos tener en cuenta que: ○ Las direcciones entre 192.168.1. 201 y 192.168.1. 254 no pueden asignarse manualmente puesto que las gestiona el servidor DHCP y podrían producirse conflictos. ○ La dirección 192.168.1. 1 no puede ser utilizada puesto que es la asignada en este caso (y habitualmente) al propio router DLink.. ○ La dirección 192.168.1. 255 tampoco está disponible puesto que se trata de una IP reservada que tiene un significado especial en las redes TCP/IP.
Teniendo en mente todo lo anterior, podríamos emplear por tanto manualmente cualquier dirección IP dentro del rango: 192.168.1. 2 192.168.1. 200 Por ejemplo, esta: 192.168.1. 10 No hay direcciones mejores que otras, tan solo procuraremos seleccionar una fácil de recordar y, por encima de todo, nos aseguraremos de que solo la vamos a emplear con un equipo , en este caso nuestro servidor LMS, por las razones expuestas anteriormente. Si seleccionamos para el servidor LMS una dirección que no se encuentra dentro del rango administrado por el servidor DHCP no tenemos que modificar ningún parámetro en la configuración del router (ni que decir tiene que esto es lo aconsejable si no nos sentimos cómodos administrando una red local). Si por el contrario nos empeñamos en asignar manualmente una IP comprendida dentro del rango de direcciones DHCP tendremos que modificarlo en los ajustes de DHCP para que la escogida no esté dentro de él. 3. Configurar servidor con IP fija. Accederemos nuevamente a la ventana de Estado de Conexión de área local , del mismo modo que hicimos en el paso 1, pero esta vez deseamos establecer manualmente los ajustes, por lo que haremos clic en Propiedades y, seguidamente, seleccionaremos en la lista de elementos que despliega la ventana Propiedades de Conexión de área local el componente Protocolo de Internet versión 4 (TCP/IPv4) para, a continuación, hacer de nuevo clic en Propiedades . Página 31 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Página 32 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Aparecerá el panel de propiedades del protocolo TCP/IP.
Aquí introduciremos manualmente la dirección IP que deseamos asignar a nuestro servidor LMS, escribiendo en lugar correspondiente el resto de parámetros (Dirección IPv4, máscara de subred IPv4, puerta de enlace predeterminada IPv4, servidor DNS IPv4) que averiguamos en el paso 1 de esta sección. Siguiendo con el ejemplo, vamos a configurar el servidor LMS con la IP 192.168.1.10 . En ese caso la configuración quedaría del modo que se puede ver en la captura anterior. De estar realizando este proceso en un Mac, seleccionaremos Ubicación: Manual y procederemos a ajustar los parámetros del mismo modo. No nos debemos olvidar de hacer clic en Aceptar para confirmar los cambios. la nueva IP quedará ya asignada al servidor LMS, no siendo necesario reiniciar. Podemos probar a acceder a cualquier página de Internet para cerciorarnos de que disponemos de conectividad, como es de esperar si hemos desarrollado este procedimiento correctamente.
Página 33 de 68
Montaje de un sistema de streaming basado en piCorePlayer
3. piCorePlayer. Ahora es cuando las cosas se ponen interesantes. Pasamos a abordar la parte de esta guía dedicada a la instalación y configuración de piCorePlayer , que desde la reciente (en el momento de escribir estas líneas) versión 2.0, lanzada el 28 de marzo de 2015, ya es compatible también con las recientemente lanzadas Raspberry Pi de 3ª generación. La compatibilidad se extiende al adaptador WIFI interno que incorporan estos modelos, lo que unido a un nuevo aumento de potencia hace a la Raspberry Pi un dispositivo aún más interesante a la hora de funcionar como reproductor de bajo coste.
Por si fuera poco, desde la versión justo anterior a la que aporta compatibilidad con la RPi 3 (2.03, 19 de marzo) piCorePlayer puede levantar su propio servidor LMS, que se ejecutará localmente en la Raspberry Pi del mismo modo que es posible conseguir en un Squeezebox Touch (aunque es una opción relativamente poco conocida). De este modo ya no será necesario instalar LMS en un PC, aunque lógicamente necesitaremos seguir contando con un dispositivo de almacenamiento, bien disponible en red, bien conectado localmente a través del puerto USB de la Raspberry. El Squeezebox Touch, un dispositivo muy limitado por lo que hace a la potencia de su procesador, tiene serios problemas funcionando de este modo a poco que la colección de música alcance cierto tamaño puesto que, además de la reproducción en sí, debe ocuparse de las tareas de servidor y control propias del LMS. Aunque no tengo una experiencia directa con una Raspberry Pi 3 operando de este modo, me inclino a pensar que, dadas sus prestaciones, el funcionamiento será mejor aunque no me atrevería a decir hasta qué punto. En esta guía, no obstante nos ceñiremos al planteamiento inicial. Además, se empleará una modesta Raspberry Pi 1 en lugar las versiones más potentes y sofisticadas de 2ª y 3ª generación.
3.1 Instalando piCorePlayer en la tarjeta SD. Para completar esta parte de la guía necesitaremos tres cosas:
Página 34 de 68
Montaje de un sistema de streaming basado en piCorePlayer
○ Un ordenador equipado con lector de tarjetas SD o microSD (o un lector de tarjetas externo conectable por USB).
○ Una tarjeta SD (o microSD con su correspondiente adaptador), aunque sea de pequeño tamaño (aunque es posible instalar piCorePlayer en una tarjeta de apenas 64MB, elegiremos una de al menos 128MB para ir holgados en este sentido).
○ La imagen instalable de piCorePlayer.
Podemos encontrar todas las versiones de piCorePlayer en la sección de descargas del proyecto: https://sites.google.com/site/picoreplayer/home/download Escogeremos la última disponible (2.04 en el momento de escribir estas líneas).
piCorePlayer se distribuye como una imagen completa del sistema operativo que instalaremos en la Raspberry. Se trata de un archivo empaquetado, con la extensión img (extensión que veremos únicamente si tenemos nuestro explorador configurado para que las muestre) que contiene a su vez los centenares de archivos Página 35 de 68
Montaje de un sistema de streaming basado en piCorePlayer
necesarios para que piCorePlayer arranque y funcione, en esencia toda una distribución Linux adaptada y configurada por el creador del proyecto. El núcleo de pCP es Squeezelite , un reproductor software cuya misión es emular el comportamiento de un Squeezebox real.
Para grabar la imagen en la tarjeta SD necesitaremos echar mano, en un entorno Windows, de una herramienta como Win32 Disk Imager . La descargaremos de: https://sourceforge.net/projects/win32diskimager El proceso no tiene mayor dificultad, simplemente dirigiremos el navegador a la dirección anterior y haremos clic en el botón Download .
Página 36 de 68
Montaje de un sistema de streaming basado en piCorePlayer
La instalación tampoco comporta ningún problema, abriremos el archivo ejecutable de instalación y seguiremos el asistente con las opciones por defecto que se nos recomienden.
Tras la instalación localizaremos Win32 Disk Imager en el menú de Inicio y la ejecutaremos.
Página 37 de 68
Montaje de un sistema de streaming basado en piCorePlayer
El manejo de la aplicación es extremadamente simple. Tras insertar la tarjeta SD en el lector del ordenador, bastará con seleccionar el archivo img con la imagen de piCorePlayer, escoger la unidad extraíble ( Device ) correspondiente a la tarjeta insertada y hacer clic en el botón Write .
Tras completar el proceso simplemente cerraremos Win32 Disk Imager y extraeremos la tarjeta SD. Si en lugar de un PC con Windows utilizamos un Mac recomiendo recurrir a una aplicación similar denominada ApplePiBaker , que se emplea de un modo análogo y podemos descargar aquí: http://www.tweaking4all.com/hardware/raspberrypi/macosxapplepibaker/
NOTA Debemos ser extremadamente cautos a la hora de seleccionar el dispositivo de almacenamiento en el que se escribe la imagen de piCorePlayer. El proceso es destructivo, por lo que si por error escogemos otra unidad USB conectada al ordenador perderemos totalmente su contenido. Página 38 de 68
Montaje de un sistema de streaming basado en piCorePlayer
3.2 Configuremos piCorePlayer. Hemos sobrepasado ya el ecuador de esta guía, que ha crecido en tamaño mucho más de lo que pretendía en un principio y nos estamos aproximando al momento en que recibiremos nuestro premio: nos dejaremos caer en el sillón para disfrutar cómodamente de nuestra música tras habernos gastado apenas unas pocas decenas de euros en una Raspberry Pi. Por fin, ya estamos listos para iniciar piCorePlayer por primera vez en nuestra Raspberry Pi.
3.2.1. Primer inicio de piCorePlayer y acceso a su panel de control web. Insertamos la tarjeta SD en la Raspberry Pi, conectamos los cables y arrancamos. Para la primera configuración es necesario que la RPi se conecte a la red por cable .El resto de conexiones (HDMI, DAC) no son necesarias.
Si la Raspberry está conectada a un monitor (a través de HDMI o de la salida de video compuesto) veremos, tras unos segundos, algo como esto.
Página 39 de 68
Montaje de un sistema de streaming basado en piCorePlayer
NOTA En realidad es posible realizar la configuración inicial de piCorePlayer sin necesidad de una conexión por cable a la red. No obstante, en esta guía se optará, por simplicidad, por suponer que es posible conectar la Raspberry Pi, aunque sea temporalmente, a nuestra red local de este modo, por ejemplo conectándola directamente a uno de los puertos ethernet de nuestro router. piCorePlayer se configura, de un modo análogo a LMS, a través de un panel de control web accesible utilizando un navegador. Para conectarnos a él necesitaremos por tanto conocer la dirección IP asignada a la RPi, que por defecto será dinámica (ya estamos familiarizados con las implicaciones que esto tiene). Existen varias formas de lograrlo. Si nos fijamos en la imagen anterior, el propio piCorePlayer anuncia la IP obtenida en el momento del arranque.
Si no podemos visualizar la salida de vídeo de la RPi, existe también la posibilidad de utilizar la siguiente dirección, que podrá funcionar o no dependiendo la configuración de nuestra red local. No perdemos nada por probarla: http://picoreplayer.local Otro método, ahora que ya sabemos acceder al panel de control web de nuestro router, consiste en acceder a él y tratar de localizar una página con información relativa a todos los dispositivos conectados.
Página 40 de 68
Montaje de un sistema de streaming basado en piCorePlayer
En mi DLink DIR 655 se trata de la sección STATUS . Allí buscaremos la IP correspondiente a un equipo identificado como Raspberry Pi o similar (en mi caso aparece como piCorePlayer debido a configuraciones específicas en mi router). Por último, podemos recurrir a una aplicación como Advanced IP Scanner . Se trata de una herramienta que, como su nombre sugiere, explorará la red local tratando de identificar los dispositivos conectados. Podemos obtener esta herramienta aquí:
www.advancedipscanner.com/es Su descarga e instalación es tan simple como la de Win32DiskImager. De hecho, si lo deseamos podemos simplemente ejecutarla, sin que sea necesario realizar una instalación específica para la aplicación.
La ejecutaremos en modo portátil y a continuación haremos clic en el botón Explorar . El resultado puede ser Página 41 de 68
Montaje de un sistema de streaming basado en piCorePlayer
algo similar a lo mostrado.
En el resultado de la anterior exploración aparecen dos dispositivos de tipo Raspberry. Para identificar cuál es el que está ejecutando piCorePlayer simplemente introduciremos alternativamente ambas IP en la barra de direcciones del navegador hasta encontrarnos con esto:
Página 42 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Existen alternativas a Advanced IP Scanner, por ejemplo Angry IP Scanner , que además dispone de versiones para Windows, OS X y Linux. Puede descargarse aquí: http://angryip.org/ Su funcionamiento es análogo a Advanced IP Scanner.
Una vez dispongamos de la IP asignada a piCorePlayer / Raspberry Pi, la escribiremos en la barra de direcciones del navegador para dar comienzo al proceso de configuración. No se nos solicitarán usuario y clave para conectarnos. http://IP_de_piCorePlayer En mi caso: http://192.168.1.236
El resto de caracteres a la derecha de la IP aparecerán automáticamente al establecer la conexión. Para finalizar, me gustaría comentar que, contrariamente a lo que ocurría con LMS y en general con cualquier servidor, tratar de configurar piCorePlayer con una IP estática no aporta ventajas significativas. Página 43 de 68
Montaje de un sistema de streaming basado en piCorePlayer
3.2.2. Activemos los ajustes avanzados. El panel de configuración de piCorePlayer dispone de un número muy elevado de ajustes. Para evitar que el usuario se sienta intimidado por ellos, existen 4 niveles de acceso que limitan el nº de ajustes visibles en pantalla. Lamentablemente, para llevar a cabo completamente todo el proceso de configuración no podemos conformarnos con los ajustes que aparecen de modo predeterminado. Por esta razón, lo primero que vamos a hacer es convertirnos en expertos de un plumazo activando el nivel de acceso homónimo. Para ello, tras acceder con el navegador al panel de configuración, nos dirigiremos a la pestaña Main Page y desde allí haremos clic en el enlace Advanced que se muestra en la parte inferior de la página.
Precisamente a causa del elevado número de parámetros y ajustes disponibles, en lo que queda de esta sección 3.2 dedicada a la configuración de piCorePlayer recorreremos únicamente los ajustes necesarios, obviando una explicación pormenorizada de cada recoveco del panel de control, que sería interminable.
3.2.3. ¿Necesitamos reproducir ALAC o WMA? Seguimos en la pestaña Main Page . pCP puede emplear dos versiones distintas de su motor de reproducción, que como sabemos es el conocido reproductor Squeezelite, desarrollado por Triode:
Página 44 de 68
Montaje de un sistema de streaming basado en piCorePlayer
A. Una versión básica , de reducido tamaño (1MB), que es la que viene activada por defecto y con la que podemos reproducir los formatos de sonido más habituales tales como PCM, WAV, AIFF, FLAC, MP3, OGG y AAC. B. Otra, basada en ffmpeg , de un tamaño ligeramente mayor (12MB), que añade la capacidad de reproducir archivos en formato ALAC (sin pérdidas de Apple) y WMA. Si optamos por ella, lo más probable es que el tamaño de pCP crezca hasta el punto de no caber en una tarjeta SD de 64MB. Personalmente he comprobado que es posible disfrutar de esta versión dotada de mayor compatibilidad en tarjetas SD de 128MB. Vamos a activar el segundo. Para ello, lo seleccionaremos en el desplegable y haremos clic en el botón Install , lo que provocará un reinicio automático de pCP.
Página 45 de 68
Montaje de un sistema de streaming basado en piCorePlayer
NOTA Junto a muchas de las opciones de configuración de pCP veremos el texto more> . Si hacemos clic sobre él se desplegará información adicional acerca el propósito y particularidades de dicho ajuste. El enlace more> se transformará en less> , que usaremos para replegar la información mostrada.
3.2.4. ¿Cable o WIFI? Hasta el momento hemos desarrollado el proceso de instalación contando con que nuestra Raspberry Pi está conectada a la red por cable. Si disponemos de una Raspbberry Pi 3 (que dispone de conexión WIFI de serie) o tenemos la intención de emplear un módulo WIFI USB, deberemos configurar los ajustes de conexión correspondientes ( SSID , clave , protocolo de seguridad ) en la pestaña WIFI Settings y hacer clic en Save/Connect . Estos ajustes son los mismos que empleamos para conectar cualquiera de nuestros dispositivos inalámbricos domésticos (móvil, tableta, etc.). Existe una lista de módulos WIFI USB compatibles aquí: https://sites.google.com/site/picoreplayer/wifidongles
En el resto de esta guía, no obstante, seguiremos utilizando una conexión por cable. Página 46 de 68
Montaje de un sistema de streaming basado en piCorePlayer
3.2.5. Dispositivo de salida. Ha llegado el momento de indicarle a pCP cuál es el dispositivo de salida. Nos dirigiremos a Squeezelite Settings . A grandes rasgos, existen 4 posibilidades excluyentes (es decir, no podremos emitir audio de modo simultáneo a través de varios dispositivos de salida): 1. Salida analógica a través del jack de 3,5” ( analog out ). Tradicionalmente el sonido obtenido a través de esta inferfaz ha sido de mala calidad, con una resolución equivalente de unos 14 bits y plagado de de ruidos e interferencias. El problema con las interferencias se ha venido paliando con sucesivas actualizaciones del firmware de la Raspberry Pi (no así el relativo a la baja resolución del DAC integrado, que realmente ni siquiera lo es). Parece ser que la circuitería de audio analógico de la Raspberry Pi 2 y 3 ha sido mejorada hasta el punto de hacer la reproducción (más o menos) aceptable, pero personalmente no lo he probado. 2. HDMI ( HDMI audio ). El audio se emitirá por la salida HDMI. Esta es la configuración habitual cuando conectamos la RPi a un receptor multicanal. 3. USB ( USB Audio ). Se empleará un DAC conectado por USB a la RPi como dispositivo de salida. 4. I2S ( I2S Audio ). pCP es compatible con varios DACs I2S fabricados especialmente para la Raspberry Pi (aparecen en la lista dentro del desplegable), que se conectan directamente al dispositivo a través de su conector GPIO. También existen módulos de expansión que, no siendo técnicamente DACs, añaden una conexión SPDIF para que podamos conectar uno externo. I2S es técnicamente la mejor interfaz, por lo que muchos usuarios optan por esta opción para tratar de conseguir el mejor sonido posible.
Página 47 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Seleccionaremos por tanto la opción deseada y haremos clic en Save . De ser necesario reiniciar Squeezelite o la Raspberry Pi un mensaje nos advertirá de ello. NOTA En caso de encontrarnos con problemas podemos reiniciar manualmente tanto Squeezelite ( Restart ) como la RPi ( Reboot ) desde la pestaña Main Page :
Además, como pCP carga totalmente en la memoria RAM de la Raspberry, podemos desenchufar el adaptador de corriente cuando queramos sin miedo a causar corrupción en la tarjeta SD. Página 48 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Vamos a configurar, por ejemplo, pCP para que utilice el módulo de sonido Edirol UA25 conectado en este caso a la Raspberry.
NOTA En ocasiones, especialmente si hay otros dispositivos de audio disponibles, no basta con seleccionar USB Audio en el desplegable. En estos casos hay que introducir manualmente en el parámetro Output Setting de Squeezelite la cadena que lo identifica en el sistema. Para averiguar qué debemos introducir haremos clic en el enlace more> correspondiente y copiaremos y pegaremos la identificación asignada al dispositivo elegido. No nos olvidemos de hacer clic en el botón Save situado al final de la página junto al texto Squeezelite command string (no el que se encuentra en la parte superior bajo Audio Output ).
Página 49 de 68
Montaje de un sistema de streaming basado en piCorePlayer
3.2.6. Frecuencia máxima soportada. piCorePlayer admite audio hasta 192 Khz y 24 bits. Lógicamente, puede que el dispositivo de salida escogido no tenga esta capacidad por lo que se realizará un remuestreo a la frecuencia máxima soportada por él. Aunque esto debería ser automático, en ocasiones las capacidades del DAC no son correctamente identificadas y la reproducción no funciona correctamente en algunos casos. Para prevenir esta circunstancia podemos especificar esta frecuencia máxima utilizando la opción Max sample rate de los ajustes de Squeezelite (de nuevo, pestaña Squeezelite Settings ). En el caso del módulo Edirol UA25 utilizado en esta guía, solo se admite su modo de funcionamiento simple (sin drivers) con una frecuencia máxima de 48 Khz, por lo que introduciremos 48000 en el lugar indicado y haremos clic en el botón Save al final de la página.
3.2.7. Ajustes relativos a la reproducción de DSD. Vamos ahora a configurar todo lo relativo a la reproducción de DSD. Si no estás interesado en esta sección puedes saltártela tranquilamente. Para lograrlo, hay dos lugares hacia los que debemos dirigir nuestra atención: 1. El panel de ajustes de DSDPlayer , el complemento para LMS que instalamos en la sección 2.2.3 de esta guía. 2. La pestaña Squeezelite Settings en la configuración pCP, concretamente el parámetro situado en la parte inferior de la página denominado Various input . Distinguiremos dos situaciones posibles en función de si nuestro dispositivo de salida admite DSD nativo codificado en formato DoP o no.
Página 50 de 68
Montaje de un sistema de streaming basado en piCorePlayer
El dispositivo de salida admite DSD. En este caso poco tendremos que hacer, tan solo asegurarnos de que el complemento DSDPlayer reconoce la capacidad de pCP de reproducir DSD en formato DoP. Para conseguirlo, accederemos al panel de configuración del LMS. Si no recuerdas cómo hacerlo puedes revisar la sección 2.2.1. No obstante, si has seguido al pie de la letra las instrucciones de la guía habrás asignado previamente una IP fija (192.168.1.10) al ordenador en el que instalamos LMS (apartado 2.2.6). En ese caso bastará con escribir en el navegador... http://192.168.1.10:9000 ...para a continuación hacer clic en el botón Configuración , dirigirnos a la pestaña Reproductor y seleccionar DSDPlayer en el menú que se despliega al hacer clic en Configuración básica .
Deberá aparecer en pantalla el mensaje This player supports native playback of DSD files (este reproductor soporta la reproducción nativa de archivos DSD).
Página 51 de 68
Montaje de un sistema de streaming basado en piCorePlayer
El dispositivo de salida *no* admite DSD. Como hemos visto, por defecto Squeezelite / pCP le anuncia al LMS al que se conecta que es capaz de reproducir DSD a través de DoP, aunque el DAC conectado no disponga de esta capacidad. Esto supone que Squeezelite deberá transcodificar al vuelo de DSD a PCM localmente en la Raspberry… y no queremos ni oír hablar de esta posibilidad dada la manifiesta escasa potencia de este dispositivo. Lo que haremos será forzar la conversión a PCM en el ordenador que ejecuta LMS. Para ello, primeramente volveremos a la pestaña Squeezelite Settings de pCP, localizaremos el parámetro Various input y escribiremos en el cuadro de texto e dsd (mucho cuidado al escribir para no dejar espacios adicionales):
Como siempre, no olvidaremos hacer clic en el botón Save . A continuación accederemos nuevamente al panel de configuración del LMS y nos dirigiremos al panel de ajustes de DSDPlayer del reproductor: Configuración ⇨ Reproductor ⇨ Configuración básica ⇨ DSDPlayer
Aquí debe aparecer ahora un mensaje indicando que DSDPlayer convertirá el audio DSD a PCM antes de enviarlo a pCP ( DSDPlayer will transcode DSD to PCM for this player ).
Página 52 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Además, podremos ajustar la calidad de la conversión , el tipo de filtrado (fase lineal, mínima o intermedia) e incluso algunos de sus parámetros avanzados. Podemos experimentar con ellos a nuestro gusto, aunque recomiendo mantener Soxr Quality en Very High Quality .
3.2.8. Cuidado con el control de volumen. En esta sección abordaremos dos aspectos relacionados con el ajuste de volumen y la ganancia por defecto que, de no configurarse correctamente, pueden arruinar nuestra experiencia de uso de piCorePlayer. Ajuste del volumen. De modo predeterminado, los reproductores Squeezebox (y piCorePlayer no es una excepción) disponen de un control de volumen digital. Esto quiere decir que el ajuste de volumen se consigue modificando los valores numéricos de cada una de las muestras que integran el flujo de audio. Esto resulta muy práctico cuando utilizamos una app de control, puesto que basta con deslizar el dedo en la pantalla para conseguir el volumen deseado. Lamentablemente, este ajuste de volumen digital (digamos que en software ) perjudica la calidad de reproducción, por cuanto destruye la transparencia del sistema, es decir, la capacidad del mismo para transportar la señal en digital desde la fuente al DAC preservando totalmente su integridad (lo que comúnmente se denomina funcionamiento bitperfect ). Cierto es que algunos reproductores como JRiver Media Center o Audirvana utilizan avanzados algoritmos de ajuste de volumen, que operan con una gran precisión, para minimizar o incluso eliminar este problema. Sin embargo, como norma general lo aconsejable es realizar el control de volumen en el ámbito analógico , típicamente al final de la cadena del sistema en el previo o amplificador (aunque hay DACS e incluso fuentes digitales que también disponen de esta capacidad). Página 53 de 68
Montaje de un sistema de streaming basado en piCorePlayer
NOTA Si hemos configurado LMS / pCP para reproducir audio DSD en DoP, es imprescindible que el sistema opere de un modo totalmente transparente, sin posibilidad de ajustar digitalmente el volumen. En este caso pues no se tratará de una recomendación sino de una necesidad.
Por todo ello vamos a desactivar el ajuste de volumen digital de nuestro tinglado LMS. Lo conseguiremos por medio del panel de configuración del LMS: Configuración ⇨ Reproductor ⇨ Configuración básica ⇨ Audio
Ajustaremos el parámetro Control de volumen a El nivel de la salida se fija al 100% . Ganancia ALSA, distorsión digital y otras rarezas. Llegados a este punto tengo que decirte que tenemos buenas y malas noticias. La mala es que lo que sigue es ligeramente esotérico y poco intuitivo. La buena es que prácticamente hemos terminado.Vamos a ello.
Página 54 de 68
Montaje de un sistema de streaming basado en piCorePlayer
En mis primeras pruebas con piCorePlayer reproduciendo a través de HDMI me encontré con que en determinados temas parecía percibirse cierta distorsión en determinados pasajes y notas. Mi disco de pruebas para localizar estos “artefactos” no fue otro que el maravilloso Riverside de Agnes Obel, cuyo piano parece ser capaz de poner a prueba el correcto funcionamiento de cualquier equipo.
Apenas sonaban los primeros compases de Falling, Catching , tema con que se abre el disco, y esa distorsión se hacía patente de un modo ocasional y sutil pero perfectamente perceptible, con independencia de la posición del potenciómetro de volumen del amplificador. El problema desaparecía (lo habéis adivinado) al reducir el volumen digital, exactamente del mismo modo que ocurre con otro conocido reproductor para Raspberry Pi, Volumio, del que hablo aquí: http://www.pablofelip.tk/2016/02/volumioenraspberrypisolucionando.html Efectivamente, la distorsión tiene su origen en una ganancia de exactamente +4dB que por alguna extraña razón el sistema de sonido ALSA que reside en el corazón de piCorePlayer aplica en algunos casos. Esta amplificación produce una saturación en el ámbito digital que es percibida como una distorsión muy desagradable. Sabiendo por tanto dónde está el problema, podríamos plantearnos solucionarlo simplemente reactivando el control de volumen digital en LMS y reduciéndolo poco a poco hasta conseguir eliminarlo. No obstante esta no es una solución válida ni elegante, a mi modo de ver. No es válida puesto que perderíamos la capacidad de reproducir audio en DSD / DoP (ver nota anterior) y tampoco es elegante porque podríamos alterar el volumen de modo accidental desde la app de control en cualquier momento.
Página 55 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Lamentablemente no tendremos más remedio que bucear en las profundidades de la consola del shell (consola de comandos) Linux de pCP para verificar si ALSA está aplicando esta ganancia adicional y, de ser así, desactivarla. Si empleamos un PC basado en Windows, para conectarnos a la consola de comandos de pCP necesitaremos una aplicación como PuTTY , que podemos descargar aquí: http://www.putty.org
La descargaremos de un modo análogo a Win32 Disk Imager o Advanced IP Scanner, que ya hemos utilizado anteriormente. PuTTY no requiere instalación, simplemente ejecutaremos el archivo descargado.
Página 56 de 68
Montaje de un sistema de streaming basado en piCorePlayer
En el recuadro Host Name escribiremos la IP de la Raspberry Pi (ver apartado 3.2.1) y haremos clic en el botón Open . La primera vez será necesario verificar la conexión (clic en el botón Sí ).
A continuación se nos pedirá que introduzcamos usuario ( login as ) y clave ( password ), que son: usuario: tc / clave: piCore
Página 57 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Tras hacerlo quedaremos conectados a la consola y podremos introducir ya comandos. En el caso de realizar este proceso desde un Mac o un PC con Linux bastará con abrir un terminal y escribir el comando siguiente, seguido de la clave cuando se nos solicite: ssh l tc 192.168.1.100
De un modo u otro, ahora introduciremos el comando alsamixer
Y veremos algo como esto:
El recuadro en rojo destaca el nombre del dispositivo de sonido cuya ganancia estamos revisando. Se trata del propio dispositivo de sonido interno incluído en el SoC Broadcom que propulsa la Raspberry Pi. Como se aprecia claramente, la ganancia de +4dB está presente ( dB gain: 4.00 ), como además sugiere el color rojo del extremo superior de la barra. Para solucionarlo basta con pulsar en el teclado la flecha del cursor inferior tantas veces como sea necesario hasta que dB gain indique 0.00 . Eso supone un valor de ajuste del volumen general de 86 en lugar del 100 inicial. Página 58 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Ahora pasaremos a revisar el valor de la ganancia de la Edirol UA25 que está conectada a pCP por USB. Para ello hay que pulsar la tecla F6 y seleccionar el dispositivo utilizando los cursores y la tecla INTRO.
Página 59 de 68
Montaje de un sistema de streaming basado en piCorePlayer
La Edirol UA25 no dispone de ajuste de volumen, así que no tenemos que hacer nada en este caso. Para salir, pulsaremos la tecla ESC . Ahora deberemos guardar los ajustes y cerrar escribiendo secuencialmente los comandos: sudo alsactl store && exit
Para finalizar, deberemos configurar pCP para que restaure el nivel de sonido del mezclador ALSA al establecido cada vez que arranquemos el reproductor. Para ello nos dirigiremos la pestaña Tweaks del panel de configuración de pCP.
Página 60 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Buscaremos la sección Audio tweaks y en ella el ajuste ALSA output level . Deberemos configurarlo a Custom y hacer clic en el botón Save situado justo debajo.
3.2.9. Activar AirPlay (opcional). Para concluir ¡por fin!, podemos hacer que pCP aparezca como un altavoz AirPlay en nuestra red. De este modo será posible enviarle audio desde un dispositivo Apple (ordenador, móvil o tableta) como si de un Airport Express o un AppleTV se tratase. El ajuste correspondiente también se encuentra en la sección Audio tweaks de la pestaña Tweaks y se denomina Shairportsync , que deberemos configurar a Yes y a continuación hacer clic en el botón Save .
Página 61 de 68
Montaje de un sistema de streaming basado en piCorePlayer
4. Una app para controlarlos a todos. Ha llegado la hora de dedicar unas líneas al modo en que vamos a controlar la reproducción. De entrada, podemos emplear la propia interfaz web del LMS para hacer prácticamente cualquier cosa. Solo es necesario un navegador, que podremos ejecutar en un PC, tableta o teléfono móvil, aunque en este último caso la interfaz no se ajusta bien al tamaño y resulta incómoda de utilizar.
Si buscamos mayor comodidad tendremos que recurrir a una app de control de las muchas que hay. Me Página 62 de 68
Montaje de un sistema de streaming basado en piCorePlayer
gustaría destacar las siguientes: iPeng
iOS
8,99€
SqueezePad
iOS
5,99€
Orange Squeeze
Android
5,57€
Squeezer
Android
Gratuita
Logitech Squeezebox Controller
Android / iOS
Gratuita
Todas ellas pueden ser encontradas en las respectivas tiendas de aplicaciones de Apple y Google. Sin más que realizar una búsqueda por su nombre. Mi recomendación es: ○ iPeng , en el caso de usar iPad o iPhone. ○ OrangeSqueeze , en el caso de emplear un dispositivo Android.
Ambas son excelentes. Si no se desea pagar por una aplicación, tanto Squeezer (Android) como la propia app oficial, Logitech Squeezebox Controller (Android / iOS), son perfectamente funcionales. Todas las aplicaciones de control permiten ojear la biblioteca musical por álbum, artista, género o año, gestionar listas de reproducción, mostrar los álbumes recientemente añadidos a la biblioteca, acceder a radio por Internet o utilizar complementos del LMS como Spotify o Tidal. Además, son totalmente interoperables, es decir, un mismo reproductor puede ser controlado alternativamente desde distintas apps y dispositivos sin problema alguno. Algunas, además, son capaces de establecer determinados ajustes de los reproductores presentes en el sistema de streaming e incluso de controlar ciertos aspectos de LMS, como por ejemplo iniciar el escaneado de la carpeta donde se almacena la música o incluso poner en marcha el PC en el que se ejecuta el módulo servidor de nuestro tinglado. Además, si disponemos de varios reproductores podremos enlazarlos para que reproduzcan al unísono de modo sincronizado, con independencia de que estos sean reales (Squeezebox Classic, Touch, Boom, etc.) o basados en Squeezelite, como es el caso de piCorePlayer, Vortexbox o cualquier ordenador, corra este Windows, OS X o Linux, en el que se haya instalado Squeezelite. Página 63 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Veamos algunas capturas de pantalla de iPeng.
Página 64 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Página 65 de 68
Montaje de un sistema de streaming basado en piCorePlayer
Por otro lado, apps para Android como Orange Squeeze pueden ser empaquetadas de modo que funcionen dentro de un navegador como Google Chrome en un PC, facilitando así el control del sistema de streaming.
Pero esa es otra historia y será contada en otra ocasión...
Página 66 de 68
Montaje de un sistema de streaming basado en piCorePlayer
5. Casi 70 páginas y varias horas después. Llegados a este punto, convendría hacer balance de hasta dónde hemos llegado. Con todos ustedes, un tinglado de streaming para gente corriente:
○ Altavoces : rescatados de un contenedor. ○ Amplificación : TAmp Indeed 2x25W (unos 50€). ○ Raspberry Pi modelo B de 1ª generación con adaptador de alimentación de móvil Sony de 1,5 amperios y tarjeta SD de 512MB (poco más de 50€). ○ Módulo de sonido USB Edirol UA25 procedente de mi época REWobsesiva (unos 100€ de 2ª mano).
Lo más caro, sin duda, es el iPad 2 mini utilizado con iPeng como controlador, pero dado que su uso no es exclusivo y en cualquier caso cualquier teléfono móvil + app gratuita puede hacer el papel, ni lo contabilizo. A cambio del tiempo empleado nos encontramos con un sistema de streaming capaz de garantizar la transparencia de la señal digital en su camino desde el disco duro en que almacenamos los archivos hasta el DAC que los devuelve al mundo real, extremadamente flexible y ampliable y funcionalmente idéntico , si no mejor, que cualquier streamer dedicado de miles de euros. Ya es cosa de cada uno determinar si el esfuerzo merece la pena o no.
Página 67 de 68