Web radio

Da Lecco.
Versione del 18 mar 2014 alle 21:08 di Stemby (discussione | contributi) (TODO: interfaccia seriale)

Con questo progetto si è realizzata la web radio della Comunità pastorale di Missaglia (LC).

Il sistema prevede il collegamento audio via Internet tra le chiese parrocchiali di Maresso e Missaglia, in modo tale da poter ascoltare presso la chiesa locale eventi che si svolgano nell'altra chiesa; quanto viene diffuso attraverso l'impianto audio della chiesa viene inoltre trasmesso via radio ai parrocchiani dotati di un particolare apparecchio radio. Quando non ci sono eventi in corso, viene raccolto e trasmesso lo stream di Radio Mater.

In un secondo tempo si renderà disponibile una playlist di brani da trasmettersi in automatico nel caso saltasse il collegamento ad Internet.

In futuro si valuterà se rendere fruibile al pubblico lo stream della web radio.

Il sistema è modulare, per far sì che si possano aggiungere in futuro nuove stazioni ricetrasmittenti e mettere così in comunicazione un maggior numero di chiese tra loro.

Prerequisiti

  • connessione ad Internet (ADSL o superiore)
  • impianti audio con almeno un ingresso e un'uscita liberi (possibilmente bilanciati)

Hardware

Per ogni stazione ricetrasmittente:

Fornitori:

Software

Sistema operativo

Seguire le istruzioni presenti qui per ottenere una versione recente di Raspbian.

Una volta estratto l'installer sulla scheda SD, montare la scheda e creare al suo interno un file da salvare come installer-config.txt, il cui contenuto sarà:

preset=server
packages=apt-utils,vim,aptitude,bash-completion,ddclient,alsa-base,ices2,vlc-nox
mirror=http://mirrordirector.raspbian.org/raspbian/
release=jessie
hostname=pi # TO BE MODIFIED
rootpw=raspbian # TO BE MODIFIED
cdebootstrap_cmdline=
bootsize=+50M # /boot partition size as given to fdisk
timeserver=time.nist.gov
ip_addr=dhcp
ip_netmask=0.0.0.0
ip_broadcast=0.0.0.0
ip_gateway=0.0.0.0
ip_nameservers=
online_config= # URL to extra config that will be executed after installer-config.txt
usbroot= # set to 1 to install to first USB disk
cmdline="dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 elevator=deadline"

Se si dispone di un server approx, dopo averlo configurato con il nuovo repository, modificare la terza riga di installer-config.txt come segue:

mirror=http://IP_SERVER:9999/raspbian/

(ovviamente sostituendo IP_SERVER con l'indirizzo IP del server).

Smontare la scheda SD e inserirla nel Raspberry Pi; collegare il cavo di rete al Raspberry, possibilmente un monitor HDMI e alimentarlo. L'installazione dovrebbe procedere automaticamente. Seguire poi le istruzioni precedentemente indicate, al primo boot; in particolare creare ed attivare 512 MB di swap.

Creare un nuovo utente (chiamato per comodità user) e iscriverlo al gruppo audio:

# adduser user
# adduser user audio

(per rendere attiva l'iscrizione occorre disconnettersi e riconnettersi).

Per impostare la scheda audio esterna come dispositivo di default, creare nella home dell'utente user un file da salvarsi come .asoundrc, col seguente contenuto:

pcm.!default {
		type hw
		card 1
}

ctl.!default {
		type hw
		card 1
}

DNS dinamico

La condizione ideale sarebbe quella di disporre di un indirizzo IP statico per ogni ricetrasmittente. Purtroppo è molto più probabile che il contratto col provider offra un indirizzo IP dinamico.

Per rendere sempre raggiungibili i diversi host occorre quindi sfruttare un servizio di DNS dinamico. Per questo progetto si è deciso di sfruttare DNSdynamic. Occorre creare un account sul sito e poi registrare un dominio di terzo livello per ogni stazione ricetrasmittente.

Impostare il file di configurazione (/etc/ddclient.conf) come segue:

# /etc/ddclient.conf

protocol=dyndns2
use=web, web=myip.dnsdynamic.com
server=www.dnsdynamic.org
login=INDIRIZZO_EMAIL
password='LA_MIA_PASSWORD'
IL_MIO_DOMINIO.QUALCOSA.QUALCOS'ALTRO
daemon=60                            # check every 60 seconds
ssl=yes                              # use ssl-support; works with ssl-library

Configurazione di IceS

Copiare il file /usr/share/doc/ices2/examples/ices-alsa.xml <FIXME: dove?> e modificare le righe evidenziate in grassetto:

<?xml version="1.0"?>
<ices>

    <background>0</background>
    <logpath>/var/log/ices</logpath>
    <logfile>ices.log</logfile>
    <logsize>2048</logsize>
    <loglevel>4</loglevel>
    <consolelog>0</consolelog>


    <stream>
        <metadata>
            <name>Example stream name</name>
            <genre>Example genre</genre>
            <description>A short description of your stream</description>
            <url>http://mysite.org</url>
        </metadata>

        <input>
            <module>alsa</module>
            <param name="rate">44100</param>
            <param name="channels">1</param>
            <param name="device">hw:1,0</param>
            <param name="metadata">1</param>
            <param name="metadatafilename">test</param>
        </input>


        <instance>

            <hostname>indirizzo_IP_corretto</hostname>
            <port>8000</port>
            <password>password_corretta</password>
            <mount>/example.ogg</mount>
            <yp>0</yp>   


            <encode>  
                <quality>0</quality>
                <samplerate>44100</samplerate>
                <channels>1</channels>
            </encode>

            <downmix>1</downmix>

             
            '
        </instance>

    </stream>
</ices>

VLC

Radio Mater mette a disposizione lo stream in diversi formati. Il migliore che sia accessibile tramite VLC risulta essere quello per Windows Media Player.

$ cvlc http://www.radiomater.org/it/wr/rdmater.asx

TODO