You are on page 1of 364

©

Fabrizio Mondo
CREARE E GESTIRE UNA WEBRADIO PROFESSIONALE
© 2014 by Dario Flaccovio Editore s.r.l.

www.darioflaccovio.it

e-book ISBN 9788857902869


Prima edizione digitale settembre 2014
Edizione digitale realizzata da: Dario Flaccovio Editore s.r.l.
Questo e-book viene ceduto in licenza al solo acquirente. Tutto il materiale contenuto in questo e-book è coperto da
copyright. Sono vietati: copiatura, riproduzione, trasferimento, noleggio, distribuzione, trasmissione in pubblico e
utilizzo al di fuori di quanto previsto dalla legge applicabile. Qualsiasi utilizzo non espressamente autorizzato
dall’editore costituisce violazione dei diritti dell’editore e dell’autore ed è sanzionabile sia in campo civile che penale ai
sensi della legge 633/1941 e successive modifiche.

Dario Flaccovio Editore srl


Viale Croce Rossa, 28 - Palermo, Tel. +390916700686 - Fax +39091525738
Se vuoi ricevere eventuali aggiornamenti su questo libro

o su titoli correlati, ti consiglio di iscriverti alla mailing list.


È sempre meglio tenerci in contatto!
Premessa
Creare e gestire una web radio professionale è un testo sviluppato per fornire in un unico
volume tutte le indicazioni necessarie a qualsiasi persona, associazione o società che
voglia realizzare una stazione radiofonica per trasmettere la propria voce ed i propri
contenuti. Questo libro svolge contemporaneamente il ruolo di testo formativo e guida da
consultare all’occasione. Il volume racchiude tutto quello che può servire al regista, allo
speaker o anche al semplice appassionato non solo per creare una radio su Internet
partendo da zero, ma anche per curarla, gestirla e migliorarla costantemente.
Ciò che ha spinto l’Autore alla stesura di questo testo unico del regista radiofonico è la
volontà di raccogliere in un singolo volume tutto lo stato dell’arte della radiofonia web
italiana. Con un occhio al presente ed un occhio al futuro, il testo permette di non
confondersi nel cercare le informazioni di cui si necessita durante la fase di nascita o
crescita della propria web radio consigliando degli standard di lavoro e guidando il lettore
in un campo che richiede notevole tempismo e preparazione.
Il volume tratta tre macroargomenti: teoria della web radio, software/hardware e
normative legali. La teoria consente di apprendere come strutturare un progetto di stazione
radiofonica e suggerisce al lettore le corrette scelte che porteranno alla creazione della
radio. Attraverso lo studio dei programmi applicativi e delle attrezzature discusse si potrà
scegliere di quali strumenti fornire la web radio per dotarla di standard professionali.
Tramite il commento alle normative legali si potrà trasmettere la propria musica nel pieno
rispetto delle regole vigenti. È altresì presente un glossario finalizzato a chiarire eventuali
dubbi sui termini tecnici frequentemente usati nella trattazione.
1. Teoria della Web Radio
1.1. Introduzione
Non è possibile datare ufficialmente la nascita delle web radio nel mondo, né è possibile
farlo in un singolo paese quale l’Italia. Web Radio identifica più una tipologia di
comunicazione che una particolare tecnologia: da qui l’impossibilità di identificare una
data certa.
Si può provare a considerare come anno zero il 1995, anno in cui Rob Glaser realizza la
prima release del software RealAudio, seguito a ruota da Microsoft Media Services. Si
arrivò quindi a Shoutcast, Icecast e decine di altri server di streaming. Parallelamente, si
sviluppavano regie radiofoniche più o meno complesse. Non si può ovviamente datare la
voglia nata nella popolazione di trasmettere tramite Internet la propria musica e la propria
voce. L’impossibilità tecnica e burocratica di creare una stazione radiofonica tradizionale a
basso costo ha certamente aiutato questa tecnologia a svilupparsi.
La facilità di porsi come locali e globali contemporaneamente ha dato la spinta finale a
radio e TV online, che conquistano sempre più ascoltatori togliendoli ai media
tradizionali.
La principale critica mossa anni fa alle previsioni di sviluppo del fenomeno web radio
nasceva dal riconoscimento dell’impossibilità di ascolto in movimento.
Le radio tradizionali basavano i propri ascolti anche sugli ascoltatori occasionali che
viaggiavano in auto o che venivano fidelizzati da un singolo programma di una singola
emittente.
Il problema ascolto in movimento è stato rimosso dalla tecnologia che consente la
connessione ad Internet anche muovendosi ad alta velocità. Le web autoradio, che hanno
dato il definitivo colpo di grazia alle radio in modulazione di frequenza, non sono più
novità.
La qualità dei programmi e la loro adeguata pubblicizzazione diventeranno quindi gli
unici criteri su cui basare l’audience di un’emittente, in tutto il mondo.
1.2. Teoria dei grafi
La teoria delle web radio è profondamente legata alla teoria dei grafi e alla teoria delle reti
di calcolatori. Una web radio (o più precisamente un terminale e la sua banda in upload) è
assimilabile alla radice di un grafo aciclico connesso, ovvero di un albero N-ario di altezza
1. Ovvero si ha una situazione simile a quella rappresentata nella figura 1.1.

Figura 1.1. Schema di architettura centralizzata client/server

Il nodo S è il computer che trasmette, detto server, mentre i nodi C sono i computer o gli
apparecchi che ricevono il flusso, chiamati client.
Il server è la “radice” dell’albero, mentre i client sono le “foglie”. L’altezza dell’albero è
1, come precedentemente detto.
Il numero massimo di “foglie” della radice, ovvero di client che possono ascoltare la radio
è dato (teoricamente) dalla seguente formula:

Ad esempio, se si ha una banda in upload di 1 MegaBit per secondo, e si imposta un


bitrate di 64 kbps, si potrà teoricamente essere ascoltati al massimo da 16 client. Uno dei
modi con cui è possibile aumentare il numero massimo di ascoltatori è quello di
aumentare la banda in upload, ma ne esistono degli altri. Ad esempio, diminuire il bitrate:
tuttavia, ciò andrebbe a discapito della qualità d’ascolto.
Il terzo modo è quello di replicare la fonte, ed utilizzare i ripetitori, comunemente detti
relay.
1.3. Web Radio a fonte unica
Una radio è a fonte unica se ogni client o ogni relay di livello inferiore al primo riceve il
flusso da un solo ripetitore:
♦il nodo S è il server, il computer principale al quale arriva il flusso dalla sorgente;

♦i nodi R sono dei client, ma sono anche dei relay, ovvero dei ripetitori di segnale ai quali
si appoggiano altri client;
♦i nodi C sono client che non svolgono il ruolo di ripetitori.

Figura 1.2. Albero di una web radio a fonte unica

Si noti che ogni client è promuovibile a relay, ma vi possono essere relay a cui nessuno si
è connesso.
Questi alberi hanno altezza pari al massimo numero di relay che si devono attraversare
prima di arrivare alla fonte del segnale, più uno. Questa configurazione, se da un lato
diminuisce la domanda di banda imposta al server, distribuendola anche ai relay, d’altra
parte aumenta in funzione logaritmica il ritardo di propagazione. Il computer A trasmette
al computer B che ripete a sua volta al computer C che ripete a sua volta al computer D,
ovvero:
A > B > C > D
In questo caso il ritardo di propagazione vale 4 volte il ritardo di propagazione di una
trasmissione diretta. Il buon senso ci ricorda, in ogni caso, che la situazione lineare di cui
sopra non ha nessuna utilità pratica. Se, invece, si ipotizza che la radice e tutti i suoi relay
abbiano al massimo due ascoltatori, che possono a loro volta fare da relay, allora si crea un
albero binario, ed il ritardo di propagazione stavolta sarebbe sottostimato da
log2x
Con x che rappresenta il numero di ascoltatori contemporaneamente connessi. La base del
logaritmo dipende dal numero di ascoltatori che può servire ciascun relay. Se questo
numero aumenta, aumenterà la base del logaritmo e, di conseguenza, diminuirà il numero
di relay che dovrà attraversare un client per sentire il flusso audio.
Se si riesce a distribuire bene il numero di computer che fungono da relay con il numero di
client che richiedono il flusso, allora il ritardo di propagazione crescerà in funzione del
logaritmo del numero dei client contemporaneamente connessi alla radio.
1.4. Web radio a fonte multipla
Una web radio a fonte multipla, a differenza di una a fonte singola, prevede che i client
possano ricevere il flusso da più fonti contemporaneamente.

Figura 1.3. Albero di una web radio a fonte multipla

A prima vista l’immagine potrà sembrare un grafo ciclico connesso; in realtà non è affatto
ciclico, in quanto è orientato. I client non rimandano nulla ai relay, quindi non è possibile
che un relay invii qualcosa ad un altro relay tramite un client. Questa situazione è la
migliore in tutti i campi, ed è di fatto lo schema del peer to peer.
Se invece ci si limita a scaricare senza condividere si ha solo la qualifica di client, o dead
end. Questo schema multi-connesso è una buona soluzione al problema banda, in quanto si
effettua una partizione del carico nel maggior numero di computer possibili. La soluzione
prevista è però parecchio complessa da implementare in pratica, se non impossibile.
Si supponga di essere un semplice client, che vuole sentire una web radio che ha
implementato lo schema a fonte multipla. La radio permette l’ascolto passando attraverso
4 relay, perché sono tutti occupati ai livelli superiori. Il ritardo è quindi pari a 4.
Ad un certo punto, si libera uno “spazio” su un relay al livello 2, utilizzabile
dall’ascoltatore. Adesso però arriveranno parti dello stesso flusso, sfasate tra loro di una
certa quantità di tempo che è data dalla differenza dei ritardi.
Anche se fosse possibile segmentare il flusso non si potrebbe non essere vincolati dai
diversi ritardi qualora si volesse ottenere fluidità d’ascolto e il minimo ritardo possibile.
Purtroppo, non è nemmeno possibile usufruire di più relay sullo stesso livello, perché i
ritardi di propagazione non dipendono soltanto dal livello, ma anche da molti altri fattori.
2. Codifica Audio
Uno dei processi fondamentali che si instaurano durante la trasmissione radiofonica sul
web è l’encoding. La codifica è quel passaggio che consente di trasformare un segnale di
un tipo in un segnale di un altro tipo che presenta determinate caratteristiche. Il caso più
frequente è la conversione da un segnale analogico, quale può essere il suono di un disco
in vinile, ad un segnale digitale, quale può essere un MP3.
Negli studi radiofonici assistiamo alla convivenza temporale di segnali aventi
caratteristiche differenti, quali la musica (che solitamente è già in formato digitale, ma non
è detto a priori) e la stessa voce dello speaker. L’encoder non fa altro che convertire e
campionare questi segnali eterogenei in un segnale ben definito. Il segnale risultante può
essere di diverse tipologie, a secondo che la campionatura venga effettuata da un tipo di
algoritmo piuttosto che da un altro o se alla campionatura venga o meno associata una
compressione.
Esistono quindi una infinità di codifiche audio; non tutte sono di largo utilizzo per la
trasmissione su Internet di flussi audio, ma sicuramente è comodo conoscerle.
I codec audio si dividono in tre macrocategorie: non compressi, compressi con perdite
(lossy) e compressi senza perdite (lossless).
Tra i codec non compressi, i più famosi sono WAV e AIFF; tra i compressi senza perdite
troviamo FLAC e ALE, mentre tra i compressi con perdite si ha MP3, AAC e Vorbis.
Qualsiasi codifica audio, a prescindere dalla categoria, ha delle caratteristiche che
consentono di calcolare la grandezza in byte del file risultante. Tale grandezza è calcolata
in base alla seguente regola
C × Ca × Ris × T
dove C sta per numero canali (grandezza adimensionale), Ca sta per frequenza di
campionamento (si misura in Hertz), Ris sta per Risoluzione del Campione (si misura in
byte) e T sta per durata (si misura in secondi).
La grandezza di un file WAV, in stereo, a 44100 Hz di frequenza di campionamento a 16
bit, della durata di un minuto è quindi pari a
2 × 44100 s – 1 × 16 bit × 60 sec = 84672000 bit
che corrispondono a 10584000 byte, ovvero poco più di 10 MB.
Un minuto di musica codificata in formato WAV richiede quindi dieci megabyte: un valore
eccessivamente alto per qualsiasi trasmissione, perché corrisponderebbe ad una
trasmissione alla velocità di 1378 kbps, più di dieci volte lo standard del bitrate di una
comune web radio.
Ecco perché sono intervenute attività di compressione a corredo della codifica. La
maggior parte delle codifiche lossy tende ad eliminare le frequenze dei suoni impercettibili
all’orecchio umano, concentrandosi quindi sulla banda di suoni che va dai 16 ai 20000
Hertz. Oltre a ciò, MP3 ed altre codifiche applicano algoritmi che filtrano il segnale
originale, eliminando suoni a loro volta coperti da suoni più forti e che il nostro orecchio
non potrebbe correttamente percepire. L’utilizzo di strumenti matematici quali la
trasformata di Fourier o la codifica di Huffman consentono di diminuire ulteriormente la
grandezza del file finale, che risulta abbattuto anche del 90% rispetto all’originale file
WAV.
La codifica lossy è però irreversibile, al contrario di quanto non lo sia la lossless. Un file
MP3 non potrà mai essere ricondotto al file WAV originale e meno ancora al reale segnale
analogico.
2.1. Come funziona MP3
MP3 è l’acronimo di MPEG 1 layer 3. MPEG è a sua volta l’acronimo di Moving Picture
Experts Group, il nome ufficiale di una commissione formata dall’International Standards
Organization (ISO) e dalla commissione Internazionale Elettrotecnica (IEC) per
sviluppare standard internazionali per un encoding efficiente di video ed audio ad alta
qualità.
La differenza tra MP3 e la classica codifica PCM vista precedentemente consiste nella
tipologia di compressione e di rimozione dei suoni che non vengono percepiti
correttamente dall’orecchio umano.
La psicoacustica è la branca dell’acustica che studia la percezione del suono da parte
dell’uomo. Si è scoperto, ad esempio, che raddoppiare l’ampiezza di un suono non è
automaticamente correlato alla sensazione di un suono forte il doppio. La natura umana
prevede che alcune fasce di frequenze tra quelle udibili siano maggiormente considerate
rispetto ad altre che sono ai margini dell’intervallo, principalmente per una questione di
probabilità d’ascolto e di interesse.
Sfruttare la limitatezza del nostro apparato uditivo ha permesso la creazione non soltanto
di MP3, ma in generale di tutti gli algoritmi di codifica lossy.
Il perceptual coding di MP3 si occupa esattamente di codificare digitalmente non per
come esso è, come fa PCM, ma per come esso suona, permettendo di diminuire anche del
90% il peso finale del file codificato. Ci si deve chiedere quindi cosa MP3 tolga dal file
PCM originario. Per rispondere a questa domanda occorre introdurre i concetti di
irrilevanza e di ridondanza.
Un dato è ridondante se è possibile rimuoverlo dal file audio senza grosse perdite di
qualità. L’esempio più classico è il limite di Nyquist.
Se stiamo campionando il segnale a 44100 hertz, il nostro limite di Nyquist, secondo il
teorema del campionamento di Nyquist-Shannon, è di 22050 hertz, per cui tutto quel
suono che è oltre questa frequenza non verrà contemplato e, anche se lo fosse, non sarebbe
correttamente interpretato dall’uomo: per cui viene semplicemente rimosso.
Un dato è invece irrilevante se viene mascherato dall’orecchio umano con un altro suono.
È il caso di suoni aventi stessa forma d’onda di un altro suono, ma con ampiezza
raddoppiata. Essi saranno mascherati dal suono ad ampiezza più alta. Il mascheramento
attribuisce ai suoni irrilevanti un numero di bit inferiore rispetto ai suoni dominanti,
creando una distorsione che però risulta confinata e non percettibile all’orecchio umano.
Il primo passaggio del processo di codifica comporta prendere diverse piccole sezioni del
file PCM e processarle con quello che viene chiamato “filtro analitico”. Lo standard
MPEG 1 non specifica esattamente come questo filtro debba essere costruito, ma solo cosa
dovrebbe fare. MP3 tipicamente attua una serie di algoritmi matematici quali la
trasformata veloce di Fourier o la trasformata discreta del coseno per fare questa
suddivisione. Ogni sezione viene quindi divisa in 32 sottobande, che rappresentano
differenti parti dello spettro di frequenza del segnale PCM originario.
Una qualsiasi sezione di un file PCM contiene una miscela di differenti suoni più o meno
predominanti. Dividendo in sottobande, MP3 è in grado di ordinare differenti suoni in
base al contenuto in frequenza e dare un ordine di priorità in base al modello
psicoacustico.
Il passaggio successivo del processo è la ricostruzione delle sottobande all’interno di
frame. L’encoder esamina il contenuto di questi frame e cerca di determinare dove
avvenga un mascheramento (sia nel dominio della frequenza sia in quello del tempo) e
dove possano essere distorti senza particolari problemi per il suono finale. L’encoder
calcola il valore di “Mask to noise” di ciascun frame e usa questa informazione nel
passaggio finale del processo, l’allocazione dei bit.
Durante l’allocazione dei bit l’encoder decide, in base alla priorità definita
precedentemente, come spartire la torta. La torta è composta da un numero di bit pari al
bitrate che si è imposto al file. Un bitrate di 128kbps fornirà una torta di 128000 bit per
ogni secondo del brano.
L’ultimo processo è la codifica di Huffmann, che consente di mappare le informazioni in
“simboli”. I simboli più presenti all’interno del file saranno codificati con un numero di bit
più piccolo, che va ingrandendosi in base alla minore presenza del simbolo nel brano.
Quando la codifica è terminata vengono salvati tutti i frame, con alcuni byte dovuti agli
header. Una volta salvati i frame viene creato il file MP3. Il file risultante può essere letto
da un player, che deve limitarsi a ricostruire un segnale analogico partendo dai bit allocati
ai vari frame; è un lavoro molto meno pesante rispetto a quello fatto dall’encoder, il che
giustifica anche l’esistenza di tantissimi player MP3 diversi, ma molti meno encoder.
2.1.1. Anatomia di un MP3
Un file MP3 è così strutturato:
♦frame 1

-header del frame 1


-corpo del frame 1

♦frame 2

-header del frame 2


-corpo del frame 2

♦frame N

-header del frame N


-corpo del frame N

♦metadati (tag ID3).

HEADER DI UN FRAME
Ogni MP3 è segmentato in milioni di frame, ciascuno contenente dati audio per una
frazione di secondo. All’inizio di ogni frame c’è l’header, che contiene 32 bit di metadati
relativi al frame stesso.
Tabella 2.1. Contenuto dell’header di un frame

Id Scopo N. di bit

A Blocco di sincronizzazione 11

B Versione di MPEG 2

C Layer di MPEG 2

D Bit di controllo 1

E Indice del bitrate (esiste una tabella adatta alla versione di MPEG utilizzata) 4

F Frequenza di campionamento (sempre tramite tabella) 2

G Bit di padding per informazioni mancanti 1

H Bit privato per eventuali eventi correlati 1

I Canali settati (joint, stereo tradizionale…) 2

J Modalità (usato solo con joint stereo) 2

K Copyright 1

L Originale/Copia 1

M Enfasi (opzione obsoleta) 2

BLOCCO DI SINCRONIZZAZIONE
11 di questi 32 bit sono chiamati “blocco di sincronizzazione”. Questo blocco consente il
cosiddetto seeking, ovvero consente ai player di cercare e fermarsi in un determinato
frame, identificandolo come tale. Un player non può però, sulla base di soli 11 bits,
determinare se un file è un MP3 valido, per cui occorrerà valutarne altri nel file o vederne
una sequenza.
VERSIONE E PROTEZIONE
Dopo il blocco di sincronizzazione ci sono i bit dedicati alla versione e alla protezione. Se
il bit di protezione non è settato, una checksum di 16 bit verrà messa prima dell’inizio del
blocco di dati audio del frame.
BITRATE E FREQUENZA
Il campo bitrate definisce il bitrate del frame, che può non essere costante per tutti i frame
del brano (come nel caso della codifica VBR). Segue subito il blocco frequenza di
campionamento che dipende dalla versione di MPEG in uso.
PADDING
Il bit di padding serve ad allineare i frame che abbiano discrepanze tra di loro. Se un frame
è di X byte ed un altro di X-1 il bit di padding serve a compensare la loro diversità.
CANALI SETTATI E MODALITÀ
Il campo modalità indica se il frame è mono o stereo e permette di settare le opzioni della
modalità stereo, joint stereo o mono. I bit successivi servono a fornire maggiori
informazioni nel caso in cui si sia scelta la modalità joint stereo.
COPYRIGHT E PRIVACY
Il bit di copyright indica che è illegale copiare l’MP3 al quale il frame appartiene mentre il
bit di privacy può essere usato da specifiche applicazioni per causare delle azioni.
ENFASI
Il campo enfasi è usato come flag in caso che il corrispondente bit sia stato settato nel file
originario. È un bit ormai in disuso.
TAG ID3
I tag ID3 (identify an MP3) possono essere inseriti all’inizio oppure alla fine del file MP3
che devono identificare. Contengono al loro interno informazioni sull’artista, sul titolo, sul
copyright e i termini di utilizzo, un’immagine che può essere visualizzata sul player e
commenti.
Attualmente ci sono due varianti di ID3: la versione 1 e la versione 2. La differenza tra le
due versioni risiede soltanto nella quantità di informazioni memorizzabili. I tag ID3
versione 2 compaiono molto più spesso all’inizio che non al la fine del file. Il motivo è
presto detto: quando un MP3 viene trasmesso, il player deve sapere in anticipo il
contenuto del file che sta eseguendo per fornire le informazioni all’ascoltatore.
JOINT STEREO
In modalità joint stereo i due canali, il destro ed il sinistro, non sono indipendenti come ci
si potrebbe immaginare: in realtà sono realizzati in modo che uno sia la somma dei due
canali, mentre l’altro ne sia la differenza. Un decodificatore che riceve due canali in joint
stereo può comunque ricostruire i due canali senza perdite grazie a questa relazione
matematica:
detto A il canale somma (X + Y) e B il canale differenza (X Y)
il canale X è pari alla semisomma di A e B
il canale Y è pari alla semidifferenza tra A e B.
Questa modalità è l’unica che consente un ascolto accettabile in mono di un canale
originariamente stereo. La modalità tradizionale stereo, se ascoltata in mono, non farebbe
altro che far ascoltare metà del patrimonio del brano.
Il joint stereo è consigliabile però soltanto a bassi bitrate; a bitrate alti, data la forte
possibilità di errore, è sempre consigliabile la codifica stereo tradizionale che non è
comunque obbligata a dare il 50% dei bit ad entrambi i canali ma può oscillare in base alle
varie situazioni.
FILTRO PASSA-BASSO

Figura 2.1. Schema di un filtro passa-basso

Il filtro passa-basso è uno degli strumenti utilizzati per diminuire il bitrate del file MP3.
Come precedentemente detto, le frequenze al di sopra dei 18 mila hertz non sono
perfettamente udibili da parte del nostro apparato uditivo e quindi possono essere
eliminate.
Il filtro passa-basso esegue esattamente questa operazione:
♦a 128 kbps si usa un filtro passa-basso a 17500 hz;

♦a 160 kbps si usa un filtro passa-basso a 18500 hz;

♦a 192 e 224kbps si usa un filtro passa-basso a 19500 e 20000 hz;

♦ai bitrate più alti e con il VBR alta qualità si utilizza un filtro passa-basso a 20 khz.

I FRAME MP3
Il frame è l’equivalente del fotogramma video e contiene una parte di suono.
Normalmente, il frame dura qualche centesimo di secondo, portando il numero di frame al
secondo a circa 40, indipendentemente dal bitrate. L’encoder può decidere di utilizzare
frame a durata più bassa e, se è necessario, codificare meglio le informazioni contenute
nel brano originario.
2.2. Come funziona WMA
WMA è il più comune codec audio della Microsoft. La sigla WMA, teoricamente, non si
riferirebbe soltanto a questo codec ma commercialmente si fa un riferimento diretto ad
esso. La prima versione di questo codec fu rilasciata nel 1999 come WMA 1.
WMA è un codec a perdita di informazione basato sulla psicoacustica. Similarmente a
quanto effettuato da altri codec come MP3, si cerca di eliminare le informazioni non
udibili correttamente dall’uomo.
Fondamentalmente, la codifica WMA si basa sulla trasformata discreta del coseno
modificata, in modo molto simile a quanto fatto dai codec AAC o Vorbis. Il flusso di
WMA è composto da superframe, ciascuno contenente uno o più frame contenenti a loro
volta 2048 campioni.
Ciascun frame contiene un numero dei blocchi lunghi 128, 256, 512, 1024, o 2048
campioni dopo la trasformazione nel dominio della frequenza tramite la trasformata. Nel
dominio della frequenza, i campioni si mascherano e si riquantizzano. Successivamente, i
campioni sono scomposti in due parti chiamate coefficiente ed esponente e codificati
indipendentemente tramite la codifica di Huffman. Le informazioni stereo sono
normalmente codificate in middle/side, che è poi la modalità joint.
Ai bassi bitrate, le coppie di linee spettrali ed una forma di codifica del rumore possono
essere utilizzate per migliorare la qualità di codifica. Come per AAC e Vorbis, WMA
sfrutta le mancanze dello standard MP3. I tre formati hanno finito per essere disegnati in
modo molto simile: sono ad esempio tre codec di pura trasformazione. L’implementazione
della trasformata discreta del coseno modificata, usata nel codec WMA, è essenzialmente
un superinsieme delle specifiche di Ogg e AAC, al punto che le routine di WMA possono
essere usate per decodificare AAC e Vorbis in modo praticamente perfetto. Tuttavia, la
quantizzazione e la codifica stereo dei tre codec sono molto diverse tra loro.
Un vero tratto distintivo del formato WMA è il suo originale uso di 5 differenti grandezze
dei blocchi, a differenza di MP3, AAC e Vorbis che si limitano a due sole grandezze.
WMA Pro estende le cinque grandezze portandole a 6 per le codifiche con una frequenza
di campionamento compresa tra 88200 e 96000 hertz.
Anche WMA ha il suo formato di tagging per inserire all’interno del file informazioni
aggiuntive su artista, titolo, album, ecc.
2.3. Come funziona Vorbis
Vorbis è un formato di codifica audio open source sviluppato principalmente da
Christopher Montgomery, fondatore della Xiph.Org Foundation, che lo porta dalla prima
alpha release del settembre 1998 al rilascio ufficiale della versione 1.0 avvenuto nel luglio
2002. Vorbis permette di campionare segnali da 8000 a 192000 volte al secondo e con una
vasta gamma di modalità (monaurale, polifonia, stereo, quadrifonia, 5.1 e fino a 255 canali
discreti).
Dato un segnale stereo campionato a 44100 hertz, l’encoder Vorbis produce un output che
può andare da 45 a 500 kbit al secondo, in base alla qualità scelta. Vorbis concretizza un
ragionamento diverso rispetto a molti altri codec fratelli. Essendo un algoritmo VBR, la
Xiph.Org, piuttosto che considerare la qualità del segnale sulla base del numero di bit per
secondo, raccomanda di considerare la qualità tramite la nomenclatura q. Il primo encoder
aveva una gamma di qualità che andavano da q0 a q10, per numeri interi.
Successivamente, è stato inserito un valore q – 1 corrispondente a circa 45 kbit per
secondo.
Il codec Vorbis non è quindi in grado di garantire che un segnale sia, neanche mediamente,
ad un numero preciso di bit per secondo, anche perché i pacchetti in cui è scomposto il
flusso in ingresso non hanno né grandezza massima, né minima, né prefissata.
2.3.1. Dentro l’algoritmo
Vorbis è un codec monolitico e adattativo basato sulla trasformata discreta del coseno
modificata. La trasformata viene utilizzata per mutare il suono dal dominio del tempo al
dominio della frequenza. I dati nel dominio della frequenza sono scomposti in rumore di
fondo e componenti residui, quindi quantizzati e codificati utilizzando un algoritmo
apposito. La decompressione effettua gli stessi passaggi al contrario. L’approccio
utilizzato dall’algoritmo non permette una buona qualità a bitrate bassi: si sente come un
riverbero o un suono ovattato.
2.3.2. Il bitrate peeling
Il formato Vorbis supporta il bitrate peeling per ridurre il bitrate del file codificato. Il
bitrate peeling è la capacità di un codec di utilizzare lo stesso file a bitrate più bassi senza
decodificarlo e ricodificarlo nuovamente. Nonostante sia una possibilità del codec, la
qualità è nettamente più bassa rispetto ad una ricodifica. Questa differenza di qualità nasce
dal fatto che il codec non attribuisce un’importanza relativa ai dati, e quindi il peeling ha il
non facile compito di capire cosa è importante e cosa no, senza potere ricodificare.
2.3.3. I container di Vorbis
Uno degli errori più frequenti parlando di Vorbis è collegarlo immediatamente ad Ogg.
Ogg è un contenitore che può ospitare al suo interno diversi codec, come ad esempio nel
caso di Ogg Theora. Similarmente, Vorbis può essere incapsulato in altri formati di
contenitore (uno su tutti: Matroska) ma può anche essere il payload di un formato RTP
(real time protocol).
2.3.4. I metadata
I metadata di Vorbis, chiamati “commenti”, sono simili a i tag ID3 di MP3. I metadata
sono memorizzati in un vettore di stringhe ad 8 bit, di lunghezza arbitraria. Il vettore è
contenuto all’interno dell’header del secondo pacchetto che comincia un flusso Vorbis. Le
stringhe sono codificate come UTF-8.
Le stringhe sono implementate nella forma [TAG]=[VALORE], ad esempio “ARTIST=La
mia band”. I tag sono case-insensitive.
Come nell’attuale versione di ID3, gli utenti e gli encoder possono inserire tag di qualsiasi
tipo coerente con il flusso. Ad esempio, un encoder può utilizzare più tag per il genere.
2.4. Come funziona AAC
AAC è l’acronimo di Advanced Audio Coding. Creato dal consorzio MPEG, in origine
veniva chiamato anche MPEG-2 NBC (Not Backward Compatible) in quanto non retro-
compatibile con i formati già esistenti.
Tra le caratteristiche principali, AAC:
♦gestisce frequenze di campionamento da 8 a 96 kHz;

♦gestisce bitrate da 8 a 512 Kbit/s;

♦utilizza una codifica percettiva.

AAC funziona in modo molto simile ad MP3. I blocchi sono stati migliorati, aggiunte
nuove funzioni in modo da rendere migliore la codifica a bassi bitrate.
AAC utilizza una codifica a tasso variabile; un file codificato con questo codec ha una
qualità migliore rispetto a MP3, a parità di bitrate.
Il codec non è dotato di metadati nativi: si utilizzano i tag ID3 di MP3.
2.4.1. Streaming
AAC nasce per lo streaming. Lo streaming audio è spesso veicolato dal protocollo di
trasporto TCP; tuttavia, ritrasmettere dati non è conveniente per applicazioni audio,
motivo per cui, a differenza di MP3 che implementa soltanto il CRC (controllo a
ridondanza ciclica), AAC implementa diversi meccanismi di controllo degli errori:
♦error concealment: CRC rileva gli errori che poi vengono corretti tramite la ricostruzione
delle parti mancanti, con metodi di approssimazione o aggiunta di parti silenti;
♦error resilience: irrobustisce il codec;

♦error detection: diversi CRC consentono di rilevare errori;

♦error protection: suddivide il flusso in varie parti e, applicando bit di controllo, consente
di proteggere ulteriormente da errori sui bit.
2.5. Come funziona FLAC
Il codec FLAC è uno dei più importanti codec open source senza perdita utilizzati a livello
mondiale.
FLAC permette di avere file compressi fino anche al 40, 50% rispetto al PCM originario,
mantenendo tutti i dati del file originario, esattamente come avviene con i formati ZIP o
RAR, che sono palesemente lossless.
2.5.1. Passaggi di funzionamento
SUDDIVISIONE IN BLOCCHI
L’input viene diviso in più parti contigue, anche variabili in grandezza.
COMPATTAMENTO DEL FLUSSO MULTICANALE
In questo step l’encoder FLAC si occupa di calcolare, nel caso di input stereo e surround,
la media dei canali e la loro differenza. Il segnale a qualità migliore viene passato al
processo successivo.
PREDIZIONE
Partendo dal primo blocco avviene la previsione di quale possa essere il successivo con
degli algoritmi matematici che tentano di ricostruire il segnale. In questo caso verranno
codificati solo i parametri, dato che gli algoritmi matematici devono essere presenti sia
sull’encoder che sul decoder.
CODIFICA RESIDUA
La codifica residua permette a FLAC di essere effettivamente un codec lossless. Si
codifica senza perdita tutta la parte di segnale che si differenzia dalla ricostruzione
matematica di predizione e viene incorporata nel file finale. Il guadagno si ha sul fatto che
il segnale residuo, proprio per la scrematura matematica, sarà minore in byte rispetto al
corrispettivo PCM.
3. Shoutcast
Shoutcast è un programma proprietario, prodotto dalla NullSoft (acquisita da AOL nel
1999) che consente lo streaming audio su Internet; si tratta, quindi, di un server di
streaming, tra i più utilizzati al mondo anche per la sua disponibilità verso molti sistemi
operativi (Windows, FreeBSD, Gnu/Linux tra questi). Per studiare meglio il software
esamineremo due versioni dello stesso, in ambiente Windows. La prima versione
esaminata è la 1.9; la seconda, la 2.0.
3.1. Versione 1.9
La versione 1.9 presenta una GUI (Graphic User Interface) che consente una rapida
visione e un rapido accesso alle opzioni settabili.
La barra dei menu ha le seguenti opzioni:
♦kill server: uccide il server, non rendendolo più funzionante;

♦hide monitor: pone in background il server (sparisce dalla barra delle applicazioni, ma
non viene chiuso);
♦edit log: permette di controllare e modificare il file log, con tutto quello che è successo al
server da quando è stato aperto;
♦edit
config: permette di settare le configurazioni del server. È, questa, la parte più
importante da conoscere.

Figura 3.1. Finestra iniziale della GUI del server Shoutcast 1.9.7

Esaminiamo le righe che compaiono al centro della finestra:


[Shoutcast] DNAS/win32 v1.9.7 (Jun 23 2006) starting up…
[main] loaded config from C:\Programmi\Shoutcast\sc_serv.ini

Queste due righe indicano che è stato caricato con successo il file di configurazione.
[main] initializing (usermax:32 portbase:8000)…

Questa riga identifica che la radio può avere massimo 32 ascoltatori e occupa la porta
8000.
[main] No ban file found (sc_serv.ban)
[main] No rip file found (sc_serv.rip)

Queste due righe mostrano che non sono presenti i file ban e rip, due file utili per settaggi
avanzati e non strettamente inerenti la trasmissione.
[main] opening source socket
[main] source thread starting
[main] opening client socket
[source]listening for connection on port 8001
[main] Client Stream thread [0] starting
[main] client main thread starting

Queste righe mostrano che il server si è posto in ricezione del flusso audio da inviare in
streaming: a questo punto è pronto per effettuare la diffusione della radio che vi si
collegherà.
3.1.1. Il file di configurazione
Cliccando su edit config si aprirà un editor di testo che consente di modificare le
impostazioni del file sc_serv.ini, il file che fornisce le direttive al server Shoutcast.
Tutto il testo preceduto da un punto e virgola è un commento; il testo che non lo è
rappresenta quindi una impostazione modificabile.
; MaxUser. The maximum number of simultaneous listeners allowed.
; Compute a reasonable value for your available upstream bandwidth (i.e. if
; you have 256kbps upload DSL, and want to broadcast at 24kbps, you would
; choose 256kbps/24kbps=10 maximum listeners.) Setting this value higher
; only wastes RAM and screws up your broadcast when more people connect
; than you can support.
MaxUser=32

L’impostazione MaxUser permette di modificare il numero massimo di ascoltatori che può


avere la vostra radio. Il numero va impostato in base ad alcuni parametri, tra cui la qualità
audio con cui si trasmette e la banda in upload disponibile. Il numero deve essere intero e
positivo.
; Password. While Shoutcast never asks a listener for a password, a
; password is required to broadcast through the server, and to perform
; administration via the web interface to this server. This server should
; consist of only letters and numbers, and is the same server your broadcaster
; will need to enter in the Shoutcast Source Plug-in for Winamp. THIS VALUE
; CANNOT BE BLANK.
Password=changeme

L’impostazione password permette di settare una password di sicurezza, che deve essere
riproposta all’interno di un encoder che voglia connettersi al server. Non è obbligatorio
cambiarla, anche se deve essere obbligatoriamente settata.
; PortBase. This is the IP port number your server will run on. The
; value, and the value + 1 must be available. If you get a fatal error when
; the DNAS is setting up a socket on startup, make sure nothing else on the
; machine is running on the same port (telnet localhost portnumber — if you
; get connection refused then you’re clear to use that port). Ports < 1024 are not allowed.
Portbase=8000

L’impostazione portbase permette di modificare il numero di porta TCP alla quale il


server Shoutcast risponderà. La porta 8000 è standard; non sono ammesse porte con
numero inferiore a 1024. Con l’opzione portbase terminano le configurazioni
fondamentali. All’interno dello stesso file cominciano le configurazioni opzionali.
; LogFile: file to use for logging. Can be ‘/dev/null’ or ‘none’
; or empty to turn off logging. The default is ./sc_serv.log
; on *nix systems or sc_serv_dir\sc_serv.log on win32.
; Note: on win32 systems if no path is specified the location is
; in the same dir as the executable, on *nix systems it is in the
; current directory.
LogFile=sc_serv.log

L’impostazione LogFile permette di settare il nome del file contenente tutti le risposte del
server ai vari eventi che possono verificarsi (ad esempio l’ingresso di un nuovo
ascoltatore).
; RealTime displays a status line that is updated every second
; with the latest information on the current stream (*nix and win32
; console systems only)
RealTime=1

L’impostazione RealTime è funzionale ad un rapido aggiornamento del server in caso di


alto traffico di ascoltatori o di possibili eventi.
; ScreenLog controls whether logging is printed to the screen or not
; on *nix and win32 console systems. It is useful to disable this when
; running servers in background without their own terminals. Default is 1
ScreenLog=1

L’opzione ScreenLog consente di stampare o non stampare a video il log del server, ma
eventualmente solo su file. Utile per server che operano in background.
; ShowLastSongs specifies how many songs to list in the /played.html
; page. The default is 10. Acceptable entries are 1 to 20.
ShowLastSongs=10

All’interno dell’interfaccia web di Shoutcast è possibile visualizzare l’elenco delle ultime


canzoni trasmesse. L’opzione ShowLastSongs indica quante di esse devono comparire in
un particolare momento.
; TchLog decides whether or not the DNAS logfile should track yp
; directory touches. Adds and removes still appear regardless of
; this setting.
; Default is yes
; TchLog=yes

L’opzione TchLog permette di inserire all’interno dei log anche i contatti ricevuti
periodicamente dalle directory delle yellow pages.
; WebLog decides whether or not hits to http:// on this DNAS will
; be logged. Most people leave this off because the DSP plug-in
; uses http:// calls to update titles and get the listener count,
; which takes up a lot of log space eventually. If you want to
; see people making hits on your admin.cgi or index pages, turn
; this back on. Note that this setting does NOT affect XML stats
; counters for hits to http:// pages.
; Default is no.
; WebLog=no

L’opzione WebLog permette invece di inserire all’interno del file di log anche i contatti
ricevuti dall’interfaccia web, che possono però creare un quantitativo di dati ingente
all’interno del file di log stesso.
; W3CEnable turns on W3C Logging. W3C logs contain httpd-like accounts
; of every track played for every listener, including byte counts those listeners
; took. This data can be parsed with tools like Analog and WebTrends, or given
; to third parties like Arbitron and Measurecast for their reporting systems.
; Default is Yes (enabled).
W3CEnable=Yes
L’opzione W3CEnable consente di tracciare il numero di byte ricevuti da ciascun
ascoltatore, i brani che ha ascoltato ed altri dati che risulteranno poi trattabili per
statistiche.
; W3CLog describes the name of the logfile for W3C logging. Default logfile is
; sc_w3c.log, in the same directory wherever the DNAS gets started from.
W3CLog=sc_w3c.log

L’opzione W3CLog permette di dare un nome al file di log contenente i dati creati tramite
l’opzione W3CEnable.
La terza sezione del file di configurazione riguarda i settaggi di rete, utili per la
connettività del server con il resto del mondo.
; SrcIP, the interface to listen for source connections on (or to make relay
; connections on if relaying). Can and usually will be ANY or 127.0.0.1
; (Making it 127.0.0.1 will keep other machines from being able to
; broadcast using your Shoutcast server)
SrcIP=ANY

L’opzione SrcIP rappresenta la possibilità di un server Shoutcast di scegliere da quale IP


possa essere usato. Inserire ANY consentirà al server di essere utilizzabile da tutti, cosa
che succede impostando anche l’IP di loopback.
; DestIP, IP to listen for clients on (and to contact yp.Shoutcast.com)
; can and usually will be be ANY. If your machine has multiple IP addresses,
; set this to the one you want it to be accessed by.
DestIP=ANY

L’opzione DestIP è utile esclusivamente per le macchine che possiedono più schede di
rete, in quanto permette di scegliere l’IP al quale il server sarà disponibile.
; Yport, port to connect to yp.Shoutcast.com on. For people behind caching
; webproxies, change this to the alternate port (666 is what it might be,
; check www.Shoutcast.com if you have problems). Otherwise, leave this at 80.
; We’re actively working on re-opening port 666, but as of release the only
; working port is port 80.
Yport=80

L’opzione Yport indica al server attraverso quale porta contattare il sito yp.Shoutcast.com,
che altro non è che il sito delle pagine gialle di Shoutcast.
; NameLookups. Specify 1 to perform reverse DNS on connections.
; This option may increase the time it takes to connect to your
; server if your DNS server is slow. Default is 0 (off).
NameLookups=0

Un’opzione curiosa è la NameLookups, la quale consente di tentare un reverse lookup


sulle connessioni in ingresso, cercando di ricavare dati su di essa. Può appesantire il server
ed allungare i tempi di connessione in caso di traffico elevato.
; RelayPort and RelayServer specify that you want to be a relay server.
; Relay servers act as clients to another server, and rebroadcast.
; Set RelayPort to 0, RelayServer to empty, or just leave these commented
; out to disable relay mode.
; RelayPort=8000
; RelayServer=192.168.1.58

Se il server Shoutcast sul quale si sta lavorando deve essere adibito a relay (ripetitore) di
un altro server Shoutcast (ad esempio per aumentare il numero di ascoltatori
potenzialmente disponibili), allora l’opzione RelayPort deve contenere la porta del server
da ritrasmettere e l’opzione RelayServer il suo indirizzo IP. Dopo le opzioni di rete, la
quarta sezione riguarda le opzioni di amministrazione.
; AdminPassword. This password (if specified) changes the
; behavior of Password to be a broadcast-only password, and
; limits HTTP administration tasks to the password specified
; here. The broadcaster, with the password above, can still
; log in and view connected users, but only the AdminPassword
; will grant the right to kick, ban, and specify reserve hosts.
; The default is undefined (Password allows control for both
; source and admin)
; AdminPassword=adminpass

L’opzione AdminPassword, se impostata, consente di aumentare il livello di sicurezza del


server impedendo a chi non abbia questa password di potere effettuare il ban o di potere
riservare uno slot ad un particolare indirizzo IP.
; AutoDumpUsers controls whether listeners are disconnected if the source
; stream disconnects. The default is 0.
AutoDumpUsers=0

L’opzione AutoDumpUsers permette di disconnettere dal server tutti gli ascoltatori, nel
caso in cui la sorgente non fosse più in collegamento con il server.
; AutoDumpSourceTime specifies how long, in seconds, the source stream is
; allowed to be idle before the server disconnects it. 0 will let the source
; stream idle indefinately before disconnecting. The default is 30.
AutoDumpSourceTime=30

L’opzione AutoDumpSourceTime indica al server quanto tempo in secondi deve aspettare


una sorgente inattiva prima di disconnetterla. Impostare 0 equivale ad indicare un valore
infinito.
; ContentDir specifies the directory location on disk of where to stream
; on-demand content from. Subdirectories are supported as of DNAS 1.8.2.
; Default is ./content, meaning a directory named content in the same directory
; as where sc_serv was invoked from.
; ContentDir=./content

Shoutcast è in grado di fornire contenuti on demand; tali contenuti si devono trovare


all’interno della cartella impostata dall’opzione ContentDir. I caratteri [./] indicano che la
directory di base è quella dove si trova il server Shoutcast, ovunque essa sia.
; IntroFile can specify a MP3 file that will be streamed to listeners right
; when they connect before they hear the live stream.
; Note that the intro file MUST be the same samplerate/channels as the
; live stream in order for this to work properly. Although bitrate CAN
; vary, you can use ‘%d’ to specify the bitrate in the filename
; (i.e. C:\intro%d.MP3 would be C:\intro64.MP3 if you are casting at 64kbps).
; The default is no IntroFile
; IntroFile=c:\intro%d.MP3

L’opzione IntroFile è molto utile per creare un jingle di presentazione dell’emittente da


mandare all’avvio dell’ascolto della radio. Il file deve avere lo stesso bitrate e numero di
canali dello stream attualmente trasmesso dalla sorgente (in ogni caso, mai superiore). Si
possono impostare più file basati sul bitrate scrivendo [%d] che indica il bitrate dello
stream.
; BackupFile can specify a MP3 file that will be streamed to listeners over
; and over again when the source stream disconnects. AutoDumpUsers must be
; 0 to use this feature. When the source stream reconnects, the listeners
; are rejoined into the live broadcast.
; Note that the backup file MUST be the same samplerate/channels as the
; live stream in order for this to work properly. Although bitrate CAN
; vary, you can use ‘%d’ to specify the bitrate in the filename
; (i.e. C:\backup%d.MP3 would be C:\backup32.MP3 if you are casting at 32kbps).
; The default is no BackupFile
; BackupFile=C:\intro%d.MP3

Un’opzione alternativa all’AutoDumpUsers (che in questo caso deve essere impostata a


zero) è la funzione Backup, che consente, quando una sorgente non è più attiva, di
trasmettere continuamente un singolo file (che deve sottostare alle stesse regole viste per
l’opzione IntroFile).
; TitleFormat specifies a format string for what title is sent to the listener.
; For example, a string of ‘Justin Radio’ forces the title ‘Justin Radio’ even
; when the source changes the title. You can use up to one ‘%s’ in the string
; which lets you contain the title from the source. For example, if your
; TitleFormat is ‘Justin Radio: %s’, and the source plug-in’s title is
; ‘Billy plays the blues’, then the net title is
; ‘Justin Radio: Billy plays the blues’. Note: only works on non-relay servers.
; The default is no format string.
; TitleFormat=Justin Radio: %s

L’opzione TitleFormat consente di visualizzare, all’interno dei player degli ascoltatori, una
stringa organizzata come meglio si reputi; ad esempio, inserendo sempre il nome della
radio piuttosto che i titoli che variano canzone dopo canzone, oppure un ibrido tra le due
cose, come nell’esempio di default. [%s] indica il titolo del brano corrente. Funziona solo
con server non in modalità relay.
; URLFormat specifies a format string for what URL is sent to the listener.
; Behaves like TitleFormat (see above).
; The default is no format string.
; URLFormat=http://www.server.com/redirect.cgi?URL=%s

L’opzione URLFormat consente di inviare all’ascoltatore un URL che sia corrispondente,


ad esempio, al titolo del brano corrente, ed ha lo stesso comportamento di TitleFormat.
L’opzione non è abilitata di default.
; PublicServer can be always, never, or default (the default, heh)
; Any setting other than default will override the public status
; of the source plug-in or of a Shoutcast server that is being relayed.
PublicServer=default

L’opzione PublicServer può forzare il server ad essere pubblico, privato o basarsi sulle
impostazioni dettate dall’encoder che invia il flusso della sorgente.
; AllowRelay determines whether or not other Shoutcast servers will be
; permitted to relay this server. The default is Yes.
AllowRelay=Yes

L’opzione AllowRelay consente o non consente ad altri server Shoutcast di diventare relay
di questo server.
; AllowPublicRelay, when set to No, will tell any relaying servers not
; to list the server in the Shoutcast directory (non-public), provided
; the relaying server’s Public flag is set to default. The default is
; Yes.
AllowPublicRelay=Yes

L’opzione AllowPublicRelay obbliga, nel caso in cui sia impostata su NO, i server che
fungono da relay a non elencare l’emittente all’interno delle directory Shoutcast.
; MetaInterval specifies how often, in bytes, metadata sent.
; You should really leave this at the default of 8192, but the option is
; provided anyway.
MetaInterval=8192

MetaInterval permette di settare, in byte, l’intervallo di invio dei metadati del protocollo
ICY.
; ListenerTimer is a value in minutes of maximum permitted time for
; a connected listener. If someone is connected for longer than this
; amount of time, in minutes, they are disconnected. When undefined,
; there is no limit defined. Default is undefined.
; ListenerTimer=600

ListenerTime consente di indicare un tempo massimo in minuti di ascolto della radio da


parte di un singolo ascoltatore. Non definire l’opzione consente un ascolto indefinito, ed è
l’opzione di default.
; BanFile is the text file sc_serv reads and writes to/from
; for the list of clients prohibited to connect to this
; server. It’s automatically generated via the web
; interface.
; BanFile=sc_serv.ban

Il Banfile impostato contiene l’elenco, modificabile dall’interfaccia web del server


Shoutcast, degli IP che sono stati bannati e ai quali è precluso l’ascolto della radio.
; RipFile is the text file sc_serv reads and writes to/from
; for the list of client IPs which are *ALWAYS* permitted
; to connect to this server (useful for relay servers).
; This file is automatically generated via the web
; interface. Note that if your server is FULL, and someone
; from a Reserved IP connects, the DNAS will force the person
; listening for the longest time off to make room for the new
; connection.
; RipFile=sc_serv.rip

In modo similare rispetto a BanFile, RipFile consente di riservare uno slot ad un


particolare indirizzo IP, ad esempio un relay. Se il server è pieno ed uno dei membri VIP
all’interno del RipFile tenta di connettersi al server, l’ascoltatore che ascolta da più tempo
viene disconnesso.
; RIPOnly, when set to Yes, will only allow IP addresses listed in the Reserved
; IP list to connect and relay. All other connections for listening will be denied.
; This is really only useful for servers whose sole purpose is to provide the
; primary feed to all public relays. Setting this value to Yes also forces the
; server into Private mode, since listing this server in the directory would
; be pointless. Default is No.
; RIPOnly=No

La modalità RipOnly obbliga il server Shoutcast ad accettare connessioni soltanto dagli IP


elencati all’interno del RipFile.
; Unique: assigns a variable name for use in any config item which points to a
; file. Useful for servers running lots of Shoutcast servers that have similar
; configuration parameters, excepting logfile names, banfile names, etc. Any
; parameter that takes a pathname can include the character $, which will
; substitute $ for the variable assigned here. Keep in mind that the unique
; variable can only be used after it is defined, so don’t try to use a unique
; variable substitution in a path before you define it. For example, you
; could set:
; Unique=my_server
; and then define Log=/usr/local/Shoutcast/$.log in an included configuration
; file. Default is Unique=$, so that by default any file with $ in the name
; won’t substitute anything at all.

Tramite l’opzione Unique è possibile definire un set di caratteri (ad esempio un path) che
possa essere richiamato utilizzando il carattere [$]. L’opzione è comoda da utilizzare se un
singolo IP contiene molti server Shoutcast con opzioni simili tra loro.
; Include: instructs the sc_serv to read from the named configuration file,
; *at the point of insertion of the Include statement*, and process as though
; the included file was part of itself. Note that all configuration parameters
; in the DNAS config file are processed first to last, so if an item is defined
; twice in a configuration, the last item to process will be the one that takes
; effect. For this reason, it’s usually a good idea to use the Includes first
; in a config file.
; example:
; Include=/usr/local/Shoutcast/common.conf
; Default is not applicable.

L’opzione Include consente di inserire, all’interno del file di configurazione, le


configurazioni di un altro file, che verrà inserito “in linea” nel punto in cui l’opzione viene
richiamata.
Bisogna ricordarsi che la regola di funzionamento delle opzioni di un file di
configurazione Shoutcast è la sovrascrittura, per cui un’opzione alla fine del file viene
letta per ultima e sovrascrive eventuali opzioni dello stesso tipo prima specificate.
Dopo le opzioni di amministrazione ci sono le opzioni più sensibili che riguardano
modifiche di funzionamento interno del software, da maneggiare con cautela.
; CpuCount is used to explicitly limit the DNAS to dominating a finite
; amount of processors in multiprocessor systems. By default,
; Shoutcast creates one thread for every processor it detects in the
; host system, and assigns listeners equally across all the threads.
; In the event Shoutcast doesn’t correctly determine the number of
; CPUs in your host, or if you for whatever reason want to force
; the DNAS to not use other processors, you can say so here.
; Default behavior is to use as many processors as the DNAS detects on
; your system.
; CpuCount=1

Nel caso di una macchina multiprocessore, il server Shoutcast alloca un thread per ciascun
processore disponibile sul sistema e distribuisce gli ascoltatori sui vari thread. Se per un
qualsiasi motivo non si volesse utilizzare qualcuno dei processori, si può indicare ciò
nell’opzione CpuCount.
; Sleep defines the granularity of the client threads for sending data.
; DNAS 1.7.0, per client thread, will send up to 1,024 bytes of data
; per socket (or less depending on the window available), and then
; sleep for the provided duration before repeating the whole process.
; Note that making this value smaller will vastly increase CPU usage on
; your machine. Increasing reduces CPU, but increasing this value too far
; will cause skips. The value which seems most optimal for 128kbps
; streaming is 833 (833 microseconds per client poll) on our test labs.
; We wouldn’t recommend setting it any lower than 100, or any higher than
; 1,024. If you have a slower machine, set this number lower to fix
; skips.
; Default value is 833.
; Sleep=833

L’opzione Sleep controlla la frequenza in millisecondi con cui un thread si attiva, per
ciascun client. Il valore di default, calcolato per uno streaming a 128 kbps è di 833 msec.
Alzare tale valore riduce il carico sulla CPU dovuto al context switching, ma può causare
skipping del flusso.
Abbassare il valore aumenta di molto il carico dovuto al cambio di contesto. Settare valori
inferiori a 100 o superiori a 1024 è fortemente sconsigliato dai produttori del software.
; CleanXML strips some whitespace and linefeeds from XML output which
; confuses some (poorly written) XML parsers. If you get XML rendering errors,
; try turning this on. Default is No (off).
; CleanXML=No

L’opzione CleanXML toglie alcuni caratteri dai file XML prodotti che possono confondere
alcuni parser XML scritti in modo non corretto o particolarmente datati.
3.1.2. L’interfaccia web di Shoutcast 1.9.7
Il server Shoutcast, al suo avvio, crea una pagina web raggiungibile all’indirizzo IP della
macchina e alla porta impostata sul file di configurazione contenente dei dati forniti dalla
sorgente collegata ed un pannello di amministrazione. All’interno di questo pannello di
amministrazione troviamo cinque sezioni differenti: Status, Song History, Listen, Stream
URL ed Admin Login.
STATUS
Status è la pagina principale. Contiene informazioni sull’emittente, sul numero di
ascoltatori attualmente connessi, sul picco di ascolti e sul tipo di contenuti trasmessi.
SONG HISTORY
Song History è l’elenco delle ultime canzoni trasmesse dalla radio (la lunghezza di tale
pagina dipende dal valore di ShowLastSongs).

Figura 3.2. Interfaccia web del server Shoutcast 1.9.7

LISTEN
Listen è un link ad un file PLS che consente di ascoltare la radio.
STREAM URL
Stream URL è un link impostabile che normalmente rimanda alla home del sito della
radio.
ADMIN LOGIN
Admin Login è il link che porta alla pagina di amministrazione degli ascoltatori. In questa
pagina si ha la possibilità di disconnettere utenti, riservarli e controllare il tempo di
connessione. In basso a destra si trova l’elenco delle impostazioni settate ed
eventualmente i loro valori.

Figura 3.3. Interfaccia web di amministrazione del server Shoutcast 1.9.7

Per accedere ad Admin Login basta inserire:


♦username: Admin

♦password: password del server Shoutcast.

L’area di amministrazione è una pagina simile alla precedente ma con molte più opzioni,
come visibile in figura 3.3.
In alto ci sono dei link ad alcune sottosezioni:
♦listeners: permette di vedere quanti ascoltatori ci sono in un determinato momento ed è la
pagina iniziale. Troviamo all’interno le seguenti righe:
Log file: C:\Programmi\Shoutcast\sc_serv.log
Configuration file: C:\Programmi\Shoutcast\sc_serv.ini
Name lookups are off/on
Intro file is disabled/enabled
Backup file is disabled/enabled
Auto client disconnects are disabled/enabled
Source idle timeouts are $number_of_seconds
Incoming interface: ip:porta Outgoing interface: ip’s:porta
Get XML Stats: [Yes]
Reset XML Stats: [Yes
Queste righe identificano il file di log, il file di configurazione, se è attivata la visione
dei nomi o solo quella degli indirizzi IP, se esiste un file di intro, se esiste un file di
backup, se sono impostate le disconnessioni automatiche dei client in caso di
disconnessione della sorgente, qual è il timeout di riconnessione, quali siano le
interfacce di entrata e di uscita e la possibilità di resettare o di visualizzare l’XML
che permette di conoscere dati sulla radio;
♦tail logfile: visualizza la fine del file di log;

♦view logfile: lo visualizza totalmente;

♦ban list: visualizza la lista degli IP bannati e permette di bannare un IP o una intera
sottorete /24;
♦reserve ip list: visualizza gli IP che hanno accesso garantito e permette di inserirne uno;
♦logout: esce dalla sezione di amministrazione.

3.2. Versione 2.0


Getting Started è il nome del file che contiene la documentazione di prima lettura utile alla
comprensione del funzionamento del server Shoutcast.
In questa trattazione non verranno considerate alcune parti di tale file perché non ritenute
utili.
La prima parte della documentazione dà per scontato che si sappiano compiere delle
operazioni preliminari al funzionamento non tanto del server Shoutcast quanto di un
qualsiasi servizio accessibile e lanciabile tramite terminale.
Anche il port forwarding viene dato per scontato.
Il server Shoutcast ed il transcoder sono entrambi costruiti per essere eseguiti da riga di
comando o come demone, se si abilita tale opzione. Ciò può apparire strano, dato che la
maggior parte dei programmi installati sui sistemi operativi è dotata di interfaccia grafica e
lo era anche lo stesso server Shoutcast 1.9.7; eppure, ciò risulta espressamente voluto
dagli sviluppatori del software. Qualora non si fosse abituati ad utilizzare la riga di
comando bisognerebbe procurarsi una guida per imparare ad usare la stessa prima di
cimentarsi con il server Shoutcast 2. Fortunatamente, molte guide sono ampiamente
reperibili su Internet.
Si può pensare che il server Shoutcast 2 abbia fatto dei passi indietro rispetto alla versione
1, che era dotata di un wrapper con una GUI molto intuitiva; fondamentalmente il core del
sistema è lo stesso, ed è un bene conoscere ed imparare ad usare la riga di comando.
A causa dell’User_Account_Control, impostazione nativa di Windows Vista e Windows
Seven, occorre ricordarsi gli effetti che questa causa all’editing e al salvataggio dei file. La
versione per Windows dell’installer sceglierà di default la cartella “program file”; tuttavia,
nel caso in cui UAC sia disabilitato, si potranno sperimentare delle difficoltà di
installazione e configurazione. In questi casi è consigliabile cambiare la cartella di
installazione del software e modificare le proprietà dei file con i privilegi di
amministrazione.
Per fare funzionare un server Shoutcast è necessario:
♦un computer con un sistema operativo supportato

♦Shoutcast DNAS Server

♦una sorgente (che può essere il Transcoder oppure Winamp plus Source DSP plug-in)

♦contenuti da trasmettere.

I sistemi operativi supportati sono diversi:


♦Windows 32-bit

♦Windows 2000, XP, Vista, Windows 7

♦Windows 64-bit

♦64-bit versions of Windows XP, Vista, Windows 7


♦Linux 32-bit

♦Linux 64-bit

♦BSD 8.x

♦Mac OS X (Intel).

La versione adatta a ciascun sistema operativo è disponibile sul sito del produttore del
software. Occorre prestare molta attenzione alla versione del software corretta per la
macchina in uso. Se è possibile installare un software a 32 bit su una macchina a 64, non è
vero il contrario.
Il protocollo HTTP ed il protocollo ICY non tengono in considerazione il sistema
operativo, per cui non ha importanza se il server e la sorgente (che può essere il transcoder
oppure no) risiedono su due sistemi operativi diversi. Per iniziare correttamente l’utilizzo
del server Shoutcast 2, bisogna settare per prima cosa il file di esempio
sc_serv_simple.conf. L’esempio fornito consente (una volta personalizzato) di creare una
semplice configurazione per il server che contiene le basilari impostazioni necessarie per
permettere al server stesso di lavorare correttamente. Tutto questo sarà reso più chiaro
proseguendo la trattazione. L’unica cosa mancante all’interno di questo file di esempio è
l’authhash, valore richiesto per consentire ad un flusso audio di essere disponibile
all’interno delle Shoutcast Radio Directory.
Oltre al file getting started esistono degli altri file di configurazione, che possono o
addirittura devono essere settati, pur essendo d’esempio.
Tra questi:
♦sc_serv_basic mostra come gestire uno stream multiplo;

♦sc_serv_public mostra come rendere pubblico un server partendo dal file sc_serv_basic;

♦sc_serv_relay mostra come ritrasmettere un’altra emittente.

In base al sistema operativo, il server va lanciato in due modi differenti. Supponiamo che
il file di configurazione settato sia sc_serv_simple.conf:
♦gli utenti Windows lanceranno sc_serv.exe sc_serv_simple.conf;

♦tutti gli altri lanceranno ./sc_serv sc_serv_simple.conf.

Il comando resta uguale anche nel caso in cui il file di configurazione abbia un nome
diverso o un path diverso rispetto a quello di sc_serv.
Se dalla consolle del server si nota un problema, la prima cosa da appurare è che tale
problema abbia una E all’inizio del messaggio d’errore.
Normalmente i messaggi d’errore sono molto espliciti e contengono le informazioni per
comprenderne la tipologia. I forum di supporto del software sono in ogni caso risorse utili
per il troubleshooting.
3.2.1. SC_SERV_BASIC.CONF
; NOTE: for any relative paths specified are relative to
; sc_serv and not to where the conf file is being stored
Ogni riferimento relativo ha come base la cartella dove si trova sc_serv e non quella dove
si trova il file di configurazione.
; here we will setup where the log and other related files
; will be stored. make sure that these folders exist else
; sc_serv will throw an error and will close itself down.
; we will make the logs save to the sc_serv2 directory
logfile=logs\sc_serv.log
w3clog=logs\sc_w3c.log
banfile=control\sc_serv.ban
ripfile=control\sc_serv.rip

In questa impostazione vengono settati il log file ed altri file. Occorre assicurarsi che le
sottocartelle eventualmente impostate siano esistenti o il server di streaming restituirà un
errore.
; for testing we will make the server only work locally
; (i.e. localhost / 127.0.0.1) though if this is left out
; or set to publicserver=always then we attempt to make a
; connection to the YP for listing - do not forget to add
; in a ‘streamauthhash’ value for any public streams made
;publicserver=never

L’impostazione determina la visibilità esterna del server. Occorre non dimenticarsi di


aggiungere il valore streamauthash per ogni stream pubblico che venga realizzato.
; if you’re wanting to use a different port to use for any
; connections then you can use this option e.g. to use 80
; otherwise port 8000 is used as the default to listen on.
;portbase=80

L’impostazione portbase identifica la porta base per lo streaming. Se non viene impostato
alcun valore (come avviene di default) allora la porta base risulterà essere la 8000.
; password used by sc_trans or the Winamp dsp plug-in
; NOTE: remember to change this to something else
password=testing

Impostazione della password che dovranno utilizzare i transcoder o i plug-in DSP.


; password used for accessing the administation pages
; NOTE: remember to change this to something else
adminpassword=changeme

Password di amministrazione.
; now we will specify the details of the stream we’re going
; to serve which can be done as follows
streamid=1
streampath=/test.aac
; or
; it can be done like this which is how it needs to be done
; if you are going to provide multiple streams from sc_serv
;streamid_1=1
;streampath_1=/test.aac
;streamid_2=2
;streampath_2=/test2.aac

Si possono specificare i dettagli dello stream che si sta trasmettendo utilizzando le opzioni
streamid e streampath; oppure, nel caso in cui il server di streaming debba fornire più di
un flusso contemporaneamente, tali flussi si possono numerare progressivamente.
3.2.2. SC_SERV_DEBUG
In questo file sono presenti tutte le opzioni di logging per debug di un server Shoutcast,
che possono aiutare in funzione del corretto settaggio del proprio server. Questo file può
essere inserito all’interno del file di configurazione attraverso l’opzione include.
; enable or disable the different debug loggging options as
; required for any issues you are trying to investigate.
; you can disable an entry by adding a comma (;) infront of
; the configuration entry
httpstyledebug=1
microserverdebug=1
relaydebug=1
relayShoutcastdebug=1
relayuvoxdebug=1
rtmpclientdebug=1
Shoutcast1clientdebug=1
Shoutcast2clientdebug=1
Shoutcastsourcedebug=1
statsdebug=1
streamdatadebug=1
threadrunnerdebug=1
uvox2sourcedebug=1
webclientdebug=1
yp1debug=1
yp2debug=1
Si possono includere o rimuovere le opzioni volute al fine di avere o non avere una particolare funzionalità.
Le opzioni possono essere commentate anteponendo un punto e virgola.

3.2.3. SC_SERV_PUBLIC
; due to the way configuration files work we can replace an
; existing value like ‘publicserver’ with a newer value so
; the following will force any sources to be public which
; allows us to then connect and be listed on the YP
publicserver=always

Publicserver può essere impostato anche qui in modo che venga sovrascritto qualsiasi
valore precedentemente impostato.
; as we are going to connect to the YP then we need to fill
; in the required options so we can authenticate to the YP2
; see sc_serv.txt - section 3.0 for details on getting this
;
; make sure that you completely replace the string
; <enter_your_auth_key_here> with the authorisation key you
; obtained when registering the stream for the Shoutcast YP
; e.g. if you auth hash key is 12345 then the line would be
; streamauthhash=12345
streamauthhash=<enter_your_auth_key_here>

In questa opzione si deve inserire il valore della chiave fornita da Shoutcast al momento
della registrazione dell’emittente al servizio di listing delle pagine gialle.
3.2.4. SC_SERV_RELAY
; assuming there is only one other stream defined then we
; create a second stream configuration for our relay where
; you will need to ensure the values entered are correct
; for the source the stream is coming from and so you can
; authenticate to the YP2 if making this a public system
;
; note: you can change the stream id as appropriate to you

streamid_2=2
streampath_2=/relay
streamrelayURL=http://<full_URL_of_relay_including_port>
streamauthhash_2=<enter_your_auth_key_here>

Si può creare uno stream come relay di un altro dandogli un adeguato stream ID, che può
andare da 1 a 9. Configuriamo anche l’URL e l’hash del relay insieme al path.
; to have more control on the handling of relays then the
; following options from sc_serv2.txt - section 4.0.10 to
; control use of relays or if the relay is set to a public
; state when the server is connected to the YP2
; allowrelay=0
; allowpublicrelay=0

Le opzioni allow permettono al server di streaming di avere o non avere relay (privati e
pubblici).
3.2.5. Transcoder
Il transcoder fornito come software a corredo del server Shoutcast necessita di una licenza
per la trasmissione MP3. Nel caso di AAC+, invece, se si è già acquistata una licenza non
sarà necessario comprarne un’altra. Una volta ottenuta la chiave, sarà necessario
aggiungere chiave e nome all’interno delle opzioni unlockkeyname e unlockkeycode
all’interno del file di configurazione del transcoder.
I file di configurazione del transcoder sono i seguenti, divisi per contesto:
♦sc_trans_basic: mostra le impostazioni basilari;

♦sc_trans_capture: mostra come settare un dispositivo di cattura;

♦sc_trans_dj: mostra come settare le impostazioni per i DJ;

♦sc_trans_playlist: mostra come settare le playlist.

3.2.6. Digital Signal Processor


La caratteristica principale del plug-in DSP è quello di trasformare Winamp in una
sorgente per Shoutcast. Il plug-in è in grado, inoltre, di permettere la cattura di un segnale
audio dalla scheda audio e dal microfono. Per cominciare ad utilizzare il plug-in è
ovviamente necessario avere un server Shoutcast attivo o una sorgente alternativa da
fornire al segnale audio (potrebbe tranquillamente essere il transcoder fornito a corredo).
Tutti i settaggi del server devono essere impostati in modo da trovarsi in posizione ready,
ovvero in attesa di una sorgente. Il plug-in può essere utilizzato sia come sorgente vera e
propria sia come sorgente di supporto, ad esempio per la connessione DJ di sc_trans.
La finestra di configurazione è la parte principale del plug-in ed il luogo dove si trovano
tutte le informazioni necessarie alla connessione al server, oltre che il posto dove è
possibile vedere lo stato della connessione tra le parti.
All’interno del plug-in si hanno alcuni tab, tra cui:
♦Status/Info: mostra informazioni sullo stato dei cinque possibili stream che il plug-in è in
grado di fornire, dalla non connessione alla durata della connessione stessa;
♦Input Meters: il misuratore di segnale in uscita mostra i livelli in decibel dei due canali.
Molto utile per la diagnostica;
♦Output Tab: il tab output consente di configurare 5 possibili stream. Scegliendo dal menu
l’output col numero corrispondente allo stream di interesse si potranno modificare le
opzioni per l’output.

Figura 3.4. Finestra degli stati degli output del plug-in DSP

Figura 3.5. Finestra dei livelli di input

STATUS
Status mostra le informazioni correnti sulla sorgente, in particolare sulla sua connettività o
altri messaggi d’errore come password incorretta etc.

Figura 3.6. Finestra dello stato dello streaming

AUTO CONNECT
Auto Connect è un’opzione di connessione automatica del plug-in ogni volta che la
sorgente viene attivata.
CONNECT / ABORT / DISCONNECT / KILLBUTTON
L’opzione connect/abort/disconnect/killbutton consente di iniziare una connessione, di
interromperne una in corso o disconnettere una connessione attiva. Se “Autoconnect” è
settato, allora il plug-in riattiverà automaticamente la connessione interrotta.
ADDRESS
Address indica l’indirizzo del server al quale connettersi. Per esempio, se il server o il
transcoder si trovano sulla stessa macchina della sorgente, localhost può essere un valore
ammesso; altrimenti, va inserito l’esatto IP della macchina al quale il DSP tenterà di
connettersi.
PORT
Questa è la porta TCP relativa all’indirizzo del server al quale connettersi. Deve
corrispondere al parametro portbase o serverport, rispettivamente del server Shoutcast o
del transcoder.
STREAMID
StreamID è l’identificativo utilizzato per far riconoscere la sorgente al server quando si
utilizza un server Shoutcast 2. Deve corrispondere all’impostazione streamid oppure ad
uvoxstreamid per il transcoder. L’opzione è disabilitata se viene utilizzata la modalità use
Shoutcast v1 mode (for legacy servers).
USERID
Identificativo utente utilizzato in base al tipo di connessione che il plug-in deve creare. Ad
esempio, il valore del parametro djlogin. L’opzione è disabilitata se viene utilizzata la
modalità use Shoutcast v1 mode (for legacy servers).
PASSWORD
La password è richiesta per l’accesso al server (se impostata). Deve corrispondere al
valore dell’opzione omonima nei file di configurazione di Shoutcast oppure all’opzione
uvoxauth del transcoder.
AUTOMATIC RECONNECTION ON
L’opzione automatic reconnection on permetterà al plug-in di riconnetttere la sorgente
qualora ci fossero delle disconnessioni.
ON TIMEOUT
On timeout indica il numero di secondi che deve attendere il plug-in prima di procedere al
tentativo di riconnessione.
USE SHOUTCAST V1 MODE (FOR LEGACY SERVERS)
L’opzione use Shoutcast v1 mode consente di scegliere la tipologia di sorgente che il plug-
in tenterà di creare. Scegliendo l’opzione, il plug-in creerà una sorgente compatibile con
un server Shoutcast 1 o, in alternativa, con Shoutcast 2. Il comportamento standard è volto
ad un utilizzo di Shoutcast 2. Utilizzare la modalità sbagliata può causare problemi di
connessione. Ad esempio, se si utilizza un flusso Shoutcast 2 con un server Shoutcast 1 il
risultato sarà il vedere il messaggio “Cipher response received”. Se il plug-in si accorge di
questa incongruenza, mostrerà nell’area status il messaggio “Cipher response received.
Try enabling Shoutcast v1 mode”.

Figura 3.7. Finestra di avviso per l’utilizzo non corretto del plug-in

MAKE THIS SERVER PUBLIC


Con l’opzione make this server public abilitata il flusso segnalerà di volere essere
visualizzato all’interno delle directory di Shoutcast, comunemente chiamate yellow pages.
Figura 3.8. Finestra di configurazione della directory

NAME
Name indica il nome da utilizzare per questa sorgente.
URL
URL è l’indirizzo dello stream che consente agli utenti di ottenere maggiori informazioni
(normalmente è il sito della radio).
GENRE
Genre imposta il genere musicale della sorgente ed è utile per catego-rizzare il flusso se
questo flusso deve essere elencato nelle yellow pages. Il genere viene selezionato dal
menu. Non è possibile settare un genere diverso da quelli elencati.
MENU GENERI
Il menu Generi contiene una lista di generi musicali e sottogeneri autorizzati ad essere
inseriti all’interno delle directory di Shoutcast.
AIM / ICQ / IRC
Si possono specificare alcune informazioni di contatto per gli ascoltatori. Questo campo è
disponibile soltanto per la versione 1 del server Shoutcast.
TRACKTITLE
L’opzione tracktitle permette di utilizzare le informazioni tratte dai titoli dei brani di
Winamp oppure di specificare informazioni sulla canzone corrente e sulla successiva, che
sono inviate con i metadati quando si clicca sul comando send update. Il comando send
update è abilitato quando viene fatta una modifica al titolo, in qualsiasi modo.
SEND NEXT TRACK TITLES TO THE SERVER (IF AVAILABLE)
L’opzione send next track titles to the server consente di inviare il titolo del prossimo
brano in modalità Shoutcast 2.

Figura 3.9. Avviso inerente la pubblicazione della stazione sulle pagine gialle

ENCODER TAB
Il tab encoder permette di specificare quale encoder vada utilizzato per creare il flusso
audio dalla sorgente. I seguenti encoder sono disponibili all’installazione del plug-in:
♦MP3 (audio/mpeg)

♦AAC (audio/aacp).
Figura 3.10. Schermate di configurazione dell’encoder

Il codec AAC è implementato all’interno del file enc_aacplus.dll oppure enc_fhgaac.dll


(da Winamp 5.62 in poi). Se uno tra questi due file non si trova nella cartella plug-in allora
verrà visualizzato soltanto l’encoder MP3. In base all’encoder selezionato, le opzioni
disponibili saranno differenti e verranno visualizzate con un comando oppure con un menu
a cascata di opzioni predefinite.
ARTWORK TAB
Il tab artwork permette di indicare se deve essere inviata al server anche un’immagine a
corredo del brano. Se si sceglie di inviare le immagini, si può decidere che tipo di
immagini mandare, siano esse immagini rappresentative dell’emittente o del singolo
brano.
SEND IN-STREAM ARTWORK
Send in-stream artwork abilita o disabilita l’invio delle immagini. Nel caso in cui
l’opzione venisse abilitata e dopo disabilitata è possibile che il plug-in invii dei messaggi
di pulitura cache in modo da non far permanere immagini sul server.

Figura 3.11. Finestra di gestione degli Artwork

SEND ARTWORK FROM THE PLAYING FILE


L’invio delle immagini viene effettuato tramite il file stesso, ammesso che l’immagine sia
effettivamente contenuta all’interno e rispetti i requisiti. Se non è presente un’immagine a
corredo per la canzone corrente, allora il server Shoutcast invierà un’immagine standard.
Le immagini inviate devono avere il formato PNG.
SEND ARTWORK FOR STREAM BRANDING
Differentemente da quanto detto prima, l’opzione send artwork for stream branding abilita
l’invio di un’immagine dell’emittente e non del singolo brano.
Se si utilizza il sistema di invio immagini verso un server datato (vers. 1) causerà la
visualizzazione del seguente messaggio:
“Stream is setup for a Shoutcast v1 server which does not support in-stream artwork. To send in-stream artwork,
uncheck the <<Shoutcast v1 mode>> option and ensure you connect to a Shoutcast v2 server”.

Questo messaggio invita a disabilitare l’opzione oppure ad utilizzare un server Shoutcast


2. Il plug-in può inviare immagini grandi non più di 511 KiloBytes, per rimanere
conforme alle specifiche dei metadati di Shoutcast 2. Se si supera il limite, l’immagine
non verrà inviata. La visualizzazione delle immagini da parte dell’ascoltatore è
subordinata all’utilizzo di un player che lo permetta.
LOGS TAB
Il tab logs permette di specificare le modalità di logging dei messaggi di stato. Inoltre, è
possibile creare un log anche degli indirizzi dei brani successivi, che possono essere anche
strutturati in modo più preciso tramite la modalità xml. Le opzioni non sono abilitate di
default nonostante possano essere usate per rendersi conto di eventuali problemi come ad
esempio la mancanza di connettività al server:
♦enable logging of connection status messages: abilita o disabilita il logging;

♦clear log file on logging startup: da scegliere se si vuole che il log si resetti ad ogni avvio
del plug-in;
♦ignore ‘sent x bytes’ status messages: da selezionare se si vuole evitare di inserire nel file
di log i messaggi “sent x bytes”;
♦open log file: aprirà il log file tramite il programma associato ai file di estensione .log;

♦clear log file: svuoterà il log file se esistente, ma non lo rimuoverà;

♦enable next track logging: abilita la creazione di un log file delle prossime canzoni da
riprodurre tramite Winamp.
SAVE REPORT AS XML INSTEAD OF PLAIN TEXT
Si può impostare come file di log non un file di testo ma un file xml. Il file xml conterrà il
percorso del file ed il titolo con entrambi i campi identificati dall’attributo seq.
Il logging del brano successivo è abilitato soltanto quando il plug-in determina che è
cambiato il brano.
3.2.7. Input configuration Tab
INPUT DEVICE
L’opzione input device permette di scegliere se utilizzare Winamp o la scheda audio (la
linea di ingresso) come sorgente per lo stream che il plug-in crea. In base alla scelta
possono essere settate opzioni aggiuntive.
INPUT LEVELS
Mostra i livelli di volume dei due canali audio. In questo modo si può comprendere
l’andamento del volume e intervenire in caso di problematiche.
INPUT SETTINGS
Quando viene selezionato il soundcard input, questa opzione permette di controllare la
frequenza di campionamento.
3.2.8. Soundcard mixer control Tab
CHOOSE MICROPHONE
L’opzione choose microphone permette di scegliere quale dei microfoni rilevati dal
sistema operativo si vuole utilizzare.
REFRESH BUTTON
Il comando Refresh permette di aggiornare la lista delle periferiche disponibili su Vista o
Windows 7. L’opzione si rivela utile quando si connette un dispositivo e si vuole
cominciare ad utilizzarlo.
OPEN MIXER
Questa opzione permette di aprire il mixer di Windows, per poter settare volumi o
impostazioni inerenti la scheda audio.
MUSIC LEVEL
Controlla il livello dell’output di Winamp.
BG LEVEL
Controlla il livello di background, ovvero il tappeto musicale che rimane quando si preme
il comando push to talk.
MIC LEVEL
Controlla il livello del microfono quando si preme il comando push to talk.
FADE TIME
L’opzione fade time setta il tempo di fading tra la modalità di trasmissione musicale e la
modalità vocale, che si abilita tramite il comando push to talk.
CAPTURE DEVICE FADE TIME
L’opzione è la stessa di fade time, ma è valida per il dispositivo utilizzato per la sezione
vocale.
PUSH TO TALK
Quando il comando push to talk viene premuto il microfono selezionato diventa attivo
come sorgente del flusso di tutti gli output attualmente attivi.
LOCK
Quando il comando lock viene premuto si blocca il push to talk in modo da non doverlo
tenere premuto per funzionare.
ARROW BUTTON
Il comando arrow mostra un menu con l’opzione enable ‘push to talk’ on startup,
permettendo a questa modalità di essere ri-abilitata quando il plug-in comincia a lavorare.
Può essere utile quando il plug-in si spegne per evitare che il volume ritorni ai livelli
normali; in presenza della funzione push to talk è disabilitata.
3.3. Modalità operative DSP con Winamp
3.3.1. Connessione diretta di Winamp a Shoutcast Server v1
Connection Tab:
♦Address: localhost (oppure l’indirizzo IP del server se non si trova sulla stessa macchina);

♦Port: 8000 (oppure il valore dell’impostazione ‘portbase’);

♦StreamID: 1 (oppure il valore settato per ‘streamid’ di questa particolare connessione con
il server);
♦UserID: può essere lasciato vuoto;

♦Password: testing (oppure il valore settato per ‘password’);

♦Use Shoutcast v1 mode (for legacy servers): deve essere selezionato.

Yellow pages tab: qui si possono inserire i dettagli richiesti all’identificazione del flusso
audio e all’indicizazzione all’interno delle directory di Shoutcast.
3.3.2. Connessione diretta di Winamp a Shoutcast Server v2
Connection Tab:
♦Address: localhost (oppure l’indirizzo IP del server se non si trova sulla stessa macchina);

♦Port: 8000 (oppure il valore dell’impostazione ‘portbase’);

♦StreamID: 1 (oppure il valore settato per ‘streamid’ di questa particolare connessione con
il server);
♦UserID: può essere lasciato vuoto;

♦Password: testing (oppure il valore settato per ‘password’);

♦Use Shoutcast v1 mode (for legacy servers): non deve essere selezionato.

Yellow pages tab: qui si possono inserire i dettagli richiesti all’identificazione del flusso
audio e all’indicizazzione all’interno delle directory di Shoutcast.
Make this server public (Recommended): questa opzione dipende dal valore di
‘publicserver’ nel file di configurazione del server Shoutcast.
3.3.3. Connessione sorgente DJ tramite transcoder in un Shoutcast Server 1
Connection Tab:
♦Address: localhost (oppure l’indirizzo IP del server se non si trova sulla stessa macchina);

♦Port: 8500 (oppure il valore dell’impostazione ‘djport’);

♦Password: dj:noise (oppure il valore settato per ‘djlogin’ e ‘djpassword’ per il


corrispondente DJ account della configurazione del transcoder);
♦Use Shoutcast v1 mode (for legacy servers): deve essere selezionato.

Yellow pages tab: qui si possono inserire i dettagli richiesti all’identificazione del flusso
audio e all’indicizazzione all’interno delle directory di Shoutcast.
Make this server public (Recommended): questa opzione dipende dal valore di
‘publicserver’ nel file di configurazione del server Shoutcast.
3.3.4. Connessione sorgente DJ tramite transcoder in un Shoutcast Server 2
Connection Tab:
♦Address: localhost (oppure l’indirizzo IP del server se non si trova sulla stessa macchina);

♦Port: 8505 (oppure il valore dell’impostazione ‘djport2’);

♦Stream ID: si può lasciare il valore di default (‘1’) perché il transcoder ignora questo
valore; verrà probabilmente utilizzato per versioni future;
♦User ID: dj (oppure il valore settato per ‘djlogin’ per il corrispondente DJ account della
configurazione del transcoder);
♦Password: noise (oppure il valore settato per ‘djpassword’ per il corrispondente DJ
account della configurazione del transcoder);
♦Use Shoutcast v1 mode (for legacy servers): non deve essere selezionato.

Yellow pages tab: qui si possono inserire i dettagli richiesti all’identificazione del flusso
audio e all’indicizzazione all’interno delle directory di Shoutcast.
Make this server public (Recommended): questa opzione dipende dal valore di
‘publicserver’ nel file di configurazione del server Shoutcast.
3.4. Configuration builder
A corredo dei software e dei file necessari al funzionamento di Shoutcast è presente una
pagina web chiamata configuration builder, contenuta all’interno dell’omonima cartella.
Questa pagina web crea un file di configurazione in modo visuale tramite i moduli
all’interno della pagina.
Lo strumento è molto utile soprattutto per coloro che mostrano difficoltà nell’editare
opzioni direttamente sui file di testo. La pagina opera correttamente se il file prodotto ha
dati corretti e se il file risultante è correttamente passato al server Shoutcast, nella
modalità già vista.
Onde evitare possibili problematiche di sicurezza dovute alla presenza di pagine web in
locale sono presenti su Internet diverse pagine che consentono di creare il file di
configurazione tramite il configuration builder.

Figura 3.12. Interfaccia di amministrazione del server Shoutcast versione 2

3.5. Shoutcast su Linux


La prima operazione da fare è quella di scaricare il server Shoutcast e l’encoder dal sito
del produttore. Una volta scaricati si installeranno in due cartelle distinte.
La cartella contenente il server Shoutcast sarà composta da 3 file:
♦README.TXT

♦sc_serv

♦sc_serv.conf.

♦Successivamente si creeranno altri due file, quando verrà usato per la prima volta il
server:
♦sc_serv.log

♦sc_w3c.log.

Il file readme.txt, oltre a descrivere le modifiche del programma nelle varie versioni,
spiega sommariamente come si installa Shoutcast su Linux, quali sono i requisiti minimi
di sistema, le peculiarità della versione per Windows e quelle della versione per Linux.
Il file sc_serv è l’applicazione da richiamare per il funzionamento del server Shoutcast.
Il file sc_serv.conf è il file di configurazione del server.
La cartella contenente l’encoder Shoutcast sarà composta da 5 file:
♦example.lst

♦sc_trans.conf

♦sc_trans_Linux.

Gli altri due file sono encoder per altri sistemi operativi:
♦sc_trans_freebsd

♦sc_trans_macosx.

Il file example.lst è un file lista di esempio. Un file lista per Shoutcast è un file che
contiene dei riferimenti assoluti a dei file MP3, ed è l’unico strumento che può decidere
cosa trasmettere.
Il file sc_trans_Linux è l’applicazione da richiamare per il funzionamento dell’encoder
Shoutcast.
Il file sc_trans.conf è il file di configurazione dell’encoder.
Per fare partire il server, basta aprire un terminale e posizionarsi nella cartella in cui si
trova il server Shoutcast digitando semplicemente ./sc_serv.
Il terminale restituirà questi messaggi:
[Shoutcast] DNAS/Linux v1.9.7 (Jun 23 2006) starting up…
[main] pid: 20433
[main] loaded config from sc_serv.conf
[main] initializing (usermax:32 portbase:8000)…
[main] No ban file found (sc_serv.ban)
[main] No rip file found (sc_serv.rip)
[main] opening source socket
[main] source thread starting
[main] opening client socket
[main] Client Stream thread [0] starting
[main] client main thread starting
listening for connection on port 8001
connected from 127.0.0.1
icy-name:Radio LOL ; icy-genre:genres go here
icy-pub:1 ; icy-br:80 ; icy-URL:http://mygayson.com
icy-irc:Shoutcast ; icy-icq: ; icy-aim:AIMHandle
[main] SIGWINCH; Reloaded Config File
[dest: 207.200.98.4] starting stream (UID: 0)[L: 1]{A: Shoutcast Directory Tester}(P: 0)
[dest: 207.200.98.4] connection closed (0 seconds) (UID: 0)[L: 0]{Bytes: 126078}(P: 0)
[yp_add] yp.Shoutcast.com gave error ()

Il che ricorda moltissimo la finestra del server Shoutcast per sistemi Windows. In più,
rispetto alle schermate di default del server per Windows, vediamo il PID (Process
Identifier) e la gestione dei SIG, ovvero dei segnali che possono essere inviati al server. Il
server tenta numerose volte di collegarsi al Directory tester, non riuscendoci. Questo
succede perché il server è si aperto, ma non c’è nessuna sorgente che trasmetta qualcosa.
Dopo avere inizializzato il server, apriamo l’encoder.
Per farlo basta andare all’interno della cartella contenente l’encoder, e digitare
./sc_trans_Linux. Ottenendo così un risultato non molto incoraggiante, un loop di quello
che sembra essere un errore:
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped
[MAIN] Error opening /home/sctrans/content/test_2.MP3, skipped

In realtà, non si tratta di un errore.


Per capire il motivo, occorre fare una premessa. L’encoder Shoutcast per Linux non si
appoggia a nessun player, ma lavora direttamente tramite gli MP3. Se ne deduce che
occorre un file che contenga gli indirizzi assoluti dei brani che si vuole trasmettere. La
playlist predefinita contiene dei file inesistenti, e questo giustifica il fatto che non li trovi.
Dato che è autoimpostata una funzione di repeat alla fine della playlist, l’errore si ripeterà
all’infinito. Per risolvere il problema, si apra con un editor di testo il file example.lst,
cancellando le due righe alla fine del file contenenti gli indirizzi dei due MP3 inesistenti, e
sostituirle con l’indirizzo di un solo MP3 realmente esistente. Dopo aver fatto questo
occorre eseguire un’altra operazione: sincronizzare le password. Stranamente, esse non
sono sincronizzate di default; per cui si devono cercare nei file di configurazione le
occorrenze della parola password e uniformarle.
Infine, impostare nel file sc_trans_conf localhost come ServerIP.
A questo punto avete l’URL di un MP3 valido, le password sincronizzate e il server locale.
Si possono adesso ripetere le operazioni di apertura di server e plug-in, come prima
descritto.
Qualora ci si accorga che la porta utilizzata da Shoutcast è occupata, probabilmente a
causa del fatto che il programma è stato chiuso male o la socket è occupata, si può
benissimo usare il comando fuser -n TCP numeroporta per identificare il pid del processo
che occupa la stessa, per poi killarlo con un semplice kill numeropid, oppure ancora
tramite kill -s 9 numeropid.
Rilanciati gli eseguibili, il terminale in cui agisce l’encoder darà il seguente output, che
varia anche in base all’MP3 utilizzato:
*******************************************************************************
** TRANScast Distributed Network Audio Content Provider
** Copyright (C) 2000 Nullsoft, Inc. All Rights Reserved.
** Use “sc_trans filename.conf” to specify a config file.
*******************************************************************************
[TRANSCast] DNAS/posix v0.400-LAME (Mar 4 2003) starting up…
[MAIN] PID: 5398
[MAIN] Loaded config from sc_trans.conf
[MAIN] Loading playlist (example.lst)
[MAIN] Found (2) entries in playlist
[MAIN] Playlist decoder thread starting
[MAIN] Streaming thread starting
[DECODE] Opened prova.MP3
[STREAM] Creating stream socket
[STREAM] Resolving stream host
[STREAM] Connected to host server
[CONFIG] WARNING: No InputSamplerate defined, assuming 44100!
[CONFIG] WARNING: No InputChannels defined, assuming 2!
Warning: input file samplerate is -1208428222 Hz, must be 44100!
Warning: input file samplerate is -1208428222 Hz, must be 44100!
Warning: input file samplerate is -1208428222 Hz, must be 44100!
Warning: input file samplerate is -1208428222 Hz, must be 44100!
Warning: input file samplerate is -1208428222 Hz, must be 44100!
Warning: input file samplerate is -1208428222 Hz, must be 44100!
Warning: input file samplerate is -1208428222 Hz, must be 44100!
Warning: input file samplerate is -1208428222 Hz, must be 44100!
[DECODE] Opened prova.MP3
[STREAM] Host server gave success (OK2)
[STREAM] Stream to localhost established
[STREAM] Sending stream information
[MAIN] Title Updated

Questa è la configurazione ottimale: il file MP3 chiamato prova è in trasmissione su


Internet. Si ha a disposizione il pannello d’amministrazione e la radio può avere
ascoltatori.
3.5.1. Sc_serv.conf
Il file sc_serv.conf è un file di configurazione, che contiene al suo interno diverse opzioni.
; Shoutcast Distributed Network Audio Server configuration file
; Copyright (C) 1998-2004 Nullsoft, Inc.
; All Rights Reserved.
; Last modified Mar 17 2004
; If you want to manage multiple configurations, just copy
; this file to another name, and run sc_serv with that name
; such as:
; sc_serv.exe sc_leet.conf

C’è da premettere che, in questo file, ogni riga che comincia con un punto e virgola è un
commento. Detto ciò, questa prima parte è una presentazione ed un avviso della possibilità
di manipolare più file di configurazione.
; MaxUser. The maximum number of simultaneous listeners allowed.
; Compute a reasonable value for your available upstream bandwidth (i.e. if
; you have 256kbps upload DSL, and want to broadcast at 24kbps, you would
; choose 256kbps/24kbps=10 maximum listeners.) Setting this value higher
; only wastes RAM and screws up your broadcast when more people connect
; than you can support.
MaxUser=32

Questa sezione permette di modificare il numero massimo di utenze contemporanee.


; Password. While Shoutcast never asks a listener for a password, a
; password is required to broadcast through the server, and to perform
; administration via the web interface to this server. This server should
; consist of only letters and numbers, and is the same server your broadcaster
; will need to enter in the Shoutcast Source Plug-in for Winamp. THIS VALUE
; CANNOT BE BLANK.
Password=changeme

Questa sezione permette di modificare la password del server.


; PortBase. This is the IP port number your server will run on. The
; value, and the value + 1 must be available. If you get a fatal error when
; the DNAS is setting up a socket on startup, make sure nothing else on the
; machine is running on the same port (telnet localhost portnumber — if you
; get connection refused then you’re clear to use that port). Ports < 1024
; may require root privledges on *nix machines. The default port is 8000.
PortBase=8000

La porta utilizzata per trasmettere deve avere un valore superiore a 1024.


; LogFile: file to use for logging. Can be ‘/dev/null’ or ‘none’
; or empty to turn off logging. The default is ./sc_serv.log
; on *nix systems or sc_serv_dir\sc_serv.log on win32.
; Note: on win32 systems if no path is specified the location is
; in the same dir as the executable, on *nix systems it is in the
; current directory.
LogFile=sc_serv.log

In questa sezione si setta il nome del file di log. Non mettendo nessun nome in ambiente
*nix non si avrà file di log, mentre non settando una directory si avrà il posizionamento
nella directory corrente.
; RealTime displays a status line that is updated every second
; with the latest information on the current stream (*nix and win32
; console systems only)
RealTime=1

Settando ad 1 questa impostazione si avrà una “status line” con le informazioni sullo
stream in corso, aggiornata ogni secondo. Comoda, sempre utilizzata, ma consuma. Si può
disattivarla impostando 0.
; ScreenLog controls whether logging is printed to the screen or not
; on *nix and win32 console systems. It is useful to disable this when
; running servers in background without their own terminals. Default is 1
ScreenLog=1

Impostazioni di sicurezza in caso di server esterni; disabilita il controllo dei log dallo
schermo, nel pannello di amministrazione avanzato.
; ShowLastSongs specifies how many songs to list in the /played.html

; page. The default is 10. Acceptable entries are 1 to 20.


ShowLastSongs=10

Setta il numero di canzoni che si vedranno nella dietrologia della radio. Ovvero nel file
http://ip:numeroporta/played.html. Si possono settare da 1 a 20 canzoni al massimo.
; TchLog decides whether or not the DNAS logfile should track yp
; directory touches. Adds and removes still appear regardless of
; this setting.
; Default is yes
; TchLog=yes

Come si può vedere, questa opzione è commentata. Essa permette di eliminare nei file di
log i TOUCH che si hanno periodicamente dal server delle pagine gialle di Shoutcast. Se i
file log sono molto lunghi, in caso di trasmissioni continuate può essere comodo togliere
informazioni inutili.
; WebLog decides whether or not hits to http:// on this DNAS will
; be logged. Most people leave this off because the DSP plug-in
; uses http:// calls to update titles and get the listener count,
; which takes up a lot of log space eventually. If you want to
; see people making hits on your admin.cgi or index pages, turn
; this back on. Note that this setting does NOT affect XML stats
; counters for hits to http:// pages.
; Default is no.
; WebLog=no

Anche questa opzione è commentata. Weblog permette di visualizzare nei log anche chi
accede al pannello di amministrazione. È un’opzione disattivata di default. Se si desidera
un controllo maggiore basta abilitarla, ma i log aumenteranno notevolmente di volume.
; W3CEnable turns on W3C Logging. W3C logs contain httpd-like accounts
; of every track played for every listener, including byte counts those listeners
; took. This data can be parsed with tools like Analog and WebTrends, or given
; to third parties like Arbitron and Measurecast for their reporting systems.
; Default is Yes (enabled).
W3CEnable=Yes

Questa opzione abilita il logging W3C, ovvero un log che tiene conto delle canzoni
ascoltate da ciascun ascoltatore, dei byte trasmessi e di altre info, tutte ovviamente in un
formato http-like. È settato a yes di default.
; W3CLog describes the name of the logfile for W3C logging. Default logfile is
; sc_w3c.log, in the same directory wherever the DNAS gets started from.
W3CLog=sc_w3c.log

Indica la posizione del file di log W3C.


; SrcIP, the interface to listen for source connections on (or to make relay
; connections on if relaying). Can and usually will be ANY or 127.0.0.1
; (Making it 127.0.0.1 will keep other machines from being able to
; broadcast using your Shoutcast server )
SrcIP=ANY

Questa opzione seleziona l’IP che può trasmettere dal vostro server. Di default è ANY:
ovvero, tutti possono utilizzare il vostro server per streammare. Se viene settato 127.0.0.1
verrà mantenuta la possibilità per tutti di effettuare streaming dal server. Settare un IP
particolare permette di avere una sola fonte possibile di streaming.
; DestIP, IP to listen for clients on (and to contact yp.Shoutcast.com)
; can and usually will be be ANY. If your machine has multiple IP addresses,
; set this to the one you want it to be accessed by.
DestIP=ANY

Al contrario di quello che si crede, questa opzione non permette di selezionare quali client
possono ascoltare, ma seleziona quale IP sarà raggiungibile connettendosi a quel server.
Solitamente si setta ad ANY proprio perché così si ha la possibilità di connettersi a
qualsiasi macchina utilizzi il server. Settarne uno per avere maggiore sicurezza.
; Yport, port to connect to yp.Shoutcast.com on. For people behind caching
; webproxies, change this to the alternate port (666 is what it might be,
; check www.Shoutcast.com if you have problems). Otherwise, leave this at 80.
; We’re actively working on re-opening port 666, but as of release the only
; working port is port 80.
Yport=80

Opzione che indica attraverso quale porta deve connettersi il server per avere contatti con
il sito delle pagine gialle. Attualmente è disponibile soltanto la porta 80.
; NameLookups. Specify 1 to perform reverse DNS on connections.
; This option may increase the time it takes to connect to your
; server if your DNS server is slow. Default is 0 (off).
NameLookups=0

Questa opzione abilita o disabilita il reverse DNS. Disabilitata di default.


; RelayPort and RelayServer specify that you want to be a relay server.
; Relay servers act as clients to another server, and rebroadcast.
; Set RelayPort to 0, RelayServer to empty, or just leave these commented
; out to disable relay mode.
; RelayPort=8000
; RelayServer=192.168.1.58

Queste impostazioni sono da decommentare nel caso in cui si voglia fare da relay per
un’altra radio, altrimenti sono da lasciare commentate.
; AdminPassword. This password (if specified) changes the
; behavior of Password to be a broadcast-only password, and
; limits HTTP administration tasks to the password specified
; here. The broadcaster, with the password above, can still
; log in and view connected users, but only the AdminPassword

; will grant the right to kick, ban, and specify reserve hosts.
; The default is undefined (Password allows control for both
; source and admin)
; AdminPassword=adminpass

Questa impostazione permette di creare una password di amministrazione che dia una
maggiore sicurezza a chi deve svolgere attività di ban e di reserve IP nel pannello di
amministrazione avanzato. È commentata (e quindi disabilitata) di default.
; AutoDumpUsers controls whether listeners are disconnected if the source
; stream disconnects. The default is 0.
AutoDumpUsers=0

L’opzione disconnette tutti gli ascoltatori dal server se la sorgente non invia più il flusso
audio. È disattivata di default.
; AutoDumpSourceTime specifies how long, in seconds, the source stream is
; allowed to be idle before the server disconnects it. 0 will let the source
; stream idle indefinately before disconnecting. The default is 30.
AutoDumpSourceTime=30

Tempo di sopravvivenza della connessione con il server quando la sorgente crasha.


; ContentDir specifies the directory location on disk of where to stream
; on-demand content from. Subdirectories are supported as of DNAS 1.8.2.
; Default is ./content, meaning a directory named content in the same directory
; as where sc_serv was invoked from.
; ContentDir=./content

Identifica una directory di contenuti statici.


; IntroFile can specify a MP3 file that will be streamed to listeners right
; when they connect before they hear the live stream.
; Note that the intro file MUST be the same samplerate/channels as the
; live stream in order for this to work properly. Although bitrate CAN
; vary, you can use ‘%d’ to specify the bitrate in the filename
; (i.e. C:\intro%d.MP3 would be C:\intro64.MP3 if you are casting at 64kbps).
; The default is no IntroFile
; IntroFile=c:\intro%d.MP3

Esiste la possibilità di trasmettere un brano di presentazione ogni qual volta qualcuno si


connetta alla radio, in modo che, prima di ricevere il flusso vero e proprio, si riceva questo
file. Di default questa opzione è commentata. Si ha anche la possibilità di settare una
variabile [%d] nel nome del file, in modo da potere separare file a vari bitrate in caso di
streaming multipli.
; BackupFile can specify a MP3 file that will be streamed to listeners over
; and over again when the source stream disconnects. AutoDumpUsers must be
; 0 to use this feature. When the source stream reconnects, the listeners
; are rejoined into the live broadcast.
; Note that the backup file MUST be the same samplerate/channels as the
; live stream in order for this to work properly. Although bitrate CAN
; vary, you can use ‘%d’ to specify the bitrate in the filename
; (i.e. C:\backup%d.MP3 would be C:\backup32.MP3 if you are casting at 32kbps).
; The default is no BackupFile
; BackupFile=C:\intro%d.MP3

È una delle opzioni paracadute per tutte le radio che intendano avere un unico server e
molte sorgenti interscambiabili. Questa opzione permette di settare un file di backup con
le stesse modalità del file di intro prima spiegato; al contrario di quello, questo file verrà
trasmesso solo quando la sorgente si disconnette dal server, e viene ripetuto più volte
finché non si ha di nuovo una sorgente. Utilissima opzione se il file MP3 ha un testo del
tipo: “Attendere prego…ci stiamo riconnettendo alla radio”.
; TitleFormat specifies a format string for what title is sent to the listener.
; For example, a string of ‘Justin Radio’ forces the title ‘Justin Radio’ even
; when the source changes the title. You can use up to one ‘%s’ in the string

; which lets you contain the title from the source. For example, if your
; TitleFormat is ‘Justin Radio: %s’, and the source plug-in’s title is
; ‘Billy plays the blues’, then the net title is
; ‘Justin Radio: Billy plays the blues’. Note: only works on non-relay servers.
; The default is no format string.
; TitleFormat=Justin Radio: %s

Questa opzione permette di modellare il formato titoli visualizzato nei player a proprio
piacimento.
; URLFormat specifies a format string for what URL is sent to the listener.
; Behaves like TitleFormat (see above).
; The default is no format string.
; URLFormat=http://www.server.com/redirect.cgi?URL=%s

Lo stesso comportamento di TitleFormat, ma in questo caso si considera un URL.


; PublicServer can be always, never, or default (the default, heh)
; Any setting other than default will override the public status
; of the source plug-in or of a Shoutcast server that is being relayed.
PublicServer=default

Il server può essere pubblico sempre, mai o in dipendenza dalla sorgente.


; AllowRelay determines whether or not other Shoutcast servers will be
; permitted to relay this server. The default is Yes.
AllowRelay=Yes

Opzione che permette di avere o non avere relay per la propria radio.
; AllowPublicRelay, when set to No, will tell any relaying servers not
; to list the server in the Shoutcast directory (non-public), provided
; the relaying server’s Public flag is set to default. The default is
; Yes.
; AllowPublicRelay=Yes; to list the server in the Shoutcast directory (non-public), provided
; the relaying server’s Public flag is set to default. The default is
; Yes.
AllowPublicRelay=Yes

Opzione che consente di avere relay pubblici oppure no.


; MetaInterval specifies how often, in bytes, metadata sent.
; You should really leave this at the default of 8192, but the option is
; provided anyway.
MetaInterval=32768

Quantità di metadata inviati insieme ai dati. Il default è 8 Kb.


3.5.2. Sc_trans.conf
; Sample sc_trans/0.35-j config file
; j.frankel 12/05/00
; t.pepper 10/31/00
; (relays not supported, yo)
;
; sc_trans operates in one of two modes, either reading MP3s off disk, decoding,
; re-encoding, and then broadcasting them, or relaying from a Shoutcast server,
; transcoding to a lower bitrate, and broadcasting to a new server.

Il programma encoder non fa altro che convertire (codificare) MP3 ai fini di ottenere un
flusso audio ad una frequenza e ad un bitrate settabile, in modo che possa essere
indirizzato ad un server (Shoutcast).
; sc_trans accepts the following signals:
; HUP – flush logfiles (close and reopen) — will make console logging stop
; WINCH – jump to next song
; USR1 – reload playlist off disk (will not interrupt current playing stream)
; USR2 – toggle shuffle on/off
; TERM – normal sc_trans shutdown (clean).

Questo encoder accetta (e ritrasmette) i seguenti segnali:


♦HUP: ripristina i file di log;

♦WINCH: cambia canzone;

♦USR1: ricarica la playlist senza interrompere;

♦USR2: abilita o disabilita la modalità random dei brani;

♦TERM: segnale di chiusura ordinata del server.


; PlaylistFile (required EVEN IF RELAYING) – playlist file (to create, use
; find /path/to/MP3/directory -type f -name “*.MP3” > playlist_filename.lst
PlaylistFile=example.lst

In questa opzione si setta il file che fungerà da playlist. In questo caso, example.lst.
; ServerIP/ServerPort are the target server to send to
ServerIP=myserver.com
ServerPort=8000

Queste opzioni rappresentano l’indirizzo del server da utilizzare. Settare ServerIP con
l’indirizzo IP del server e in ServerPort il numero della porta.
; Password is the password on the sc_serv you’re sending to.
Password=changeme

Inserire una password che coincida con quella del server.


; StreamTitle/URL/Genre define the data that appears on the directory and in the
; stream info.
StreamTitle=My Gay Son
StreamURL=http://mygayson.com
Genre=genres go here

Oltre che per manifestare la simpatia dei produttori del software, queste opzioni sono utili
per la personalizzazione della vostra radio. Tutto quello che si scrive per le tre opzioni sarà
visibile all’interno del pannello di amministrazione.
; Logfile optionally denotes a text file to log sc_trans to. a kill -HUP
; will force a close and re-open of this file (but will also cease logging to
; the console)
LogFile=sc_trans.log

Indica il nome del file di log e come si fa a riflusharlo tramite un segnale.


; Shuffle the playlist
Shuffle=1

Modalità random? Si = 1 No = 0.
; Bitrate/SampleRate/Channels recommended values:
; 8kbps 8000/11025/1
; 16kbps 16000/11025/1
; 24kbps 24000/22050/1
; 32kbps 32000/22050/1
; 64kbps mono 64000/44100/1
; 64kbps stereo 64000/22050/2
; 96kbps stereo 96000/44100/2
; 128kbps stere0 128000/44100/2
Bitrate=80000
SampleRate=44100
Channels=1
; Quality is from 1-10. 1 is best, 10 is fastest.
Quality=1

Queste opzioni settano il bitrate, il SampleRate, il numero di canali e la qualità.


; Mode=0 for none, 1 for 100/100->100/0, 2 for 0/100->100/0
CrossfadeMode=1
; Length is ms.
CrossfadeLength=8000

Modalità di fading da una canzone ad un’altra.


Se crossfademode è impostato a 0 non c’è fading. Se è impostato ad 1 si ha un fading in
uscita, se è impostato a 2 sia in entrata che in uscita. Crossfadelenght indica la durata in
millisecondi del fading.
; UseID3 = 0

Scegliere se usare (1) o non usare (0) i tag ID3 dei brani MP3 in playlist. Di default no.
; Public determines whether or not this station will show up in the directory
Public=1

Opzione specchio della make this server public su Windows. Se si vuole essere visibili
sulle pagine gialle di Shoutcast basta settare 1. Altrimenti, 0. Di default acceso.
; Put stuff here for user interaction (AOL IM, ICQ, IRC)
AIM=AIMHandle
ICQ=
IRC=Shoutcast

Settare al posto delle opzioni predefinite degli account AIM, ICQ e il canale IRC di
riferimento. Se queste non ci sono il campo può essere lasciato vuoto.
3.5.3. Example.lst
# the playlist contains one line per song file you wish to stream. the paths
# should be absolute.

Ogni file MP3 deve essere espresso da una sola riga all’interno della lista, e il suo
riferimento deve essere assoluto.
# if shuffle is off, the songs will play in order.

Se l’opzione di shuffle è disabilitata, le canzoni saranno trasmesse nell’esatto ordine in cui


sono scritte qui.
# the playlist is read once at startup, and cached to memory. you may update
# the playlist in a running process by sending a kill -USR1. The next track
# to play after the one currently playing will be from the new playlist.
La playlist viene caricata una volta all’avvio e mantenuta in memoria. Si può aggiornare la playlist mantenendo
accesi encoder e server inviando il segnale kill -USR1. La canzone successiva all’update sarà la prima della nuova
playlist.
# on Linux, you may specify a playlist item of DSP:/dev/soundcard, where soundcard
# is the name of your audio device. It’s usually /dev/audio. doing so will allow
# you to broadcast from a line input feed instead of MP3s on disk.

Su Linux si può specificare come elemento della playlist direttamente la scheda audio.
Questo permette di utilizzare il server Linux con qualsiasi programma audio, o di
utilizzare strumenti esterni collegati alla line in.
# the playlist ignores the first valid line. Don’t ask why.
# Your playlist must have at least 2 entries. if you only want to stream one file
# over and over again, then list it twice, including DSP sources.

Il file lista ignora la prima riga utile. Questo non è vero se è impostata la modalità shuffle,
ma in caso contrario rappresenta un problema. Per ovviare, basta scrivere due volte in lista
la prima canzone.
# the following 2 lines are sample playlist lines. you should replace them with
# actual MP3 files, being sure to adhere to all the content guidelines set forth in
# the .conf file!

Le due linee dopo queste direttive indicano i file di prova che si trovano ad esempio.
4. Icecast
Icecast è un server di streaming realizzato da Xiph.Org Foundation e rilasciato con licenza
GNU General Public License. Icecast supporta i formati Vorbis e Theora usando il
protocollo HTTP e i formati MP3, AAC e NSV con il protocollo ICY di Shoutcast.
Le piattaforme supportate da Icecast sono:
♦Linux

♦FreeBSD

♦OpenBSD

♦Solaris

♦Windows NT

♦Windows 2000

♦Windows XP.

4.1. Impostazioni principali


Ciascun server Icecast può ospitare più flussi audio, comunemente detti mountpoint,
ciascuno contenente un diverso tipo di contenuti. Un mountpoint è un nome univoco sul
server che identifica un particolare stream. Somiglia ad un filename, come /stream.ogg.
Un ascoltatore può ascoltare un solo mountpoint alla volta (ed è anche logico). Questo
significa che si può avere un singolo server Icecast che contiene più flussi con contenuti
differenti ma anche con lo stesso contenuto e differenti bitrate, codifiche e qualità. In
questo caso ogni flusso avrà un mountpoint diverso.
Su un sistema Unix, dopo avere installato il software Icecast2, all’interno della cartella di
installazione saranno presenti tre directories: Conf, Admin e Logs.
♦Conf: contiene il file di configurazione di Icecast (Icecast.xml) che definisce tutti i
parametri di funzionamento del server;
♦Admin: contiene dei file xslt che sono usati per creare un front end sul web per
l’amministrazione del server;
♦Logs: directory vuota che può contenere tutti i file di log di Icecast.

4.1.1. Icecast.xml
<hostname> - Ip o nome DNS dell’host su cui risiede il server.
<source-password> - password di autenticazione della sorgente
<admin-password> - password di autenticazione all’interfaccia amministrativa
<listen-socket> indica la porta su cui riceve il server.
<logdir> - directory dove verranno posizionati i file di log.
<webroot> - directory per i contenuti non di amministrazione
<adminroot> - directory per i file xslt di amministrazione.

Nella maggior parte dei casi non è necessario cambiare le impostazioni delle cartelle
adminroot e webroot, perché vengono lette soltanto da Icecast, ma Icecast ha la necessità
di creare file nella cartella di log, per cui si può volere settare una particolare cartella.
Una volta modificato il file di configurazione, su Unix il server può essere fatto partire
con il comando Icecast -c /path/to/Icecast.xml.
Se non ci sono messaggi d’errore, allora è utile controllare il file error.log per vedere il
messaggio “server started” che apparirà similarmente così:
[2003-10-31 13:04:49] INFO main/main.c Icecast 2.3.0 server started

Le differenze rispetto alla riga appena presentata saranno normali.


Sicuramente cambierà il timestamp (non siamo certo nel 2003), ma quello che conta è che
il server sia inizializzato e che compaia la versione.
La reale attività del server può essere verificata visitando l’indirizzo
http://yourip:port/admin/stats.xml.
Verrà richiesto un username ed una password. L’username è sempre admin mentre la
password è quella impostata al campo admin-password. Se tutto è stato inserito
correttamente, si potrà vedere un albero XML che rappresenta le statistiche di Icecast. Una
volta inizializzato il server Icecast, si deve procedure alla configurazione della sorgente.
La sorgente necessita delle informazioni presenti ai campi listen-socket e source-
password, quindi dell’IP, della porta e della password.
Sarà necessario scegliere un mountpoint e specificarlo all’interno della sorgente. Tutti gli
stream Ogg Vorbis devono avere mountpoint che terminino in .ogg per permettere la
compatibilità con player vecchi o mal fatti. I flussi MP3, invece, non necessitano
generalmente di estensione finale. Non devono essere presenti spazi all’interno del nome
del mountpoint. Una volta configurata la sorgente, essa è in grado di collegarsi al server.
Per verificare la connessione tra le parti basta guardare, come detto precedentemente, il
file stats.xml.
A questo punto la radio è in funzione e gli ascoltatori potranno ascoltare semplicemente
aprendo l’URL corretto: http://yourip:port/mounpointyouspecified.m3u nel caso in cui si
volesse utilizzare il contenitore m3u (nomemountpoint.ogg.m3u) oppure
http://yourip:port/mounpoint.estensione nel caso in cui si volesse direttamente aprire il
flusso senza usufruire di un contenitore utile alla compatibilità con i player audio.
4.1.2. File di configurazione
Il file contiene diverse sezioni editabili. Queste sono:
♦Limits

♦Authentication

♦Stream Directory Settings

♦Misc Server settings

♦Relay settings

♦Mount Specific settings

♦File path settings

♦Logging
♦Security.

4.1.3. Limiti
<limits>
<clients>100</clients>
<sources>2</sources>
<queue-size>102400</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>65536</burst-size>
</limits>

♦Clients: rappresenta il numero massimo di ascoltatori che il server è tenuto a soddisfare, a


prescindere dal mountpoint e dai contenuti statici;
♦sources: indica il numero massimo di mountpoint;

♦queue-size: è la massima grandezza della coda. Un ascoltatore può temporaneamente


avere dei problemi di connettività (ad esempio per congestione) e allora si verrà a creare
una coda degli ascoltatori con un numero di byte sufficiente ad evitare un gran numero
di disconnessioni. Se la coda cresce oltre questo valore allora gli ascoltatori saranno
rimossi;
♦client-timeout: è il tempo massimo, in secondi, entro il quale il server aspetterà il client
prima di disconnetterlo in caso di problemi di connettività. Non viene usato;
♦header-timeout: è il tempo massimo, in secondi, entro il quale il server aspetterà il client
prima di disconnetterlo in caso di problemi di connettività;
♦source-timeout: è il tempo massimo, in secondi, entro il quale il server aspetterà la
sorgente prima di disconnetterlo in caso di problemi di connettività;
♦burst-on-connect: è un flag (1 indica il SI) che abilita l’invio iniziale di un quantitativo di
dati superiore per l’inizializzazione e l’invio di metadati;
♦burst-size: indica la grandezza di tali dati iniziali.

4.1.4. Autenticazione
<authentication>
<source-password>hackme</source-password>
<relay-user>relay</relay-user>
<relay-password>hackme</relay-password>
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>

♦Source-password: è la password di autenticazione delle sorgenti. Una sorgente che


volesse usufruire del server deve assolutamente utilizzare tale password;
♦relay-user: è l’username che deve avere un relay quando vuole ritrasmettere il server
principale. L’username impostato di default è “relay”;
♦relay-password: è la password che deve inviare un relay per ricevere la lista degli stream
ritrasmissibili;
♦admin-user/admin-password: sono le credenziali per le funzioni amministrative quali ad
esempio l’accesso alle statistiche oppure l’uso dell’interfaccia web di amministrazione.
4.1.5. Impostazioni delle pagine gialle
<directory>
<yp-URL-timeout>15</yp-URL-timeout>
<yp-URL>http://dir.xiph.org/cgi-bin/yp-cgi</yp-URL>
</directory>

♦Questa sezione contiene tutte le impostazioni per la visualizzazione del flusso all’interno
delle directory di Icecast2. Ci possono essere più copie della sezione directory per
inserimenti contemporanei in più directory.
♦Yp-URL-timeout: rappresenta il massimo valore in secondi che il server Icecast2 aspetterà
prima di chiudere il telefono in faccia ad un server directory che non risponde;
♦Yp-URL: è l’URL del server directory che Icecast tenterà di contattare.

4.1.6. Altre impostazioni


<hostname>localhost</hostname>
<location>earth</location>
<admin>icemaster@localhost</admin>
<fileserve>1</fileserve>
<server-id>Icecast 2.3</server-id>

♦Hostname: è il nome del server che fornisce il servizio. Normalmente è un indirizzo IP,
che deve essere accessibile; per cui, meglio evitare di usare localhost;
♦location: indica la posizione geografica del server di streaming;

♦admin: permette di inserire informazioni sul responsabile del server di streaming, ad


esempio un indirizzo mail o un numero di telefono. Sarà visibile sull’interfaccia web;
♦fileserve: è un flag che consente di fornire contenuti statici. Tutti i file saranno forniti
relativamente all’indirizzo specificato in paths e webroot. Di default l’opzione è
abilitata;
♦server-ID: è una opzione per sovrascrivere l’identificativo standard di Icecast.
L’identificativo Standard è Icecast seguito dal numero di versione, questa opzione
permette di scrivere qualsiasi altra cosa.
4.1.7. Socket in ascolto
L’esempio seguente mostra come definire una semplice socket per il server Icecast.
<listen-socket>
<port>8000</port>
</listen-socket>

Questo esempio è il più semplice possibile, estendibile con altri campi, quali ad esempio
<bind-address> per indicare l’indirizzo d’ascolto del server. Il settaggio di questo campo,
essendo non particolarmente utile nella grande maggioranza dei casi, genera spesso molta
confusione. Si può aggiungere anche il campo <ssl>, un flag che informa che il server
utilizzerà una connessione sicura, ad esempio per l’accesso all’interfaccia di
amministrazione.
L’esempio successivo mostra un’estensione della definizione della socket per il
funzionamento delle sorgenti basate su shoutcast. Ci sono due problematiche da risolvere
per le sorgenti shoutcast: la prima è il mountpoint e la seconda è la necessità della seconda
porta (la porta di controllo). Per fare ciò, basta settare dei campi aggiuntivi alla socket.
<listen-socket>
<port>8000</port>
<shoutcast-mount>/live.MP3</shoutcast-mount>
</listen-socket>

Come specificato prima, la porta settata viene allocata, ma questa volta la presenza del tag
<shoutcast-mount> implica la creazione di una seconda socket della quale il numero di
porta è un numero più grande rispetto alla porta definita. Ciò informa Icecast sui
mountpoint che saranno disponibili alle sorgenti shoutcast. Con questo approccio è
possibile permettere a più sorgenti shoutcast di connettersi allo stesso momento.
<shoutcast-mount>/live.nsv</shoutcast-mount>
<!— You may have multiple <listen-socket> elements —>
<listen-socket>
<port>8000</port>
</listen-socket>
<listen-socket>
<port>8001</port>
<shoutcast-compat>1</shoutcast-compat>
</listen-socket>

Possono essere configurate più socket per permettere al server Icecast di rispondere a
richieste su più interfacce di rete e su più porte.
Se non viene specificato un bind address per una particolare socket, allora si utilizzeranno
tutte le interfacce disponibili, compresa IPV6, se presente. Per la maggior parte degli
utenti queste opzioni non rappresentano comunque un interesse.
♦Port: indica la porta TCP utilizzata;

♦bind-address: indica un IP opzionale che può essere usato per indicare una specifica
scheda di rete. Se non viene compilato il campo, tutte le interfacce verranno considerate
al momento della connessione di un client;
♦shoutcast-mount: indica un mountpoint opzionale settabile per essere usato quando un
client shoutcast-compatibile vuole connettersi. La definizione standard è /stream ma può
essere modificata aggiungendo eventualmente anche un’estensione. Definire questo
campo all’interno di una listen-socket permette ad Icecast di capire che questa porta e la
porta seguente devono essere si utilizzano per i client shoutcast-compatibili. Questo
approccio è alternativo allo shoutcast-compat che definisce implicitamente una seconda
socket e permette di specificare socket multiple usando differenti mountpoint per le
sorgenti shoutcast.
♦Shoutcast-mount, se fuori da un gruppo di comandi listen-socket, rappresenta il settaggio
globale del mountpoint da utilizzare;
♦shoutcast-compat: è un flag opzionale che indica quale porta opererà in modalità
shoutcast compatibile. A causa delle grandi differenze tra i protocolli di connessione
delle sorgenti, se si vuole utilizzare uno degli shoutcast dj tools, serve configurare
almeno uno socket come shoutcast compatibile. Quando una socket è settata in questa
modalità, solo sorgenti shoutcast sono abilitate a collegarsi a questa porta. Gli ascoltatori
possono connettersi a tutte le porte definite che non abbiano questo flag. Inoltre, per una
corretta compatibilità con i DSP, si deve definire una socket che abbia come numero
porta un numero meno rispetto alla porta definita come shoutcast-compat. Questo
significa che se si definisce la porta 8001 come shoutcast-compat, allora occorrerà
definire la porta 8000 e questa non potrà essere definita come shoutcast-compat.
4.1.8. Ripetitori
Questa sezione contiene le impostazioni per il relay.
I relay sono implementati usando un sistema pull dove il server che riceve il segnale si
connette al server principale come se fosse un ascoltatore. Ci sono due modalità di
relaying, master server relay oppure specific mountpoint relay.
MASTER RELAY
Un relay master server è supportato soltanto tra server Icecast2 e viene usato per rilanciare
un certo numero di mountpoint da un server Icecast 2 remoto.
<master-server>127.0.0.1</master-server>
<master-server-port>8001</master-server-port>
<master-update-interval>120</master-update-interval>
<master-username>relay</master-username>
<master-password>hackme</master-password>
<relays-on-demand>0</relays-on-demand>

Il diagramma seguente mostra i concetti basilari d’utilizzo di un master relay. Il server


slave è configurato con <master-server>, <master-server-port> e le altre opzioni, mentre il
master è il server Icecast dal quale lo slave prenderà i mountpoint e li ritrasmetterà.
Usando la modalità master server relay, tutti i mountpoint non nascosti sul server master
possono essere ritrasmessi con questo meccanismo.
Un server configurato come Master Server ritrasmette specificando i campi <master-
server>, <master-server-port>,<master-update-interval>,<master-password> all’interno
del file di configurazione.
Il server sorgente non necessita di nessuna particolare configurazione:
♦master-server: campo che contiene l’IP del server che contiene i mountpoint che
dovranno essere ritrasmessi;
♦master-server-port: campo che contiene la porta del server che contiene i mountpoint che
dovranno essere ritrasmessi;
♦master-update-interval: rappresenta l’intervallo in secondi tra una richiesta di elenco
mountpoint e la successiva. Consente di verificare se nuovi mountpoint sono stati
inseriti a run-time;
♦master-username: username necessario per effettuare l’autenticazione per la richiesta di
elenco mountpoint. Se non è specificato allora indicare “relay”;
♦master-password: username necessario per effettuare l’autenticazione per la richiesta di
elenco mountpoint;
♦relays-on-demand: impostazioni globali per i relay on-demand. Dato che non ci sono
opzioni per i singoli mountpoint quando si utilizza una modalità master server relay, si
potrebbe desiderare che i relay ritrasmettano il flusso principale quando c’è almeno un
ascoltatore connesso; questo previene il consumo di banda quando nessuno è in ascolto.
SPECIFIC MOUNTPOINT RELAY
Se si dovessero trasmettere soltanto alcuni mountpoint, allora è possibile configurare
Icecast con la modalità specific mountpoint relay.
Il diagramma seguente mostra come utilizzare questa modalità. In questo caso, il server
Icecast che deve ritrasmettere è configurato con le impostazioni relay e richiederà i
mountpoint specificati e solo loro.
Specific mountpoint relays può essere configurato per ritrasmettere da un server Icecast 2,
ma anche da un server Icecast 1.x e Shoutcast.
Un server è configurato con la modalità specific mountpoint server relay specificando un
gruppo <relay> nel file di configurazione, per ciascun mountpoint da ritrasmettere. Il
server che deve essere ritrasmesso non necessita di configurazioni particolari:
<relay>
<server>127.0.0.1</server>
<port>8001</port>
<mount>/example.ogg</mount>
<local-mount>/different.ogg</local-mount>
<username>joe</username>
<password>soap</password>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
<on-demand>1</on-demand>
</relay>

♦server: indica l’indirizzo IP del server da ritrasmettere;

♦port: indica la porta TCP del server da ritrasmettere;

♦mount: il mountpoint da ritrasmettere. Se si ritrasmette uno stream shoutcast, il nome


dovrebbe essere ‘/’ o ‘/;nome;
♦local-mount: il nome da utilizzare per il mountpoint locale. Di default si utilizza il nome
del mountpoint sul server remoto, ma non è obbligatorio;
♦username: la sorgente del flusso potrebbe richiedere di autenticarsi: in questo caso qui si
indica l’username;
♦password: qui si indica la password;

♦relay-shoutcast-metadata: se si ritrasmette uno stream shoutcast, si può volere specificare


l’indicatore di metadata shoutcast per trasmettere questi dati che sono parte integrante
del flusso shoutcast. (1 = abilitato, 0 = non abilitato). Di default è abilitato;
♦on-demand: esattamente come si è già visto nel caso di master server relaying, il
mountpoint verrà ritrasmesso soltanto in caso di effettivo ascolto. (1 = abilitato, 0 = non
abilitato).
4.1.9. Mount Specific Settings
<mount>
<mount-name>/example-complex.ogg</mount-name>
<username>othersource</username>
<password>hackmemore</password>
<max-listeners>1</max-listeners>
<max-listener-duration>3600</max-listener-duration>
<dump-file>/tmp/dump-example1.ogg</dump-file>
<intro>/intro.ogg</intro>
<fallback-mount>/example2.ogg</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
<charset>ISO8859-1</charset>
<public>1</public>
<stream-name>My audio stream</stream-name>
<stream-description>My audio description</stream-description>
<stream-URL>http://some.place.com</stream-URL>
<genre>classical</genre>
<bitrate>64</bitrate>
<type>application/ogg</type>
<subtype>vorbis</subtype>
<hidden>1</hidden>
<burst-size>65536</burst-size>
<MP3-metadata-interval>4096</MP3-metadata-interval>
<authentication type=“htpasswd”>
<option name=“filename” value=“myauth”/>
<option name=“allow_duplicate_users” value=“0”/>
</authentication>
<on-connect>/home/Icecast/bin/source-start</on-connect>
<on-disconnect>/home/Icecast/bin/source-end</on-disconnect>
</mount>

Questa sezione contiene le impostazioni applicabili solo ad uno specifico mountpoint e


applicabili ad uno stream, a prescindere che esso sia un relay o un client. Il motivo della
definizione del mount è di avere informazioni certe che possano sovrascrivere
impostazioni globali o di default o impostate dallo stream.
Un mount non necessita di essere impostato per ciascuna sorgente, sebbene si possano
volere specificare impostazioni quali il numero massimo di ascoltatori oppure un user e
una password specifica.
Come regola generale, basta definire soltanto quello di cui si necessita; tuttavia, ciascuna
definizione di mountpoint necessita almeno del nome. Cambiamenti apportati alla maggior
parte di queste impostazioni avranno applicazione tramite un file di configurazione riletto
anche su stream attivi; ciononostante, alcune applicazioni avverranno soltanto quando lo
stream comincia o termina:
♦mount-name: il nome del mountpoint al quale si applicano queste impostazioni;

♦username: valore opzionale che imposterà l’username che una sorgente deve usare per
connettersi usando questo mountpoint. Non occorre settare questo valore, tranne nei casi
in cui non si sia sicuri che la sorgente possa essere configurata per inviare un username
diverso da “source”. Se questo valore non è presente, allora l’username è proprio
“source”;
♦password: valore opzionale che setter la password che una sorgente dovrà usare per
connettersi utilizzando questo mountpoint;
♦max-listeners: valore opzionale che setter il numero massimo di ascoltatori che possono
stare contemporaneamente in ascolto;
♦max-listener-duration: valore opzionale che setter la durata massima di una singola
connessione da parte di un ascoltatore. Il componente Auth può sovrascrivere questo
valore;
♦dump-file: valore opzionale che setterà un file dump dello stream che utilizza questo
mountpoint;
♦intro: valore opzionale che specificherà il file che verrà trasmesso ai nuovi ascoltatori al
momento della connessione ma prima della trasmissione del reale flusso audio. Occorre
essere certi che il formato del file matchi esattamente il formato dello stream. Il file
specificato viene caricato all’interno della webroot prima di essere aperto;
♦fallback-mount: questo valore opzionale specifica un mountpoint d’appoggio al quale i
client verranno reindirizzati qualora la sorgente si disconnetta o non trasmetta nel
momento in cui un ascoltatore si connette. Solo un mountpoint opzionale può essere
inserito all’interno di ciascun mountpoint e deve fare riferimento ad un mountpoint
presente sullo stesso server e che trasmetta con lo stesso formato di streaming. Se i
client non possono essere reindirizzati ad un altro mountpoint a causa della mancanza
del parametro fallback-mount, oppure perché il mountpoint d’appoggio non è
disponibile, allora verranno disconnessi. Nel caso in cui un mountpoint d’appoggio
avesse a sua volta un mountpoint d’appoggio si potrebbe configurare un percorso a
cascata, che può avvenire senza problemi e non ha limiti di profondità. Un mountpoint
d’appoggio può indicare un file che è localizzato all’interno della webroot. Questa
opzione è utile per mandare in onda un file preregistrato in caso di problemi con il flusso
audio. Il file si ripeterà finché l’ascoltatore non si disconnette o lo stream torna attivo e
riprende l’ascoltatore. Per convenzione, il formato del file deve coincidere con il
formato dello stream. La mancata coincidenza delle due cose può causare dei problemi
di trasmissione. Da notare che il file d’appoggio non ha una durata massima; per cui, va
posta attenzione alla sua ritrasmissione. I file d’appoggio sono comodi su server slave
ma non su server master, perché impostare un file del genere su un master server
potrebbe consumare un quantitativo di banda spropositato e causare potenziali
disconnessioni;
♦fallback-override: quando viene abilitata, questa opzione permette ad una sorgente o ad
un relay di riportare gli ascoltatori di questo mountpoint all’ascolto della sorgente dal
mountpoint d’appoggio;
♦fallback-when-full: quando questa opzione viene impostata ad 1, si causerà che i nuovi
ascoltatori vengano reindirizzati al mountpoint d’appoggio quando il numero massimo
di ascoltatori viene raggiunto o superato;
♦no-yp (deprecated): questa opzione, obsoleta, previene che il mountpoint si pubblicizzi
sulle pagine gialle del servizio. Il valore di default è 0 così la pubblicizzazione sulle
pagine gialle può avvenire, ma chiaramente si può volerlo impedire. L’opzione è
sostituita da <public>;
♦charset: i formati non OGG, come MP3, spesso non hanno un set di caratteri definito
all’interno dei metadati inviati insieme al flusso. I produttori del software da sempre
hanno assunto che UTF8 sia il set predefinito per la sua compatibilità con molte lingue
tuttavia molte sorgenti assumono come set di caratteri Latin1 o lasciano come seti di
caratteri qualsiasi set definito dalla sorgente. Questa differenza causa un problema ai
server di directory, per cui i produttori adesso assumono Latin1 per gli stream non OGG.
Si può però specificare un set di caratteri diverso tramite questa opzione. Le sorgenti
possono anche specificare un set di caratteri come parametro, se lo desiderano;
♦public: il valore predefinito per questa impostazione è – 1, indicando che deve essere la
sorgente ad indicare se questo mountpoint debba pubblicizzarsi o meno. Impostando 0,
si evita a priori di pubblicizzarsi, mentre impostando 1 si forzerà il server a farlo. Se si
forza la pubblicizzazione si può avere la necessità di inserire dei dati aggiuntivi dato che
il server delle pagine gialle può rifiutare di pubblicizzare un’emittente se da questa
emittente riceve dati troppo esigui;
♦stream-name: settare questa opzione imporrà il nome dell’emittente o del flusso anche se
la sorgente ne specifica uno, anche diverso;
♦stream-description: settare questa opzione imporrà la descrizione dell’emittente o del
flusso anche se la sorgente ne specifica una, anche diversa;
♦stream-URL: settare questa opzione imporrà il nome del sito collegato all’emittente o al
flusso anche se la sorgente ne specifica uno, anche diverso;
♦genre: settare questa opzione imporrà il genere dell’emittente o del flusso anche se la
sorgente ne specifica uno, anche diverso;
♦bitrate: settare questa opzione imporrà il bitrate dell’emittente o del flusso anche se la
sorgente ne specifica uno, anche diverso. Il valore deve essere espresso in Kbps;
♦type: settare questa opzione imporrà il mime type dell’emittente o del flusso anche se la
sorgente ne specifica uno, anche diverso;
♦subtype: settare questa opzione imporrà il sottotipo dell’emittente o del flusso anche se la
sorgente ne specifica uno, anche diverso. Utile ad esempio nel caso di Vorbis/theora,
dove theora è il sottotipo;
♦burst-size: questa opzione permette di definire un burst-size che sovrascrive il valore
principale definito nell’area limits. Questo valore deve essere impostato in bytes;
♦MP3-metadata-interval: questa opzione specifica l’intervallo in bytes che deve
intercorrere tra un invio di metadata e il successive nel caso di stream compatibili con
shoutcast. Si applica soltanto ai nuovi ascoltatori che si connettono a questo mountpoint
e non nel caso in cui questo mountpoint funga in realtà da mountpoint d’appoggio. Il
valore predefinito è il valore del server oppure quello passato da un relay;
♦hidden: abilitando questa opzione si previene che il mountpoint venga mostrato sulle
pagine XSL. Un esempio classico è quando un relay locale viene configurato e non si
vuole fare vedere la sorgente del relay locale;
♦authentication: questa opzione specifica che il mountpoint richiederà l’autenticazione
degli ascoltatori. Attualmente, viene solo supportato uno schema di autenticazione
basato su un file. Gli utenti e le password criptate sono inserite all’interno di questo file,
separate da [:]. Tutte le richieste per questo mountpoint richiederanno l’inserimento di
user e password. Questi valori saranno passati in chiaro via HTTP (ad esempio:
http://user:password@stream:port/mountpoint.ogg). Gli user e le password autorizzate si
modificano tramite l’interfaccia di amministrazione. Un mountpoint configurato con
autenticazione mostrerà una chiave rossa accanto al nome del mountpoint sulle pagine di
amministrazione;
♦on-connect: l’opzione on-connect lancia un programma al momento della connessione
della sorgente. Viene passato un parametro (il nome del mountpoint attivato). Lo stream
non attende che lo script termini l’esecuzione. Questa opzione non è disponibile su
Win32;
♦on-disconnect: l’opzione on-connect lancia un programma al momento della
disconnessione della sorgente. Viene passato un parametro (il nome del mountpoint
disattivato). Lo stream non attende che lo script termini l’esecuzione. Questa opzione
non è disponibile su Win32.
4.2. Impostazioni di percorso
<paths>
<basedir>./</basedir>
<logdir>./logs</logdir>
<pidfile>./Icecast.pid</pidfile>
<webroot>./web</webroot>
<adminroot>./admin</adminroot>
<allow-ip>/path/to/ip_allowlist</allow-ip>
<deny-ip>/path_to_ip_denylist</deny-ip>
<alias source=“/foo” dest=“/bar”/>
</paths>

Questa sezione contiene i percorsi usati in vari ambiti con Icecat. Tutti i percorsi, tranne
gli alias, non devono terminare con un ‘/’:
♦basedir: questo percorso è utilizzato in abbinamento all’opzione chroot e specifica la
directory di base che è di pertinenza di chroot quando il server viene avviato. Questa
opzione non è implementata per Win32;
♦logdir: questo percorso specifica la directory di base per il logging. Sia il file error.log
che il file access.log saranno creati relativamente a questa directory;
♦pidfile: questo percorso specifica il file da scrivere all’avvio e da rimuovere allo
spegnimento. Il file contiene il process ID del processo Icecast. Può essere usato e letto
per inviare segnali;
♦webroot: questo percorso specifica la directory di base usata per tutte le richieste a file
statici. Questa directory può contenere tutte le tipologie di file standard (inclusi MP3 e
file ogg). Ad esempio se la webroot è settata come /var/share/Icecast2, ed arriva una
richiesta per il file http://server:port/MP3/stuff.mp, allora verrà fornito il file con
percorso /var/share/Icecast2/MP3/stuff.MP3;
♦adminroot: questo percorso specifica la directory di base per tutte le richieste di
amministrazione. In particolare, questa opzione è usata per mantenere gli script XSLT
usati per l’interfaccia web di amministrazione. La directory di amministrazione inclusa
nella distribuzione contiene questi file;
♦allow-ip: se specificata, questa opzione specifica la posizione di un file che contiene una
lista di indirizzi IP che saranno sempre autorizzati a connettersi ad Icecast. Questo può
essere utile nei casi in cui un server master funga esclusivamente da sorgente per dei
server slave. Il formato di questo file è semplice, un IP per riga;
♦deny-ip: se specificata, questa opzione specifica la posizione di un file che contiene una
lista di indirizzi IP che saranno sempre rigettati dal server. Si tratta di una impostazione
di sicurezza. Il format del file è sempre un IP per riga;
♦alias
source=“/foo” dest=“/bar”: gli alias sono usati per creare un modo di avere
mountpoint multipli che si riferiscono ad uno stesso mountpoint.
4.3. Diario di bordo
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<playlistlog>playlist.log</playlistlog>
<loglevel>4</loglevel>
<!— 4 Debug, 3 Info, 2 Warn, 1 Error —>
</logging>

Questa sezione contiene informazioni relative al logging di Icecast.


Attualmente ci sono due logfile generati da Icecast: il file error.log, dove sono contenuti
tutti i messaggi d’errore, ed il file access.log dove sono contenute tutte le richieste di
connessione.
Sulle piattaforme diverse da Win32, un segnale HUP può essere inviato ad Icecast per
riaprire il file dando la possibilità di muovere o rimuovere il file:
♦accesslog: all’interno del file indicato si troveranno tutte le richieste si effettua al server
Icecast2. Questo file è all’interno del percorso specificato dall’opzione <logdir>;
♦errorlog: tutti i messaggi generati da Icecast saranno trascritti all’interno di questo file.
Se il livello di logging è troppo alto, questo file potrebbe crescere rapidamente in
grandezza. Attualmente non è implementata una funzione di rotazione o cancellazione
dei vecchi messaggi;
♦playlistlog: all’interno di questo file, si terrà un elenco di tutti i metadata per ciascun
mountpoint. Il formato del file di log probabilmente cambierà nel tempo in attesa di un
formato standard. Attualmente il file è delimitato da “|” pipes. La scelta di utilizzo è
opzionale e il file può essere rimosso interamente dal file di configurazione;
♦logsize: questo valore, in kbytes, specifica la grandezza massima dei logfile. Quando il
file supera questo valore verrà rinominato in logfile.old o verrà aggiunto un timestamp al
file archiviato, se l’opzione logarchive è attivata;
♦logarchive: se è settata questa opzione, Icecast inserirà in coda al logfile un timestamp
quando si supera la grandezza massima del logfile. Se questa opzione è disabilitata il
comportamento sarà quello di rinominare il file in logfile.old, eventualmente
sovrascrivendo altri logfile già creati. L’opzione è disabilitata di default per permettere
ai trasmettitori che non sono preoccupati della grandezza crescente dei logfile;
♦loglevel: indica quali messaggi verranno registrati da Icecast. I messaggi sono
categorizzati in 4 categorie: Debug, Info, Warn ed Error.
La seguente mappatura consente di scegliere il valore appropriato da indicare in base alla
tipologia di messaggi che si desidera registrare:
♦loglevel = 4 – Debug, Info, Warn, Error

♦loglevel = 3 – Info, Warn, Error

♦loglevel = 2 – Warn, Error

♦loglevel = 1 – Error.

4.4. Impostazioni di sicurezza


<security>
<chroot>0</chroot>
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
</security>

Questa sezione contiene impostazioni di configurazione che possono essere usate per
migliorare la sicurezza di Icecast. Queste opzioni non sono supportate su Win32:
♦chroot: indicatore che specifica se verrà fatto un chroot() quando il server inizia a
funzionare. Il percorso è specificato dalla configurazione di <basedir>;
♦changeowner: questa sezione indica l’user ed il gruppo che amministrano il processo
Icecast quando parte. Questa opzione deve essere impostata con un valido user del
sistema.
4.5. Interfaccia di amministrazione di Icecast 2
Questa sezione contiene informazioni inerenti l’interfaccia di amministrazione di Icecast.
Attraverso questa interfaccia l’utente può modificare moltissime impostazioni del server.
Si possono visualizzare statistiche, trasferire ascoltatori da un mountpoint ad un altro,
disconnettere sorgenti, disconnettere ascoltatori e molte altre attività.
Ciascuna di queste funzioni richiede l’autenticazione http tramite un’appropriata coppia
username e password. Per funzioni specifiche di un mountpoint, si possono usare i campi
<admin-username> e <admin-password> specificati nel file di configurazione di Icecast,
oppure specificati per quel mountpoint.
Per le funzioni generali non legate ad un singolo mountpoint, si devono utilizzare le
credenziali di amministrazione.
4.5.1. Funzioni di amministrazione specifiche per mountpoint
Queste impostazioni di amministrazione sono specifiche per un mountpoint. Ciascuna di
esse richiede che venga specificato un mountpoint come input.
METADATA UPDATE
Questa funzione fornisce l’abilità ad una sorgente o ad una fonte esterna di aggiornare i
metadata per un particolare mountpoint.
http://192.168.1.10:8000/admin/metadata?mount=/
mystream&mode=updinfo&song=ACDC+Back+In+Black
FALLBACK UPDATE
La funzione fallback update fornisce ad una sorgente o ad una fonte esterna l’abilità di
modificare il fallback mountpoint per un mountpoint in particolare.
http://192.168.1.10:8000/admin/fallbacks?mount=/mystream.
ogg&fallback=/myfallback.ogg

LIST CLIENTS
La funzione list clients restituisce una lista dei client attualmente connessi ad uno
specifico mountpoint. I risultati sono forniti in XML.
http://192.168.1.10:8000/admin/listclients?mount=/mystream.ogg

MOVE CLIENTS (LISTENERS)


La funzione move clients (listeners) fornisce l’abilità di spostare gli ascoltatori attualmente
connessi da un mountpoint ad un altro. Questa funzione richiede due parametri: il
mountpoint di partenza e quello di destinazione. Dopo l’esecuzione della funzione, tutti gli
ascoltatori connessi verranno trasferiti al mountpoint di destinazione. Il mountpoint di
destinazione deve esistere ed essere attualmente occupato da una sorgente in funzione.
http://192.168.1.10:8000/admin/moveclients?mount=/mystream.ogg&destination=/mynewstream.ogg

KILL CLIENT (LISTENER)


La funzione kill client (listener) fornisce la possibilità di disconnettere un ascoltatore
specifico di un mountpoint. Gli ascoltatori sono identificati da un ID univoco che può
essere trovato tramite la funzione amministrativa “List Clients”. L’ID deve essere passato
come parametro della richiesta. Al termine dell’esecuzione del comando l’ascoltatore non
sarà più connesso al mountpoint.
http://192.168.1.10:8000/admin/killclient?mount=/mystream.ogg&id=21

KILL SOURCE
La funzione kill source fornisce la possibilità di disconnettere un particolare mountpoint
dal server. Il mountpoint disconnesso viene specificato tramite la variabile mount.
http://192.168.1.10:8000/admin/killsource?mount=/mystream.ogg

4.5.2. Funzioni generali di amministrazione


STATS
La funzione di amministrazione stats consente di interrogare le statistiche interne
mantenute dal server Icecast. Si tratta di quasi tutte le informazioni interne del server; ad
esempio, i mountpoint connessi, quante richieste da parte dei client sono state servite o
quanti ascoltatori per ciascun mountpoint sono disponibili tramite questa funzione di
amministrazione.
Questa funzione di amministrazione può essere invocata tramite l’indirizzo
http://server:port/admin/stats.xml, anche se questa
http://192.168.1.10:8000/admin/stats

LISTA DEI MOUNTPOINT


La funzione di amministrazione lista dei mountpoint fornisce la possibilità di vedere tutti i
mountpoint attualmente connessi.
http://192.168.1.10:8000/admin/listmounts

4.5.3. Interfaccia web di amministrazione


Come alternativa all’invocazione manuale di questi indirizzi è stata sviluppata
un’interfaccia web. Questa interfaccia fornisce le stesse funzioni che sono state
identificate e descritte prima, ma le presenta in un modo più gradevole all’utente.
L’interfaccia web di amministrazione è fornita con Icecast ed è all’interno della directory
admin, già pronta all’uso. Tutto quello che gli utenti devono fare è settare il percorso a
questa directory nel file di configurazione all’interno della variabile di configurazione
chiamata <adminroot>.
L’interfaccia web di amministrazione consta di una serie di file XSLT utilizzati per
visualizzare tutto il codice XML ottenuto tramite l’indirizzo dell’interfaccia di
amministrazione. Questo può essere cambiato e modificato in base alle esigenze
dell’utente. Si richiede una certa conoscenza del linguaggio XSLT e delle trasformazioni
da XML ad HTML per potere fare dei cambiamenti all’interno di questi script.
L’indirizzo principale dell’interfaccia web di amministrazione è il seguente:
http://192.168.1.10:8000/admin/stats.xml

Da questo indirizzo possono essere richiamate tutte le altre funzioni di amministrazione.


Sono ammesse modifiche ai file XSLT già esistenti all’interno della cartella admin, ma
non possono essere creati nuovi file.
La creazione di nuovi file XSLT così come modifiche dei file XSLT già esistenti è
ammessa all’interno della cartella web. I cambiamenti funzioneranno usando il documento
restituito da /admin/stats.xml.
Per vedere il documento XML applicato a ciascun XSLT di amministrazione basta
cambiare l’estensione da .xsl a .xml della richiesta (ad esempio /admin/listclients.xml)
Quindi, si può scrivere il file XSLT corrispondente.
4.6. Statistiche del server Icecast 2
La sezione statistiche contiene informazioni sulle statistiche del server, disponibili da
Icecast. Il seguente è un albero di statistiche XML di esempio, dal quale trarremo spunto.
<?xml version=“1.0”?>
<icestats>
<client_connections>13</client_connections>
<connections>14</connections>
<source_connections>1</source_connections>
<sources>1</sources>
<source mount=“/test.ogg”>
<artist></artist>
<audio_info>ice-samplerate=32000;ice-bitrate=Quality -1;ice-channels=1</audio_info>
<ice-bitrate>Quality -1</ice-bitrate>
<ice-channels>1</ice-channels>
<ice-samplerate>32000</ice-samplerate>
<listeners>0</listeners>
<public>0</public>
<title></title>
<type>Ogg Vorbis</type>
</source>
</icestats>

4.6.1. Statistiche generiche


Di seguito, le impostazioni delle statistiche generiche:
♦client-connections: una connessione client è fondamentalmente tutto quello che non
rappresenta una sorgente. Questa definizione include gli ascoltatori (non concorrenti, ma
cumulativi), tutti gli accessi a funzioni di amministrazione e ogni accesso ai contenuti
statici;
♦source-connections: rappresenta il numero di volte (cumulative e non concorrenti) in cui
una sorgente si è connessa ad Icecast;
♦connections: il numero totale di connessioni, siano esse clientelari o di sorgenti;

♦sources: il numero totale di sorgenti correntemente connesse al server (mountpoint).

4.6.2. Statistiche specifiche per una sorgente


Di seguito, le impostazioni delle statistiche specifiche per una sorgente:
♦artist: artista della canzone corrente (metadata inviati dalla sorgente);

♦title: titolo della canzone corrente (metadata inviati dalla sorgente);

♦audio-info: informazioni inerenti il bitrate, la frequenza di campionamento e la qualità del


flusso (settati dalla sorgente). È usato anche per le pagine gialle;
♦ice-bitrate, ice-samplerate, ice-channels: informazioni inerenti il bitrate, la frequenza di
campionamento e la qualità del flusso (settati dalla sorgente);
♦listeners: il numero di ascoltatori attualmente connessi;

♦public: opzione che indica se il mountpoint corrente è visibile alle pagine gialle di Icecast
(settato dalla sorgente);
♦type: tipologia del flusso.

4.7. Relaying di Icecast 2


Per relaying si intende il processo attraverso il quale un server riflette uno o più flussi di
un altro server remoto. I due server non devono necessariamente essere della stessa
tipologia (un server Icecast può effettuare il relaying di un server Shoutcast).
Il relaying è utilizzato per eliminare il problema banda e per distribuire ascoltatori su più
macchine fisiche diverse.
4.7.1. Tipologie di relays
Ci sono due tipologie di relay supportate da Icecast. La prima tipologia si ha quando sia il
server master sia lo slave sono due Icecast2. In questo caso può essere impostata la
modalità master-slave; basta quindi configurare successivamente il server slave con le
informazioni di connessione (IP e porta) del server master, in modo che il server slave
possa ritrasmettere tutti i mountpoint del master. Il server slave controllerà periodicamente
il server master per verificare l’eventuale inserimento di un nuovo mountpoint e, in tal
caso, ritrasmettere anche quello.
La seconda tipologia di relay è la single-broadcast. In questo caso il server slave è
configurato per ritrasmettere soltanto un mountpoint ben specifico. Per potere
ritrasmettere un flusso Shoutcast si deve utilizzare la modalità single broadcast e
specificare un mountpoint pari a “/”.
4.7.2. Creare un relay master-slave
Per potere settare un relay master-slave, entrambi i server devono essere Icecast2.
La seguente configurazione è presa ad esempio:
<master-server>192.168.1.11</master-server>
<master-server-port>8001</master-server-port>
<master-update-interval>120</master-update-interval>
<master-password>hackme</master-password>

In questo esempio, la configurazione è settata nel server che ritrasmetterà (slave server). Il
server master in questo caso non deve essere configurato (ed attualmente è ignaro
dell’esistenza del relay). Quando viene fatto partire il server slave, si connetterà al master
localizzato all’indirizzo 192.168.1.11:8001 e comincerà a ritrasmettere tutti i mountpoint
connessi al master server.
Inoltre, ogni master-update-interval (in questo caso 120 secondi), il server slave
interrogherà il master server per vedere se si è connesso qualche nuovo mountpoint e, nel
caso in cui ciò avvenga, verrà ritrasmesso anche quello. I nomi dei mountpoint sul server
slave saranno identici a quelli del server master.
4.7.3. Creare un relay single-broadcast
Nel caso del single-broadcast non è necessario che il server master sia un server Icecast2.
I server supportati per un relaying single broadcast sono Shoutcast, Icecast 1.x e
chiaramente Icecast2. La seguente configurazione è usata come esempio:
<relay>
<server>192.168.1.11</server>
<port>8001</port>
<mount>/example.ogg</mount>
<local-mount>/different.ogg</local-mount>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>

In questo esempio la configurazione è settata all’interno del server slave, che ritrasmette il
flusso. Il server master in questo caso non necessita di essere configurato ed è anche
inconscio del relaying.
Quando viene fatto partire, il server slave si connetterà al master localizzato all’indirizzo
192.168.1.11:8001 e comincerà a ritrasmettere solo il mountpoint specificato (nel nostro
caso /example.ogg).
Usando questa tipologia di relay, l’utente può sovrascrivere il nome del mountpoint locale
e cambiarlo a suo piacimento.
Inoltre, se il server master è un server Shoutcast, allora il <mount> deve essere specificato
come “/”. Se si vuole che lo stream proveniente da Shoutcast abbia in sé anche i metadata
(dato che Shoutcast li incorpora nel flusso) allora va settato ad 1 il campo <relay-
shoutcast-metadata>.
4.8. Directory delle pagine gialle di Icecast 2
In generale, nel mondo della radiofonia web, le pagine gialle sono una lista di flussi audio
in trasmissione. Icecast2 ha le sue pagine gialle personali raggiungibili all’indirizzo
http://dir.xiph.org. Attualmente i flussi di un server Icecast2 possono essere listati soltanto
all’interno di directory compatibili con il server Icecast2. Questo implica che non è
possibile inserire un flusso di Icecast2 all’interno delle pagine gialle di Shoutcast. Nel file
di configurazione di Icecast2 sono attualmente presenti tutti i server di pagine gialle
disponibili. Inserire il proprio flusso all’interno delle pagine gialle è fattibile tramite una
combinazione di impostazioni nel file di configurazione di Icecast ed anche all’interno
della sorgente.
4.8.1. Configurare Icecast2 per il supporto pagine gialle
Per prima cosa, Icecast deve essere stato compilato con il supporto alle pagine gialle.
Questo avviene di default se la libreria libcURL è installata. Se libcURL non viene trovata
all’interno del sistema al momento della compilazione, allora non ci sarà supporto alle
pagine gialle. Se il supporto alle pagine gialle è presente, la seguente configurazione
permetterà il controllo delle impostazioni di directory.
<directory>
<yp-URL-timeout>15</yp-URL-timeout>
<yp-URL>http://dir.xiph.org/cgi-bin/yp-cgi</yp-URL>
</directory>

Possono essere inserite più porzioni simili di XML per effettuare inserimenti del flusso
all’interno di più di un gruppo di pagine gialle.
4.8.2. Configurazione per il supporto pagine gialle
La sezione per la configurazione per il supporto pagine gialle è spesso inserita all’interno
della documentazione delle sorgenti. Più specificatamente, la sorgente ha bisogno di
settare l’header HTTP ice-public:1 al momento della connessione per abilitare la
visualizzazione del flusso sulle pagine gialle. Se un mountpoint è inserito all’interno delle
pagine gialle, si potranno vedere alcune statistiche addizionali come il last-touch, o la
canzone corrente.
4.9. Autenticazione dell’ascoltatore Icecast 2
L’autenticazione dell’ascoltatore è un’opzione di Icecast che consente di rendere sicuro un
mountpoint, in modo tale che per ascoltare si debba passare un test di verifica. Con questa
opzione è possibile creare una semplice radio pay-per-play, con user e password, oppure
un filtraggio in base alla connessione dell’ascoltatore. Questa sezione mostra le
impostazioni basilari di questo componente.
Per definire l’autenticazione dell’ascoltatore, un gruppo di tag sono specificati all’interno
del gruppo <mount>, relativamente al mountpoint. Questo implica che l’autenticazione si
può applicare sia ai master server che agli slave.
I meccanismi di autenticazione applicabili sono i seguenti:
♦HTPASSWD: si cerca un particolare file per verificare il matching di username e
password;
♦URL: richiesta via web per il matching di user e password.

L’autenticazione dell’ascoltatore per uno specifico mountpoint nel file di configurazione


XML di Icecast può essere applicata ad un flusso per una sorgente, per un relay o per un
file. L’autenticazione si applica anche ai file di ingresso e ai fallback mountpoint.
4.9.1. HTPASSWD Listener Authentication
Per potere utilizzare lo strumento di autenticazione degli ascoltatori si deve configurare
un’opzione specifica di mountpoint. Questo significa che si deve creare una sezione
<mount> all’interno del file di configurazione principale di Icecast. Si veda l’esempio
seguente:
<mount>
<mount-name>/example.ogg</mount-name>
<authentication type=“htpasswd”>
<option name=“filename” value=“myauth”/>
<option name=“allow_duplicate_users” value=“0”/>
</authentication>
</mount>

Per supportare l’autenticazione degli ascoltatori si devono creare almeno i campi <mount-
name> e <authentication>. Il mount-name è il nome del mountpoint che verrà utilizzato
per connettere la sorgente, mentre authentication configura il tipo di autenticazione
Icecast2 da utilizzare. Attualmente è implementata soltanto una tipologia di htpasswd.
Presto ne verranno aggiunte altre. Ciascun autenticatore ha un numero variabile di opzioni
richieste; queste sono specificate come nell’esempio.
L’autenticatore htpasswd richiede alcuni parametri. Il primo, filename, specifica il nome
del file da utilizzare per immagazzinare gli utenti e le password. Si noti che questo file non
esiste e probabilmente non esisterà finche non viene settato. Icecast ha un supporto nativo
per il management degli user e delle password tramite l’interfaccia web di
amministrazione. La seconda opzione, allow_duplicate_users, se settata a 0, impedirà
connessioni multiple utilizzando lo stesso username. Settare questa opzione ad 1
permetterà connessioni multiple con lo stesso username su un dato mountpoint. Non c’è
un modo per specificare un numero massimo di connessioni per lo stesso username sullo
stesso mountpoint.
Icecast supporta l’utilizzo di flussi che richiedono l’autenticazione dell’ascoltatore ed altri
che non lo richiedono. Soltanto i mountpoint che sono inseriti all’interno del file di
configurazione possono essere impostati per l’autenticazione dell’ascoltatore.
4.9.2. Configurazione di user e password
Una volta che le opportune righe sono state inserite all’interno del file di configurazione,
si deve connettere la sorgente (utilizzando il mountpoint inserito nel file di
configurazione). Per configurare user e password per questo flusso si deve usare
l’interfaccia web di amministrazione, raggiungibile dall’indirizzo
http://server:ip/admin/stats.xsl. Se tutto è configurato correttamente comparirà una finestra
simile a quella indicata nella figura 4.1.

Figura 4.1. Interfacccia web di amministrazione del server Icecast

Si vedrà un lucchetto accanto a tutti i mountpoint configurati con l’autenticazione


dell’ascoltatore. In questa pagina verranno mostrati soltanto i mountpoint connessi. Per
gestire user e password per il mountpoint basta cliccare sul lucchetto o seguire il link
“Manage Authentication”. Comparirà la finestra indicata nella figura 4.2.

Figura 4.2. Finestra di definizione degli utenti

Questa finestra mostra tutti gli user configurati per questo mountpoint. Aggiungere user è
semplice: basta inserire user e password nei campi e cliccare su “Add New User”. Gli
username devono essere univoci e non ci sono restrizioni sulle password. Si possono
cancellare utenti cliccando sul link di cancellazione accanto a ciascun utente.
4.10. Conclusioni
Gli utenti effettuano il login tramite un form realizzato dagli sviluppatori per lo scopo. La
pagina raggiungibile all’indirizzo http://server:port/auth.xsl contiene un form che gli utenti
possono utilizzare per loggarsi.

Figura 4.3. Finestra di login

Questa pagina restituirà un file m3u con username e password e, nella maggior parte dei
casi, questo file verrà aperto dal media player adatto all’ascolto della radio.
4.10.1. URL
Autenticare ascoltatori tramite il metodo URL implica che Icecast invii richieste ad un
server web e controlli gli header di risposta quando un ascoltatore si connette. Se un certo
header ritorna indietro, allora l’ascoltatore è autorizzato all’ascolto; altrimenti viene
inviato un errore all’utente. L’URL specificato invocherà alcuni script del server web per
eseguire qualsiasi operazione richiesta.
Tutto quello che è richiesto al linguaggio di scripting è che l’informazione POST possa
essere gestita e gli header di risposta possano tornare indietro. Viene utilizzata la libreria
libcURL per le richieste, in modo che le connessioni https possano essere possibili;
bisogna tuttavia fare attenzione all’overhead aggiuntivo.
L’useragent inviato in ciascuna richiesta della libcURL rappresenterà la versione di
Icecast. L’header in risposta dipenderà dall’accettazione o meno dell’ascoltatore. In caso
di rifiuto, un header di risposta del tipo:
Icecast-auth-message: motivo verrà restituito per l’inserimento nei logfile.

Per potere utilizzare l’autenticazione via URL dell’ascoltatore bisogna configurare


un’opzione mount specific. Questo significa che si deve creare una sezione <mount>
all’interno del file di configurazione principale di Icecast.
L’esempio mostra alcune opzioni possibili:
<mount>
<mount-name>/example.ogg</mount-name>
<authentication type=“URL”>
<option name=“mount_add” value=“http://myauthserver.com/stream_start.php”/>
<option name=“mount_remove” value=“http://myauthserver.com/stream_end.php”/>
<option name=“listener_add” value=“http://myauthserver.com/listener_joined.php”/>
<option name=“listener_remove” value=“http://myauthserver.com/listener_left.php”/>
<option name=“username” value=“user”/>
<option name=“password” value=“pass”/>
<option name=“auth_header” value=“Icecast-auth-user: 1”/>
<option name=“timelimit_header” value=“Icecast-auth-timelimit:”/>
</authentication>
</mount>

Ognuna delle opzioni è codificata quando inviata come POST data.


MOUNT_ADD
L’indirizzo mount_add informa l’auth server che un flusso sta iniziando a suonare. Non
vengono passate informazioni sull’ascoltatore, ma può essere usato per inizializzare alcuni
dettagli che può avere l’auth server:
action=mount_add&mount=/live&server=myserver.com&port=8000.
I dettagli indicano il nome del server ed il mountpoint che si sta avviando.

MOUNT_REMOVE
L’indirizzo mount_remove informa l’auth server che un flusso ha smesso di funzionare.
Non sono passate informazioni dell’ascoltatore, esattamente come mount_add:
action=mount_remove&mount=/live&server=myserver.com&port= 8000

Vengono forniti mountpoint e dati del server, come per mount_add.


LISTENER_ADD
Quando un ascoltatore si connette, prima che gli venga restituito qualcosa, viene
processata la richiesta listener_add. L’azione di default è il rifiuto dell’ascoltatore, finché
l’auth server non manda indietro un header di risposta che può essere indicato
nell’opzione header:
action=listener_add&server=myserver.com&port=8000&client=1&
mount=/live&user=&pass=&ip=127.0.0.1&agent=“My%20player”.
In questa richiesta ci sono molti dettagli. Client è l’ID univoco per il cliente con Icecast.
User e pass possono essere vuoti ma provengono dalla richiesta di autorizzazione http che
il cliente richiede. IP è l’indirizzo dell’ascoltatore e agent è l’useragent del player
dell’ascoltatore.
Mount in questo caso (diversamente rispetto alle opzioni start ed end) indica l’URL
richiesto includendo qualsiasi parametro d’interrogazione. Ad esempio, l’URL può essere
/stream.ogg&session=xyz, ma è da notare che ogni opzione è virgolettata prima di essere
passata tramite POST.
LISTENER_REMOVE
L’URL listener_remove nasce per gli ascoltatori che chiudono la connessione:
action=listener_remove&server=myserver.com&port=8000&client=1&mount=/live&user=&pass=&duration=3600.

Questa sintassi è simile all’opzione add; la differenza consiste nella durata, che viene
passata riflettendo il numero di secondi di connessione del client che sta andando via.
AUTH_HEADER
L’header di risposta che ci si attende venga restituito quando si deve autorizzare
l’autenticazione può essere indicato con auth_header.
L’impostazione di default è Icecast-auth-user: 1 ma può essere variato a piacimento; ad
esempio, HTTP 200 OK.
TIMELIMIT_HEADER
Gli ascoltatori possono avere imposto un tempo limite di ascolto e, se l’header
timelimit_header viene restituito con una figura (che rappresenta i secondi), allora
indicherà per quanto tempo ancora si resterà connessi.
Non si è a conoscenza di una lista esaustiva di player che supportino l’autenticazione
dell’ascoltatore. Gli sviluppatori usano un’autenticazione standard HTTP ed in generale
molti player la supportano. Winamp e Foobar2000 supportano questa modalità di
autenticazione su Windows ed XMMS fa lo stesso su Unix. Winamp ed XMMS
supportano anche il passaggio di parametri; altri player potrebbero farlo a loro volta.
4.11. Documentazione specifica per Win32
La versione per Windows di Icecast2 non è altro che un semplice framework attorno al
cuore del server Icecast2. La versione per Windows a 32 bit di Icecast2 usa direttamente
l’eseguibile di Icecast ed una interfaccia grafica. La maggior parte delle peculiarità di
Icecast2 è disponibile all’interno della versione per Windows. Un’assenza notevole è il
supporto IPV6.
4.11.1. Server status tab
Il tab server status contiene informazioni inerenti le statistiche complessive per l’intero
server. Ci sono due tipi di statistiche su Icecast2: a livello di sorgente e le statistiche
globali. Le statistiche globali sono statistiche cumulative di tutte le sorgenti offerte dal
server. Le statistiche a livello di sorgente sono invece statistiche che si riferiscono ad una
singola sorgente connessa al server.
Esempio di statistiche globali:
♦il numero di sorgenti connesse

♦il numero di sorgenti che hanno effettuato connessioni

♦il numero totale di connessioni al server.

Il tab server status contiene le informazioni sulle statistiche globali del server. Si possono
inoltre aggiungere a questo tab statistiche specifiche di sorgente. L’intento degli
sviluppatori è quello di fornire una visione d’insieme di quello che succede al server.
4.11.2. Aggiungere statistiche alla finestra
Qualsiasi statistica contenuta all’interno del tab server status può essere visualizzata come
titolo della finestra di Icecast2. Questo è un altro meccanismo per vedere le attività sul
server. Per abilitare questa opzione, fare click col tasto destro su qualsiasi statistica
all’interno del tab, come mostrato nella figura 4.4.

Figura 4.4. Finestra aggiunzione statistiche

4.11.3. Rimuovere statistiche dal server status


Per rimuovere una statistica a livello di sorgente inserita sul tab server status basta cliccare
col tasto destro la statistica e selezionare “Delete from Global Stats”. La statistica verrà
rimossa dal tab server status, ma rimarrà sul tab source level stats.
4.11.4. Modificare il file di configurazione
Modificare il file di configurazione di Icecast2 è molto semplice.
Le modifiche al file di configurazione di Icecast2 si possono fare soltanto a server fermo.
Per modificare il file di configurazione corrente, basta selezionare “Configuration/Edit
Configuration” dal menu principale.
4.11.5. Stats tab
Il tab stats contiene una panoramica di tutti i mountpoint connessi e le statistiche correlate.
Ciascun mountpoint connesso è visibile nella parte sinistra della finestra e tutte le
statistiche del mountpoint selezionato sono visibili a destra.
Figura 4.5. Finestra statistiche
5. SIAE
La Società Italiana Autori ed Editori è l’ente che si occupa di raccogliere e ridistribuire i
proventi derivanti dal pagamento delle licenze per l’usufrutto di opere dell’ingegno in
Italia. Anche per i media online, ed in particolare per le web radio, la SIAE richiede la
stipula di un contratto e il pagamento di somme per potere trasmettere musica tutelata.
Il contratto è disponibile sul sito Internet della Società, www.siae.it.
Le web radio, secondo l’ente, sono divisibili in tre macrocategorie:
♦web radio personali

♦web radio istituzionali

♦s web radio commerciali.

Le differenze tra le tre tipologie riguardano sia la persona (fisica o giuridica) che registra
l’apposito contratto, che i costi e le regole da seguire.
5.1. Art. 1 – Definizioni
Ai fini di questa Licenza valgono le seguenti definizioni:
a) Per “Webcasting” si intende sia la diffusione di servizi originali, che la ridiffusione on line non in simultanea
dei programmi di soggetti esercenti l’attività di emittenti radiofoniche o televisive via etere, via filo, via cavo o
via satellite, senza che il Licenziatario consenta la riproduzione dei file su alcun apparecchio di riproduzione. Agli
utenti è reso possibile ascoltare tali diffusioni in tempo reale e solo in via temporanea.

La frase “senza che il licenziatario consenta la riproduzione dei file su alcun apparecchio
di riproduzione” si presta a diverse interpretazioni. Probabilmente la SIAE intende
comunicare che il Licenziatario deve solo fare ascoltare la web radio dal sito Internet
indicato e non da web autoradio oppure da dispositivi mobili; tuttavia, questo è
particolarmente complesso da garantire.
b) Per “Web Radio” si intende il sito o la sezione di portale o di sito che mette a disposizione dell’utente in
modalità streaming, le opere musicali ai soli fini di una programmazione predefinita, senza possibilità per l’utente
stesso di richiedere l’ascolto di una determinata opera o di una successione di opere a sua scelta e senza possibilità
di interagire in alcun modo con le programmazioni offerte. Qualora i contenuti e l’eventuale parte grafica della
Web Radio siano accessibili in modo simultaneo ed inalterato attraverso apparecchi mobili ovvero attraverso
un’applicazione che abilita all’ascolto della Web Radio, tali ulteriori utilizzazioni si intendono comprese in questa
definizione.

La SIAE identifica la web radio con un sito, ma in realtà una web radio non lo è. “Web
radio” è una tecnologia che sfrutta i siti Internet per la promozione e l’ascolto, ma può
anche essere ascoltata direttamente dal server di streaming e non necessariamente tramite
il browser; ciononostante la SIAE considera imprescindibile la web radio dal sito Internet.
Ovviamente è presente una differenza tra streaming e contenuti on demand.
c) Per “Web Radio Aziendale” si intende la Web Radio o il Sito in cui il player è collocato, di cui è titolare un
soggetto, che non sia operatore della comunicazione e in particolare un operatore di radiodiffusione o di
comunicazione elettronica, che promuove beni o servizi relativi alla sua attività commerciale o professionale.

La definizione di Web Radio Aziendale è molto chiara.


d) Per “Legge sul Diritto d’Autore” si intende la Legge 22 aprile 1941 n. 633 (“Protezione del diritto d’autore e di
altri diritti connessi al suo esercizio”) ed ogni sua successiva modificazione e integrazione (di seguito indicata
come “L.D.A.”).
La legge n. 633 del 22 aprile 1941 è consultabile su Internet o su testi specializzati.
e) Per “Licenziatario” si intende il titolare di questa Licenza, ovvero di norma il soggetto effettivamente
responsabile della scelta dei contenuti, delle modalità tecniche ed operative di svolgimento del servizio e della sua
messa a disposizione del pubblico sotto il proprio nome o marchio.

Si tratta di una semplificazione.


f) Per “Paginavista” (“Page view”) si intende la richiesta di apertura di una singola Pagina Web effettuata da un
utente della Web Radio.

Se si suppone che ogni ascoltatore della web radio passi dal sito Internet collegato, il
numero delle pagine viste diventa un fattore importante; normalmente non si tratta di un
dato affidabile perché esistono web radio con migliaia di ascoltatori che non passano dal
sito di riferimento ma che ascoltano la radio direttamente dal server di streaming.
g) Per “Pagineviste al mese” (“PAVM”) si intende il numero medio di Pagine Web del Sito visitate dagli utenti nel
corso di un mese.
h) Per “Subscription models” si intendono i modelli di business che prevedono il pagamento da parte degli utenti
finali di un canone di abbonamento (anche sotto forma di carte a scalare prepagate, quote associative, contributi di
qualsiasi genere o simili) per usufruire in tutto o in parte del Servizio di Pagina Web all’interno del Sito.

Si tratta della definizione di premium area o di sezione del sito visitabile solo previo
pagamento in qualsivoglia forma.
i) Per “Introiti Lordi Annui” si intendono, al netto dell’IVA, le seguenti entrate del Licenziatario:
I) i corrispettivi pagati dall’utente finale per l’accesso o la fruizione della Web Radio;

Questa definizione vale nel caso di web radio con contenuti a pagamento.
) i corrispettivi percepiti dal Licenziatario, direttamente od indirettamente attraverso altra persona fisica o
II

giuridica, per la presenza di pubblicità di qualsiasi genere nella Web Radio e nel Sito in cui il player è collocato;

In base a quanto scritto, gli introiti pubblicitari per servizi come il pay per click
costituiscono una rendita per il titolare del sito che può impedire l’inserimento di una web
radio all’interno di una categoria economicamente più vantaggiosa.
) i corrispettivi percepiti dal Licenziatario a fronte di un contratto di sponsorizzazione per la cui esecuzione degli
III

utilizzi nella Web Radio opere musicali amministrate dalla SIAE;

Si tratta di introiti ottenuti tramite sponsorizzazioni.


) i compensi versati da terzi al Licenziatario per ottenere la disponibilità della Web Radio ai fini della sua offerta
IV

al pubblico in bundling con i loro prodotti o servizi;

Si tratta di introiti ottenuti tramite servizi aggiuntivi.


V) il corrente valore di mercato dei beni e/o servizi ricevuti dal Licenziatario in cambio della fornitura di spazi
pubblicitari nella Web Radio (contratti di bartering, scambio merci o simili);

Se si baratta un oggetto per un jingle audio all’interno della web radio, tale oggetto verrà
valutato come introito.
VI) i compensi di qualsiasi genere versati da terzi al Licenziatario per consentire a determinate categorie di utenti
finali di accedere gratuitamente alla Web Radio, ivi comprese le apposite applicazioni scaricabili su telefoni
mobili o altri apparecchi di ricezione e/o riproduzione;

Nel caso in cui si volesse guadagnare creando una app a pagamento per fare ascoltare la
web radio tramite smartphone, questi introiti non permetteranno di stipulare un contratto
di licenza amatoriale.
VII )ogni altro compenso derivante da, o collegato alle opere musicali presenti nella Web Radio, non rientrante nelle
precedenti tipologie, anche sotto forma di revenue sharing o condivisione di ricavi con soggetti terzi fornitori di
servizi (quali servizi di televoto, messaggistica a pagamento, numeri telefonici tariffati, servizi interattivi).

Anche queste tipologie di introiti devono essere considerate.


l) Per “Prezzo finale al pubblico” si intende l’importo effettivamente pagato dall’utente finale quale corrispettivo
per l’accesso o la fruizione della Web Radio o dei servizi ad essa connessi.

Il prezzo finale al pubblico è la quota pagata dall’effettivo fruitore del servizio.


m) Per “Pubblicità” si intende qualsiasi forma di messaggio e/o comunicazione commerciale, incorporato o
associato alla Web Radio, sotto forma di banner, spot, promozioni, etc. relativa a servizi, prodotti e marchi
commerciali per i quali il Licenziatario ottiene un qualsiasi tipo di corrispettivo, diretto o indiretto.

Niente da dire oltre alla semplice definizione.


n) Per “Utenti” si intendono coloro che accedono alla Web Radio, con o senza pagamento di un corrispettivo.

Niente da dire oltre alla semplice definizione.


o) Per “Link” si intende ogni collegamento ipertestuale effettuato tra il Sito e i siti di terzi in grado di consentire
agli Utenti di avere accesso a file contenenti opere amministrate, compresi i collegamenti diretti ai nodi interni del
sistema ipertestuale di un altro sito, senza accesso alla pagina di presentazione iniziale del sito medesimo oppure
il link che, non presentando elementi univoci di riconoscibilità del sito “linkato”, faccia apparire le pagine di
quest’ultimo come appartenenti al sito “linkante” (c.d. framing, embedding e simili). Non si considerano compresi
in questa nozione di “link” i collegamenti generati automaticamente dai motori di ricerca di uso generale.

In realtà, una web radio non contiene gli MP3 trasmessi all’interno del sito che dovrebbe
ospitare la pagina web di pertinenza della radio. La definizione di link è corretta, ma non
si tratta certo di una struttura molto comune di web radio. Anche se la web radio fosse
browser driven, il sito che ospita i file può essere un sito come spreaker dal quale parte il
flusso per la web radio definita dal contratto, che ha come punto di aggregazione il sito
indicato.
p) Per “Sito Web” o “Sito” si intende il sito sul World Wide Web registrato con un nome di dominio, raggiungibile
attraverso il protocollo http e accessibile attraverso un indirizzo IP ed un URL (Uniform Resource Locator).

Niente da dire oltre alla semplice definizione.


5.2. Art. 2 – Oggetto della licenza
Oggetto della Licenza è l’utilizzazione on-line delle opere musicali amministrate dalla SIAE nella Web Radio di
cui all’URL riportato nel Riepilogo della Richiesta di Licenza e indicato all’inizio di questa Licenza. Per ogni
altra o ulteriore utilizzazione deve essere ottenuta apposita e distinta licenza.

Si possono utilizzare le opere tutelate dalla SIAE, ma soltanto per il sito Internet indicato
nel modulo da compilare.
5.3. Art. 3 – Diritti Concessi
3.1 Con questa Licenza, in base ai poteri di amministrazione che le sono stati conferiti dai suoi associati e
mandanti, la SIAE autorizza in via non esclusiva il Licenziatario, alle condizioni e con i limiti di seguito
specificati, a:
a) registrare, direttamente o avvalendosi dell’attività di terzi, le opere appartenenti al repertorio musicale
amministrato dalla SIAE;
b) riprodurre, tramite caricamento dei relativi file all’interno di una banca dati digitale, gestita dal Licenziatario o
da terzi, le registrazioni e le riproduzioni delle opere di cui sopra (c.d. uploading) ad uso esclusivo della Web
Radio oggetto di questa Licenza;
c) mettere tali opere a disposizione del pubblico, in modalità webcasting audio (flusso continuo) per il solo uso
privato e personale in maniera che ciascun utente possa avervi accesso dal luogo e nel momento scelti
individualmente (diritto di comunicazione).
Attenzione al comma C dell’articolo 3 comma 1: è molto importante.
Si tratta di uso privato e personale. Sono quindi escluse tutte le web radio cosiddette In-
Store che hanno una licenza a parte.
3.2 La presente Licenza non consente la fornitura di servizi musicali personalizzati customerizzati e simili, né
l’inserimento di avvisi e pubblicità targettizzati in funzione di pubblici esercizi quali, a titolo di esempio non
esaustivo, supermercati, gallerie commerciali, alberghi, negozi, istituti bancari, stazioni ferroviarie, scali
aeroportuali, fiere e mostre. Non sono inclusi inoltre i servizi resi a pagamento o gratuitamente a favore di attività
commerciali o imprenditoriali (c.d. Business to Business). Per lo svolgimento di questi servizi dovrà essere
richiesto alla SIAE altro tipo di licenza, che sarà rilasciata a condizioni diverse da quelle previste dalla presente.

Quanto sopra riportato non fa che confermare che sono escluse le web radio In-Store.
3.3 La presente Licenza è limitata alla Web Radio indicata nell’apposito Riepilogo di Richiesta di Licenza e non
copre la comunicazione e la messa a disposizione del pubblico delle opere a mezzo di link a tale Sito si effettua da
parte di altri siti, i cui titolari dovranno ottenere a tal fine una distinta e specifica licenza della SIAE.

Supponiamo che un titolare di un sito Internet voglia fare ascoltare dal suo sito una web
radio a lui particolarmente cara. Per farlo deve pagare una licenza AWR, anche se la web
radio non è sua e la web radio ne sta pagando una a sua volta.
3.4 In assenza di preventivi accordi formalizzati per iscritto con la SIAE, è espressamente vietato per il
Licenziatario trasferire o cedere a terzi, sotto qualsiasi forma, uno qualsiasi dei diritti acquisiti o delle obbligazioni
assunte con questa Licenza. Qualora il Licenziatario non rispetti tale divieto il contratto di Licenza si intenderà
risolto, previa comunicazione della SIAE espressa nei termini di legge.

La web radio non si cede, salvo casi particolari.


5.4. Art. 4 – Repertorio della SIAE
4.1 Fanno parte del repertorio della SIAE oggetto di questa Licenza le opere musicali e i frammenti di tali opere
affidate alla sua amministrazione durante il periodo di validità della Licenza dai suoi associati e mandanti e
ricomprese nel repertorio della Sezione Musica.

Si può utilizzare qualsiasi brano tutelato dalla SIAE nel momento della validità della
licenza.
4.2 Nel repertorio della SIAE rientrano anche le opere create o pubblicate durante il periodo di validità di questa
Licenza e le opere degli autori per le quali la SIAE, a seguito di contratti di rappresentanza sottoscritti con società
d’autori straniere o di accordi raggiunti con altri aventi diritto, ha ricevuto il mandato di provvedere
all’amministrazione dei diritti oggetto di questa Licenza. L’elenco delle società d’autori straniere che alla data
della sottoscrizione di questa Licenza hanno concluso contratti di rappresentanza con la SIAE è consultabile nel
sito della SIAE all’indirizzo http://www.siae.it/rapporti.asp#doc. A fini di mera consultazione, secondo termini e
condizioni ivi previsti, è altresì disponibile nel sito stesso la ricerca di opere musicali presenti nell’archivio della
SIAE.

Anche moltissimi brani stranieri sono utilizzabili, perché le società come SIAE in Italia,
SGAE in Spagna o RIAA in America, sono “consorelle”; pagarne una equivale a pagare le
altre.
4.3 Salvo quanto previsto al successivo art. 7 (Riserva degli aventi diritto), la SIAE conferma di essere nella
condizione di rilasciare questa Licenza e di ricevere i relativi pagamenti per conto dei suoi associati e mandanti.
Qualora il Licenziatario informi la SIAE di aver ricevuto da un terzo una contestazione sull’utilizzo di opere
oggetto della Licenza, la SIAE si adopererà per assistere il Licenziatario nella soluzione del caso.

La SIAE si impegnerà ad aiutare il licenziatario a risolvere casi controversi che possano


nascere a seguito di contestazioni sull’utilizzo delle opere oggetto della licenza.
5.5. Art. 5 – Territori
La Licenza è rilasciata dalla SIAE per le utilizzazioni in Italia, nella Repubblica di San Marino e nello Stato della
Città del Vaticano.

5.6. Art. 6 – Diritti esclusi


6.1 Sono espressamente riservati i diritti morali spettanti agli autori e ai loro aventi causa ai sensi degli articoli da
20 a 24 L.D.A.

Qualora si vogliano leggere questi articoli, si può consultare la legge sul diritto d’autore.
6.2 È escluso dal campo di applicazione di questa Licenza e resta nella piena disponibilità dei suoi titolari ed
espressamente riservato il diritto di elaborazione di cui all’art.18 della L.D.A. Non sono quindi consentiti gli
adattamenti, le traduzioni e qualsiasi modifica delle opere musicali, compresa quella delle sole parole, che non
siano stati espressamente autorizzati dai titolari dei diritti.

Occorre porre molta attenzione nell’utilizzo di cover e traduzioni dei brani.


5.7. Art. 7 – Riserva degli aventi diritto
7.1 Qualora la SIAE riceva, in base alla sua normativa interna, una specifica richiesta scritta da parte di aventi
diritto, autori ed editori suoi associati e mandanti, potrà inibire, temporaneamente o a tempo indeterminato, l’uso
di alcune o di tutte le loro opere in relazione al particolare utilizzo previsto da questa Licenza. La comunicazione
di tale inibizione è inserita nell’apposita pagina del sito della SIAE che il Licenziatario si impegna a consultare.
L’elenco periodicamente aggiornato degli aventi diritto che, alla data del rilascio di questa Licenza, hanno fatto
riserva ai sensi del comma 1 è messo a disposizione del Licenziatario sul sito Web della SIAE all’indirizzo:
http://www.siae.it/UtilizzaOpere_art11.asp?click_level=0600.0700.0700.4000&.

Per le web radio vige il principio secondo il quale gli autori dei brani che si è autorizzati a
trasmettere possono decidere in qualsivoglia momento di impedire la trasmissione dei loro
brani alle web radio; in questo caso bisogna rendersene conto autonomamente.
7.2 Analogamente, qualora la SIAE riceva disdetta di accordi di rappresentanza o di agenzia relativi a repertori
controllati da titolari di diritti non suoi associati e/o amministrati da società di autori straniere, la SIAE
comunicherà al Licenziatario l’esclusione del repertorio, indicandone la decorrenza conformemente alla disdetta
ricevuta.

La situazione è analoga nel caso in cui la SIAE ricevesse comunicazione di disdetta e lo


comunicasse.
7.3. Il Licenziatario è tenuto ad escludere dalla programmazione della Web Radio le opere inibite o escluse ai
sensi dei commi precedenti immediatamente e comunque non oltre 5 giorni dal ricevimento della comunicazione
della SIAE.

Il tempo per escludere l’autore o i brani dal repertorio trasmesso è quantificato in cinque
giorni.
5.8. Art. 8 – Limiti della licenza
8.1 Qualsiasi diritto o modalità di utilizzo delle opere amministrate dalla SIAE diversi da quelli previsti dall’art. 3
di questa Licenza sono espressamente esclusi. In particolare restano escluse da questa Licenza, e sono soggette ad
apposita, distinta autorizzazione preventiva della SIAE, le seguenti attività:

Ecco cosa non è possibile fare stipulando questa licenza:


a) la pubblica esecuzione delle opere nel corso di manifestazioni pubbliche di qualsiasi tipo, compresa quella
effettuata a mezzo di apparecchi riceventi all’interno di esercizi commerciali e di locali o ambienti aperti al
pubblico;

Non è possibile organizzare eventi di piazza o ascolto pubblico.


b) la diffusione delle opere a mezzo delle emissioni radiofoniche o televisive via etere, via filo, via cavo o via
satellite;
Non si può trasmettere tramite FM o altre modalità, soltanto tramite Internet, con un unico
canale e senza possibilità di downloading.
c) la produzione, la messa in commercio o la distribuzione di supporti audio e video;

Niente supporti fisici.


d) l’utilizzazione delle opere nei servizi di telefonia mobile sotto forma di suonerie, ringback tones, fulltrack
downloading, dediche, messaggi, ecc.

Niente che non sia il canale web radio; è soprattutto escluso il mobile.
8.2 Questa Licenza non consente l’ulteriore comunicazione al pubblico e/o distribuzione delle opere a terzi, in
qualsiasi forma e modo, da parte degli utenti finali.

La SIAE ricorda che l’oggetto della licenza non riguarda altro che il canale unico web
radio. +
8.3 Il Licenziatario si impegna a chiarire negli spazi visivi della Web Radio, e comunque con modalità adeguate,
in modo facilmente accessibile al pubblico, che la diffusione è destinata al solo uso privato e personale e che è
vietato qualsiasi diverso atto di utilizzazione delle opere (reimmissione in rete, comunicazione al pubblico,
pubblica esecuzione, riproduzione in copie, prestito, noleggio, condivisione con terzi).

Occorre fare notare all’utenza che la web radio si può ascoltare esclusivamente in modo
privato.
8.4 Non sono compresi tra i diritti d’autore oggetto di questa Licenza quelli non amministrati dalla SIAE per i
quali il Licenziatario è tenuto ad ottenere preventivamente l’autorizzazione dei rispettivi titolari.

La SIAE tutela solo i suoi associati. Questo è il motivo per cui chi non trasmette musica
tutelata dalla SIAE non è tenuto ad alcun pagamento.
8.5 Non sono compresi nell’oggetto di questa Licenza, in quanto non affidati alla tutela della SIAE, i diritti
connessi all’esercizio del diritto di autore, ed in particolare quelli specificamente indicati qui di seguito e
spettanti:

Occorre pagare per usufruire di altri diritti.


a) ai produttori di fonogrammi per l’utilizzazione del disco e di altri apparecchi analoghi riproduttori di suoni e di
voci (articoli da 72 a 73 bis L.D.A.) e con riferimento alla riproduzione, totale o parziale, delle loro registrazioni
e/o fissazioni con qualsiasi procedimento si effettua;

Questo ambito riguarda altre società, come ad esempio la Società Consortile Fonografici.
b) agli artisti interpreti o esecutori per l’utilizzazione delle loro prestazioni artistiche, rese dal vivo o fissate su
disco o su altri apparecchi analoghi riproduttori di suoni o di voci (articoli 73 e 73 bis e da 80 a 85 bis L.D.A.);

La SIAE non tutela gli artisti durante le loro esibizioni live.


c) alle imprese di diffusione radiofonica o televisiva per l’utilizzazione delle loro emissioni (art. 79 L.D.A.).

La SIAE non tutela le radioemittenti per le loro emissioni.


8.6. Il Licenziatario assume la piena e totale responsabilità in merito all’utilizzazione delle opere amministrate
dalla SIAE anche sotto il profilo del rispetto dei diritti connessi e degli altri diritti eventualmente spettanti ai
legittimi titolari.

Si assume formalmente l’impegno a ricordarsi di controllare periodicamente di essere in


regola anche con i diritti connessi.
8.7. Questa Licenza non sana in alcun modo eventuali violazioni dei diritti in questione, poste in essere dal
Licenziatario medesimo o dai suoi danti causa.

Pagare non significa aver la totale copertura per la violazione dei diritti dei danti causa.
5.9. Art. 9 – Utilizzazioni pubblicitarie
Fermo quanto previsto dal precedente art. 8 di questa Licenza, il Licenziatario è tenuto ad ottenere direttamente il
preventivo espresso consenso degli aventi diritto, autori ed editori, per qualsiasi uso delle opere a fini pubblicitari,
ed in particolare per il loro inserimento in spot pubblicitari o per l’abbinamento o l’associazione permanente tra
opere musicali e immagini fisse o in movimento con contenuto pubblicitario o tra una determinata composizione e
un determinato messaggio o campagna promozionale o pubblicitaria (c.d. diritto di sincronizzazione). Sono
esclusi dall’obbligo del preventivo consenso i messaggi di utilità sociale. Senza la specifica autorizzazione degli
aventi diritto, autori ed editori, non è pertanto consentita l’utilizzazione delle opere musicali nel contesto di
campagne pubblicitarie, si effettua anche su altri media, per la promozione della Web Radio.

Non si può fare pubblicità per terzi o per la web radio utilizzando opere dell’ingegno
anche tutelate dalla SIAE stessa in modo automatico. Occorre chiedere direttamente il
permesso agli autori.
5.10. Art. 10 – Inizio, cessazione, variazione di attività. Menzioni e informazioni
obbligatorie
10.1 Il Licenziatario si impegna a comunicare alla SIAE tempestivamente, comunque non oltre 30 giorni, ogni
eventuale modifica e variazione sopravvenuta utile ai fini della categoria della Web Radio e tutte le altre
informazioni rilevanti per la determinazione dei compensi ai sensi della presente Licenza. In caso di omessa
comunicazione della variazione, per tutta la durata dell’omissione il Licenziatario è tenuto a pagare la tariffa più
alta tra quella dovuta ai sensi della precedente dichiarazione e quella effettivamente applicabile a seguito della
comunicazione o dell’accertamento della variazione. Sono altresì applicabili le penali previste dall’art. 16 della
presente Licenza.

Se la web radio varia alcuni parametri (ad esempio esce dai canoni della web radio
istituzionale e deve essere catalogata come commerciale, oppure il sito cambia URL) lo si
deve comunicare tempestivamente.
10.2 Qualora il Licenziatario decida di cessare il Servizio anticipatamente, rispetto alla scadenza prevista dall’art.
20 della presente Licenza, ne darà comunicazione scritta alla SIAE a mezzo e-mail con avviso di ricevimento a
webradio.multimedia@siae.it. Dalla data di ricevimento questa Licenza cesserà di avere efficacia e, in tal caso, il
Licenziatario dovrà cessare ogni utilizzo delle opere oggetto di questa Licenza al più tardi alla scadenza del
periodo tariffario in corso. In mancanza di tale comunicazione, il Licenziatario sarà tenuto alla corresponsione dei
compensi trimestrali previsti da questa Licenza fino alla data dell’effettiva comunicazione alla SIAE, la cui
efficacia non potrà avere valore retroattivo. Resta inteso che le somme versate dal Licenziatario con riferimento
all’intero periodo di validità della Licenza, potranno essere definitivamente acquisite dalla SIAE a titolo di
indennizzo per l’anticipato recesso.

La risoluzione anticipata della licenza non consente nessun tipo di rimborso.


10.3 Nel caso di cessazione anticipata e conseguente recesso dal contratto di licenza, il Licenziatario è tenuto a
corrispondere alla SIAE, a titolo di indennizzo, una somma pari ai compensi dovuti dal Licenziatario stesso per un
trimestre di attività, calcolati sulla base dei criteri indicati all’art. 13 della Licenza.

In caso di cessazione anticipata, si dovrà risarcire la SIAE con un trimestre di pagamento,


calcolando l’indennizzo su alcuni criteri che vedremo tra poco.
10.4 Le comunicazioni del Licenziatario saranno inviate al seguente indirizzo: SIAE – Viale della Letteratura, 30
– 00144 ROMA, all’attenzione del Direttore dell’Ufficio Multimedialità ovvero per e-mail all’indirizzo web
radio.multimedia@siae.it.

Indirizzi a cui mandare le comunicazioni.


10.5 Il Licenziatario si impegna a riportare nella home page della Web Radio il logo della SIAE nella forma da
essa approvata ovvero, quando ciò non sia tecnicamente possibile, la menzione “Licenza SIAE n. ….. /I/ ……”
con il numero d’ordine di questa Licenza.

Non pubblicare sulla homepage del sito della radio il numero di licenza implica
un’inadempienza contrattuale.
5.11. Art. 11 – Link tra il sito del Licenziatario e i siti di terzi
11.1 La Licenza è concessa esclusivamente per la Web Radio del Licenziatario.
11.2 Questa Licenza copre i materiali provenienti da siti di terzi, mediante link o in qualsiasi altro modo, soltanto
a condizione che detti siti siano oggetto di una separata licenza.

Sebbene risulti un punto controverso, la SIAE richiede di controllare le fonti terze, che
sono coperte solo se titolari di una separata licenza.
11.3 In caso di Link della Web Radio a siti privi di separata licenza, il Licenziatario risponderà in solido con i
titolari di tali siti degli obblighi relativi all’uso di opere del Repertorio della SIAE.

Come espresso prima, la SIAE richiede un controllo d’utilizzo da parte di terzi della web
radio, equiparandola ad un sito Internet.
11.4 Il Licenziatario riconosce espressamente che per l’uso di opere musicali diffuse dalla sua Web Radio da parte
di siti di terzi, mediante Link o in qualsiasi altro modo, quale ad esempio un player incorporato a mezzo di una
qualsiasi forma di embedding, pop up, finestra di apertura automatica o simili, deve essere ottenuta dai terzi
un’apposita e distinta licenza della SIAE. Il Licenziatario si impegna a indicare esplicitamente tale obbligo ai
terzi.

Si conferma la necessità di informare l’utenza che per l’autonoma diffusione della web
radio di terze parti serva una licenza AWR.
11.5 La responsabilità solidale eventualmente derivante dall’inadempimento degli obblighi di cui ai commi
precedenti è esclusa solo a condizione che il Licenziatario non sia intervenuto nella selezione delle opere, non sia
a conoscenza dell’illiceità del sito altrui, non abbia ottenuto dall’operazione alcun beneficio economico o
commerciale diretto o indiretto e rimuova il Link da o verso il sito non munito di licenza entro 48 ore dalla
richiesta scritta in tal senso da parte della SIAE.

I link in entrata e in uscita con terze parti non vincolate da un contratto con SIAE devono
essere rimossi, se richiesto, in 48 ore.
5.12. Art. 12 – Utilizzazione di altri repertori tutelati dalla SIAE
12.1 Il Licenziatario si impegna a richiedere alla SIAE le autorizzazioni necessarie in tutti i casi in cui intenda
utilizzare anche opere appartenenti al repertorio delle altre Sezioni della Società (Lirica, DOR, OLAF). Le opere
comprese nei repertori delle Sezioni Lirica, Dor e Olaf sono indicate nel Regolamento Generale della SIAE,
pubblicato nel sito www.siae.it.

La licenza non prevede l’utilizzo di brani di sezioni della società come Lirica, DOR o
OLAF (ad esempio la Sezione OLAF amministra i diritti relativi alle opere letterarie)
quindi, soltanto audio.
5.13. Art. 13 – Tipologie di Web Radio e calcolo dei compensi
13.1 Il Licenziatario corrisponderà come corrispettivo per l’utilizzazione del Repertorio della SIAE i compensi
determinati in percentuale sugli Introiti Lordi annui della Web Radio, individuati a norma dell’art. 1 della Licenza
e nella misura indicata nelle sottostanti tabelle:

5.13.1. Web radio commerciali


Sono inserite in questa categoria tariffaria le web radio, da qualsiasi soggetto attivate, con le sole eccezioni di
quanto previsto ai punti B e C seguenti. Rientrano in questa fascia tariffaria le Web Radio Aziendali anche in
assenza di Introiti diretti.
N.B. I servizi destinati a pubblici esercizi quali supermercati, gallerie commerciali, alberghi, negozi, istituti
bancari, stazioni ferroviarie e scali aeroportuali, fiere ecc. non sono coperti dalla presente Licenza (art. 3.2).

A scanso di equivoci, la SIAE precisa che chiunque può creare una web radio
commerciale e rientra nella suddetta categoria, tranne nei casi in cui si verifichino le
condizioni espresse dalle altre tipologie di web radio. Nei casi di web radio aziendali, si
passa automaticamente al commerciale anche senza introiti. Ricordiamo inoltre che le web
radio In-Store non si possono costituire tramite questa licenza ma con una licenza
apposita.
I costi sono quelli espressi in figura 5.11.

Figura 5.1. Tabella dei prezzi per web radio commerciali

Le web radio commerciali vanno aperte solo nel caso in cui esse ricavino (da diverse
possibili fonti di reddito, sia dal sito sia dal flusso audio o da sponsorizzazioni) più di
3000 euro annui. Si parla infatti di introiti lordi. Se questa quota non viene raggiunta, si è
obbligati alla licenza di web radio commerciale solo se ad aprirla è un’azienda. Le
aliquote sono molto chiare. Ci si devono porre due domande per quantificare il costo
trimestrale:
1) quantità di musica trasmessa dalla web radio nelle 24 ore, se più o meno del 25% o più
o meno del 75%;
2) numero di visualizzazioni del sito.
Se, ad esempio, si tratta di una web radio commerciale che trasmette molta musica e non
ha 100mila visualizzazioni mensili, pagherà il 7% di aliquota sugli introiti dichiarati, ed in
ogni caso mai meno di 500 euro ogni 3 mesi, ovvero minimo 2000 euro annui + IVA
Il Licenziatario si impegna a comunicare alla SIAE gli Introiti Lordi annui della Web Radio con il modulo
Allegato n. 1. Tali Introiti potranno essere accertati dalla SIAE in base ai dati del bilancio consuntivo o della
dichiarazione IVA o ad altra idonea documentazione contabile.
È fatta salva in ogni caso l’applicazione di un compenso minimo trimestrale determinato con i criteri di cui alla
precedente tabella. Tale compenso, da versare anticipatamente con cadenza trimestrale, è considerato quale
acconto delle maggiori somme eventualmente dovute applicando le aliquote percentuali.

Le web radio commerciali devono presentare una specie di dichiarazione dei redditi in cui
indicano i loro introiti e versano un conguaglio nel caso in cui l’aliquota sia superiore alla
quota minima garantita prestabilita dai parametri.
5.13.2. Web radio istituzionali e/o comunitarie
Sono inserite in questa categoria tariffaria le Web Radio di istituzioni pubbliche ed enti
locali e le Web Radio appartenenti ad associazioni riconosciute o non riconosciute,
fondazioni e ONLUS, caratterizzate dall’assenza dello scopo di lucro e dall’essere
espressione di particolari istanze culturali, etniche, politiche e religiose.
Non è necessario che l’associazione sia iscritta alla camera di commercio per potere
stipulare un contratto AWR istituzionale.
I costi sono riportati nella figura 5.22.
Figura 5.2. Tabella dei prezzi per web radio istituzionali

Si passa da un minimo (poche visite, poca musica nelle 24 ore) di 660 euro + IVA annui
fino ad un massimo di 1500 euro + IVA annui (molte visite, molta musica).
5.13.3. Web radio personali
Sono inserite in questa categoria tariffaria le Web Radio a carattere amatoriale presenti in Siti che appartengono a
persone fisiche, privi di introiti diretti o indiretti e di qualsiasi finalità commerciale, anche indiretta. In particolare,
non è qualificabile come Web Radio personale un Sito web che abbia link, redirect o reindirizzamenti a servizi
commerciali o a promozioni di qualsiasi genere o che sia riferibile o accessorio rispetto a marchi, brand,
operazioni o attività estranee o collaterali alla web radio stessa.

Le condizioni per potere creare una web radio personale sono:


♦sito intestato ad una persona fisica;

♦nessun tipo di introito riscontrabile sul sito (niente payperclick, payperlink) o sul flusso
audio (niente rotazioni pubblicitarie).
Se la radio rientra in questa tipologia si pagheranno 400 euro + IVA annui in un’unica
soluzione anticipata.
13.2 Qualora la licenza non venga richiesta prima dell’inizio dell’attività, sarà comunque dovuto il compenso per
l’intero periodo di attività precedente alla sottoscrizione o il maggior periodo risultante dai controlli effettuati,
nonché un compenso supplementare pari al 20% dell’importo così calcolato.
13.3 Resta inteso che, se a seguito di controlli effettuati dalla SIAE, l’attività svolta o gli Introiti Lordi annui
conseguiti dal Licenziatario non risultino conformi a quanto dichiarato, il Licenziatario è tenuto a corrispondere i
compensi dovuti in base alle tariffe della SIAE effettivamente applicabili.

5.14. Art. 14 – Estensione della Licenza all’offerta degli stessi contenuti su Social
Network (sperimentale)
Qualora intenda offrire a titolo gratuito gli stessi o parte degli stessi contenuti presenti nel Sito o Servizio oggetto
di questa Licenza, attraverso un Social Network aperto al pubblico o accessibile agli Utenti anche mediante una
qualsiasi forma di iscrizione o registrazione, il Licenziatario, a parità della modalità del servizio offerto, in
aggiunta ai compensi determinati ai sensi del precedente art. 13, corrisponderà per ciascun Social Network al
quale il Servizio è esteso i minimi di compenso applicabili sulla base dell’art. 13 abbattuti del 70%.

Se la web radio si può ascoltare su Facebook o su un altro social network occorre


aggiungere alla quota di pagamento il 30% in più. Se, quindi, si pagavano 400 euro + IVA
annui (web radio personale) se ne pagheranno,520 + IVA.
5.15. Art. 15 – Termini e modalità di pagamento dei compensi
15.1 Il pagamento del compenso deve essere effettuato contestualmente alla sottoscrizione della presente Licenza
mediante il MAV inviato dalla SIAE a ricezione della Richiesta di Licenza mediante i Servizi on-line in
www.siae.it.

La SIAE invia il bollettino di conto corrente a casa.


15.2 Il pagamento alla SIAE di tutti i compensi minimi trimestrali garantiti per le Web Radio commerciali e per le
Web Radio Istituzionali/Comunitarie deve essere effettuato anticipatamente a mezzo degli appositi bollettini MAV
che la SIAE invierà entro il 20 gennaio, il 20 aprile, il 20 luglio e il 20 ottobre di ciascun anno. Il trimestre iniziato
è considerato per intero. Il calcolo definitivo degli importi dovuti e le conseguenti operazioni di conguaglio
devono essere effettuati in un’unica soluzione entro il 31 luglio di ciascun anno sulla base degli Introiti Lordi del
Sito relativi all’anno precedente, determinati a norma dell’art.1, che il Licenziatario è tenuto a comunicare alla
SIAE entro il 30 giugno di ciascun anno con apposito modulo (Allegato n. 1).

I trimestri (o l’anno) si pagano anticipati. Le date sono gennaio, aprile, luglio, ottobre. Gli
eventuali conguagli risultanti dall’allegato 1 (dichiarazione dei redditi) si pagano il 31
luglio in un’unica soluzione.
15.3 A richiesta della SIAE il Licenziatario fornirà copia dei suoi bilanci consuntivi o delle dichiarazioni IVA.
Qualora non risultino dovuti importi a titolo di conguaglio, i compensi minimi vengono incamerati a titolo
definitivo.

Si sottolinea che i minimi garantiti non sono soggetti a rimborsi.


15.4 Il pagamento del compenso annuale per le Web Radio personali (art. 13.1 p. C) deve essere effettuato in
unica soluzione, a mezzo dell’apposito bollettino MAV che la SIAE invierà entro il mese di gennaio di ciascun
anno. Se la sottoscrizione ha luogo nel corso del primo semestre dell’anno, ovvero entro il 30 giugno, il compenso
è pari all’intero importo annuale. Se la sottoscrizione ha luogo nel corso del secondo semestre ovvero tra il 1°
luglio e il 31 dicembre, il compenso è pari a metà dell’importo annuale. Il semestre iniziato è considerato per
intero. Successivamente all’anno di sottoscrizione, i compensi annuali delle Web Radio personali (art. 13.1 C.)
devono essere corrisposti in un’unica soluzione entro il 31 gennaio di ciascun anno.

Non ci sono frazionamenti nei pagamenti nemmeno per il primo anno, a meno che la
licenza non sia stata stipulata dopo il primo luglio, in tal caso per il primo anno si pagherà
la metà del normalmente dovuto.
5.16. Art. 16 – Penali
16.1. In caso di ritardato pagamento entro il 60° giorno dalle scadenze previste dall’art. 15 di questa Licenza, la
SIAE potrà applicare una penale convenzionalmente determinata nella misura del 10% dell’importo totale dei
pagamenti dovuti, contabilizzato sulla base del periodo di riferimento. Per i pagamenti effettuati oltre il 60°
giorno, ai sensi e per gli effetti del D.Lgs. 9 ottobre 2002, n. 231, in favore della SIAE saranno applicati interessi
moratori sull’importo dovuto per diritti e non corrisposto entro i termini previsti.

In caso di pagamento tardivo la mora è di due tipi: del 10% entro i primi due mesi,
interessi moratori dopo i primi due mesi.
16.2. Il Licenziatario sarà tenuto, altresì, al risarcimento dell’eventuale maggior danno derivante dal prolungarsi
del ritardo, salvo in ogni caso il diritto della SIAE alla risoluzione del rapporto per colpa del Licenziatario ai sensi
dell’art.1453 del Codice Civile. In tal caso l’ulteriore utilizzazione del repertorio SIAE sarà ritenuta illecita agli
effetti degli articoli 171 e seguenti della Legge 22 aprile 1941 n. 633, in quanto effettuata in assenza di
autorizzazione.

La SIAE può rescindere dal contratto in caso di ritardo nel pagamento.


16.3. Fatto salvo quanto previsto dall’art. 13, qualora la licenza non venga richiesta prima dell’inizio dell’attività,
saranno comunque dovute le penali applicabili per il ritardato pagamento ai sensi del presente articolo.

Le penali vengono considerate anche nel caso in cui si inizi l’attività di trasmissione di
brani coperti dal diritto d’autore prima della stipula del contratto.
5.17. Art. 17 – Report
17.1 Il Licenziatario si obbliga a fornire annualmente alla SIAE, entro e non oltre il 31 gennaio di ciascun anno,
resoconti (report) analitici contenenti obbligatoriamente i dati relativi a titoli, compositori, autori, artisti interpreti
o esecutori delle opere musicali si utilizzano nel corso dell’anno.

Viene fatto obbligo comunicare alla SIAE un report dei brani effettivamente trasmessi. in
modo che i proventi vengano redistribuiti equamente tra gli aventi diritto.
17.2 I report devono essere forniti utilizzando l’apposita pagina del sito della SIAE, https://online.siae.it, ove è
messo a disposizione anche il formato per la presentazione dei dati.
Sul sito c’è un modulo per il report.
5.18. Art. 18 – Controlli della SIAE
18.1. Fermo quanto previsto dalla L.D.A. per le ipotesi di violazioni della legge medesima, il Licenziatario
riconosce alla SIAE la piena facoltà di verificare l’esattezza, la completezza e la veridicità delle dichiarazioni rese
e dei dati forniti dal medesimo in adempimento degli obblighi previsti dal presente contratto e di controllare, con
tutte le tecnologie e in tutti i modi idonei, tutti i dati e tutte le operazioni riguardanti gli utilizzi che rientrano
nell’oggetto di questa Licenza nonché di verificare ogni informazione utile a definire l’ammontare dei compensi
dovuti alla SIAE.

Firmando questo contratto si autorizza la SIAE ad intraprendere tutte le azioni necessarie a


verificare che non si stiano omettendo informazioni o che non si stia dichiarando il falso.
18.2. La facoltà di controllo di cui al presente articolo potrà essere esercitata dalla SIAE anche nei 24 mesi
successivi alla scadenza o alla risoluzione del contratto di Licenza.

La radio può essere controllata anche nei due anni successivi alla chiusura del contratto.
18.3 Le operazioni di cui al presente articolo saranno si effettua durante il normale orario di lavoro del
Licenziatario e con preavviso di almeno 5 giorni lavorativi.

Tutto quello che viene scritto nell’articolo 18 viene effettuato in orario lavorativo del
Licenziatario.
18.4 Il Licenziatario è tenuto a consentire al personale di ruolo della SIAE, a professionisti e/o a società di
revisione da essa incaricati, di effettuare l’attività di controllo di cui al presente articolo senza limitazioni o
restrizioni di sorta, consentendo ai soggetti sopra elencati l’accesso, anche attraverso mezzi informatici (compresa
l’installazione di appositi software di controllo) alle documentazioni contabili e fiscali, ivi compreso il partitario
delle fatture rilasciate ai clienti e le fatture acquisti e vendite, oltreché ai dati relativi alle entrate ed alle
transazioni avvenute per la fornitura delle opere musicali, su qualunque supporto cartaceo e/o informatico o di
altra natura e in qualsiasi luogo le suddette documentazioni si trovino, compreso presso i soggetti che forniscano o
abbiano fornito servizi di hosting o altri servizi relativi al Sito.

Si deve consentire alla SIAE di svolgere il suo lavoro per controllare i documenti fiscali,
compresi i documenti che forniscono i servizi di hosting.
18.5 Il Licenziatario riconosce alla SIAE il diritto di trarre estratti e di far copia, anche informatica, di tutti i dati
ed i documenti, su qualsivoglia supporto cartaceo e/o informatico o di altra natura essi si trovino, pertinenti alle
utilizzazioni del repertorio amministrato dalla SIAE.

La SIAE può copiare o estrarre dati dall’emittente per ragioni di controllo.


18.6 Qualora all’esito del controllo la SIAE rilevi la violazione da parte del Licenziatario di uno o più obblighi
contemplati in questa Licenza, compresa la debenza da parte del Licenziatario di somme maggiori di quelle
corrisposte, ne farà contestazione scritta al Licenziatario stesso, descrivendo la fattispecie e fornendo gli elementi
in suo possesso. Il Licenziatario avrà il diritto e l’onere di far pervenire alla SIAE, entro il termine di 15 giorni dal
ricevimento della suddetta contestazione scritta, le proprie eventuali osservazioni e gli elementi a proprio
discarico. Decorso infruttuosamente il termine dinanzi menzionato, ovvero a seguito della comunicazione scritta
della SIAE circa la mancata accettazione dei motivi illustrati dal Licenziatario, questi corrisponderà alla SIAE,
entro 5 giorni dall’emissione della fattura, l’importo del quale, a seguito dei controlli effettuati, sia stato
riscontrato il mancato pagamento, fermo quanto disposto dall’art. 21 e con salvezza di ogni diritto e azione da
parte della SIAE.

In caso di notifica di pagamento non congruo si può contestare la notifica stessa entro 15
giorni; altrimenti, passati questi 15 giorni, il termine di pagamento è di 5 giorni.
18.7 Qualora i mancati pagamenti imputabili al Licenziatario siano superiori al 5% degli importi da esso
corrisposti per il periodo di conto preso in esame, le spese del controllo saranno poste interamente a carico del
Licenziatario. La relativa fattura dovrà essere saldata entro 5 giorni dalla sua emissione.

Se la variazione è superiore al 5% verranno addebitate anche le spese di controllo.


18.8 L’attività di controllo sarà effettuata dalla SIAE nel rispetto delle previsioni del D.Lgs. 196/2003 “Codice in
materia di protezione dei dati personali”. Il Licenziatario assume a suo carico ogni onere relativo alle
comunicazioni nei confronti degli Utenti ai sensi del D.Lgs. 196/2003. La SIAE e i terzi incaricati sono obbligati
alla massima riservatezza circa i dati e le informazioni di cui vengano a conoscenza nel corso dei controlli. I dati e
le informazioni raccolti durante i controlli saranno usati solo per verificare l’esattezza degli importi corrisposti dal
Licenziatario e potranno essere portati a conoscenza, e solo per finalità connesse a questa Licenza, dei revisori dei
conti della SIAE e di professionisti esterni anch’essi soggetti all’obbligo di riservatezza.

Il tutto avviene tutelando la privacy e la riservatezza del Licenziatario.


5.19. Art. 19 – Digital Delivery
19.1 È consentito al Licenziatario di utilizzare file contenenti opere musicali amministrate dalla SIAE inviati da
soggetti terzi, mediante comunicazione a distanza, via Internet o Intranet, ai fini della successiva messa a
disposizione del pubblico delle opere contenute nei file stessi solo a condizione che tali soggetti terzi siano in
possesso dell’apposita licenza e della relativa attestazione con validità annuale rilasciata dalla SIAE.

Se un terzo individuo invia dei file tutelati, questo terzo individuo deve avere un’apposita
licenza; il tipo di licenza non è tuttavia specificato.
19.2 Il Licenziatario si impegna a fornire annualmente su richiesta della SIAE l’elenco dei soggetti terzi dai quali
ha ricevuto file contenenti opere musicali in conformità al comma precedente.

Oltre ad avere questa licenza, si deve comunicare alla SIAE chi fornisce i brani. Per la
stragrande maggioranza delle web radio amatoriali questo avviene tramite file sharing.
5.20. Art. 20 – Termini di validità
20.1 La Licenza entra in vigore alla data del pagamento del compenso dovuto ed ha validità fino al 31 dicembre
dell’anno in corso.

Le licenze sono annuali.


20.2 È fatta salva la facoltà di ciascuna delle parti di dare disdetta a mezzo di e-mail con avviso di ricevimento
entro il 30 novembre di ciascun anno.

Il contratto si può disdire in corso d’opera entro il 30 novembre dell’anno.


20.3. Negli anni successivi al primo, la Licenza sarà rinnovata mediante pagamento del compenso tramite il
bollettino MAV che, a tal fine, il Licenziatario riceverà in prossimità di ciascuna scadenza. In assenza del
pagamento per l’anno successivo, l’eventuale prosecuzione dell’utilizzazione oggetto della presente Licenza
successivamente alla scadenza costituisce un illecito ai sensi della Legge sul Diritto d’Autore.

Il contratto è tacitamente rinnovato. Se non si paga, ovviamente, non si potranno più


trasmettere brani tutelati.
20.4 Ciascun rinnovo annuale comporterà l’applicazione delle tariffe al momento vigenti. Le variazioni delle
tariffe saranno comunicate al Licenziatario entro il 15 novembre di ciascun anno ed avranno decorrenza dal 1°
gennaio dell’anno successivo.

La SIAE comunica 45 giorni prima della scadenza del contratto eventuali nuove tariffe.
5.21. Art. 21 – Risoluzione del contratto di Licenza
21.1 Nel caso in cui il Licenziatario venga meno ad una qualsiasi delle obbligazioni di cui agli articoli 7, 13, 14,
15, 16 e 18 sopra citati, la SIAE ha la facoltà di risolvere il contratto di Licenza, ai sensi dell’art. 1456 del Codice
Civile, previa notifica delle contestazioni, da effettuare a mezzo lettera raccomandata con avviso di ricevimento.
Senza pregiudizio di ogni diritto al risarcimento di eventuali danni o all’esperimento degli ulteriori rimedi previsti
dalla legge, la risoluzione del contratto di Licenza ha effetto dopo che saranno trascorsi 15 giorni dalla formale
messa in mora inviata con le modalità sopra specificate, qualora entro tale termine il Licenziatario non si conformi
a quanto richiesto.

Se vengono violate le clausole imposte da alcuni articoli di questo contratto la SIAE ha il


diritto di sciogliere unilateralmente il contratto per inadempienza contrattuale.
21.2 La SIAE ha altresì il diritto di recedere dal contratto di Licenza in caso di messa in liquidazione volontaria o
assoggettamento a procedura concorsuale o fallimento del Licenziatario. In tal caso la SIAE comunicherà al
Licenziatario, a mezzo e-mail con avviso di ricevimento all’indirizzo indicato dal Licenziatario all’inizio di questa
Licenza ovvero a mezzo di lettera raccomandata, la propria decisione di recedere dal contratto di Licenza e la data
dalla quale il recesso avrà effetto.

Nei casi in cui il Licenziatario sia una società, se la stessa viene liquidata la SIAE ha il
diritto di recedere dal contratto.
21.3 Nel caso di risoluzione o di recesso, il Licenziatario è tenuto a cessare immediatamente ogni utilizzo delle
opere, che a partire dalla data di efficacia della risoluzione o del recesso sarà considerato illecito agli effetti degli
articoli 171 e ss. della Legge 22 aprile 1941 n. 633, in quanto effettuato in assenza di autorizzazione. Resta inteso
che le somme versate alla SIAE saranno definitivamente acquisite a titolo di indennizzo e le somme
eventualmente dovute saranno immediatamente esigibili, con riserva di quanto dovuto per danni ed interessi.

Qualsiasi cosa succeda, non sono previsti rimborsi.


5.22. Art. 22 – Legge applicabile e Foro competente
22.1 La presente Licenza è soggetta alla legge italiana.
22.2 Ogni controversia che dovesse insorgere in relazione all’interpretazione e all’esecuzione della Licenza sarà
sottoposta alla competenza esclusiva del Foro di Roma.

5.23. Art. 23 – Dichiarazione privacy


Il sottoscritto dichiara di aver letto e preso atto dell’Informativa fornita dalla SIAE – Titolare del trattamento dei
dati – ai sensi dell’art.13 del D.Lgs. 196/2003, nel sito web www.siae.it e fornisce il libero ed espresso consenso
al trattamento dei propri dati personali da parte della SIAE per le finalità ivi indicate.

Classica dichiarazione informativa sulla privacy.


Note
1 La tabella è presente sul sito Internet della SIAE; il contratto (chiamato contratto AWR) è consultabile liberamente
all’indirizzo www.siae.it/documents/Multimedialita_Modello_AWR.pdf?436687
2 Tabella presente sul sito Internet della SIAE; il contratto AWR è consultabile liberamente all’indirizzo
www.siae.it/documents/Multimedialita_Modello_AWR.pdf?436687.
6. SAM Broadcaster
SAM è una regia per lo streaming audio che nasce ed è sviluppata tenendo conto
principalmente e specificatamente delle esigenze dei web radiofonisti. È frutto di molti
anni di ricerca con tecnologie all’avanguardia finalizzate a fornire le potenzialità, le
caratteristiche e la provata professionalità necessaria ai broadcaster. SAM ha il controllo di
tutti gli aspetti di un broadcast e permette un suono professionale. Con la flessibilità,
compatibilità e il forte supporto di rete, è uno strumento importante ed è considerato tra le
migliori regie radiofoniche oggi sul mercato.
6.1. Menu File
File è una sezione della barra del menu di SAM Broadcaster. Tra le sue opzioni troviamo:
♦config: apre la sezione di configurazione;

♦save configuration: forza SAM a salvare la sua corrente configurazione su un file. Questo
è molto utile nel caso in cui si effettuino molti cambiamenti frequentemente, ed ha la
funzione di backup nel caso in cui ci sia un qualsivoglia errore o crash;
♦hide: nasconde l’interfaccia di SAM. Puoi ripristinare la visione dell’interfaccia facendo
doppio click sull’icona nella traybar;
♦exit: chiude SAM.

Figura 6.1. Finestra principale di SAM Broadcaster

6.2. Menu Player


Player è una sezione della barra del menu di SAM Broadcaster. Tra le sue opzioni
troviamo:
s play: inizia a riprodurre una canzone nel primo deck disponibile; se entrambi lo sono, o
se uno dei due è in pausa, inizia a riprodurre in quello stesso deck. Se un deck sta già
suonando, il comando play farà ricominciare la canzone;
♦pause: questo bottone mette in pausa il primo deck che incontra. Se entrambi i deck sono
in play, deve essere premuto due volte per stoppare entrambi. Premerlo ancora farà
ripartire il deck;
♦stop: stoppa tutti i deck. Entrambi i deck verranno stoppati se entrambi attivi;

♦next: questo comando carica la canzone successiva nel deck, se necessario, e inizia a
riprodurla;
♦fade to next: questo comando salterà agli ultimi secondi della canzone, effettuando il fade
alla successiva;
♦DJ mode: ci sono tre modalità operative. Auto DJ, play only queue e manual DJ. Attivare
l’auto recovery comporterà che SAM automaticamente caricherà e riprodurrà una
canzone se SAM è in pausa o viene stoppato per un qualsivoglia motivo;
♦mute studio: istantaneamente zittisce SAM.

6.3. Menu General


General è una sezione della barra del menu di SAM Broadcaster. Tra le sue opzioni
troviamo HTML Output:
♦generate: genera le pagine html di output, come precedentemente impostato nelle
configurazioni;
♦generate playlist: genera la playlist html completa come specificato nelle configurazioni.
Questo dovrebbe essere fatto soltanto una volta che ci sono state aggiunte alla playlist;
♦upload all pictures: aggiungerà tutti i file trovati all’interno della directory di immagini in
locale all’interno della coda FTP per l’upload.
6.4. Menu Window
Il menu Window permette facilmente di rendere visibili o nascondere le finestre in SAM
Broadcaster. Tutte le finestre spuntate sono attualmente visibili. Cliccando su una finestra
visibile, essa scomparirà; cliccando su una riga non spuntata, comparirà la finestra nel
desktop attuale.
I comandi del menu sono i seguenti:
♦close all: chiude tutte le finestre nel desktop visibile al momento;

♦restore: è il comando inverso rispetto a close all. Riporta le finestre alla condizione
precedente;
♦desktop:

-desktop A carica il primo desktop


-desktop B carica il secondo desktop
-desktop C carica il terzo desktop.

6.4.1. Deck
I deck A e B sono le principali finestre di gestione audio di SAM Broadcaster. Le finestre
hanno più di un player disponibile per molte funzioni avanzate (come il crossfading e il
cueing alla canzone successiva). I deck ausiliari 1 e 2 sono simili, ma con alcune
eccezioni, descritte in seguito.
Figura 6.2. Visualizzazione dei deck di SAM Broadcaster

6.5. Player display


I comandi del player display sono i seguenti:
♦song information: informazioni su artista e titolo;

♦album cover display: cliccando sulla cover dell’album si arriverà all’editor delle
informazioni della canzone;
♦cur: mostra la durata corrente della canzone;

♦tot: mostra la durata totale della canzone;

♦rem: mostra la durata rimanente della canzone;

♦intro/outro: sono i cosiddetti cue point. Intro rappresenta il tempo rimanente prima che la
voce della canzone cominci a cantare e lo speaker debba fermarsi; viceversa outro è il
tempo che manca prima che lo speaker possa parlare di nuovo, perché la canzone è
finita;
♦kbps: mostra a quanti kbps è stata codificata la canzone;

♦kHz: mostra la frequenza di campionamento della canzone

♦ (generalmente 44100 Hz);

♦stereo /mono: mostra quanti canali audio contiene la canzone.

♦BPM: mostra i battiti al minuto della canzone (specificato nell’editor delle informazioni
della canzone);
♦control slider: controlla volume, pitch e tempo. Si può scegliere quale controllare
cliccando sui tasti [V], [P] e [T]. Quando il tasto [Air] è premuto, l’audio si sentirà sulla
principale periferica di output. Quando il comando [Cue] è premuto, l’audio si sentirà
sulla periferica di cueing, se abilitata;
♦VU Meter: mostra i correnti livelli di picco dell’audio;

♦play/pause: play/pausa;

♦stop: stop;

♦next: brano successivo;

♦cue points ([CP]): cue point;

♦eject: cancella;

♦fade out: sfuma il brano in uscita;


♦EQ button: finestra di settaggio audio;

♦beat match button ([=]): shifta il controllore da volume a tempo;

♦track position: posizione temporale della traccia.

6.6. Controlli ausiliari

Figura 6.3. Player ausiliare di SAM Broadcaster

I deck ausiliari sono simili ai deck A & B, con alcune eccezioni:


♦mancano alcuni comandi ([=], Next[>|]);

♦c’è un comando aggiuntivo: [Loop]. La funzione loop riprenderà la canzone da capo ogni
volta che finisce. Ideale per sottofondi durante lunghi periodi di parlato.
Nota: tutti i file trasmessi nei canali ausiliari non compariranno nell’history.
6.7. Playlist
La playlist permette una facile modalità di interfaccia alla categorizzazione, gestione e
ricerca della musica. La comprensione delle potenzialità delle categorie di SAM è cruciale
per un uso congruo della regia.

Figura 6.4. Elenco playlist di SAM Broadcaster

6.7.1. Comprendere le categorie di playlist


Playlist display:
♦[^] categorie

♦finestra delle categorie

♦finestra delle tracce di categoria

♦aggiungi file

♦rimuovi file

♦cerca

♦aggiorna
♦barra di stato.

Playlist control: si può cliccare sul tasto [^] proprio accanto al testo delle categorie per
nascondere o mostrare la finestra delle categorie stesse.
La finestra delle categorie contiene una “visione ad albero” di tutte le categorie
disponibili. È possibile cliccare in qualsiasi nodo nell’albero per aprire il nodo e mostrare i
suoi contenuti all’interno della finestra delle tracce di categoria.
Si può creare una nuova categoria cliccando con il tasto destro su una categoria padre e
scegliendo new dal menu contestuale. Quindi scrivere il nuovo nome di categoria e
premere [ENTER] per salvare il cambiamento. Il nome di categoria deve essere unico o le
modifiche non verranno applicate.
Si può cancellare una categoria similmente, facendo click con il tasto destro sulla
categoria e scegliendo l’opzione delete dal menu contestuale.
Attenzione: questo cancellerà la categoria e tutte le sottocategorie al suo interno.
Si può rinominare qualsiasi categoria scegliendo l’opzione rename dal menu contestuale.
Il comando add dal menu contestuale permette di:
♦aggiungere file

♦aggiungere directory

♦aggiungere URL

♦aggiungere playlist.

ALTRI COMANDI DEL MENU CONTESTUALE


♦Search aprirà una finestra di ricerca per potere immediatamente localizzare le canzoni;

♦refresh ricaricherà le informazioni sui file dal database.

Nota: si possono trascinare categorie per cambiarle di posizione o farle diventare


sottocategorie di un’altra categoria.
SCORCIATOIE DA TASTIERA PER IL PLAYLIST DISPLAY
♦[Ins]: aggiunge una nuova categoria;

♦[Del]: cancella la categoria selezionata;

♦[Ctrl] + [F]: apre la finestra di ricerca delle canzoni;

♦qualsiasi altro tasto: apre la finestra di ricerca delle canzoni;

♦[F10]: aggiorna le informazioni.

FINESTRA DELLA CATEGORIA TRACCE


In dipendenza dalla categoria selezionata, la finestra della categoria tracce mostrerà:
♦normali categorie: una lista di tutte le tracce / canzoni nella categoria;

♦categorie padre: una lista di tutte le categorie figlie sotto al categoria corrente (se la
categoria è una categoria padre radice);
♦categorie raggruppate: una lista di gruppi di categorie sulla sinistra con una lista delle
tracce interne al gruppo sulla destra.
CATEGORIE NORMALI
Molte categorie sono normali. Contengono una lista di canzoni. Se qualche opzione è
disabilitata per una specifica categoria, tali operazioni non sono valide solo per quella
categoria.
COME AGGIUNGERE CANZONI ALLA CATEGORIA
♦Trascinare una traccia o più da tutte le liste di canzoni nella finestra delle tracce e la
canzone verrà aggiunta alla categoria;
♦trascinare file direttamente dalle cartelle;

♦il più verde ([+]) permette di aggiungere file alla categoria. Cliccando direttamente si
aprirà la finestra di ricerca per le canzoni;
♦cliccando sulla freccia verso il basso accanto al [+] verde, è possibile:

-aggiungere file
-aggiungere un’intera cartella
-aggiungere un URL
-aggiungere una playlist alla categoria corrente.

COME RIMUOVERE CANZONI DA UNA CATEGORIA


♦Il meno rosso ([]) permette di rimuovere la traccia o le tracce selezionate, dalla categoria.
Il menu a cascata del [] rosso permette:
-remove: rimuove la traccia selezionata dalla directory;
-crop: rimuove tutte le tracce tranne quella selezionata;
-clear: rimuove tutte le tracce della categoria;
-remove from all: rimuove tutte le tracce dalla libreria dei media (la canzone è
completamente rimossa dal database);
-delete physical file: rimuove fisicamente il file.

♦il comando ricerca aprirà la finestra di ricerca che permette di localizzare velocemente le
canzoni;
♦il comando refresh ricaricherà le informazioni dal database per essere certi che siano
visualizzate le ultimissime informazioni;
♦cliccare col tasto destro sulla finestra delle tracce per avere una lista con altre operazioni:

-queue bottom: aggiunge la traccia selezionata alla fine della coda;


-queue top: aggiunge la traccia selezionata all’inizio della coda;
-sort: permette di mescolare la lista in base ad uno specifico campo, o il tasto shuffle
mescolerà casualmente la lista;
-select all: seleziona tutte le tracce in categoria;
-invert selection: inverte la selezione, selezionando le canzoni non selezionate e
deselezionando le canzoni selezionate;
-song info: apre l’editor delle informazioni dei brani.
CATEGORIE GENITORI
Alcune categorie esistono soltanto per fungere da genitori per altre categorie. Queste
categorie mostreranno soltanto una lista delle categorie figlie nella finestra delle tracce.
CATEGORIE RAGGRUPPATE
Le categorie raggruppate riuniscono brani insieme tramite un valore comune. Ad esempio
la categoria raggruppata “By genre” raggruppa insieme tutti i brani dello stesso genere. Si
tratta di query predefinite sul database dei brani.
SCORCIATOIE DA TASTIERA PER I BRANI IN CATEGORIA
♦[ENTER]: aggiunge le canzoni selezionate alla fine della coda;

♦[Ctrl] + [ENTER]: aggiunge le canzoni selezionate all’inizio della coda;

♦[Ctrl] + [O]: aggiunge file;

♦[Ctrl] + [D]: aggiunge directory;

♦[Ctrl] + [U]: aggiunge URL;

♦[Ctrl] + [L]: aggiunge playlist;

♦[Del]: rimuove le canzoni selezionate;

♦[Shift] + [Del]: crop (cancella tutto tranne);

♦[Ctrl] + [Del]: svuota la categoria;

♦[Ctrl] + [F]: apre la finestra di ricerca brani;

♦qualsiasi altro tasto: visualizza la finestra di ricerca brani;

♦[Ctrl] + [R]: randomizza;

♦[F10]: aggiorna;

♦[Ctrl] + [A]: seleziona tutto;

♦[Ctrl] + [I]: inverte la selezione;

♦[Alt] + [3]: apre l’editor delle informazioni dei brani.

6.8. Queue

Figura 6.5. Coda di SAM Broadcaster

La coda (queue) contiene la lista delle canzoni schedulate per essere trasmesse in una lista
ordinata. Le canzoni vengono trasmesse dall’alto in basso ed una canzone è rimossa dalla
coda nello stesso momento in cui viene trasferita in un deck. La coda permette al regista di
creare in ampio anticipo la sequenza di canzoni.
6.8.1. Queue Display
♦[+]: aggiunge file;

♦[]: rimuove file;

♦search: permette di trovare facilmente canzoni da aggiungere alla coda;

♦save playlist: permette di salvare la coda in un file playlist (*.m3u); il menu a consente di
scegliere tra *.m3u o *.csv;
♦refresh
list: aggiorna la lista delle canzoni in coda; utile se si sono cambiate le
informazioni su un brano dall’editor;
♦put another song in the queue: selezionerà un’altra canzone secondo la logica di
rotazione della playlist e piazzerà la canzone alla fine della coda;
♦play next: riproduce la canzona successiva;

♦ETA: tempo stimato di arrivo;

♦artista-titolo;

♦durata del brano;

♦la barra di stato mostra il numero di canzoni in coda e la durata totale dei brani all’interno
della coda.
Nota: se si clicca col tasto destroy all’interno della coda comparirà un menu contestuale
con numerose opzioni.
6.8.2. Aggiungere e rimuovere dalla coda
AGGIUNGERE ALLA CODA
♦Si possono trascinare in coda brani da qualsiasi lista;

♦si possono trascinare in coda brani direttamente dalle cartelle;

♦si può fare una ricerca semplicemente scrivendo all’interno della finestra della coda, e
quindi aggiungere la canzone alla coda stessa.
La freccetta nera accanto al più verde apre un menu a cascata che consente di:
♦aggiungere file

♦aggiungere un’intera directory

♦aggiungere un URL

♦aggiungere una playlist.

RIMUOVERE DALLA CODA


La freccetta nera accanto al meno rosso [] apre un menu a cascata che consente di:
♦rimuovere la canzone selezionata dalla coda

♦rimuovere tutte le canzoni tranne quella selezionata

♦cancellare l’intera coda

♦rimuovere duplicate inseriti in coda.


6.8.3. Scorciatoie da tastiera
♦[ENTER] o doppio click: riproduce il brano successivo;

♦[Ctrl] + [N]: scegli il successivo;

♦[Ctrl] + [O]: aggiungi un file;

♦[Ctrl] + [D]: aggiungi una directory;

♦[Ctrl] + [U]: aggiungi URL;

♦[Ctrl] + [L]: aggiungi una playlist;

♦[Ctrl] + [M]: apre la finestra di configurazione del microfono;

♦[Del]: rimuove i brani selezionati;

♦[Shift] + [Del]: crop (cancella tutto tranne);

♦[Ctrl] + [Del]: svuota la coda;

♦[Ctrl] + [S]: salva la coda su file;

♦[Ctrl] + [F]: cerca il brano;

♦qualsiasi altro tasto: cerca il brano;

♦[Ctrl] + [R]: randomizza;

♦[F10]: aggiorna;

♦[Ctrl] + [A]: seleziona tutto;

♦[Ctrl] + [I]: inverti selezione;

♦[Alt] + [3]: apre l’editor delle informazioni dei brani.

6.9. History

Figura 6.6. Storico di SAM Broadcaster

La finestra History mostra le ultime 200 canzoni trasmesse da SAM. Permette di vedere
facilmente lo storico e quindi evitare di ritrasmettere brani riprodotti recentemente. Si può
trascinare un brano direttamente dallo storico all’interno di una qualsiasi altra lista,
compresa la coda o un deck.
6.9.1. Scorciatoie da tastiera
♦[ENTER]: aggiunge il brano alla fine della coda;

♦[Ctrl] + [ENTER]: aggiunge il brano all’inizio della coda;


♦[Ctrl] + [F]: apre la finestra di ricerca dei brani;

♦qualsiasi altro tasto: apre la finestra di ricerca dei brani;

♦[Alt] + [3]: apre la finestra con le informazioni sul brano;

♦[F10]: aggiorna la lista dei brani.

6.10. SAM requests


La finestra Requests mostra tutte le richieste pendenti cha aspettano di essere aggiunte alla
coda.
6.10.1. Request Display
♦Refresh: aggiornerà la lista delle richieste;

♦clear: svuoterà la lista delle richieste;

♦ETA: è la stima dell’orario nel quale verrà inserita in coda la richiesta;

♦artist- title: informazioni sull’artista e sul brano;

♦duration: identifica la durata del brano richiesto;

♦status bar: mostra il numero di canzoni all’interno della finestra delle richieste e la durata
totale dei brani. Cliccando col tasto destro si visualizzerà una finestra con molte più
opzioni.
6.10.2. Scorciatoie da tastiera
♦[ENTER]: aggiungi le richieste selezionate alla fine della coda;

♦[Ctrl] + [ENTER]: aggiungi le richieste selezionate all’inizio della coda;

♦[Del]: ignora le richieste selezionate;

♦[Ctrl] + [Del]: ignora tutte le richieste;

♦[F10]: aggiorna le informazioni;

♦[Alt] + [3]: editor delle informazioni sui brani.

6.11. Voice FX
La finestra Voice FX permette agli speaker di parlare sulla musica trasmessa in modo
molto comodo.

Figura 6.7. Finestra di gestione del vocale

6.11.1. Voice FX Display


♦Config: apre la finestra delle configurazioni;
♦EQ: porta alla finestra di settaggio audio;

♦mic off/on: accende o spegne il microfono;

♦press to talk: va tenuto premuto per interventi brevi, se rilasciato il microfono si stacca;

♦lock talk: mantiene premuto il comando press to talk. Se viene ripremuto si stacca;

♦music volume slider: permette di settare il livello in decibel della musica, usato in
congiunzione con [Auto];
♦[Auto] sfumatura musica: premendo questo comando si farà in modo che la musica sfumi
ogni volta che si preme il comando press to talk;
♦Mic volume/speed slider: setta il livello in decibel del microfono o la velocità della voce:

-[S] = speed: cambia la velocità dell’audio senza intervenire sull’audio stesso. Questa
è l’unica modalità che funziona con VoiceFX since unlike songs. I dati di VoiceFX
sono in tempo reale;
-[V] = volume: in modalità Soundcard il controllo volume cambierà il volume della
PLAYBACK line: ad esempio, cambierà il volume di quanto si ascolta attraverso la
scheda audio; in modalità Record to pipeline il controllo volume cambierà il volume
del canale VoiceFX. Non avrebbe effetto sul volume della linea di controllo
registrazione.
♦VU meter: esprime a quanti decibel si sta parlando.

6.11.2. Configurazione
Questa finestra si aprirà cliccando sul tasto config all’interno della finestra Voice FX.
MODALITÀ DI REGISTRAZIONE
Le modalità di registrazione si vedono meglio all’interno del menu config >Audio Mixer
Pipeline:
1) none: quando il talk button viene premuto, SAM sfumerà semplicemente la musica (se
è abilitato l’auto fade). Non vengono eseguite altre operazioni;
2) mixer (record to pipeline): i dati audio sono registrati dalla scheda audio e forniti come
input al canale Voice FX. Questa modalità permette di fare processing audio su questo
flusso, come avviene ad esempio per il deck A. Questo significa, inoltre, che si avrà la
possibilità di autoascoltarsi. Se la latenza è abbastanza bassa, l’eco potrebbe essere
tollerabile;
3) soundcard: SAM ritrasmetterà l’audio attraverso la scheda audio. Sebbene anche questa
modalità soffra dell’effetto eco, questo è istantaneo. Questa modalità è usata in
congiunzione con il comando rosso sugli encoder. In questo modo, infatti, si ha la
sicurezza di trasmettere esattamente quello che si ascolta;
4) encoders (record to pipeline, skip output): esattamente come la seconda modalità,
eccetto che l’audio è soltanto mixato all’interno del flusso complessivo prima
dell’encoder. Questo significa che questa modalità salta il mixer principale e l’output,
compresi i suoi equalizzatori, AGC e DSP plugins. Questa modalità non ha eco.
DA TENERE A MENTE
♦I VU meters sono disponibili soltanto nelle modalità 2 e 4;

♦in modalità 2 o 4 si può specificare la latenza del registratore. Se si sente saltare la


propria voce, una soluzione è aumentare la latenza di output e recorder. Inoltre, in questa
modalità il tasto mixer permette di saltare rapidamente al mixer della scheda audio che
deve essere configurato correttamente prima di usare Voice FX;
♦in modalità 3, SAM può automaticamente zittire o ripristinare il corretto controllo
volume dell’output sul mixer. In alcune schede audio economiche questo può causare il
muto in tutti i controlli output; in questo caso la modalità di muto automatico dovrebbe
essere disabilitata.
Il Microphone volume slider corregge il volume del microfono.
Questo slider non cambia il volume del microfono per come evidenziato all’interno del
mixer della scheda audio. Inoltre, Voice FX recupera l’input audio dal dispositivo di
registrazione attualmente selezionato; per cui, occorre porre attenzione nel selezionare il
corretto dispositivo utile ai propri scopi.
Il Music volume slider effettua il fading del volume della musica quando viene premuto il
talk button. Questo slider è da settare sufficientemente basso per permettere alla propria
voce di essere ascoltata sopra la musica.
Il Fade Time slider specifica quanto tempo impiegherà il suono a passare dalla modalità
normale alla modalità bassa tipica del talk button, e viceversa.
6.11.3. Utilizzo di Voice FX
Dopo la configurazione, i seguenti passaggi permettono l’utilizzo di Voice Fx:
1) accendere il microfono premendo il comando MIC sulla finestra. Il LED verde si
accenderà. Si noterà anche che il comando press to talk ed il comando lock talk non
sono più disabilitati;
2) premere il comando press to talk. Il suono diminuirà di volume.
Adesso si è pronti per parlare al microfono Si potrà vedere il VU Meter che mostra i
livelli sonori.
Nota: il VU meter è supportato soltanto in modalità Mixer ed Encoder;
3) rilasciare il comando press to talk. La musica ritorna ai livelli volumetrici precedenti;
4) spegnere il microfono premendo nuovamente il comando MIC. Press to talk e lock talk
diverranno disabilitati.
Ai passaggi 2 e 3 si può alternativamente premere il comando lock talk, che bloccherà il
comando press to talk in modo da potere usare il mouse per altre operazioni.
Si raccomanda di spegnere il microfono quando non si prevede di andare in onda per far
risparmiare lavoro al processore e per evitare accensioni accidentali del microfono con
ovvi momenti di imbarazzo.
6.11.4. Scorciatoie da tastiera
♦[Shift] + [F11]: blocca il Voice FX per poter parlare;

♦[F11]: il Voice FX verrà sbloccato;

♦[F11]: press to talk. Accende il microfono se necessario.

6.12. Volume
La finestra del volume permette di controllare l’output principale del volume di entrambi i
dispositivi di trasmissione e del dispositivo di cue. Si può anche rendere muto uno o
entrambi i dispositivi. Questo è comodo qualora si vogliano zittire gli speaker quando si
parla al microfono o per rendere SAM silente quando si lavora su qualcosa.

Figura 6.8. Finestra di gestione del volume

Nota: questo volume non influenza la trasmissione su Internet del flusso audio.
6.13. Sound FX
La finestra Sound Fx permette di riprodurre istantaneamente alcuni effetti sonori o jingle
sopra la voce degli speaker o sopra la musica.

Figura 6.9. Finestra di gestione degli effetti sonori

6.13.1. Sound FX display


Tra le opzioni del Sound FX display troviamo:
♦menu a discesa della lista di categorie Sound FX: fornisce una lista di cartelle dalle quali
si possono scegliere gli effetti sonori, all’interno di Content > Sound FX category;
♦previous/next page: scorre la lista avanti ed indietro;

♦contatore di pagina corrente: indica la pagina attualmente visualizzata;

♦comando effetto da 1 a 12: questo è un ordine alfabetico degli effetti sonori presenti in
Content > Sound FX category; premendo il comando verrà riprodotto l’effetto;
♦stop d’emergenza: in qualsiasi momento si può premere il comando STOP al centro di
Sound FX per fermare l’effetto sonoro;
♦volume slider: lo slider permette di variare il volume degli effetti riprodotti. Bisogna
assicurarsi che il volume sia alto a sufficienza per potere essere ascoltato sopra la
musica o il parlato. Si consiglia di settare il volume a +2.8dB, il valore più alto, perché
Sound FX generalmente necessita un volume più alto rispetto alla musica.
6.13.2. Sound FX control
Il primo passaggio da seguire prima di utilizzare Sound FX è caricare gli effetti sonori. Per
farlo, aprire la finestra playlist e visualizzare Content > Sound FX category. Si possono
creare categorie personalizzate all’interno di questa categoria padre o semplicemente
aggiungere gli effetti alla categoria esistente chiamata Sound FX (All).
Una volta fatto ciò, bisogna tornare alla finestra Sound FX e cliccare il menu a discesa
Category per scegliere la categoria di effetti sonori che si vuole caricare all’interno della
finestra.
Una volta caricati gli effetti all’interno, si dovrebbero vedere i comandi da 1 a 12
diventare attivi.
Si può riprodurre istantaneamente un effetto cliccando il comando adeguato e si può
interrompere premendo lo stesso comando.
La maggior parte degli effetti è breve e dovrebbe riprodursi dall’inizio alla fine; se per un
qualsiasi motivo si dovesse inserire un effetto più lungo, questo può essere stoppato
tramite lo stesso comando.
6.14. Fade Control
Il controllo del fading è usato per effettuare il crossfading manuale tra brani e performare
passaggi professionali tra le canzoni.

Figura 6.10. Finestra di gestione del fading

6.14.1. Crossfading manuale


Questo slider permette di effettuare il crossfading tra brani manualmente, semplicemente
spostando lo slider a sinistra o a destra.
Per prima cosa bisogna notare che quando si clicca sul tab, una nuova canzone verrà
caricata all’interno del deck vuoto.
Spostare lo slider a sinistra comporterà:
♦diminuire il volume del deck attualmente attivo (fade out);

♦fare partire l’altro deck;

♦aumentare il volume dell’altro deck (fade in).

Spostare lo slider a destra comporterà:


♦diminuire il volume del deck attualmente attivo (fade out);
♦fare partire l’altro deck;

♦impostare il volume dell’altro deck al massimo (senza fading).

Infine, occorre notare che il brano precedentemente in onda verrà rimosso nel momento in
cui si rilascia il mouse.
6.14.2. Fading manuale
La tipologia manuale di fading funziona in modo tradizionale, similarmente a quanto
avviene in molti mixer hardware. Questo fader non caricherà nessun brano all’interno dei
deck vuoti, così come non rimuoverà il brano appena suonato.
Spostare lo slider a sinistra comporterà l’abbassamento del volume del deck B.
Spostare lo slider a destra comporterà l’abbassamento del volume del deck A.
Questo fader si può utilizzare, ad esempio, in questo modo. Si supponga che il deck A stia
attualmente riproducendo un brano:
♦muovere lo slider totalmente a sinistra per rendere muto il deck B;

♦caricare un brano all’interno del deck B e premere play;

♦muovere lentamente lo slider da sinistra a destra. Questo movimento diminuirà il volume


del deck A e aumenterà il volume del deck B.
Si può cliccare sul comando central per normalizzare il volume su entrambi i deck.
6.14.3. Tempo adjust (pitch control)
Per sincronizzare i battiti, SAM corregge il BPM del brano piuttosto che l’attuale pitch. Il
motivo è che la correzione dei BPM non causerà distorsioni vocali.
Per correggere il tempo di un deck è sufficiente muovere lo slider oppure usare i pulsanti
di incremento/decremento dei BPM.
Si può cliccare il comando centrale per normalizzare.
Beat matching permette di sincronizzare i battiti da un brano all’altro.
Nota: per far funzionare il matching dei BPM occorre settare i BPM per ciascun brano
all’interno dell’editor di informazioni del brano.
6.14.4. Smooth Beat Fade
Questo strumento è usato per modificare i BPM di entrambi i brani verso un valore
intermedio. Combinare questo strumento con un fading manuale può creare effetti
professionali.
Utilizzo:
1) caricare un brano sul deck;
2) spostare il fader manual nella direzione opposta rispetto al deck che deve essere silente;
3) muovere lo smooth beat slider interamente verso destra, con cautela. Facendo questo
l’ascoltatore non noterà la variazione dei BPM;
4) iniziare a riprodurre sul deck silente e muovere lo slider per il fading manuale, in modo
che la nuova traccia cominci a suonare e la traccia precedente sfumi. Le due tracce
dovrebbero a questo punto avere gli stessi BPM;
5) una volta che la traccia è silente, rimuoverla;
6) riportare lo slider a sinistra di nuovo, lentamente. Questo movimento normalizzerà i
BPM del nuovo brano.
6.14.5. Beat fade (Metodo di sincronizzazione dei battiti tradizionale)
La modalità tradizionale di sincronizzazione dei battiti:
♦se lo slider è centrale, entrambi i deck hanno i battiti normali;

♦se lo slider è a sinistra, il deck B si sincronizzerà sui battiti del deck A;

♦se lo slider è a destra, il deck A si sincronizzerà sui battiti del deck B.

6.15. SAM Voice-tracking


Il voice-tracking consente di registrare audio da un microfono o dall’ingresso della scheda
audio e riprodurlo in qualsiasi altro momento.

Figura 6.11. Finestra di gestione del voice-tracking

6.15.1. Configurazione del voice-tracking


Prima di utilizzare lo strumento del voice-tracking occorre configurare le opzioni del
modulo.
Dispositivi audio:
♦dispositivo di cattura: la scheda audio dalla quale si vuole registrare;

♦dispositivo di preascolto: la scheda audio che riprodurrà l’audio per il regista.

Valori di default (possono essere cambiati manualmente):


♦play X times and then Y: riproduce un brano un tot numero di volte, quindi rimuove,
cancella o mantiene il file;
♦track type: la categoria del brano;

♦save file to directory: sceglie una directory dove salvare i file prodotti con il voice-
tracking.
6.15.2. Voice-tracking: comandi principali
RECORD
Cliccare su record permetterà di registrare una nuova traccia vocale o continuare la
precedente. Lo slider consente di scegliere il punto dal quale ascoltare o continuare a
registrare.
Nota: la massima durata di un voice-track è di 5 minuti.
EDIT
♦New voicetrack: crea una nuova voice-track eliminando la precedente;

♦delete before current position: quando si usa lo slider, si può scegliere un punto dal quale
cancellare tutto il registrato precedente;
♦delete after current position: quando si usa lo slider, si può scegliere un punto a partire
dal quale cancellare tutto il registrato successivo;
♦clear: cancellerà l’attuale traccia vocale;

♦delete: funziona come clear ma cancella anche il file dal disco;

♦play: riprodurrà il brano dal punto in questione.

STORE
♦Quick queue: salverà la voice-track con un nome generico e la piazzerà in coda;

♦store & queue: permette di dare un nome personalizzato alla voice-track e piazzarla in
coda;
♦store only: permette di dare un nome personalizzato alla voice-track.

DESCRIPTION
♦Inserendo una descrizione si darà un titolo alla voice-track in modo che SAM possa
ricercare il file creato.
Nota: la versione attuale del voice-tracking è semplice e registra soltanto quanto viene
inviatogli; quando viene piazzata una voice-track in coda, questa viene trattata come tutte
le altre canzoni.
6.16. StreamAds Control
Prima di configurare lo StreamAds Control è necessario configurare lo StreamAds Server,
come documentato sulla pagina Wikipedia del servizio, raggiungibile al sito:
http://support.spacialaudio.com/wiki/StreamAds.

Figura 6.12. Finestra di controllo della pubblicità

6.16.1. Control buttons


VIEW ADVERTISEMENTS
Si aprirà una finestra che mostra le pubblicità attualmente inseribili in trasmissione:
♦ID: numero assegnato dal provider;

♦provider: nome assegnato del provider; A, B o C;

♦filename: nome (univoco) dello spot;

♦description: titolo dello spot;

♦duration: durata dello spot;

♦status: indica se il brano è pronto o se deve essere scaricato;

♦spins: numero di passaggi dello spot già avvenuti;

♦performances: quante persone hanno ascoltato lo spot;

♦blocked: se la pubblicità verrà passata o meno; si può cambiare questa opzione tramite
click col tasto destro;
♦provider drop-down: si può scegliere quale provider visualizzare. Cliccando col tasto
destro su uno spot si potrà bloccarlo, aggiungerlo alla coda o switchare tra i provider.
VERIFY ADVERTISEMENTS
Controllo manuale utile per verificare se le pubblicità continuano ad essere in rotazione.
FORCE UPDATE
Richiesta manuale al server StreamAds per avere la lista più aggiornata degli spot.
FORCE DOWNLOAD
Se uno spot è pronto per il download verrà scaricato.
L’area download, in basso all’interno del controllo, evidenzierà se uno spot è in download
e fornirà ulteriori informazioni.
6.17. Encoders
Gli encoder convertono il flusso audio PCM in un flusso AAC+, MP3, Windows Media o
di altre tipologie, che può essere trasmesso su Internet. Il processo è lo stesso che avviene
in qualsiasi altro software per la trasmissione su Internet, Winamp su tutti.
6.17.1. Encoders Display

Figura 6.13. Finestra di gestione degli encoder

Il menu a tendina fornisce la maggior parte delle opzioni, tra cui:


♦start all farà partire tutti gli encoder;

♦stop all fermerà tutti gli encoder;

♦select source permetterà di scegliere quale encoder utilizzare:


-dalla pipeline
-dalla scheda audio.

Se si utilizzano più schede audio, questa opzione mostrerà tutte le schede audio, in modo
da poterne scegliere una.
Nota: cliccando col tasto destro su un encoder si otterrà un popup con le stesse opzioni:
♦([+]) add new encoder aprirà la lista degli encoder permettendo di scegliere quale nuovo
encoder creare;
♦configure permette di modificare le configurazioni dell’encoder;

♦([-]) remove encoder rimuoverà l’encoder selezionato;

♦start farà partire l’encoder selezionato permettendogli di trasmettere;

♦stop fermerà l’encoder selezionato;

♦il comando blu userà la pipeline audio come fonte diretta del flusso audio da codificare;

♦il comando rosso userà la scheda audio come fonte diretta del flusso audio da codificare;

♦scripting interface mostra o nasconde la sezione di scripting degli encoder. Lo scripting


funziona solo su Windows Media Player. È supportato anche lo scripting MP3;
♦VU meter mostra i livelli audio in decibel.

6.17.2. Interfaccia di scripting


Il menu a tendina presenta diverse opzioni; tra queste, ad esempio:
♦caption

♦URL

♦popup

♦popupex

♦data

♦updatedata

♦execjava

♦redirect

♦event

♦cue_event

♦uncue_event

♦begin_element_event

♦end_element_event.

In questa trattazione verrà specificata soltanto l’opzione caption, che permette di mostrare
un testo a scelta all’interno del Windows Media Player degli ascoltatori, ammesso che sia
stato abilitato. Questi metadati inviati a real time verranno visualizzati nel momento della
ricezione della porzione di flusso in cui è stato inviato il metadato.
6.17.3. Come aggiungere un encoder
ENCODER SHOUTCAST
Una volta cliccato sul comando [+], scegliere uno dei codec disponibili. Per il server
Shoutcast la scelta è limitata a legacy MP3, MP3, AAC+ e MP3PRO.

Figura 6.14. Finestra di scelta dell’encoder

Scegliendo MP3, le opzioni da settare sono:


♦quality: fast resampling o high quality. La prima scelta permette una codifica più veloce
ma una qualità minore;
♦format: scegliere il bitrate migliore per le esigenze di trasmissione;

auto start encoder after 5 seconds se si vuole che il flusso parta


♦selezionare
automaticamente;
♦deselezionare allow scripts in stream.

Figura 6.15. Finestra di configurazione dello streaming

SERVER DETAILS TAB


♦Il server type da indicare è Shoutcast;

♦inserire l’indirizzo IP del server all’interno del campo Server IP;

♦inserire la porta TCP del server all’interno del campo Server Port;

♦inserire la password del server all’interno del campo Password.

STATION DETAILS AREA


♦Inserire il nome della stazione;

♦selezionare il genere dal menu a tendina o scriverlo autonomamente. Se ne può scrivere


anche più di uno, separati da virgole;
♦inserire l’URL del sito della radio;

♦inserire l’ID di AIM (opzionale);

♦inserire l’ID di ICQ (opzionale);

♦inserire il canale IRC (opzionale);

♦selezionare list on public station listing (recommended);

♦selezionare enable title streaming e assicurarsi che $combine$ sia nel campo sotto enable
title streaming per mostrare i titoli dei brani;
♦cliccare OK.

L’encoder dovrebbe adesso mostrare una scritta simile a Encoded (#), streamed (#)
qualora fosse stato impostato l’autostart; altrimenti occorre farlo partire con il tasto start
da menu contestuale.
Se l’encoder non codifica, verificare i dati appena inseriti.
ENCODER WINDOWS MEDIA
Una volta cliccato sul comando [+], scegliere uno dei codec disponibili. Per il server
Windows Media la scelta è limitata a WMA (v9 advanced).
METODO PUSH
Selezionare il bitrate desiderato.
Stream options tab:
♦il singolo bitrate è impostato di default;

♦selezionare auto start encoder;

♦selezionare use PUSH distribution;

♦inserire l’IP del server di streaming all’interno del campo media server host/IP;

♦inserire l’alias all’interno del campo publishing point;

♦lasciare vuoto il campo template publishing point;

♦lasciare deselezionato automatically destroy publishing point;

♦inserire il proprio nome utente all’interno del campo username;

♦inserire la propria password all’interno del campo password;

♦assicurarsi di selezionare auto reconnect encoder after 15 seconds.

Scripting tab:
♦inserire le informazioni sull’emittente;

♦inserire descrizione e copyright;

♦assicurarsi che allow scripts in stream sia selezionato;


♦assicurarsi che allow automatic captioning sia selezionato.

Nota: si dovrebbe avere ‘$combine$ ($mmss$)’ come input;


♦assicurarsi che allow automatic data streaming sia selezionato.

Nota: si dovrebbe avere come input ‘artist=#artist#&title=#title #&album=


#album#&duration=#duration#;
&songtype=#songtype#&overlay=#overlay#&buycd=#buycd#;
&website=#website#&mmss=#mmss#&picture=#picture#’;
♦settare buffer window a 3000;

♦settare bandwidtha 1500;

♦cliccare OK.

L’encoder dovrebbe adesso mostrare una scritta simile a Encoded (#), streamed (#)
qualora fosse stato impostato l’autostart; altrimenti, occorre farlo partire con il tasto start
da menu contestuale.
Se l’encoder non codifica, verificare i dati appena inseriti.
METODO PULL
Il metodo pull consente a SAM Broadcaster di trasmettere localmente su una porta e
permettere al server di streaming di prelevare il flusso direttamente dal PC trasmittente.
Selezionare il bitrate desiderato
Stream options tab:
♦il singolo bitrate è impostato di default;

♦selezionare auto start encoder;

♦selezionare use PULL distribution;

♦la porta è di default la 3690;

♦l’user è di default il 10.

Scripting tab:
♦inserire le informazioni sull’emittente;

♦inserire descrizione e copyright;

♦assicurarsi che allow scripts in stream sia selezionato;

♦assicurarsi che allow automatic captioning sia selezionato.

Nota: si dovrebbe avere $combine$ ($mmss$) come input;


♦assicurarsi che allow automatic data streaming sia selezionato.

Nota: si dovrebbe avere come input ‘artist#&title=#title#&


album=#album#&duration=#duration#;
&songtype=#songtype#&overlay=#overlay#&buycd=#buycd#;
&website=#website#&mmss=#mmss#&picture=#picture#’;
♦settare buffer window a 3000;

♦settare bandwidth a 1500;

♦cliccare OK.

La distribuzione PULL crea un server di streaming minimale all’interno del computer


trasmittente. Parlando secondo la toponomastica web radiofonica, la sorgente diventa un
server di streaming ed il vero server di streaming diventa un server di secondo livello.
Questa tipologia di trasmissione, condivisibile o meno, necessita dell’apertura di una porta
TCP, cosa che per molti utenti non è immediata. Se non si ha esperienza con il port
forwarding è sempre meglio optare per la distribuzione push, anche nei casi in cui non si
abbia un IP statico o un alias DNS.
6.18. Statistic Relays
La finestra del relay di statistica permette una veloce visione dello stato di tutti i server di
streaming collegati alla sorgente ed un’interfaccia per aggiungere, modificare o rimuovere
tali collegamenti.
6.18.1. Statistic Relays Control

Figura 6.16. Finestra di gestione del relay di statistiche

♦Menu a cascata fornisce tutte le opzioni del resto della finestra;

♦[+] aggiunge un nuovo relay. Premendo il comando si aprirà una finestra di selezione del
plug-in, che verrà considerata in seguito;
♦configure mostrerà i dettagli del relay selezionato;

♦[-] cancellerà il relay selezionato;

♦force update forzerà l’aggiornamento dei relay. Tale aggiornamento può non essere
istantaneo ed è dipendente dal numero di relay presenti;
♦checkbox se selezionata, il relay sarà presente nel grafico statistiche;

♦il quadrato colorato indica il colore del relay nel quadro statistiche;

♦(#) indica il numero sequenziale del relay;

♦viewers mostra il numero di ascoltatori momentanei sul numero massimo possibile;

♦high mostra il picco di ascoltatori raggiunto dall’inizio trasmissioni;

♦format mostra la tipologia di streaming del relay;

♦bitrate indica il bitrate della trasmissione, in Kbps;

♦server mostra la tipologia di server che si sta utilizzando;

♦status indica lo stato del server, se attivo o se in errore;

♦details mostra i dettagli dello stato del server di streaming.


6.18.2. Come aggiungere un relay di statistiche
RELAY DI STATISTICHE SHOUTCAST
Questo relay deve essere usato per versioni di Shoutcast successive alla 1.8.8; in tutti gli
altri casi occorrerà usare la versione più obsoleta del relay, che verrà esposta dopo.
Scegliere Shoutcast statistic relay dopo avere cliccato sul comando [+], quindi cliccare
OK.
SHOUTCAST SERVER DETAILS
♦Host: indica l’indirizzo IP del server Shoutcast;

♦port: indica la porta del server Shoutcast;

♦password: indica la password del server Shoutcast;

♦color on graph: indica il colore che avrà questo relay sul grafico delle statistiche;

♦private statistic relay: rendere privata questa statistica impedirà di visualizzare le


statistiche della stazione sul sito AudioRealm.

Figura 6.17. Finestra di scelta della tipologia di statistiche

RELAY DI STATISTICHE SHOUTCAST - VERSIONE OBSOLETA


Questo relay deve essere usato per versioni di Shoutcast precedenti alla1.8.8; in tutti gli
altri casi occorrerà usare la versione più recente del relay. Scegliere old Shoutcast statistic
relay dopo avere cliccato sul comando [+], quindi cliccare OK.

Figura 6.18. Finestra di configurazione del relay di statistiche


Figura 6.19. Finestra di scelta della tipologia di statistiche

SHOUTCAST SERVER DETAILS


♦Host: indica l’indirizzo IP del server Shoutcast;

♦port: indica la porta del server Shoutcast;

♦color on graph: il colore che avrà questo relay sul grafico delle statistiche;

♦private statistic relay: rendere privata questa statistica impedirà di visualizzare le


statistiche della stazione sul sito AudioRealm.

Figura 6.20. Finestra di configurazione del relay di statistiche

RELAY DI STATISTICHE MEDIAPOINT MANAGER

Figura 6.21. Finestra di scelta della tipologia di statistiche

MEDIAPOINT SERVER DETAILS


♦MPM host: deve contenere l’IP del server Windows Media;

♦port: deve contenere la porta del server;

♦username e password: devono contenere le credenziali di accesso;

♦alias: compariranno una volta inserite le credenziali;

♦bitrate: deve contenere il bitrate di trasmissione;

♦color on graph: deve contenere il colore che avrà questo relay sul grafico delle
statistiche;
♦private statistic relay: rendere privata questa statistica impedirà di visualizzare le
statistiche della stazione sul sito AudioRealm.
Figura 6.22. Finestra di configurazione del relay di statistiche

6.18.3. Statistic relays graph


La finestra del grafico delle statistiche fornisce una rapida visione degli ascoltatori
dell’emittente nell’ultima ora. I vari relay di statistiche sono segnati tramite differenti
colori.

Figura 6.23. Grafico del relay di statistiche

STATISTIC RELAYS GRAPH DISPLAY


♦L’asse Y (verticale) mostra il numero di ascoltatori;

♦l’asse X (orizzontale) mostra il tempo;

♦la linea current indica il totale degli ascoltatori connessi in tutti i relay;

♦ciascun relay ha un suo colore che può essere specificato nella finestra statistic relay.

STATISTIC RELAYS GRAPH CONTROL


Tenendo premuto [Shift] e il tasto sinistro del mouse si potrà fare uno zoom su una
porzione del grafo, nel caso in cui la scala proposta di default non sia sufficiente a
mostrare le variazioni desiderate. Tenendo premuto [Shift] e cliccando in un punto del
grafo si ritornerà alla scala originale. Tenendo premuto [Ctrl] e il tasto sinistro del mouse
si potrà muovere il grafico nelle due dimensioni.
6.19. FTP log
La finestra FTP log mostra informazioni sugli upload della regia. La maggior parte degli
upload FTP fanno parte dell’output HTML che deve essere caricato sul sito dell’emittente.
Questa finestra mostra i progressi degli upload e permette di correggere possibili errori.

Figura 6.24. Log degli invii tramite FTP

FTP log mostra le interazioni tra SAM Broadcaster e il sito Internet. Se l’upload non va a
buon fine la causa può essere scoperta vedendo proprio il log.
FTP queue mostra la lista dei file da caricare.
Clear queue cancellerà tutti i file dalla coda, terminando quindi l’upload.
6.20. PAL script
PAL è l’acronimo di Playlist Automation Language. Gli scripts PAL sono mini-programmi
che possono essere eseguiti all’interno di SAM Broadcaster per eseguire praticamente
qualunque operazione. Molte emittenti usano questi script per automatizzare operazioni
quali, ad esempio, il caricamento di un brano ad un orario specifico, oppure per mantenere
la coda con un numero costante di canzone in ogni momento.
PAL è basato sul linguaggio Delphi, che è opportuno conoscere per realizzare script
complessi.

Figura 6.25. Finestra di gestione degli script PAL

♦Il comando [+] permette di:

-cercare uno script già esistente in memoria cliccando sull’icona della cartella;
-creare un nuovo file PAL.

♦il comando [] rimuoverà il file PAL selezionato;

♦config (“tools”) permette di configurare il file PAL selezionato;

♦edit caricherà il file selezionato all’interno del PAL IDE;

♦start eseguirà il PAL script selezionato;

♦pause metterà in pausa il PAL script selezionato, qualora attivo;

♦stop fermerà il PAL script, se attivo. Il PAL script si ferma immediatamente, non alla sua
conclusione.

Figura 6.26. Finestra principale dell’editor degli script PAL

6.21. PCI Max Ultra


PCI Max Ultra è un’interfaccia di controllo per il broadcasting FM; non è una opzione
utile ai fini web radiofonistici perché vincolata alle trasmissioni terrestri e per questo
motivo non sarà trattata.
6.22. Event Scheduler
Con l’event scheduler è possibile schedulare (programmare nel tempo) diverse cose. Ad
esempio, è possibile eseguire PAL script ad un determinato orario, così come fare partire
encoder o tanto altro:

Figura 6.27.Finestra dello schedulatore di eventi

♦aggiungere un nuovo evento: per aggiungere un nuovo evento è sufficiente cliccare sul
comando [+] e scegliere il tipo di evento;
♦cancellare l’evento selezionato: per rimuovere un evento cliccare sul comando [];

♦modificare
l’evento selezionato: per modificare un evento selezionato, cliccare sul
comando config.
6.22.1. Event Action Tab

Figura 6.28. Finestra di gestione degli eventi

Tipologie di evento incluse:


♦load new clockwheel: carica una rotazione oraria;

♦add file to queue: aggiungi file, categorie e altri elementi alla coda;

♦execute PAL script: esegui un PAL script;

♦start/stop encoders: Fa partire o ferma un encoder.

6.22.2. Schedule Times Tab


Il passaggio successivo è l’impostazione del tempo di occorrenza dell’evento. Si possono
specificare orari multipli e intervalli di date.
Non è possibile stoppare una rotazione avviata. Una rotazione continuerà a girare finché
non ne verrà attivata un’altra.
Figura 6.29. Finestra dello schedulatore di eventi

6.22.3. Event log


L’event log mostra gli ultimi 200 eventi importanti che sono avvenuti all’interno del
software. Si tratta di uno strumento molto utile per controllare errori, per vedere quali
brani sono stati trasmessi ma anche per molto altro.

Figura 6.30. Log della regia

6.22.4. Event log display


Le opzioni dell’event log diplay sono le seguenti:
♦time: orario al quale si è verificato l’evento;

♦category: mostra il modulo o la posizione dell’evento;

♦type: è la tipologia di evento;

♦notice: informazioni generali

-warning: errore non fatale


-error: errore da verificare
-exception: errore bloccante
-message: mostrerà maggiori dettagli sull’evento.

Il log degli eventi viene anche salvato su file. In caso di crash del sistema, si può vedere la
causa scatenante all’interno del file Eventlog.log all’interno della directory di installazione
del software.
6.23. Clock
Un orologio viene fornito per permettere a registi e speaker di potere sempre visualizzare
l’orario corrente.

Figura 6.31. Orologio di sistema

6.24. Menu Layout


Le opzioni del menu layout sono le seguenti:
♦new: chiude tutte le finestre correnti e crea un nuovo piano di lavoro. Da usare se si
vogliono reimpostare le finestre da zero, tutti i desktop verranno resettati;
♦load:

-load default: carica l’ultimo layout che aveva SAM alla precedente chiusura del
software;
-load: carica un layout da file.

♦save:

-save as default: salva il layout corrente come prefedinito;


-save: salva il layout corrente in un file XML.

6.25. Menu Tools


Le opzioni del menu tools sono le seguenti:
♦reports: apre il generatore di report di SAM Broadcaster;

♦maintenance:

-reset weight balance: eseguire questa opzione ogni volta che si aggiungono brani al
database, se si utilizzano rotazioni basate sul numero di trasmissioni già effettuate
(dette rotazioni pesate). Se non si effettua questa operazione i nuovi brani verranno
trasmessi molto spesso a causa del loro alto peso;
-verify songs: controlla tutte le canzoni all’interno del database e cancella tutti i
riferimenti a brani non più fisicamente esistenti;
-clear history: svuota totalmente la tabella storica. La maggior parte dei broadcasters
ritiene utili questi dati per il reporting, per cui si raccomanda cautela.
♦mass tagger: carica o salva tutti i tag dei brani con un solo click;

♦backup: backuppa l’intero database;

♦restore: ripristina l’intero database.

Nota: soltanto FireBird e MySQL supportano il backup ed il restore del database.


6.26. Menu Help
Le opzioni del menu help sono le seguenti:
♦help: aprirà la documentazione;

♦HTML output reference: aprirà la documentazione per HTML Output;

♦PAL quick start guide: aprirà la guida in linea per il PAL scripting;

♦PAL scripting reference: aprirà la documentazione per il PAL scripting;

♦visit website: apre il sito di SpacialAudio;

♦about: mostra una finestra di presentazione dei produttori del software.


Figura 6.32. Autori della regia

6.27. Toolbars
La toolbar è posizionata subito sotto il menu e permette l’accesso ad alcune funzionalità di
SAM:

Figura 6.33. Barra degli strumenti

1) play: fa partire una canzone nel primo deck disponibile se entrambi i deck sono vuoti;
se uno è in pausa lo farà ripartire;
2) pause: questo comando metterà in pausa il primo deck che incontra. Se entrambi i deck
sono in playing, occorrerà premere il comando due volte per fermarli. Ripremere il
comando pausa farà ripartire il brano;
3) stop: fermerà tutti i deck attivi;
4) next: questo comando caricherà la canzone successiva all’interno di un deck e premerà
play. Premendo shift contemporaneamente a questo comando, la canzone sfumerà;
5) mute: il comando mute azzererà il volume della regia ma non avrà effetti sull’audio
pipeline. Ovvero, gli encoder continueranno a codificare l’audio e gli ascoltatori
continueranno a sentire musica se l’encoder è settato in modalità audio pipeline
(comando blu);
6) esistono tre modalità di lavoro su SAM Broadcaster: Auto DJ, Play Queue e Manual
DJ. Cliccando sul comando si switcherà tra le modalità. Cliccando sul menu a tendina si
potrà scegliere la modalità preferita;
7) desktop A/B/C: cliccando su questi bottoni si cambierà immediatamente piano di lavoro.
Un’adeguata distribuzione delle finestre nei vari desktop consente un agevole lavoro di
regia;
8) config: aprirà la finestra di configurazione;
9) hide: riduce SAM a programma in background;
10) help [?]: questo comando apre la documentazione di SAM;
11) clock: mostra l’ora corrente;
12) viewer statistic panel: mostra in tempo reale il numero di ascoltatori connessi in
rapporto al picco totale da quanto SAM è stato avviato.
6.28. Configurazione di SAM Broadcaster
La finestra di configurazione di SAM permette di modificare molti parametri della regia,
spesso molto utili per la personalizzazione dell’emittente e per la qualità dell’audio, oltre
che per molti servizi aggiuntivi. L’elenco delle voci è il seguente:
♦Member Details

♦Station Details

♦Statistic Relays

♦Audio Mixer Pipeline

♦Crossfading

♦Gap Killer

♦Playlist Rotation Rules

♦Request Policy

♦General

♦HTML Output

♦StreamAds Providers

♦StreamAds Logic

♦Registration Key.

Figura 6.34. Finestra di login all’area membri di SpacialNet

6.29. Member Details


In questa sezione si inseriscono i dati di registrazione su SpacialNet. Loggarsi consente di
potere utilizzare diversi servizi gratuiti che fornisce SpacialNet, compresa l’elencazione
all’interno di AudioRealm.
6.30. Station Details
La finestra Station details definisce la stazione su SpacialNet e quindi su AudioRealm. I
campi da compilare sono autoesplicativi e dovrebbero ricalcare quelli inseriti all’interno di
un qualsiasi encoder.
6.31. Audio Mixer Pipeline
L’audio mixer pipeline mostra la sequenza di spostamento del flusso audio. Dalla figura
6.35 si evince come ogni singola sottosorgente (le finestre di SAM) abbia un suo
equalizzatore, un suo automatic gain controller e un suo processore di segnali digitali.
Tutti e tre settabili a piacere dall’utente.
Tutte le sottosorgenti confluiscono sul mixer, tranne Voice FX che può essere dirottato
direttamente all’encoder o alla scheda audio.
Il mixer somma di tutte le sottosorgenti avrà un suo equalizzatore, un suo AGC ed un suo
DSP. Il segnale processato proveniente dal mixer verrà splittato tra gli encoders e l’uscita
locale.

Figura 6.35. Finestra di gestione della pipeline

6.32. Crossfading
La presenza di due deck permette a SAM di effettuare dei crossfading professionali tra i
brani. Il crossfading deve essere tarato in base al target della radio evitando di lasciare le
impostazioni predefinite a meno che lo si reputi non importante.
Il crossfader di SAM possiede un gap killer capace di rimuovere silenzi all’inizio e alla
fine di un brano. Questo è fondamentale per un fading professionale. Il gap killer può
anche non essere variato rispetto alle impostazioni di default e gli stessi produttori del
software sconsigliano di farlo.
6.32.1. Configurazione di base
ENABLE FADE OUT
Enable fade out abilita o disabilita il fading in uscita.
ENABLE FADE IN
Enable fade in abilita o disabilita il fading in entrata.

Figura 6.36. Finestra di gestione del crossfading

CURVE
Si possono specificare 4 tipi di curve di fading (in realtà sono 3):
♦default/s-curve: la s-curve crea una cosinusoide che presa come predefinita rappresenta
una soluzione sicura per moltissime necessità di fading;
♦s-curve: parte lentamente, quindi accelera e poi rallenta nuovamente. L’effetto è
gradevole. Graficamente si realizza una S, disegno classico della cosinusoide, da qui il
nome s-curve;
♦exponential: questa curva parte lentamente ma aumenta esponenzialmente e produce un
fading molto veloce alla fine del fading stesso;
♦linear: il fading lineare è la più classica delle modalità di fading e produce una
diminuzione costante del volume del brano sfumato. Rende il meglio quando il brano ha
già di suo un fading lento.
TIME
L’opzione time specifica la durata del fading. Questa impostazione non ha effetto sul fade
out durante i crossfading autodeterminati.
LEVEL
L’opzione level specifica il livello iniziale o finale del volume del fading. Un valore pari al
100% implica che il fading inizierà o finirà al volume minimo. Tutto quello che è diverso
da 100% implicherà che il fading inizierà (se fade in) o terminerà (se fade out) con un
volume leggermente maggiore del minimo.
6.32.2. Configurazione del crossfading
DEFAULT/AUTO DETECT
L’opzione default/auto detect cercherà automaticamente un punto del brano che scende
sotto un certo valore in Db e da quel momento farà partire il fading.
DISABLE CROSSFADING
L’opzione disable disabilita il crossfading. Il brano successivo sarà inserito a tappo.
FIXED POINT
Si può specificare quanti secondi prima della fine del brano si debba far partire l’altro.
FIXED CROSSFADE POINT (TIME)
Funziona in comunione con fixed point. Specifica quanti secondi devono contarsi prima
della fine del brano in fade out, per fare partire il brano in fade in.
CROSSFADE POINT DETECTION
Funziona in comunione con Default/Auto Detect.
TRIGGER AT [XX] DB
Trigger specifica il livello in decibel che l’algoritmo di rilevamento automatico del punto
di crossfading dovrà cercare. Appena il brano scenderà sotto questo valore, partirà il brano
successivo ed il brano in fade out verrà sfumato con un tempo pari al resto del brano, a
meno che non sia specificato diversamente in Min/Max fade time.
MIN/MAX FADE TIME
I valori min/max specificano il minimo e il massimo valore temporale del fading. Se un
fading automatico prevede un fading di 10 secondi ma in realtà il massimo è stato
impostato a 4, il brano verrà fermato 6 secondi prima del suo termine naturale. Se invece il
sistema determina un crossfade point ad 1 solo secondo dalla fine ma il minimo è stato
impostato a 3, allora il fading partirà si a 3 secondi, ma verrà effettivamente realizzato ad
un valore temporale pari a minimo / 2 secondi, ammesso che tale valore sia precedente il
punto automatico di crossfading; altrimenti, al punto automatico stesso.
[X] DO NOT CROSSFADE OR FADE TRACKS [XX] SECONDS OR LESS IN
DURATION
L’opzione do not crossfade or fade annullerà il crossfading di ogni traccia breve, come ad
esempio la pubblicità o gli effeti sonori.
Nota: tutti i contenuti marcati come allow overlay non subiranno fading.
6.33. Gap killer
Il gap killer è usato per rimuovere il silenzio dall’inizio e dalla fine dei brani: questo
assicura che non ci siano intervalli di silenzio (appunto, “gap”) tra i brani. Questa opzione
migliora i fading tra i brani.
Per attivare il gap killer, assicurarsi che enable gap killer sia selezionato.
REMOVE SILENCE FROM BEGINNING OF TRACK
Se l’opzione remove silence from beginning è selezionata, il gap killer rimuoverà ogni
suono sotto il trigger (specificato in decibel) dall’inizio del brano. 0 Db è un valore molto
basso, mentre – 100Db è corrispondente al totale silenzio. – 24Db è il valore
maggiormente consigliato.
REMOVE SILENCE FROM END OF TRACK
Se l’opzione remove silence from end è selezionata, il gap killer rimuoverà ogni suono
sotto il trigger (specificato in decibel) dall’inizio del brano. 0 Db è un valore molto basso,
mentre – 100Db è corrispondente al totale silenzio. – 24Db è il valore maggiormente
consigliato.
DETECT AND IGNORE SPIKES AND BLIPS
Modalità di protezione del gap killer che ignorerà scratch, errori e quanto possa trarre in
inganno il trigger facendo erroneamente rilevare una condizione di silenzio del brano.
TRIGGER END OF SONG IF MORE THAN [XX] SECONDS OF SILENCE
Se il brano contiene un periodo di “quasi silenzio”, come specificato nel campo decibel, la
fine del brano verrà forzata solo se il periodo di silenzio dura più di X secondi. Brani
registrati ad un volume molto basso potranno subire uno skipping non previsto.
Nota: è possibile settare nelle impostazioni del brano un annullamento del gap killer, ma
va fatto brano per brano.
6.34. Playlist Rotation Rules
Qualsiasi regista professionale sa che non è possibile semplicemente caricare brani in
modo casuale. Ciascuna stazione ha un formato che la rende unica e attrae gli ascoltatori.
Figura 6.37. Finestra di gestione delle regole di playlist

I campi di questa finestra sono costruiti per evitare di trasmettere troppo spesso brani di
uno stesso artista o lo stesso brano, per evitare una brutta programmazione e bypassare
eventuali vincoli legali.
DO NOT PLAY THE SAME ALBUM WITHIN [XX] MINUTES
Devono passare almeno [xx] minuti prima che SAM consideri di inserire un brano dello
stesso album in rotazione. Per essere sicuri che questa regola funzioni, ogni brano deve
avere un valore al campo album correttamente inserito.
DO NOT PLAY THE SAME ARTIST WITHIN [XX] MINUTES
Devono passare almeno [xx] minuti prima che SAM consideri di inserire un brano dello
stesso artista in rotazione. Per essere sicuri che questa regola funzioni, ogni brano deve
avere un valore al campo artista correttamente inserito.
DO NOT PLAY THE SAME TITLE WITHIN [XX] MINUTES
Devono passare almeno [xx] minuti prima che SAM consideri di inserire un brano con lo
stesso titolo in rotazione. Stesso titolo vuol dire stesso titolo, non stesso brano. Se la
canzone “Il valzer del moscerino” di Cristina d’Avena è stata trasmessa, non verrà
trasmessa neanche un’eventuale versione remixata da David Guetta.
DO NOT PLAY THE SAME TRACK WITHIN [XX] MINUTES
Devono passare almeno [xx] minuti prima che SAM consideri di inserire lo stesso brano
in rotazione. Il brano deve avere lo stesso SongID.
KEEP [XX] SONGS IN THE QUEUE
Se questo valore è maggiore di zero, SAM controllerà la coda ogni cinque secondi e se ci
sono meno di [xx] canzoni ne inserirà un’altra in coda, usando la logica di rotazione della
playlist.
USE GHOST QUEUE
SAM metterà in una cache la prossima canzone per permettere di caricare il brano più
velocemente. Si guadagna in velocità perché SAM non deve applicare regole logiche al
momento della partenza del brano. Si consiglia fortemente di utilizzare questa opzione.
CACHE QUEUE COUNT
Il cache queue count migliorerà le performance di SAM non dovendo effettuare una query
al database ogni volta che si voglia verificare se la coda è vuota. Questa opzione andrebbe
disabilitata soltanto quando si modifica la coda di SAM tramite script esterni o query del
database; in tutti gli altri casi, mantenere l’opzione.
Tutte le regole precedentemente lette sono applicate globalmente a SAM, comprese le
politiche di richiesta. Non è possibile bypassare le regole in casi specifici per le proprie
esigenze.
6.34.1. Playlist Rotation Logic Modules
SAM nasce con alcuni moduli logici predefiniti per ovviare alle richieste di molti registi.
Tra questi:
♦clockwheel (category rotation) logic module: modalità predefinita e raccomandata di
logica di gestione della playlist. Permette di definire facilmente il formato dell’emittente
selezionando canzoni dalle categorie in un certo ordine usando alcuni metodi di
selezione;
♦weighted playlist rotation logic module: questa modalità di gestione della logica di
rotazione è molto semplice da usare. Si tratta di una semplice politica di rotazione
pesata. Ogni brano parte con un peso di 60. Ogni volta che il brano viene mandato in
onda perde peso, venendo quindi trasmesso sempre meno, perché il sistema preferirà
brani con peso maggiore. I brani possono vedere il proprio peso aumentato su intervento
del regista o su richiesta degli ascoltatori. In ogni caso verranno sempre preferiti brani
nuovi e popolari a brani vecchi e poco graditi;
♦web scripting based logic module: questo modulo farà sì che SAM contatti un sito
Internet ogni volta che deve inserire un brano per la rotazione oppure quando viene
richiesto un brano da un ascoltatore. Web master particolarmente esperti in ASP o PHP
possono considerare questa opzione tra le logiche possibili. Il template PHP fornito con
il software ha un’interfaccia web molto scarna. Si può utilizzare questo template come
base per costruire qualcosa di più complesso.
Politiche più complesse di gestione della rotazione della playlist possono essere create
tramite PAL script.
6.35. Request Policy

Figura 6.38. Finestra di gestione delle regole di richiesta

SAM permette agli ascoltatori di fare richieste in tempo reale. La regia automatizza
l’intero processo di richieste, dalla sua acquisizione all’inserimento in coda.
Il primo passaggio è quello di abilitare le richieste ciccando su enable requests.
Selezionando leave request in list le richieste verranno bloccate in una lista temporanea e
non inserite in coda finché non si aggiungono alla logica di rotazione manualmente.
Questo previene inserimenti incontrollati, specialmente se l’emittente non è interamente
basata sulle richieste.
Per inserire i brani della lista d’appoggio in coda si possono usare due metodologie.
ROTAZIONE BASATA SULLE CATEGORIE
♦Andare in File > Config > Playlist rotation rules, quindi selezionare Clockwheel
(Category rotation) logic module e premere il comando configure;
♦modificare la rotazione per inserire i brani ad intervalli;

♦premere il comando [+ Request] per inserire una richiesta in coda.

ROTAZIONE BASATA SUI PAL SCRIPTS


Il metodo successivo prevede l’utilizzo di PAL. L’esempio mostrato nella figura 6.39.
inserisce una richiesta in coda ogni 15 minuti.

Figura 6.39. Rotazione basata sui PAL scripts

In questo modo è possibile gestire le richieste come meglio si preferisce.


6.35.1. Regole di richiesta
♦The same viewer can vote [aa] times every [bb] minutes, but no more than [cc] times per
day: questa regola previene che lo stesso ascoltatore controlli la playlist facendo troppe
richieste. È un meccanismo di equità tra gli ascoltatori;
♦delay request [xx] minutes and then: a) leave request in list b) put request at bottom of
queue c) put request at top of queue: se il ritardo è zero, le richieste verranno piazzate
direttamente in coda; se invece il ritardo è maggiore di zero, le richieste verranno
inserite in una lista richieste finché il tempo indicato non sarà trascorso e quindi inserite
in coda;
♦check against album repeat rule: le richieste dovranno rispettare le regole imposte nella
sezione Playlist rotation rules;
♦check against artist repeat rule: le richieste dovranno rispettare le regole imposte nella
sezione Playlist rotation rules;
♦check against title repeat rule: le richieste dovranno rispettare le regole imposte nella
sezione Playlist rotation rules;
♦check against track repeat rule: le richieste dovranno rispettare le regole imposte nella
sezione Playlist rotation rules;
♦only accept requests from these IP addresses: lista degli indirizzi IP autorizzati ad inviare
richieste; questo meccanismo è utile per prevenire richieste automatiche. Gli indirizzi
inseriti non sono gli indirizzi degli ascoltatori, ma sono gli indirizzi dei gestori di
richieste. Uno di questi dovrebbe essere il sito Internet (o meglio il server web) della
radio. Un altro potrebbe essere il sito di AudioRealm, se le richieste partissero anche da
lì.
6.35.2. Vantaggi e svantaggi del ritardo di richiesta
RICHIESTE ISTANTANEE (DELAY = 0)
Le richieste verranno inserite all’inizio o alla fine della coda istantaneamente. Se sono
state selezionate le regole come in playlist rotation rules, le richieste si dovranno adeguare
a tali imposizioni e quindi al momento di una richiesta SAM controllerà se:
♦il brano non sia già in coda;

♦il brano non sia stato recentemente trasmesso.

Se uno dei due controlli risulta positivo la richiesta non verrà accolta e verrà mostrato un
errore al richiedente.
Vantaggi:
♦maggiore interazione con gli ascoltatori;

♦gli ascoltatori sapranno se la loro richiesta è stata accolta e se verrà trasmessa a breve.

Svantaggi:
♦molte richieste potrebbero essere scartate per le imposizioni di playlist rotation rules;

♦possono esserci problemi legali perché si potrebbe configurare la web radio come
stazione on demand.
RICHIESTE RITARDATE (DELAY > 0)
Se viene fatta una richiesta, questa verrà aggiunta alla lista richieste, dove rimarrà finché il
brano possa essere aggiunto alla coda. Una richiesta verrà aggiunta in coda solo se:
♦ha subìto un ritardo almeno pari a quanto specificato;

♦il brano o l’artista non è attualmente in coda;

♦il brano o l’artista non è stato recentemente trasmesso.

Se le tre condizioni sono soddisfatte, la richiesta verrà aggiunta in coda. Il vantaggio è che
la richiesta non verrà mai (o quasi mai) scartata perché è stata precedentemente richiesta
da un altro ascoltatore o perché è stata trasmessa da poco. Tutte le richieste sono accettate
come valide e inserite all’interno della lista richieste finché non siano pronte da
trasmettere. Nel momento in cui un brano richiesto viene riprodotto verranno rimosse tutte
le altre richieste che hanno brano con ID coincidente. A titolo d’esempio, se il brano
“Eminem – Stan” è stato richiesto 5 volte nell’ultima ora, ci saranno cinque richieste per
questo brano nella lista richieste. Nel momento in cui la prima di queste cinque richieste
viene evasa ed inserita in coda, per le altre richieste non varrebbe più il punto due del
precedente elenco ed esse non verrebbero aggiunte alla coda, venendo scartate
definitivamente nel momento in cui il brano di Eminem venga effettivamente trasmesso.
Vantaggi:
♦pochissime richieste falliranno: in questo modo gli ascoltatori avranno la certezza di
potere ascoltare il brano richiesto;
♦è un metodo burocraticamente più sicuro;

♦consente ai registi di potere vedere la lista richieste e selezionare le richieste da inserire in


coda.
Svantaggi:
♦gli ascoltatori potrebbero aspettare a lungo per avere esaudita la loro richiesta;

♦possono esserci problemi legali perché si potrebbe configurare la web radio come
stazione on demand.
6.36. General

Figura 6.40. Finestra di gestione delle regole generali

6.36.1. Configurazione basilare


HTTP HANDLER PORT
HTTP handler port indica la porta dalla quale SAM accetterà richieste e farà altre
operazioni. La porta di default è la 1221.
LOCAL PICTURE DIRECTORY
Local picture indica la directory dove SAM memorizzerà le immagini degli album di
ciascun brano della libreria. Anche se un’immagine è memorizzata all’interno dei metadati
del brano, SAM memorizzerà l’immagine nella directory locale per velocizzare gli
accessi.
WEBSITE PICTURE LOCATION
L’indirizzo della directory delle immagini sul server web.
AMAZON.COM TRACK INFORMATION FINDER
Associate ID: se si partecipa al programma Amazon si può sfruttare SAM per guadagnare
dei soldi se qualcuno acquista prodotti passando dal tuo sito. Image Size: Amazon ha 3
tipologie di immagine. Selezionare quella preferita.
VIRTUAL DJ OPTIONS
♦Auto DJ: immetterà automaticamente in coda la canzone successiva nel primo deck
disponibile e farà il crossfading il più correttamente possibile. Il DJ virtuale farà questo
fin quando la coda è piena;
♦play until queue is empty: modalità molto simile all’auto DJ, riprodurrà tutti i brani ma si
fermerà al momento del caricamento dell’ultimo brano in coda;
♦manual DJ: pieno controllo manuale; il sistema consente al regista di controllare tutti gli
aspetti della trasmissione e sarà il regista stesso a dovere curare la rotazione. Modalità
comoda per le dirette.
AUTO ERROR RECOVERY
La modalità auto error recovery consente a SAM di non interrompere la sua trasmissione
nella quasi totalità dei casi. Ad esempio, è comodo utilizzare questa modalità se SAM
viene lanciato all’avvio di Windows. In questo modo si avrebbe la certezza che SAM
cominci a trasmettere musica appena aperto.
ENABLE AUTO ERROR RECOVERY
Quando viene selezionato, enable abilita le altre opzioni.
MAX PLAYER IDLE TIME [XX] SECONDS
Il valore max player idle time specifica per quanto tempo entrambi i deck dovranno stare
silenziosi prima di abilitare l’auto recovery.
USER RESPONSE TIME [XX] SECONDS
Nel momento in cui comincia l’auto recovery verrà mostrata una finestra che autorizzerà a
fermare il recovery o applicarlo immediatamente. User response time specifica quanto
tempo deve passare prima che l’auto recovery venga forzatamente applicato.
L’auto recovery è disabilitato se si è in modalità manuale. Se si clicca su cancel nella
finestra di annullamento auto recovery lo si disabiliterà finché uno dei due deck non verrà
abilitato manualmente.
Occorre fare molta attenzione alla somma dei tempi di max player e user response. Questa
somma è il tempo totale di silenzio dei deck.
Se impostati troppo alti si potrebbero perdere ascoltatori o peggio disconnettere l’encoder.
6.37. HTML Output

Figura 6.41. Finestra di gestione dell’output HTML

SAM Broadcaster contiene un insieme di caratteristiche che aiutano a generare pagine


dinamiche permettendo una maggiore interazione con gli ascoltatori.
Un tipico sito Internet collegato a SAM ha alcune caratteristiche comuni:
♦mostra informazioni sul brano attualmente in onda;

♦mostra l’elenco dei brani precedentemente trasmessi e la lista dei successivi;

♦mostra la lista dei brani richiedibili;


♦mostra la lista dei brani più richiesti.

Nel dettaglio, il processo di output di SAM Broadcaster può essere riassunto in queste
quattro fasi:
1) template d’ingresso
2) tag “cerca e sostituisci” di SAM
3) output della pagina web
4) uploading via FTP.
Il template di ingresso è il file sorgente che contiene alcuni tag che SAM sostituirà con le
opportune occorrenze.
Un esempio di tag è $history.artist$. Questo tag verrà sostituito dal nome dell’artista nella
riga corrente della tabella history. Ad ogni cambiamento o quando vengono generate le
pagine HTML, SAM leggerà il template e cercherà i tag al suo interno. Quando troverà un
tag, verrà sostituito con l’attuale valore del campo richiamato. Il file risultante è quindi
scritto nello specificato file di output. Se lo si desidera, il file di output può essere caricato
su un sito Internet via FTP.
6.37.1. General HTML output
♦Il comando [+] permette di aggiungere una nuova pagina in output;

♦il comando [] rimuove la pagina selezionata;

♦il comando Config permette di modificare i dettagli della pagina selezionata. Cliccando
su questo comando, si aprirà la finestra di opzioni;

Figura 6.42. Finestra delle opzioni

♦i comandi su e giù permettono di cambiare l’ordine di generazione delle pagine, che


partono sempre dall’alto verso il basso;
♦quando viene selezionata l’opzione auto-generate on song change, SAM genererà le
pagine ogni volta che cambia un brano;
♦skip songs less than [xx] seconds in duration permette di settare la durata minima di un
brano per la generazione delle pagine. Serve ad evitare che un jingle instauri un
cambiamento delle pagine.
6.37.2. Playlist HTML output
La sezione Playlist HTML output può contenere un solo file e dovrebbe essere aggiornata
una sola volta, ogni volta che si modificano i brani nel parco brani. Generare questa
pagina comporta molto lavoro per la regia:
♦il comando [+] permette di aggiungere una nuova pagina in output;

♦il comando [] rimuove la pagina selezionata;

♦il comando Config permette di modificare i dettagli della pagina selezionata. Cliccando
su questo comando, si aprirà la finestra di opzioni.
Le pagine di playlist devono essere generate manualmente.
6.37.3. Upload file via FTP
Una volta create le pagine HTML, SAM ha un client FTP interno che può inviare queste
pagine ad un server web. I campi da compilare sono i seguenti:
♦host: IP o alias DNS del server web;

♦port: porta d’ascolto del server. La porta di default è la 21;

♦username: l’username FTP;

♦password: la password FTP;

♦user passive FTP mode: abilita la modalità passiva di trasferimento. Questa modalità è
utile se la macchina che gestisce SAM è dietro un server proxy o un firewall;
♦remote web directory (web root): il percorso completo alla directory principale del
webserver;
♦remote picture directory: il percorso completo alla directory del webserver contenente le
cover degli album.
6.38. StreamAds Providers
StreamAds è la tecnologia che consente la gestione della pubblicità all’interno del flusso
audio. Si possono avere un massimo di tre provider pubblicitari e prendere i contenuti da
pubblicizzare da tre diversi punti.

Figura 6.43. Finestra StreamAds Providers

I tre providers che si possono specificare sono Advertising provider/Provider A B C. Per


ciascun provider vanno settati i seguenti parametri:
♦enable provider: abilita il provider;

♦provider interface URL: questo indirizzo viene fornito normalmente dal provider
pubblicitario;
♦username: username del provider, se necessario;

♦password: password del provider, se necessaria;


♦verify:
questo comando consente di verificare se i dati inseriti sono corretti. Se il
controllo non va a buon fine, occorre controllare i valori immessi;
♦use provider for xx% of advertising inventory: indica quale percentuale dell’inventario
pubblicitario è riservato a ciascun provider;
♦local path where advertisements are stored: cartella locale dove verranno conservati i
brani pubblicitari.
Nota: le percentuali specificate per i tre provider devono arrivare al 100%. SAM
aumenterà la percentuale riservata ai provider se ad esempio uno di essi viene rimosso.
6.39. SAM StreamAds Logic

Figura 6.44. Finestra StreamAds Logic

In questa finestra si settano le regole di rotazione della pubblicità, per evitare che una di
esse sia trasmessa troppo spesso o che due spot appartenenti alla stessa categoria siano
trasmessi di seguito.
Di seguito, le StreamAds Rotation Rules:
♦maximum variance: la massima tolleranza in secondi di uno spot, oltre il tempo stabilito.
Si consideri a titolo d’esempio uno spot della durata di 35 secondi in uno slot che ne
dura 30. Se la maximum variance è settata a 5 secondi, questo spot verrebbe comunque
trasmesso;
♦minimum wait before spot can play again: quanto tempo bisogna attendere, al minimo,
per riproporre lo stesso spot in trasmissione;
♦minimum separation between categories: quanto tempo bisogna attendere, al minimo, per
riproporre uno spot della stessa categoria in trasmissione. Questo permette, come
precedentemente detto, di evitare di trasmettere spot di prodotti simili, magari
concorrenti;
♦minimum separation between campaigns: quanto tempo bisogna attendere, al minimo,
per riproporre uno spot della stessa campagna. Se per un’azienda sono presenti in
archivio 5 spot, si eviterà in questo modo di trasmetterli a distanza troppo ravvicinata;
♦traffic log rotation logic: le tre opzioni di questo menu a tendina definiscono la logica di
rotazione, che può essere esclusiva, concorrente o a inventario condiviso. Le modalità
esclusiva e concorrente tendono ad isolare ogni provider dall’altro, mentre l’inventario
condiviso permette di scegliere gli spot come se i tre provider fossero in realtà un
provider unico.
6.40. Registration Key

Figura 6.45. Registration Key

All’interno dell’area registration key va inserita la chiave di registrazione del software,


fornita al momento dell’acquisto di SAM Broadcaster.
6.41. Equalizzatore
L’equalizzatore permette di correggere il livello del volume di diverse bande di frequenza,
fornendo un fine controllo dell’output audio. In base alla tipologia di audio trasmesso, o
alle semplici esigenze del regista, questo strumento consente di migliorare sensibilmente
la qualità audio in trasmissione.
Le fasce di frequenza sono dieci:
1) da 0 a 60 hertz (bassi)
2) da 61 a 170 hertz (bassi)
3) da 171 a 310 hertz (bassi)
4) da 310 a 600 hertz (medi)
5) da 600 a 1000 hertz (medi)
6) da1000 a 3000 hertz (medi)
7) da 3000 a 6000 hertz (medi)
8) da 6000 a 12000 hertz (alti)
9) da 12000 a 14000 hertz (alti)
10) da 14000 a oltre 16000 hertz (alti).

Figura 6.46. Equalizzatore

Si possono scegliere dei preset, ovvero delle configurazioni già costruite ed adatte ad
alcuni generi musicali. Ogni player (deck A, deck B, sound FX, gli ausiliari, il voice FX e
l’intero mixer) può avere il suo equalizzatore personalizzato: è sufficiente abilitarlo
tramite il tasto enable.
6.42. AGC (Automatic Gain Control)
L’Automatic Gain Control consente di pulire l’audio all’interno della pipeline per fornire
una migliore qualità.

Figura 6.47. Automatic Gain Control

GATED AGC
Il Gated AGC è usato per normalizzare il volume in modo che l’audio abbia
approssimativamente un volume costante. Il Gated AGC dovrebbe essere usato con il
processore a 5 o a 2 bande perché si limita semplicemente a fornire un migliore flusso
audio per i processori.
STEREO EXPANDER
Lo stereo expander può dare maggiore dimensione all’audio, specialmente se si tratta di
una trasmissione vocale. Questo strumento è utilissimo per il modulo Voice FX.
BASS EQ
L’equalizzatore dei bassi serve ad enfatizzare il suono di bassi e battiti.
5-BAND PROCESSOR
Il processore a cinque bande divide l’audio in 5 fasce di frequenza ed applica un
compressore, un limitatore e un expander a ciascuna banda.
DUAL-BAND PROCESSOR
Il processore a due bande divide l’audio in 2 fasce di frequenza ed applica un
compressore, un limitatore ed un expander a ciascuna banda.
CLIPPER
Il clipper si assicura che il volume audio non ecceda il massimo. Non si tratta di un clipper
molto rigido, ma permette comunque di avere un’ottima qualità nei casi di distorsione.
Bisogna porre attenzione al non processare troppo l’audio. AGC combinati a cascata
possono peggiorare il suono e perdere dettagli del flusso. La stessa raccomandazione va
fatta per la combinazione tra AGC e DSP esterni.
6.43. DSP (Digital Sound Processing)

Figura 6.48. Digital Sound Processing

Dsp è un acronimo per Digital Sound Processing (o processor). I plug-in DSP possono
modificare l’audio e sono spesso applicativi limitatori, installatori di riverbero e
normalizzatori.
Per abilitare un plug-in DSP, basta cliccare la checkbox accanto al plug-in stesso. Per
configurarlo, assicurarsi che il plug-in sia selezionato e cliccare sul comando configure
plugin. I plug-in DSP processano l’audio utilizzando i plug-in in ordine discendente.
6.44. Output
Settare le opzioni correttamente è fondamentale per una buona performance di SAM
Broadcaster. La regia permette di avere una bassa latenza audio, spesso anche più bassa di
15 millisecondi. Ovviamente, la latenza dipende dalla qualità dell’hardware che sta alla
base del software.

Figura 6.49. Finestra Output

6.44.1. Air Output Settings


Output driver: specifica quale driver utilizzare per l’audio in uscita.
Silent output: questo driver d’uscita non richiede una scheda audio. Paradossalmente, è
possibile usare SAM Broadcaster anche senza scheda audio! Si trasmetterebbe “alla cieca”
ma è possibile farlo.
♦DirectSound output: usa i driver standard DirectX per la trasmissione. Il driver è
compatibile con la maggior parte dei computer e fornisce discrete prestazioni, in
generale;
♦Kernel Streaming output: questo driver è molto avanzato e bypassa totalmente il sistema
operativo colloquiando direttamente con la scheda audio. La qualità dell’audio è
superiore e la latenza è generalmente minore.
Output device: se nel sistema sono presenti più schede audio, dovrebbero essere presenti
in lista. In questo menu si seleziona quale usare.
6.44.2. Cue output settings
Il cue output è utilizzato per il preascolto e per le lavorazioni parallele alla trasmissione.
Questa opzione permette di lavorare la musica prima di trasmetterla sulla scheda audio di
trasmissione.
Ci sono quattro opzioni di cue output:
♦disable cue output: non imposta nessun canale per il cue output;

♦right channel: l’output principale verrà trasmesso sul canale sinistro, mentre il cue output
verrà mandato sul destro. Questo implica che entrambi i canali saranno forzatamente
canali mono, ma ciò non significa che lo sia la trasmissione;
♦rear channels: l’output principale sarà trasmesso sugli speaker anteriori mentre il cue
output su quelli posteriori. Opzione da attuare per schede audio che supportano almeno
il 5.1. Questa modalità non lavora bene con il driver DirectSound ma funziona bene con
il driver Kernel;
♦seperate sound device (recommended): la modalità migliore per il preascolto è quella che
utilizza schede audio separate.
Cue output driver: esattamente come per l’output principale, si può scegliere il driver da
utilizzare.
Cue device specifies: indica quale scheda audio va utilizzata per il cue output.
6.44.3. Buffer settings
Packets: il numero di buffer audio che il driver di output può memorizzare per assicurare
un audio ininterrotto.
Packet time: durata massima di un singolo pacchetto audio.
Maximum latency: massima latenza audio che ci si può aspettare nella pipeline audio.
Settare una latenza troppo bassa su sistemi che non se lo possono permettere è rischioso e
può causare problemi.
Force mono output: quando viene selezionata questa opzione, tutti gli output stereo
verranno convertiti in mono.
6.45. SAM Shortcut Keys
SAM Broadcaster ha un elenco di scorciatoie da tastiera che rendono il lavoro di un
regista più facile.
6.45.1. Scorciatoie globali
♦[CTRL] + [H]: nasconde SAM

♦[F1]: inizia a riprodurre


♦[F2]: mette in pausa la musica

♦[F3]: ferma la musica

♦[F4]: va al prossimo brano

♦[F5]: visualizza desktop A

♦[F6]: visualizza desktop B

♦[F7]: visualizza desktop C

♦[F11]: attiva il press to talk (Voice FX)

♦[F12]: zittisce la regia

♦[SHIFT] + [F11]: blocca il comando press to talk.Premendo [F11] o nuovamente [SHIFT]


+ [F11] Voice FX verrà sbloccato.
♦[CTRL] + [B]: back up del database dei brani

♦[CTRL] + [1]: DJ mode: Auto

♦[CTRL] + [2]: DJ mode: Queue

♦[CTRL] + [3]: DJ mode: Manual.

6.45.2. Scorciatoie di finestra


Deck:
♦[SHIFT] + Play: fade in

♦[SHIFT] + Pause: fade out

♦[SHIFT] + Stop: fade out

♦[SHIFT] + Next: fading al prossimo brano.

Playlist:
♦[INS]: aggiunge una nuova categoria

♦[DEL]: cancella lacategoria selezionata

♦[CTRL] + [F]: apre finestra di ricerca brani

♦qualsiasi tasto: apre finestra di ricerca brani

♦[F10]: aggiorna le informazioni.

Tracks in Selected Categories:


♦[ENTER]: aggiunge il brano selezionato in fondo alla coda

♦[CTRL] + [ENTER]: aggiunge il brano selezionato all’inizio della coda

♦[CTRL] + [O]: aggiunge file

♦[CTRL] + [D]: aggiunge directory

♦[CTRL] + [U]: aggiunge URL

♦[CTRL] + [L]: aggiunge playlist


♦[DEL]: rimuove i brani selezionati

♦[SHIFT] + [DEL]: rimuove tutti i brani tranne quelli selezionati

♦[CTRL] + [DEL]: svuota la categoria

♦[CTRL] + [F]: finestra di ricerca brani

♦qualsiasi tasto: finestra di ricerca brani

♦[CTRL] + [R]: sequenza casuale

♦[F10]: aggiorna

♦[CTRL] + [A]: seleziona tutto

♦[CTRL] + [I]: inverti selezione

♦[ALT] + [3]: editor delle informazioni dei brani.

Queue:
♦[ENTER] o doppio click: riproduce il brano successivo

♦[CTRL] + [N]: choose next

♦[CTRL] + [O]: aggiunge file

♦[CTRL] + [D]: aggiunge directory

♦[CTRL] + [U]: aggiunge URL

♦[CTRL] + [L]: aggiunge playlist

♦[CTRL] + [M]: finestra di configurazione del microfono

♦[DEL]: rimuove i brani selezionati

♦[SHIFT] + [DEL]: rimuove tutti i brani tranne quelli selezionati

♦[CTRL] + [DEL]: svuota la coda

♦[CTRL] + [S]: salva la coda su un file

♦[CTRL] + [F]: cerca un brano

♦qualsiasi tasto: cerca un brano

♦[CTRL] + [R]: sequenza casuale

♦[F10]: aggiorna

♦[CTRL] + [A]: seleziona tutto

♦[CTRL] + [I]: inverti selezione

♦[ALT] + [3]: editor delle informazioni dei brani

♦[CTRL] + [SHIFT] + [DEL]: rimuove totalmente un brano dal database.

History:
♦[ENTER]: aggiunge il brano selezionato alla fine della coda
♦[CTRL] + [ENTER]: aggiunge il brano selezionato all’inizio della coda

♦[CTRL] + [F]: apre finestra di ricerca brani

♦qualsiasi tasto: apre finestra di ricerca brani

♦[ALT] + [3]: apre finestra di ricerca brani

♦[F10]: aggiorna la lista dei brani.

Request:
♦[ENTER]: aggiunge il brano selezionato alla fine della coda

♦[CTRL] + [ENTER]: aggiunge il brano selezionato all’inizio della coda

♦[DEL]: ignora la richiesta selezionata

♦[CTRL] + [DEL]: ignora tutte le richieste

♦[F10]: aggiorna le informazioni

♦[ALT] + [3]: editor delle informazioni dei brani.

Voice FX:
♦[SHIFT] + [F11]: blocca il Voice FX per parlare. Premendo [F11] (con o senza [SHIFT])
Voice FX verrà sbloccato;
♦[F11]: Attiva il press to talk. Accende il microfono se necessario.

PAL IDE:
♦[F1]: carica la guida PAL

♦[CTRL] + [O]: apre un nuvo script PAL

♦[CTRL] + [S]: salva l’attuale script PAL

♦[F9]: esegue il listato

♦[F8]: esegue linea per linea

♦[CTRL] + [F9]: compila il listato

♦[CTRL] + [F2]: reset del programma.

6.46. Editor delle informazioni dei brani


Per visualizzare l’editor, si deve selezionare un brano in history o in track in selected
category, quindi cliccare su songinfo.
6.47. Tab details
Play track [X] times and then [Y]: questa opzione permette al brano di subire un
comportamento dopo un certo numero di trasmissioni.
Le azioni possibili sono:
♦none: riproduce il brano solo [x] volte;

♦remove: riproduce il brano [x] volte, quindi lo cancella dalla libreria brani, ad esempio da
tutte le categorie;
♦erase: suona il brano [x] volte, quindi rimuove il brano da tutte le categorie e lo rimuove
fisicamente. Also see the Categories under [Special ->Play limit].
6.48. Tab Settings
6.48.1. Cue point
Questa sezione permette di settare i vari cue point:
♦start: il punto dal quale inizierà il brano;

♦end: il punto dove termina il brano;

♦intro: il punto dove inizia la parte vocale;

♦outro: il punto dove termina la parte vocale;

♦fade: il punto dove inizierà il fade out del brano;

♦xfade: il punto dove inizierà il prossimo brano;

♦custom cue points: si possono settare fino a 10 cue point di un brano in piena libertà.

6.48.2. Come settare un cue point


OPZIONE 1
Fare doppio click sulla finestra del tempo del cue point per inserire manualmente il tempo
o cambiarlo.
OPZIONE 2
Cominciare a riprodurre il brano nel player annesso alla finestra; quindi, cliccare sul
comando contenente il nome del cue point per settare il tempo nel momento in cui il
player raggiunge il punto corretto.
Il comando meno [] svuota il cue pont, mentre il comando doppia freccia destra [>>]
sposterà il player al punto indicato.
Per i cue point personalizzati si deve prima selezionare l’indice, quindi scrivere il nome
del punto prima di settare il cue point.
6.48.3. Beat-per-minute
Beat-per-minute setta i battiti per minuti di un brano.
METODO 1
Cliccare il comando di auto rilevazione per rilevare automaticamente il valore dei BPM
del brano.
METODO 2
Cliccare sul comando tab beats e quindi azionare il player. Premere spazio su ciascun
battito fin quando il comando tap on beat sparisce.
METODO 3
Aggiustare i BPM manualmente premendo le frecce su e giù. Le frecce a sinistra
cambiano il valore di un battito alla volta, mentre quelle a destra le cambiano di 0,1 per
correzioni più precise.
METRONOMO
Per verificare che i BPM siano effettivamente corretti, iniziare a riprodurre il brano sul
player ed anticipare il battito successivo, provando a mettere in pausa il player esattamente
sul battito. Adesso, tenendo premuto [SHIFT], cliccare sul comando metronomo per
avviarlo.
Tenere premuto [SHIFT] permetterà al player di riprendere dal punto in cui il comando è
stato premuto. Se il valore di BPM è corretto si sentirà il metronomo esattamente al
momento del battito.
Assicurarsi che il pitch ed il tempo siano settati a zero; altrimenti, sarà complicato settare i
BPM.
6.48.4. Altre opzioni
Gap killer: specifica se il gap killer deve essere applicato al brano.
Gain: applica la preamplificazione al brano. Si può utilizzare, ad esempio, per amplificare
jingle, promo e pubblicità rispetto al tappeto musicale.
6.48.5. Opzioni di applicazione
Il grande comando apply applicherà i cambiamenti al player, in modo che quando esso si
avvia si possano preascoltare i cambiamenti. Il comando restore riporterà il player ai
settaggi precedenti, mentre il comando reset ripristinerà i settaggi originali.
6.48.6. Tab Fading
Si trovano gli stessi dettagli già visti alla sezione crossfading. Diversamente da quel
quadro, si deve selezionare il box override accanto ad ogni opzione, per sovrascrivere
ciascun valore per il brano.
6.49. Troubleshooting
6.49.1. Touch Aborted
Nell’event log compare la seguente riga: Touch Aborted: At least one relay must be active AND public

Questo errore indica che non è stato creato un relay di statistiche per il flusso in streaming
e, qualora fosse stato creato, non vi è settato un IP valido.
6.49.2. Audio Fast Forwarding
Questo errore è spesso causato da un settaggio scorretto della pipeline. Per aprire la
pipeline audio, andare su SAM >Config >Audio pipeline.
CONFIGURAZIONE 1: DECK OUTPUT
Vantaggi:
♦latenza bassa quando si aggiusta il volume ed i settaggi dell’equalizzatore o quando si
mette in pausa;
♦VoiceFX non crea echi se si registra dal microfono.
Svantaggi:
♦mix non ottimale nel crossfading;

♦gli effetti DSP applicati al mixer finali non saranno udibili.

Setup:
♦impostare il deck A, deck B e Sound FX sull’output modulo DirectSound;

♦impostare VoiceFX ed il modulo mixer finale su Silent.

CONFIGURAZIONE 2: MIXER OUTPUT


Vantaggi:
♦mix ottimale nel crossfading;

♦gli effetti DSP applicati al mixer finali saranno udibili;

♦quello che ascolta il regista è quello che ascolta l’utente finale.

Svantaggi:
♦latenza alta quando si aggiusta il volume ed i settaggi dell’equalizzatore o quando si
mette in pausa;
♦Voice FX crea echi se si registra dal microfono.

Setup:
♦impostare il deck A, deck B e Sound FX sull’output modulo Silent;

♦impostare Voice FX ed il modulo mixer finale su DirectSound.

6.49.3. SAM was unable to queue a song after 20 tries


Quando una metodologia di selezione della categoria non può trovare un brano valido che
segua le regole previste e le regole devono necessariamente essere applicate, allora la
regia restituirà un set di brani vuoto e si andrà alla categoria successiva. Se anche la
categoria successiva presenta lo stesso problema, verrà restituito un errore indicante: SAM
was unable to queue a song after 20 tries. This can be caused by incorrect playlist rotation
rules or having too few file in your media library.
Per risolvere l’errore si può cambiare la modalità da DJ a queue o aggiungere brani alla
libreria in modo da evitare l’errore.
6.49.4. Unable to send data fast enough
L’errore unable to send data fast enough avviene quando la regia non è in grado di inviare
il flusso al server di streaming perché affetta da cali di banda in upload. L’unico modo per
risolverlo è capire come mai si hanno delle difficoltà di trasmissione.
6.49.5. Codici numerici d’errore
0
0 – Retrieving XML document Error: quasi sicuramente è un errore che parte dal server di
streaming. In questo caso si consiglia di vedere le opzioni di Shoutcast e ripristinare il file
XML. In casi estremi riavviare il server di streaming.
1
16bit subsystem error: si tratta di un errore simile a questo:
16-bit MS-DOS Subsystem
path to the program that you are trying to start or install
C:\Winnt\System32\config.nt The system file is not suitable for running MS-DOS and Microsoft Windows
applications. Choose ‘Close’ to terminate the application.

Questo errore deriva dal sistema operativo e non da SAM Broadcaster.


110 – Connection timed out (110): l’errore 110 è dovuto ad un inserimento non corretto
dell’IP della sorgente. Controllare che all’interno del file config.html sia inserito
l’indirizzo esatto.
10050 – Unknown Error: errore sconosciuto.
10054 – Disconnected: quando si resetta la trasmissione spesso appare questo errore.
Basta aspettare 1 0 2 minuti o riavviare regia o server di streaming.
10060 – Not connecting to stream host: è un errore generico che può essere causato da
molti fattori. Il primo è che l’indirizzo IP del server di streaming sia sbagliato, oppure che
sia stato inserito http:// (che non va indicato), oppure può verificarsi quando il server di
streaming è offline. Verificare anche la correttezza della coincidenza della password del
server di streaming con quella della sorgente, e infine verificare se le connessioni in uscita
sono abilitate o se SAM è isolato dalla rete.
10061 – You can’t connect: valgono le regole del codice 10060.
10065 – Disconnected: si è stati disconnessi da Internet.
11004 – Connection Failed: come per l’errore 10065.
2
200 – requests – Touch OK: non è un errore ma un’attestazione di correttezza.
4
401 – Error retrieving xml document: la password della sorgente non coincide con quella
del server di streaming.
404 – Error retrieving xml document (Connection timed out error #10060). Error
retrieving xml cant connect no error: questo errore è spesso causato da router e modem
che non supportano il loopback. Si consiglia di utilizzare un Alias DNS con servizi come
no-ip.com.
408 – Request time-out: la connessione è molto lenta e una richiesta è andata in timeout.
5
500 – At least one relay is using a local network IP address: è stato inserito un indirizzo IP
locale all’interno del relay delle statistiche quando invece necessitava di un IP pubblico.
504 – Gateway time-out: timeout per una connessione esterna.
6
600 – Requested song is offline: non è possibile aggiungere il brano richiesto alla coda.
601 – requests: l’ascoltatore non può richiedere il brano perché già trasmesso.
602 – requests: l’ascoltatore non può richiedere il brano perché è stato da poco trasmesso
un brano dello stesso artista.
603 – requests: l’ascoltatore non può richiedere il brano perché è prossimo alla
trasmissione.
604 – requests: l’ascoltatore non può richiedere il brano perché un brano dello stesso
artista è prossimo alla trasmissione.
605 – requests: l’ascoltatore non può richiedere il brano perché l’ID dell’emittente è
sbagliato.
605 – requests: l’ascoltatore non può richiedere il brano perché è già stato richiesto.
606 – requests: l’ascoltatore non può richiedere il brano perché un brano dello stesso
artista è già stato richiesto.
608 – all current relays are invalid for subscription: la stazione è registrata per AR Choice
subscription. Si devono quindi usare i relay WMA, forniti dall’Audiorealm; tutti gli altri
relay o gli altri server saranno ignorati.
609 – requests: vedi errori 601 e 602.
610 – requests: l’ascoltatore non registrato non può richiedere il brano perché ne ha già
richiesti troppi in un’ora. Questo valore può essere variato nell’area apposita di
configurazione, su SAM.
611 – requests: l’ascoltatore registrato non può richiedere il brano perché ne ha già
richiesti troppi in un’ora. Questo valore può essere variato nell’area apposita di
configurazione, su SAM.
612 – requests: l’ascoltatore registrato non può richiedere il brano perché ne ha già
richiesti troppi in un giorno. Questo valore può essere variato nell’area apposita di
configurazione, su SAM.
613 – requests: l’ascoltatore registrato non può richiedere il brano perché in questo giorno
della settimana poteva richiederne solo un certo numero in un’ora. Questo valore può
essere variato nell’area apposita di configurazione, su SAM.
614 – requests: l’ascoltatore registrato non può richiedere il brano perché in questo giorno
della settimana poteva richiederne solo un certo numero nella giornata. Questo valore può
essere variato nell’area apposita di configurazione, su SAM.
7
700 – requests: errata configurazione dell’indirizzo IP oppure il server di Audiorealm non
è attualmente funzionante.
700 – requests: l’ascoltatore non può richiedere il brano per un errore formale della
richiesta, del quale si ignora la causa. L’errore si risolve rifacendo la richiesta.
701 – requests: l’ascoltatore non può richiedere il brano perché inserito in black list.
702 – requests: l’ascoltatore non può richiedere il brano perché temporaneamente inserito
in black list, dalla quale uscirà dopo il periodo indicato.
703 – requests: l’ascoltatore non può richiedere il brano perché il brano necessita di essere
aggiornato nelle informazioni.
704 – requests: l’ascoltatore non può richiedere il brano perché sono state effettuate troppe
richieste in un’ora.
705 – requests: l’ascoltatore non può richiedere il brano perché sono state effettuate troppe
richieste in un giorno.
706 – requests: l’ascoltatore non può richiedere il brano perché le richieste sono state
disabilitate.
707 – requests: l’errore 707 non ha una soluzione predefinita ed occorre chiedere
direttamente ad Audiorealm.
Making request: Error Code: 707: SAM non è configurato correttamente per permettere le
richieste. Sia che si utilizzi il PHP, sia che si utilizzi HTML, occorre inserire l’IP del sito
Internet dal quale partono le richieste all’interno degli IP autorizzati.
708 – requests: l’ascoltatore non può richiedere il brano perché già richiesto.
709 – requests: l’ascoltatore non può richiedere il brano perché la lista dovrebbe essere
aggiornata.
8
800 – SAM host must be specified: va specificato l’IP della sorgente contenente SAM.
801 – SAM host can not be 127.0.0.1 or localhost: l’indirizzo IP della sorgente contenente
SAM non deve essere un IP locale ne tantomeno un indirizzo di loopback.
802 – Song ID must be valid: l’identificativo del brano deve essere correttamente inserito.
6.50. Sezione vocale
Per effettuare delle dirette vocali basta semplicemente cliccare sul led di accensione;
quindi, cliccare su uno dei comandi in basso, press to talk, che permette di parlare al
microfono solo se si mantiene premuto quel tasto; oppure, lock talk per parlare
definitivamente.
I due level meter accanto ai comandi servono a modificare i volumi di musica e
microfono. Quando si parla, la musica di sottofondo sfumerà e diminuirà il suo volume.
Una volta finito, la musica ritornerà al volume iniziale in circa un secondo. Tutte le
modalità con cui editare volumi e fading sono disponibili cliccando sul tasto EQ.
SAM Broadcaster, senza i particolari settaggi che vedremo adesso, non permette di farsi
visualizzare all’interno delle yellow pages di Shoutcast. Anche nel caso in cui il pannello
riportasse che la radio è pubblica, in realtà il messaggio di rilevazione verrebbe interrotto.
La prima cosa da appurare è che nell’event log ci sia la scritta touch aborted. At least one
relay must be active AND public.
Se è presente questa scritta occorrerà attivare almeno un relay di statistiche. All’interno
del desktop B c’è una finestra chiamata statistic relays. Cliccando sul segno [+] e
scegliendo Shoutcast statistic relays inseriamo i dati relativi al server, precisando
opportunamente l’indirizzo IP. Una volta aggiunto il relay, la prossima canzone verrà
tranquillamente processata e sarà visualizzata pubblicamente.
Questa procedura è sufficiente ad essere inseriti all’interno delle directory di Shoutcast.
6.51. Template per il web
L’installazione standard di SAM Broadcaster fornisce dei file html che possono funzionare
da template per la pubblicazione di un sito contenente informazioni sui brani trasmessi.
Questi file si trovano all’interno della cartella samHTMweb.
I file contenenti l’underscore ([_]) costituiscono i template, che non variano, che vengono
convertiti nei file contenenti i dati correnti e che non hanno l’underscore all’interno del
loro nome.
6.51.1. _playing.html
<!—include(“_header.html”)—>

Include il file _header.html all’interno del file _playing.html.


<SCRIPT LANGUAGE=“JavaScript”>
<!–
var refreshID = ““;
refreshID = setTimeout(“DoRefresh()”, $timeout$);

function DoRefresh()
{
var buster = Math.random();
document.location.href = ‘playing.html?buster=‘+buster;
}
//–>
</SCRIPT>

Questo javascript indica il periodo di aggiornamento della pagina stessa.


There are currently $Viewers$ listeners tuned into this station!<br><br>

$Viewers$ indica il numero di ascoltatori connessi.


<table border=“0” width=“98%” cellspacing=“0” cellpadding=“4”>
<tr bgcolor=“#002E5B”>
<td colspan=“1” nowrap align=“left”>
<p><font face=“Verdana, Arial, Helvetica, sans-serif” size=“1”
color=“#FFFFFF”><b>Currently Playing</b></font>
</td>
………….<td colspan=“3” nowrap align=“center”>
<p><font face=“Verdana, Arial, Helvetica, sans-serif” size=“1”
color=“#FFFFFF”><b>Links</b></font>
</td>
<td nowrap align=“left”>
<p><font face=“Verdana, Arial, Helvetica, sans-serif” size=“1”
color=“#FFFFFF”><b>Album</b></font>
</td>
………….<td nowrap align=“Right”>
<p><font face=“Verdana, Arial, Helvetica, sans-serif” size=“1”
color=“#FFFFFF”><b>Time</b></font>
</td>
</tr>
<tr bgcolor=“$darkrow$”>
<td><font size=“2” color=“#003366”><small>$song.combine$</small></font></td>
<td nowrap width=“1%”>
<p align=“center”><font size=“2” color=“#003366”><a href=“$song.buycd$” target=“_blank”><img
…..src=“images/buy.gif” alt=“Buy this CD now!” border=“0”></a></font>
</td>
<td nowrap width=“1%”>
<p align=“center”><font size=“2” color=“#003366”><a href=“$song.website$” target=“_blank”><img
…..src=“images/home.gif” alt=“Artist homepage” border=“0”></a></font>
</td>

………….<td nowrap align=“center” nowrap width=“1%”>


<font size=“2” color=“#003366”><a href=“javascript:songinfo($song.
songID$)”><img
src=“images/info.gif” alt=“Song information” border=“0”></a></font>
</td>

<td nowrap><font color=“#003366” size=“2”><small>$song.album$</small></font></td>


<td nowrap>
<p align=“right”><font color=“#003366” size=“2”><small><strong>$song.mmss$</strong></small></font>
</td>
</tr>

I valori in grassetto dipendono dal brano attualmente trasmesso.


<!—LOOP(queue,2)—>
<!—LOOP_HEADER—>
<tr bgcolor=“$lightrow$”><td colspan=“6”>
<b><font size=“2” color=“#777777”>Coming up:</font></b>
<font size=“2” color=“003366”><b>
<!—LOOP_ROW—>
$queue.artist$&nbsp;
<!—LOOP_FOOTER—>
</b></font></td></tr>
<!—LOOP_END—>

Questa sezione di codice mostra il brano successivo in coda.


<tr bgcolor=“#002E5B”>
<td colspan=“6” nowrap>
<p align=“left”><b><font size=“1” face=“Verdana, Arial, Helvetica, sans-serif” color=“#FFFFFF”>Recently
…………. played songs</font></b>
</td>
</tr>

<!—LOOP(history,1,5)—>
<!—LOOP_ROW—>
<tr bgcolor=“$darkrow$”>
<td><font size=“2” color=“#003366”><small>$history.combine$</small></font></td>
<td nowrap width=“1%”>
<p align=“center”><font size=“2” color=“#003366”><a href=“$history.buycd$” target=“_blank”><img
… src=“images/buy.gif” alt=“Buy this CD now!” border=“0”></a></font>
</td>
<td nowrap width=“1%”>
<p align=“center”><font size=“2” color=“#003366”><a href=“$history.website$” target=“_blank”><img
…src=“images/home.gif” alt=“Artist homepage” border=“0”></a></font>
</td>
…………. <td nowrap align=“center” nowrap width=“1%”></td>
<td nowrap><font color=“#003366” size=“2”><small>$history.album$</small></font></td>
<td nowrap>
<p align=“right”><font color=“#003366” size=“2”><small><strong>$history.mmss$</strong></small></font>
</td>
</tr>
<!—LOOP_END—>

</table>

Questa parte di codice mostra informazioni sullo storico dei brani recentemente trasmessi.
</td><td valign=‘top’ align=‘center’>
<!—include(“_top10requests.html”)—>
</td>

<!—include(“_footer.html”)—>

Questa parte include due file: _top10requests.html e _footer.html.


6.51.2. _songinfo.html
<!—include(“_config.html”)—>

Include il file _config.html.


<html>
<head>
<title>Song information</title>
<LINK REL=STYLESHEET HREF=“style.css” TYPE=“text/css”>
<script language=‘JavaScript1.2’ src=‘http://www.audiorealm.com/player/player.js’></script>
<script language=‘JavaScript1.2’ src=‘java/request.js’></script>
</head>

Richiama il foglio di stile e gli script esterni.


<body bgcolor=“#FFFFFF”>

<table border=0 width=“100%”>


<tr><td align=“center” valign=“top” width=“100%”>

<div align=“center”><center>
<table border=“0” width=“98%” cellspacing=“1” cellpadding=“2”>
<tr bgcolor=“#002E5B”>
<td colspan=“5”>
<p align=“center”><font size=“2”><b><font color=“#FFFFFF” size=“1” face=“Verdana, Arial, Helvetica, sans-
serif”>Song Information</font></b></font>
</td>
</tr>

<tr>
<td colspan=“5”><img src=“images/spacer.gif” width=“15” height=“13”></td>
</tr>
<tr>
<td bgcolor=“EAEAEA” align=“right”><font color=“#333333”
size=“2”>Title<img src=“images/spacer.gif” width=“15” height=“13”></font></td>
<td bgcolor=“eaeaea”><b><font color=“#003366” size=“2”>$song.title$</font></b></td>
<td bgcolor=“eaeaea” align=“right”><font color=“#333333”
size=“2”>BuyCD<img src=“images/spacer.gif” width=“15” height=“13”></font></td>
<td bgcolor=“eaeaea” align=“center”><a href=“$song.buycd$” target=“_blank”><img src=“images/buy.gif”
alt=“Buy this CD now!” border=“0”></td>
<td bgcolor=“EAEAEA”>
<p align=“center”><font color=“#333333” size=“2”>Picture</font>
</td>
</tr>

<tr>
<td bgcolor=“#FFFFFF” align=“right”><font color=“#333333”
size=“2”>Artist<img src=“images/spacer.gif” width=“15” height=“13”></font></td>
<td bgcolor=“#FFFFFF”><b><font color=“#003366” size=“2”>$song.artist$</font></b></td>
<td bgcolor=“#FFFFFF”></td>
<td bgcolor=“#FFFFFF”></td>
<td bgcolor=“#FFFFFF” rowspan=“5” valign=“middle”>
<p align=“center”><a href=“$song.buycd$” target=“_blank”><img
src=“$picture_dir$$song.picture$” alt=“Buy CD!” border=0></a>
</td>
</tr>
<tr>
<td bgcolor=“EAEAEA” align=“right”><font color=“#333333”
size=“2”>Album<img src=“images/spacer.gif” width=“15” height=“13”></font></td>
<td bgcolor=“eaeaea”><b><font color=“#003366” size=“2”>$song.album$</font></b></td>
<td bgcolor=“eaeaea” align=“right”><font color=“#333333” size=“2”>Home<img src=“images/spacer.gif”
width=“15” height=“13”></font></td>
<td bgcolor=“eaeaea” align=“center”><a href=“$song.website$” target=“_blank”><img src=“images/home.gif”
alt=“Artist homepage” border=“0”></a></td>
</tr>
<tr>
<td bgcolor=“#FFFFFF” align=“right”><font color=“#333333”
size=“2”>Year<img src=“images/spacer.gif” width=“15” height=“13”></font></td>
<td bgcolor=“#FFFFFF”><b><font color=“#003366” size=“2”>$song.
albumyear$</font></b></td>
<td bgcolor=“#FFFFFF”><font color=“#333333” size=“2”></font></td>
<td bgcolor=“#FFFFFF”></td>
</tr>
<tr>
<td bgcolor=“EAEAEA” align=“right”><font color=“#333333”
size=“2”>Genre<img src=“images/spacer.gif” width=“15” height=“13”></font></td>
<td bgcolor=“eaeaea”><b><font color=“#003366” size=“2”>$song.genre$</font></b></td>
<td bgcolor=“eaeaea”>
<p align=“right”><font color=“#333333” size=“2”>Request<img src=“images/
spacer.gif” width=“15” height=“13”></font>
</td>
<td bgcolor=“eaeaea” align=“center”><a href=“javascript:request($song.
songID$,’$samhost$’,’$samport$’)”><img src=“images/request.gif”
alt=“Request this song now!” border=“0”></a></td>
</tr>
<tr>
<td colspan=“5”><img src=“images/spacer.gif” width=“15” height=“13”></td>
</tr>
<tr bgcolor=“#002E5B”>
<td align=“right” colspan=“5”>
<p align=“center”><b><font color=“#FFFFFF” size=“1” face=“Verdana, Arial, Helvetica, sans-
serif”>Lyrics</font></b>
</td>
</tr>
<tr bgcolor=“eaeaea”>
<td align=“right” colspan=“5”>
<p align=“left”><font color=“#003366” size=“2”><b>$song.lyrics$</b></font>
</td>
</tr>
<tr>
<td colspan=“5”><img src=“images/spacer.gif” width=“15” height=“13”></td>
</tr>
<tr bgcolor=“#002E5B”>
<td align=“right” colspan=“5”>
<p align=“center”><font color=“#FFFFFF” size=“2”><b><font size=“1” face=“Verdana, Arial, Helvetica, sans-
serif”>Information</font></b></font>
</td>
</tr>
<tr bgcolor=“eaeaea”>
<td align=“right” colspan=“5”>
<p align=“left”><font color=“#003366” size=“2”><b>$song.info$</b></font>
</td>
</tr>

</table>

<!—include(“_footer.html”)—>

Tutte le informazioni in neretto si modificano ogni volta che cambia il brano.


6.52. Approfondimento sui PAL Scripts
6.52.1. Introduzione
PAL è un acronimo per Playlist Automation Language ed è stato sviluppato per dare ai
proprietari delle stazioni il massimo della possibilità di gestione della rotazione musicale.
L’obiettivo è quello di permettere, tramite il linguaggio PAL, di fare tutto quello che il
regista sogna e progetta. PAL è uno strumento che consente ad esempio di automatizzare
inserimenti musicali, schedulare jingle, pubblicità e download di contenuti. Imparare il
linguaggio PAL è molto semplice.
Ricorda moltissimo il linguaggio Delphi e, a chi ha ancora più memoria, il pascal.
Ovviamente si tratta di un linguaggio contestualizzato alla regia, per cui le regole sono le
stesse ma con delle differenze ad hoc.
6.52.2. Avvertenze per l’utilizzo degli script PAL
Il linguaggio PAL è uno strumento molto potente, ma va usato con la massima cautela e
consapevolezza. Il suo utilizzo indisciplinato può causare:
♦blocchi improvvisi della regia;

♦errori ed eccezioni di SAM;

♦consumi eccessivi di memoria se si fanno allocazioni all’interno di cicli molto complessi


o lunghi;
♦accessi al database che possono compromettere l’integrità dei dati;

♦cancellazioni di file dai supporti di memoria.

6.52.3. Come creare un PAL script


1) Dentro SAM, andare sul menu Window, quindi PAL scripts, quindi attivare la finestra
apposita;
2) cliccare sul comando [+]. Questa operazione aprirà una finestra di dialogo;
3) richiamare dalla finestra di dialogo il file che si vuole caricare oppure, se il file non
esiste, inserire il nome del file da creare, ad esempio prova1.pal;
4) una riga relativa al file prova1.pal comparirà all’interno della finestra PAL Script.
Facendo doppio click su questa riga si aprirà il PAL IDE;
5) all’interno dell’IDE, scrivere WriteLn(‘Hello world!’);
6) cliccare sul comando Run oppure premere [F9].
La linea blu mostra quale linea del codice è in esecuzione; l’output è visualizzato sul lato
destro (nel caso in questione comparirà “Hello World”). Lo stato dello script nella barra di
stato verrà visualizzato nell’IDE.
6.52.4. Inserire un commento in uno script
I commenti sono dei testi inseriti all’interno dello script che verranno totalmente ignorati
dal compilatore. Sono utili per la leggibilità del software.
PAL supporta due tipi di commenti:
♦{ This is a comment }

♦// This is another comment.

6.52.5. Comandi utili per il debugging


Quando si sviluppano script PAL di una certa complessità, utilizzare l’IDE fornito diventa
molto comodo. Viene sempre mostrata l’ultima riga in esecuzione. Ciononostante, spesso
diventa indispensabile utilizzare strumenti per il debugging come l’ispezione delle
variabili, che però non è implementata all’interno dell’IDE; si può quindi utilizzare la
tecnica dell’inserimento del testo tra le operazioni, in modo da conoscere in quale punto
uno script smette di funzionare.
I comandi utili per fare questo sono:
♦WriteLn(Value)

♦WriteStr(Value).

Entrambi i comandi accettano una stringa come parametro; l’unica differenza tra i due
comandi è quella che il primo andrà a capo dopo avere stampato la stringa, mentre il
secondo no.
Attenzione: ogni comando termina con un punto e virgola.
var T : Integer;
for T := 1 to 3 do
WriteLn(‘WriteLn ‘+IntToStr(T));

for T := 1 to 3 do
WriteStr(‘WriteStr ‘+IntToStr(T));

6.52.6. Variabili e costanti


Le variabili e le costanti si utilizzano per dare un nome ad una certa quantità o ad un
oggetto. Le costanti non possono variare durante il corso del programma; le variabili sì. A
differenza di molti altri linguaggi di programmazione, le costanti in PAL non sono case
sensitive.
Le costanti sono dichiarate così:
const MyConstValue = ConstValue;
Ad esempio:
const Val1 = ‘This is a string value’;
const Val2 = 1234;
const Val3 = 1.234;
const Val4 = false;

Le variabili sono dichiarate così:


var MyVarName : vartype = default value;
Ad esempio:
var Val1 : String = ‘This is a string value’;
var Val2 : Integer = 1234;
var Val3 : Float = 1.234;
var Val4 : String;

Il linguaggio non impone che una variabile abbia un valore di default, anche se è
consigliabile che ci sia. Chi non è nuovo alla programmazione vedrà che le variabili PAL
supportano formati standard come string, integer, float, boolean, variant e datetime. Le
variabili possono essere anche array oppure oggetti.
Ad esempio:
var S : Integer = 0;
PAL.Loop := True;
WriteLn(S);
WriteLn(S);
S := S + 1;
S := 123;
WriteLn(S);
PAL.WaitForTime(‘+00:00:10’);

In questo semplice script avvengono le seguenti operazioni:


1) viene creata la variabile S;
2) viene impostato il loop, lo script si ripeterà una volta terminato;
3) stampa a video il valore S, quindi 0;
4) S viene incrementato;
5) stampa a video il valore S, che adesso è 1;
6) imponi ad S il valore 123;
7) stampa a video il valore S, che adesso è 123;
8) aspetta 10 secondi, quindi termina il programma, che però ricomincerà, perché settato
così nella riga 2. I valori settati per le variabili saranno annullati.
6.52.7. Matematica del PAL
MATEMATICA DI BASE PER GLI INTERI
var m : integer;
{a e b devono essere numeri interi}
m := a + b;
m := a – b;
m := a * b;
m := a div b; {operazione valida solo per gli interi; non considera il resto}
m := a mod b; {operazione valida solo per gli interi; resto della divisione}
m := -m;
MATEMATICA DI BASE PER I NUMERI A VIRGOLA MOBILE
var m : float;
{a e b possono essere sia interi che a virgola mobile}
m := a + b;
m := a – b;
m := a * b;
m := a / b; {solo per i numeri a virgola mobile}
m := -m;
FUNZIONI DI USO COMUNE
m := Round(1.2345); {arrotonda all’intero)
m := Random; {restituisce un valore casuale}
FUNZIONI MATEMATICHE COMPLESSE
function Sin(a : Float):Float;
function Sinh(a : Float):Float;
function Cos(a : Float):Float;
function Cosh(a : Float):Float;
function Tan(a : Float):Float;
function Tanh(a : Float):Float;
function ArcSin(a : Float):Float;
function ArcSinh(a : Float):Float;
function ArcCos(a : Float):Float;
function ArcCosh(a : Float):Float;
function ArcTan(a : Float):Float;
function ArcTanh(a : Float):Float;
function Cotan(a : Float):Float;
function Hypot(x : Float; y : Float):Float;
function Inc(var a : Integer; b : Integer):Float;
function Abs(a : Float):Float;
function Exp(a : Float):Float;
function Ln(a : Float):Float;
function Log2(a : Float):Float;
function Log10(a : Float):Float;
function LogN(n : Float; x : Float):Float;
function Sqrt(v : Float):Float;
function Sqr(v : Float):Float;
function Int(v : Float):Float;
function Frac(v : Float):Float;
function Trunc(v : Float):Float;
function Round(v : Float):Float;
function Power(base : Float; exponent : Float):Float;
function DegToRad(v : Float):Float;
function RadToDeg(v : Float):Float;
function Max(v1 : Float; v2 : Float):Float;
function Min(v1 : Float; v2 : Float):Float;
function Pi:Float;
function Random:Float;
function RandomInt(Range : Integer):Integer;
PROCEDURE RANDOMIZE
function RandG(mean : Float; stdDev : Float):Float;
function RandSeed:Integer;
function SetRandSeed(Seed:Integer);
6.52.8. Gestione delle stringhe
Per “stringa”, in qualsiasi linguaggio di programmazione, si intende una sequenza di
caratteri, che può rappresentare una parola o una frase.
Considerare il seguente frammento di codice:
Var S1 : String = ‘This is my first string’;
Var S2 : String = ‘Another string’;
Var I : Integer;
S2 := S1;
S2 := S1 + ‘ and it rocks’;
S2 := Copy(S1,2,3); {Copy only certain characters to a string. (Copy 3 characters, starting at position 2)
WriteLn(S2);
I := Length(S2); {Set I to the number of characters that S2 contains}
I := Pos(‘my’,S1); {Find the index of the first match}

In questo script avvengono le seguenti operazioni:


1) alla variabile S1 viene dato il valore ‘This is my first string’;
2) alla variabile S2 viene dato il valore ‘Another string’;
3) viene creata la variabile intera I;
4) la variabile S2 viene sovrascritta e le viene attribuito il contenuto della variabile S1. A
questo punto sia S1 che S2 avranno valore: ‘This is my first string’;
5) effettua la stessa operazione del punto 4, in più aggiunge in coda la stringa ‘and it
rocks’;
6) la funzione Copy accetta tre parametri: il primo è la stringa da copiare, il secondo il
carattere d’inizio del processo di copia, il terzo il numero di caratteri da copiare. Dopo
l’esecuzione di questa funzione, in S2 sarà presente la stringa ‘his’;
7) stampa la stringa S2, quindi stamperà ‘his’;
8) scrive in I la lunghezza della stringa S2, in questo momento pari a 3;
9) la funzione Pos accetta come primo parametro una stringa, detta pattern, e come
secondo parametro una variabile contenente una stringa. Restituisce l’indice della prima
occorrenza del pattern nella stringa contenitore. In questo caso restituirà 9.
6.52.9. Altre funzioni di interesse per le stringhe
function IntToStr(v : Integer):String;
function StrToInt(str : String):Integer;
function StrToIntDef(str : String; Def : Integer):Integer;
function IntToHex(v : Integer; Digits : Integer):Integer;
function FloatToStr(v : Float):String;
function StrToFloat(str : String):Float;
function StrToFloatDef(str : String; Def :Float):Float;
function Chr(x : Integer):String;
function Ord(s : String):String;
function CharAt(s : String; x : Integer):String;
procedure SetCharAt(var S : String; x : Integer; c : String);
procedure Delete(var S : String; Index : Integer; Len : Integer);
procedure Insert(src : String; var Dest : String; Index : Integer);
function LowerCase(Str : String):String;
function AnsiLowerCase(Str : String):String;
function UpperCase(Str : String):String;
function AnsiUpperCase(Str : String):String;
function Pos(SubStr : String; Str : string):Integer;
function Length(Str : String):Integer;
function TrimLeft(Str : String):String;
function TrimRight(Str : String):String;
function Trim(Str : String):String;
function CompareText(Str1 : String; Str2 : String):Integer;
function AnsiCompareText(Str1 : String; Str2 : String):Integer;
function CompareStr(Str1 : String; Str2 : String):Integer;
function AnsiCompareStr(Str1 : String; Str2 : String):Integer;
function IsDelimiter(delims : String; s : String; Index : Integer):Boolean;
function LastDelimiter(delims : String; s : String):Boolean;
function QuotedStr(Str : String):String;
6.52.10. Gestione del tempo
Le stazioni radiofoniche gestiscono quotidianamente i tempi. PAL fornisce molte opzioni
per la gestione e manipolazione del tempo.
La variabile temporale di base è DateTime: var D : DateTime;
Con questo format, la data ed il tempo sono rappresentati da un numero a virgola mobile.
La parte intera del DateTime è il numero di giorni che sono passati dal 30 dicembre 1899.
La parte frazionaria indica il numero di ore minuti e secondi.
Per comprendere:
♦0 corrisponde a: 30/12/1899 alle ore 12:00

♦2.75 corrisponde al 01/01/1900 alle ore 18:00

♦- 1.25 corrisponde al 29/12/1899 alle ore 6:00

♦35065 corrisponde al 01/01/1996 alle ore 12:00.

Ad esempio:
D := Now; {data e orario correnti}
D := Date; {Oggi, a mezzogiorno}
D := Time; {Soltanto l’orario, esclude la data}
D := Now – 1; {Ieri, allo stesso orario}
D := Now + (1/24); {tra un’ora}
PAL fornisce anche un utile strumento per la gestione del tempo.
La funzione si chiama T, ed è una timemask che può esistere in diversi formati.
TEMPO STANDARD: HH:MM:SS.
La maschera deve essere rappresentata in formato 24 ore e contenere tutti i campi, ore,
minuti e secondi.
Ad esempio:
T[‘14:00:00’]

creerà un valore datetime pari ad oggi alle 14.


CALCOLO DEL TEMPO: +HH:MM:SS -HH:MM:SS.
Ad esempio:
T[‘+00:00:30’] crea un datetime pari a 30 secondi a partire da adesso.
T[‘-01:00:00’] genera un datetime pari ad un’ora fa.

PROSSIMO ORARIO (WILDCARDS): XX:MM:SS.


XX svolge il ruolo di valore jolly. La maschera cercherà l’orario più vicino che rispetti
l’indicazione.
Ad esempio, supponendo che siano le 14:05 e che la maschera sia XX:00:00, il tempo
risultante sarà 15:00, in quanto orario più vicino che rispetta l’indicazione.
PROSSIMO ORARIO (FISSO): NEXTHOUR OPPURE NEXT60.
Entrambi i comandi restituiscono l’ora successiva, esattamente come nel caso di
XX:00:00.
NEXTHALFHOUR oppure NEXT30: entrambi i comandi restituiscono la mezz’ora
successiva.
NEXTQUARTER oppure NEXT15: entrambi i comandi restituiscono il quarto d’ora
successivo.
Alcuni esempi:
WriteLn(‘—Standard time’);
WriteLn(T[‘14:00:00’]);……………{## stampa le 14 di oggi}
WriteLn(T[‘04:30:00’]);……………{## stampa le 4:30 di oggi}
WriteLn(DateTime(T[‘09:00:00’]-1)); {## stampa le 9 di ieri}
WriteLn(DateTime(T[‘09:00:00’]+1)); {## stampa le 9 di domani}
WriteLn(‘—Calculation’);
WriteLn(T[‘+01:00:00’]);…{## stampa un’ora da adesso}
WriteLn(T[‘-00:00:30’]);…{## stampa trenta secondi fa}
WriteLn(T[‘NEXT60’]);…{## stampa la prossima ora intera}
WriteLn(T[‘NEXT30’]);…{## stampa la prossima mezz’ora}
WriteLn(T[‘NEXT15’]);…{## stampa il prossimo quarto d’ora}
WriteLn(‘—WildCards’);
WriteLn(T[‘XX:00:00’]);…{## come nexthour}
WriteLn(T[‘XX:59:30’]);…{## trenta secondi prima della prossima ora}
WriteLn(T[‘XX:XX:30’]);…{## prossimi trenta secondi}

Alcuni esempi:
D := T[‘13:00:00’]; {Le 13:00 di oggi}
D := T[‘+00:00:10’]; {10 secondi da adesso}
D := 1 + T[‘+00:00:10’]; {Domani, dieci secondi da adesso}
Decodificare una data nelle sue parti:
var y,m,d : Integer;
var hh,mm,ss,ms : Integer;
var D : DateTime;
D := Now;
DecodeDate(D,y,m,d);
DecodeTime(D,hh,mm,ss,ms);

Funzione DayofWeek:
if DayOfWeek(Now) = Sunday then {Do stuff};

Il giorno della settimana è memorizzato con valori costanti che possono essere usati. La
domenica vale 1 e il sabato vale 7.
function Now: DateTime;
function Date: DateTime;
function Time: DateTime;
function DateTimeToStr(dt: DateTime):string;
function StrToDateTime(str : String): DateTime;
function DateToStr(Date: DateTime):String;
function StrToDate(Str : String): DateTime;
function TimeToStr(Time : DateTime):String;
function StrToTime(Str : String): DateTime;
function DayOfWeek(dt : DateTime):Integer;
function FormatDateTime(Format : String; dt : DateTime):String;
function IsLeapYear(Year : Integer):Boolean;
function IncMonth(dt : DateTime; nm : Integer):DateTime;
procedure DecodeDate(dt : DateTime; var yy,mm,dd : Integer);
function EncodeDate(yy, mm, dd : Integer):DateTime;
procedure DecodeTime(dt : DateTime; var hh, mm, ss, ms : Integer);
function EncodeTime(hh, mm, ss, ms : Integer):DateTime;
6.52.11. La logica nel PAL
Il linguaggio PAL può utilizzare gli operatori logici esattamente come gli altri linguaggi di
programmazione:
♦= uguale a
♦diverso da

♦<= minore uguale

♦>= maggiore uguale

♦NOT inverti valore logico dell’espressione

♦AND operatore logico AND, restituisce vero solo se entrambe le espressioni sono vere

♦OR operatore logico OR, restituisce vero se almeno una delle espressioni è vera.

Ad esempio:
Var B : Boolean; …………………………//crea una variabile logica
Var X : Integer = 0;…………………….//tre interi
Var Y : Integer = 1;
Var Z : Integer = 2;
B := X<0; …………………………………………………………..//B è falso
B := X = 0; …………………………………………..//B è vero
B := Z>Y; …………………………………………………………….//B è vero
B := NOT(X > 0); ………………………………..//B è vero
B := (X<0) OR (X=0); ………………………..//B è vero
B := (X<0) AND (X=0); …………………….//B è falso
B := (X<=0);……………………………………….//B è vero
B := NOT B; ……………………………………….//B inverte il suo valore logico precedente
B := (X<>Z); ………………………………………//B è vero
B := (1+1);…………………….. …………………//Operazione non logica, invalida.

6.52.12. Costrutti principali


IF - THEN
Il costrutto if – then è il più classico dei costrutti, ed è presente anche in PAL. Il blocco
viene usato per eseguire codice in dipendenza da una condizione.
Esempi:
IF DayOfWeek(Now) = Sunday THEN WriteLn(‘Buona domenica!’) ELSE WriteLn(‘Today is not Sunday…’);
IF (Now>T[‘15:00:00’) AND (DayOfWeek(Now)=Sunday) THEN WriteLn(‘Sta per cominciare la serie A!’);
IF (Now>T[‘15:00:00’) AND (DayOfWeek(Now)=Saturday) THEN BEGIN WriteLn(‘Sta per cominciare la serie
A!’); WriteLn(‘Parte la radiocronaca!’); END;

In casi più complessi è possibile usare gli IF annidati, per valutare condizioni multiple:
IF (A=1) THEN
BEGIN
{Fai qualcosa}
{Fai qualcos’altro}
END
ELSE IF (A = 2) THEN
{Fai qualcosa}
ELSE
{Fai qualcos’altro};

CASE
Case è un costrutto più utile per scelte multiple:
CASE A OF
1 : begin
………{Do stuff}
………{And some more}
………end;
…2 : {Do stuff};
else {Do other stuff}
END;

CICLI ED ITERAZIONI
La prima iterazione possibile è quella dell’intero script che viene effettuata tramite:
PAL.Loop := True;

Inoltre è chiaramente possibile creare dei cicli all’interno dello script come in qualsiasi
linguaggio di programmazione.
FOR - TO - DO
Il costrutto for – to – do è il classico ciclo for. Indica quante volte deve essere ripetuto il
blocco che va da begin ad end.
var T : Integer;
for T := 0 to 20 do
begin
WriteLn(T);
end;

REPEAT - UNTIL
Il costrutto repeat – until differisce dal for per non avere un numero di iterazioni definito a
priori. Il ciclo terminerà solo quando sarà verificata la condizione until.
T:=0;
repeat
WriteLn(T);
T:=T+1;
until (T > 10);

WHILE – DO
Il costrutto while – do ciclerà un blocco di istruzioni finché la condizione di ingresso nel
ciclo (while) rimane vera. Questo blocco è pericoloso se usato con disinvoltura perché può
creare molto spesso cicli infiniti.
T:=0;
While (T<20) do
begin
WriteLn(T);
T:=T+1;
end;

6.52.13. Comandi di attesa


La velocità di esecuzione dei comandi, pari a circa una riga al secondo (ma anche meno),
a volte è troppo alta per alcune operazioni. Gli sviluppatori di SAM hanno implementato
delle funzionalità di attesa condizionata, che sembra non vadano in busy waiting.
I comandi di attesa sono 3, inseriti in una macrocategoria “WaitforXXX”.
1) PAL.WaitForPlayCount(Count);
2) PAL.WaitForQueue(Count);
3) PAL.WaitForTime(Time);
Questi comandi causeranno uno stop dello script fin quando l’evento specificato non si
compie.
Ad esempio:
PAL.WaitForPlayCount(2); questo comando aspetterà che vengano riprodotte due canzoni
prima che lo script venga ripreso.
Questo viene fatto settando un counter internamente al momento in cui WaitforPlayCount
viene eseguito. Da quel momento in poi, ogni brano caricato su un deck e riprodotto
diminuirà il contatore. Nel momento in cui il contatore diventa zero lo script ricomincia.
PAL.WaitForQueue(2); questo comando aspetterà che la coda contenga esattamente due
brani. In questo modo, se la coda è composta da 4 elementi e comincia a svuotarsi, lo
script ricomincerà a funzionare solo quando la coda avrà 2 elementi. È ovvio che questo
comando va usato con cautela. Si immagini che questo script lavori contemporaneamente
ad uno script che deve mantenere la coda con 4 elementi: ciò causerebbe che lo script
contenente il comando WaitForQueue resti in waiting per sempre.
PAL.WaitForTime(Time); questo comando è molto utile, ma occorre comprendere come
gestire il parametro Time, che può essere:
♦una variabile DateTime;
var D : DateTime;
D := Now + 1; {Tomorrow this time}
PAL.WaitForTime(D);

♦una time mask T, che comunque genera una variabile DateTime


PAL.WaitForTime(T[‘14:00:00’]);
♦una string Time mask.
PAL.WaitForTime(‘+00:00:10’); ………………\Aspetta 10 secondi
PAL.WaitForTime(‘14:30:00’); ………………..\Aspetta le 14:30 di oggi
PAL.WaitForTime(‘XX:00:00’); …………………\Aspetta la prossima ora
PAL.WaitForTime(T[‘14:00:00’]+1); ………..\Aspetta le 15:00

La gestione del tempo può creare numerosi problemi logici. Il più classico è dato da
questo pezzo di codice:
PAL.Loop := True;
PAL.WaitForTime(‘10:00:00’);
WriteLn(‘Sono le 10 del mattino’);
PAL.WaitForTime(‘20:00:00’);
WriteLn(‘Sono le 8 di sera’);
PAL.WaitForTime(‘23:59:59’);
Se questo script viene eseguito alle 7 del mattino, farà egregiamente il suo lavoro. SAM aspetterà sino alle 10,
quindi scriverà il messaggio, poi aspetterà sino alle 20 e ne scriverà un altro, poi attenderà fino ad un minuto
prima di mezzanotte per ricominciare da capo.

Se invece lo script viene eseguito alle 17, SAM controllerà il primo WaitForTime e si
accorgerà che le 10 sono passate ed immediatamente stamperà il messaggio “Sono le 10
del mattino” senza aspettare ed ovviamente all’orario sbagliato. Da quel momento, però, il
programma funzionerà correttamente.
Un competente sviluppatore PAL deve essere in grado di gestire situazioni come questa.
Un modo per risolvere questo problema può essere dato da questo codice:
PAL.Loop := True;
PAL.WaitForTime(‘10:00:00’);
WriteLn(‘Sono le 10 del mattino’);
PAL.WaitForTime(‘20:00:00’);
WriteLn(‘Sono le 8 di sera’);
PAL.WaitForTime(‘23:59:59’);

Si può notare dal codice che non si aspetta all’interno di un costrutto if, anche perché
questo non è possibile. Gli sviluppatori di SAM hanno comunicato che non è possibile
aspettare all’interno di costrutti if, ma neanche all’interno di costrutti case o di funzioni e
procedure definite dall’utente. Questo perché PAL non nasce per essere eseguito riga per
riga ma per essere considerato come listato da compilare: ecco perché ciò non risulta
essere possibile. Fortunatamente è un problema aggirabile. Si può ad esempio ripetere il
blocco di istruzioni dove necessario, mentre al posto di if o case si può utilizzare il while –
do.
Ad esempio:
IF (A > B) THEN
begin
PAL.WaitForPlayCount(1);
end;

Questo codice sostanzialmente dice: “Se A è maggiore di B, allora aspetta un brano”. Il


codice non verrebbe eseguito per come è strutturato; quindi, anche nel caso in cui l’if fosse
vero, non si aspetterebbe in nessun caso.
Occorre sostituire il codice con una soluzione differente, che sicuramente non è una
soluzione ottimale ma funziona:
var temp : Boolean = True;
WHILE (A>B) AND (temp) DO
begin
PAL.WaitForPlayCount(1);
temp := False;
end;

6.52.14. Velocizzare l’esecuzione degli script


PAL è stato ideato come processo a bassa priorità all’interno di SAM, in modo che l’audio
abbia sempre priorità maggiore. Da ciò consegue il tempo di esecuzione delle righe di
PAL (una al secondo).
Questa tempistica è ottimale nel 99% dei casi, ma ci sono momenti in cui un secondo per
istruzione è veramente troppo. C’è un modo per velocizzare l’esecuzione.
Basta inserire all’interno dei comandi LockExecution ed UnlockExecution il blocco da
velocizzare.
PAL.LockExecution;
{Do stuff}
PAL.UnlockExecution;

Usare questo stratagemma in modo disinibito è sconsigliato, perché ogni volta che viene
aperta la LockExecution SAM Broadcaster ne risente moltissimo a livello audio e di
encoding.
6.52.15. Gli oggetti
PAL è un linguaggio orientato agli oggetti. Nonostante spesso capiti che questo linguaggio
venga utilizzato come procedurale è opportuno imparare a gestire oggetti e metodi.
Gli oggetti sono simili a delle variabili, ma differentemente da loro possono effettuare
operazioni tramite i metodi e contenere informazioni eterogenee. Alcune proprietà
possono soltanto essere si usa per leggere valori ma non per cambiarli.
ActivePlayer.FadeToNext; ………………//FadeToNext è un metodo
ActivePlayer.Volume := 255; ………..//Volume è una proprietà in lettura
……………… ……………… ……………… ……….//scrittura
WriteLn(ActivePlayer.Duration); .//Duration è una proprietà in sola lettura

Come tutti i linguaggi di programmazione ad oggetti, anche il PAL supporta il concetto di


eredità. Nel caso seguente, l’oggetto Obj è inizializzato come TPlayer.
var Obj : TPlayer; ………………//La variabile Obj
……………… ……………… ………….è inizializzata direttamente come //TPlayer
Obj := ActivePlayer; ………….//Obj è adesso il player
……………… ……………… ………….attivo, cioè quello che sta //suonando un brano
Obj.FadeToNext; ………………//La procedura FadeToNext
……………… ……………… ………….sfuma il brano e passa al
……………… ……………… ………….//successivo all’interno dello stesso deck.

L’oggetto Obj può anche essere inizializzato come TObject, ossia l’oggetto generico per
poi subire un casting.
var Obj : TObject;………………//La variabile Obj è inizializzata come TObject;
Obj := ActivePlayer;………….//Obj è adesso il player attivo, cioè quello che sta
……………… ……………… ………….//suonando un brano
if Obj is TPlayer then ………//Se Obj è un Tplayer
TPlayer(Obj).FadeToNext; //Obj che è di fatto un Tplayer, deve subire un
……………… ……………… ………….casting //a Tplayer e quindi subire la procedura
……………… ……………… ………….FadeToNext.

Gli oggetti possono anche essere distrutti facilmente per liberare memoria.
var Lista : TStringList;………//Inizializza una variabile TStringList;
Lista.Free;………………………….//Libera la memoria occupata dalla variabile List.

6.52.16. I principali oggetti


Sam può essere descritto come un programma quadripartito.
Le quattro parti sono:
♦la collezione dei brani;

♦la logica di selezione dei brani e le regole di playlist;

♦il motore audio che comprende i player di ogni tipo;

♦encoder e relay.

Ognuna di queste parti è gestita da PAL tramite oggetti che ne gestiscono le funzioni.
COLLEZIONE DEI BRANI
SAM salva tutto quello che viene suonato all’interno della libreria dei brani. Più
precisamente SAM può riprodurre (e quindi trasmettere) solo brani presenti in libreria. Se
non fosse così, SAM non sarebbe in grado di gestire la playlist e le logiche di selezione
che caratterizzano un’emittente professionale.
IMPORTAZIONE DI FILE NELLA LIBRERIA DI BRANI
I seguenti comandi aggiungono brani all’interno della categoria identificata da CAT:
CAT[‘Categoria’].AddDir(‘c:\music\’, ipBottom);
//Aggiunge una directory
CAT[‘Categoria’].AddFile(‘c:\music\test.MP3’, ipBottom);
//Aggiunge un file
CAT[‘Categoria’].AddList(‘c:\music\playlist.m3u’, ipBottom);
//Aggiunge una playlist
CAT[‘MyCategory’].AddURL(‘http://localhost:8000/test.MP3’, ipBottom);
//Aggiunge un URL

Il secondo parametro, ipbottom, indica che il brano deve essere inserito alla fine della
categoria: questo parametro è maggiormente indicativo in caso di inserimenti all’interno
della coda che non all’interno della categoria; ciononostante, è settabile anche in questo
caso e può essere sia in alto (ipTop) che in basso (ipBottom).
Gli stessi comandi possono essere utilizzati per aggiungere file alla coda:
Queue.AddDir(‘c:\music\’, ipBottom);
Queue.AddFile(‘c:\music\test.MP3’, ipBottom);
Queue.AddList(‘c:\music\playlist.m3u’, ipBottom);
Queue.AddURL(‘http://localhost:8000/test.MP3’, ipBottom);

ESPORTAZIONE DI FILE DALLA LIBRERIA DI BRANI


È possibile salvare il contenuto di una categoria come file di testo per usi esterni a SAM
Broadcaster; i comandi principali, che valgono sia per le categorie che per la coda sono
SaveAsM3U e SaveAsCSV.
Il primo comando salva in formato M3U, mentre il secondo in CSV.
CAT[‘MyCategory’].SaveAsM3U(‘c:\list.m3u’); {Export as m3u playlist}
CAT[‘MyCategory’].SaveAsCSV(‘c:\list.csv’); {Export as CSV data file}
Queue.SaveAsM3U(‘c:\list.m3u’); {Export as m3u playlist}
Queue.SaveAsCSV(‘c:\list.csv’); {Export as CSV data file}

USO DELLA LIBRERIA PER LA ROTAZIONE ORARIA


La maggior parte dei registi conosce l’importanza di un’accurata classificazione dei brani.
Una volta inserito per ogni brano l’artista, il titolo, l’album di riferimento ed altre
informazioni, la gestione dei brani stessi diventa molto facile, specialmente se i brani, gli
advertisement e i promo sono correttamente categorizzati.
Uno script come il seguente permette di gestire la coda ed inserire i brani seguendo una
schedulazione scelta dal regista:
PAL.Loop := True;
Cat[‘Tracce’].QueueBottom(smLemmingLogic, EnforceRules);
Cat[‘Music (All)’].QueueBottom(smLRPA, EnforceRules);
Cat[‘Hits’].QueueBottom(smLRP, EnforceRules);
Cat[‘Pubblicita’].QueueBottom(smLRPA, NoRules);
PAL.WaitForPlayCount(4);
Lo script, che si ripeterà indefinitamente, inserisce 4 brani in coda; i brani sono, in
sequenza, un brano della categoria tracce, un brano della categoria musica, un brano della
categoria Hits ed un brano della categoria pubblicità.
Il metodo QueueBottom accetta due parametri; il primo indica la modalità di rotazione,
definita dalla tabella 6.1.
Tabella 6.1. Modalità di rotazione

Nome del parametro Numero equivalente Operazione effettuata


smWeighted 0 Brano con il maggior peso


smPriority 1 Brano con maggior priorità


smRandom 2 Brano scelto casualmente


smMRP 3 Brano riprodotto più recentemente


smLRP 4 Brano riprodotto meno recentemente


smMRPA 5 Artista riprodotto più recentemente


smLRPA 6 Artista riprodotto meno recentemente


smLemmingLogic 7 Brano casuale secondo logiche scelte

Il secondo parametro indica se rispettare (EnforceRules) o no (NoRules) le regole previste


da Playlist Rotation Rules, quali ad esempio “non suonare lo stesso artista entro XX
minuti”.
Per la gestione della logica di creazione della playlist si può usare anche più di un PAL
script per volta. Un caso didattico è quello di due script, dove il primo gestisce la musica
ed il secondo jingle la pubblicità.
//Script PAL numero 1

PAL.Loop := True;
Cat[‘Tracks’].QueueBottom(smLemmingLogic, EnforceRules);
Cat[‘Music (All)’].QueueBottom(smLRPA, EnforceRules);
Cat[‘Hot Hits’].QueueBottom(smLRP, EnforceRules);
PAL.WaitForQueue(0);

Il primo script dovrebbe essere molto chiaro. Si utilizza alla fine il comando
WaitForQueue(0) per aspettare che la coda sia vuota.
//Script PAL numero 2

PAL.Loop := True;
PAL.WaitForPlayCount(5);
Cat[‘MyJingles’].QueueTop(smLRP, NoRules);
PAL.WaitForPlayCount(3);
Cat[‘MyPromos’].QueueTop(smLRP, NoRules);
Cat[‘MyAdz’].QueueTop(smLRP, NoRules);

Il secondo script aspetta che vengano riprodotti cinque brani (con il comando
WaitForPlayCount(5)), quindi inserisce all’inizio della coda un jingle, aspetta che
vengano riprodotti altri tre brani, quindi inserisce in cima alla coda una pubblicità ed un
promo, che ovviamente, visto che sono inseriti in testa, devono essere elencati al contrario.
REGOLE DI PLAYLIST
I brani memorizzati all’interno delle categorie possono essere selezionati in diversi modi,
come prima già visto. Un brano può essere selezionato soltanto se rispetta le regole dettate
dalla logica di playlist. Queste regole mirano a limitare le ripetizioni degli stessi brani in
un periodo di tempo, sia per questioni estetiche che per motivi legali.
Le regole non dovrebbero però essere applicate a jingle, pubblicità e promo. I motivi di
tale esclusioni dovrebbero essere scontati: si tratta di file che devono essere ripetuti
proprio perché richiesto dalla radio o dai clienti, cercando comunque di mantenere una
variabilità.
La variabilità dei jingle si potrebbe risolvere utilizzando la regola smLRP (brano meno
recentemente suonato).
MOTORE AUDIO
Il motore audio è formato da diversi canali audio rappresentati dai player (deck). Il
linguaggio PAL permette di controllare varie componenti del motore audio, il che risulta
utile quando occorre specificare cosa queste parti debbano fare. Il deck A, il deck B,
l’AUX1, l’AUX2, l’AUX3 e il modulo Sound FX sono tutti player, e fanno parte della
classe TPlayer. Voice FX non rientra tra i player perché attraverso questo modulo
dovrebbe soltanto passare la voce.
VISUALIZZARE INFORMAZIONI SU UN BRANO IN ESECUZIONE NEL DECK
A
Lo script seguente visualizza le informazioni del deck A:
var Song : TSongInfo;
Song := DeckA.GetSongInfo;
if Song = nil then
……………WriteLn(‘Non ci sono brani caricati sul deck A’)
else
……………begin
……………WriteLn(‘Artista: ‘+Song[‘artist’]);
……………WriteLn(‘Titlolo ‘+Song[‘title’]);
……………WriteLn(‘Album: ‘+Song[‘album’]);
……………WriteLn(‘Durata: ‘+Song[‘duration’]);
……………end;
Song.Free;

TSonginfo è la classe contenente le informazioni di un brano. Il metodo GetSongInfo


estrapola da tale oggetto le sue variabili, che vengono stampate a video tramite i comandi
WriteLn.
6.52.17. Funzioni di utilità
ActivePlayer è la funzione che restituisce il player considerato in quel momento attivo. Se
solo un player è attivo al momento dell’esecuzione della funzione, quel player sarà
restituito da questa funzione. Se entrambi i deck sono attivi, il player col maggior tempo di
attività rimanente sarà considerato attivo. Se nessuno dei due player è attivo, verrà
restituito NIL.
IdlePlayer è la funzione che restituisce quel player che non ha canzoni in coda e che non è
attivo in quel momento. Se tutti e due i player sono inattivi, viene di default restituito il
deck A. Se entrambi sono attivi, verrà restituito NIL.
QueuedPlayer è la funzione che restituisce quel player in modalità queued. La modalità
queued si ha quando il player ha un brano caricato sul deck ma non sta riproducendo
nessuna traccia. Se entrambi i deck sono attivi o inattivi, la funzione ritorna NIL;
altrimenti restituisce il primo dei deck in queue.
SEMPLICI SCRIPT DI ESEMPIO
Alcuni script di esempio.
if (ActivePlayer = nil) then
WriteLn(‘Attenzione! Nessun player è attivo’);

Questo script fondamentalmente non fa altro che verificare se c’è almeno un deck attivo e,
se non ne trova, lancia un allarme.
PAL.Loop := True;
PAL.WaitForTime(‘XX:00:00’);
Queue.AddFile(‘c:\news\news.MP3’,ipTop);
ActivePlayer.FadeToNext;

Lo script appena mostrato, invece, aspetta l’inizio dell’ora successiva, carica le news al
top della coda e sfuma il brano in trasmissione nel player attualmente attivo per
trasmettere le notizie immediatamente.
6.52.18. LinerAdder
INTRODUZIONE
L’esempio del programma LinerAdder è leggermente più complesso, ma particolarmente
indicativo. Inserisce un “liner” ovvero un breve file sonoro (che può essere anche un
effetto o un brand della radio) sopra un brano attualmente in trasmissione, sfruttando un
canale ausiliario.
L’inserimento del liner avviene soltanto se si verificano due condizioni:
♦il brano ha un intro che dura più di x secondi
♦il brano è una canzone, e non un jingle o uno spot.

Per l’utilizzo:
♦bisogna essere certi che siano stati inseriti i tempi di intro all’interno dei brani, tramite il
song information editor;
♦bisogna assicurarsi che l’AUX1 abbia l’Automatic Gain Controller impostato
correttamente.
COSTANTI DEL PROGRAMMA
const MIN_INTRO = 5*1000;
const MIN_WAIT = ‘+00:15:00’;
const LINERS_CATEGORY = ‘Liners’;

La costante MIN_INTRO è il valore minimo in millisecondi di durata dell’intro di un file


per giustificare l’inserimento del liner.
La costante MIN_WAIT è la durata minima che deve intercorrere tra l’inserimento di un
liner e il successivo.
La costante LINERS_CATEGORY è il nome della categoria contenente i liner.
COSTRUTTORE DELLA FUNZIONE EXTRACTINTRO
function ExtractIntro(Song : TSongInfo):Integer; forward;

Questi comandi creano il prototipo della funzione ExtractIntro, che tramite il comando
forward può essere definita successivamente.
IMPLEMENTAZIONE PRINCIPALE
var Song, Liner : TSongInfo;

Crea due oggetti TsongInfo, contenenti informazioni su un brano.


var Waiting : Boolean = True;
var Intro : Integer = 0;
Aux1.Eject;

Il metodo Eject si applica ad un qualsiasi player e comporta l’immediata rimozione del file
caricato all’interno, anche se è in riproduzione.
Liner := CAT[LINERS_CATEGORY].ChooseSong(smLRP,NoRules);

La funzione CAT seleziona dall’albero la categoria immessa come parametro, mentre


ChooseSong sceglie un brano all’interno di questa categoria passando come parametri la
modalità di selezione (come specificato nella tabella apposita) e se applicare o meno le
regole di ripetizione.
if (Liner=nil) then
WriteLn(‘Non ci sono liners’)

Se non è presente un liner, indica un messaggio d’errore.


else
……………if (not Aux1.QueueSong(Liner)) then
……………WriteLn(‘non è possibile accodare il file: ‘+Liner[‘filename’]);

Se l’accodamento del liner all’interno del player ausiliare non avviene, segnala un altro
errore. A questo punto comincia la parte principale.
while Waiting do
…begin
……………PAL.WaitForPlayCount(1);
……………Song := ActivePlayer.GetSongInfo;
……………if (Song=nil) thenWriteLn(‘Il player attivo non ha informazioni sul
brano?’)
……………else
…………………………begin
………………………………………Intro := ExtractIntro(Song);
………………………………………if(Song[‘songtype’]=‘S’) and (Intro>=MIN_INTRO) then
……………………………………………………begin
…………………………………………………………………Aux1.Play;
…………………………………………………………………Waiting := False;
……………………………………………………end;
………………………………………Song.Free;
………………………………………Song := nil;
…………………………end;
…end;
PAL.WaitForTime(MIN_WAIT);
PAL.Loop := True;

Finché la variabile di appoggio Waiting è vera (ed è stata impostata così all’inizio del
programma) occorre aspettare il prossimo brano, quindi estrarre le informazioni dal brano
del player attivo; se tali informazioni non ci sono allora bisogna segnalarlo; altrimenti si
continua.
All’intero Intro si attribuisce il valore restituito dalla funzione ExtractIntro, non ancora
trattata. Se la tipologia del file Song è S (quindi un brano) e contemporaneamente Intro
(che contiene la durata dell’intro) è maggiore del valore definito per costante, allora si fa
partire il player ausiliare e la variabile Waiting si spegne.
Se non si è nelle condizioni di avviare il liner, allora si libera la variabile Song e la si
imposta a NIL. A questo punto si attende il tempo minimo e il programma ricomincia,
ripristinando Waiting a True.
FUNZIONE EXTRACTINTRO
function ExtractIntro(Song : TSongInfo):Integer;
var
P : Integer;
XFade : String;

La funzione ExtractIntro inizializza due variabili. P è un integer mentre XFade una


stringa.
begin
……………Result := -1;
……………XFade := Trim(Song[‘xfade’]);
……………WriteLn(‘Decodificadella stringa XFade’);
……………WriteLn(‘XFade: ‘+XFade);

……………if XFade = ‘‘ then


…………………………Result := -1
……………else
…………………………begin
………………………………………P := Pos(‘&i=‘,XFade);
………………………………………if (P > 0) then
……………………………………………………begin
…………………………………………………………………Delete(XFade,1,P+2);
…………………………………………………………………P := Pos(‘&’,XFade);
…………………………………………………………………if (P>0) then
Delete(XFade,P,Length(XFade));
…………………………………………………………………Result := StrToIntDef(XFade,-1);
…………………………………………………………………WriteLn(‘Tempo di intro: ‘+XFade);
……………………………………………………end;
…………………………end;
end;

Il programma crea la stringa xfade eliminando spazi e caratteri di controllo


dall’informazione xfade dell’oggetto Song.
Se questa stringa è nulla allora attribuisce alla variabile Result il valore – 1, altrimenti
comincia un blocco di codice.
Questo blocco cerca all’interno della stringa xfade la sottostringa &i= e tramite la
funzione Pos ne identifica la posizione all’interno della stessa stringa xfade.
Se questa posizione è maggiore di zero allora si deve cancellare dalla stringa xfade la
stessa stringa &i=. A questo punto occorre controllare se è presente un altro carattere & e
da quel punto cancellare il resto della stringa. La stringa viene quindi convertita in un
numero; se ciò non è possibile si restituisce – 1.
Ricapitolando, la funzione Extractintro svolge le seguenti operazioni:
♦accetta un brano in ingresso;

♦estrae i dati di fading dal brano;

♦se il fading esiste estrapola dalla stringa contenente i dati di fading esclusivamente il
tempo di intro e lo converte in un numero;
♦restituisce questo numero, altrimenti restituisce – 1.

Le operazioni Delete possono funzionare in questo modo perché &i= rappresenta il primo
parametro della stringa.
6.52.19. Funzioni di utilità - Curtime
Curtime è un metodo eseguibile su qualsiasi oggetto di tipo Tplayer e permette di sapere
l’attuale tempo in millisecondi di un brano, ovvero quanto è passato dall’inizio del brano
al momento dell’esecuzione della funzione stessa.
Il suo utilizzo è comodo per sapere quanto tempo manca ad un brano per completarsi.
Var Done : Boolean = False;
while not done do
…begin
…if((ActivePlayer.Duration>0) AND ((ActivePlayer.Duration-
ActivePlayer.CurTime)>10000)) then
……………begin
…………………………WriteLn(‘This song will end in 10 seconds!’);
…………………………Done := True;
……………end;
…end;

Il programma valuta se la durata del brano è maggiore di zero e, nel caso in cui la
differenza tra la durata totale del brano e quanto già riprodotto (quindi il tempo rimanente)
sia maggiore di 10 secondi, lo segnala.
6.52.20. Funzioni di utilità – Gestione del volume
Tramite PAL è possibile leggere e modificare il volume di un deck. L’utilità della modifica
automatica dei volumi si nota ad esempio nel passaggio da un brano ad uno spot
pubblicitario.
var Done : Boolean = False;
var Song : TSongInfo;
While not Done do
…begin
…………………………if QueuedPlayer <> nil then
…………………………begin
………………………………………Done := True;
………………………………………Song := QueuedPlayer.GetSongInfo;
………………………………………if (Song<>nil) then
……………………………………………………case song[‘songtype’] of
…………………………………………………………………‘S’ :
QueuedPlayer.Volume := 255;
…………………………………………………………………‘A’,’J’,’P’ :
QueuedPlayer.Volume := 350;
…………………………………………………………………else
QueuedPlayer.Volume := 255;
……………………………………………………end; //case
…………………………end;
…end;
PAL.Loop := True;
PAL.WaitForPlayCount(1);

Il programma estrae le informazioni dal brano accodato al player ed in base alla tipologia
di brano applica un volume diverso, più basso per i brani e più alto per pubblicità, jingle e
promo. 255 è il livello massimo di volume, mentre 360 è un volume con guadagno
aumentato.
6.52.21. Encoder e relay di statistiche
Il linguaggio PAL permette l’accesso anche agli encoder e ai relay di statistiche. Tramite
PAL è possibile stoppare o fare partire encoder, così come inserire script.
RELAY DI STATISTICHE
La classe relay consente di svolgere cinque importanti operazioni:
♦leggere lo stato dei relay

♦leggere il numero di ascoltatori attuali

♦leggere il picco di ascolatori

♦leggere il numero massimo di ascoltatori possibili

♦forzare l’aggiornamento del relay di statistiche.


PAL.LockExecution;
WriteLn(‘Stato dei relay’);
WriteStr(‘—Attività: ‘);
if Relays.AtLeastOneActive then WriteLn(‘Online’) else WriteLn(‘Offline’);
WriteStr(‘—Ascoltatori: ‘); WriteLn(Relays.Viewers);
WriteStr(‘—Picco: ‘); WriteLn(Relays.Viewers_High);
WriteStr(‘—Numero massimo: ‘); WriteLn(Relays.Viewers_Max);
PAL.UnlockExecution;

Lo script appena mostrato non fa altro che verificare se almeno un relay è attivo; in quel
caso visualizza ascoltatori, picco e numero massimo di ascoltatori di tutti i relay.
Lo script seguente fa la stessa cosa, utilizzando però un ciclo e considerando ogni relay a
sé stante:
var I : Integer;
PAL.LockExecution;

for I := 0 to Relays.Count-1 do
begin
WriteStr(‘Relay numero ‘); WriteLn(I);
WriteStr(‘—Attività: ‘); WriteLn(Relays[I].Active);
WriteStr(‘—Stato: ‘); WriteLn(Relays[I].Status);
WriteStr(‘—Ascoltatori: ‘); WriteLn(Relays[I].Viewers);
WriteStr(‘—Picco: ‘); WriteLn(Relays[I].Viewers_High);
WriteStr(‘—Bitrate in (kbps): ‘); WriteLn(Relays[I].Bitrate);
WriteStr(‘—Formato: ‘); WriteLn(Relays[I].Format);

WriteLn(‘‘);
end;
PAL.UnlockExecution;

ENCODERS
Ecco un semplice esempio di attivazione e disattivazione di tutti gli encoders:
PAL.Loop := True;
PAL.WaitForTime(‘07:00:00’);
Encoders.StartAll;

PAL.WaitForTime(‘20:00:00’);
Encoders.StopAll;

Si può anche fermare o fare partire un singolo encoder tramite l’indicizzazione, che parte
da zero.
PAL.Loop := True;
PAL.WaitForTime(‘07:00:00’);
Encoders[0].Start;
PAL.WaitForTime(‘20:00:00’);
Encoders[0].Stop;

Sin dalla versione 3.3.2 di SAM Broadcaster è possibile creare un encoder che abbia come
unico scopo quello di archiviare il flusso audio ma non quello di trasmettere. Questa
opzione è molto utile per creare podcast o per semplice consultazione post-trasmissione.
Nello script seguente, encoder0 è l’encoder di trasmissione mentre encoder1 è l’encoder
di archiviazione. L’obiettivo dello script è quello di suddividere l’archiviazione in un file
diverso ogni ora, senza influenzare la trasmissione.
PAL.Loop := True;
PAL.WaitForTime(‘XX:00:00’);
Encoders[1].Stop;
Encoders[1].Start;
Molte emittenti radiofoniche hanno spesso la necessità di condividere un server Shoutcast
con più sorgenti. Sebbene questa non sia la modalità ideale di gestione di una web radio
con sorgenti multiple, accade più spesso di quanto non si creda. Si consiglia sempre di
veicolare tutto da una sorgente centrale, e solo in casi di emergenza fornire autonomia di
trasmissioni alle sorgenti definibili come “di secondo livello”, un po’ come avviene per i
collegamenti dagli stadi nel caso delle radiocronache delle giornate calcistiche. PAL può
automatizzare il processo di kick della sorgente precedente. Ovviamente dovrà essere
presente un encoder MP3 per Shoutcast adeguatamente configurato.
const Shoutcast_password = ‘changeme’;
const Shoutcast_host = ‘localhost’;
const Shoutcast_port = ‘8000’;

Le costanti devono essere adattate al proprio caso e richiedono password, indirizzo IP del
server di streaming e porta.
var URL : String;
URL := ‘http://admin:’+Shoutcast_password+’@’+Shoutcast_
host+’:’+Shoutcast_port+’/admin.cgi?mode=kicksrc’;
WebToFile(‘c:\dummy.txt’,URL);
Encoders.StartAll;

Il programma crea dinamicamente un URL partendo dai parametri forniti; quindi,


contatterà il sito salvandone a runtime il contenuto all’interno del file dummy e kickando
la sorgente. Successivamente attiverà l’encoder permettendo l’avvicendamento di
sorgente.
Uno script molto utile è quello che consente di variare, ad intervalli regolari, il titolo del
brano in onda, per prevenire che si possa fare uno stream ripping automatico dei brani
della radio, pur non rinunciando alla visualizzazione dei titoli.
const bannertext_file = ‘C:\Program Files\SpacialAudio\SAMBC\PAL\
BannerText.txt’;
const change_interval = ‘+00:00:15’;

Bannertext_file contiene l’indirizzo assoluto del file che contiene i banner da fare
visualizzare, uno per riga. Change_interval è l’intervallo tra una visualizzazione ed
un’altra.
var CurSong : TSongInfo;
var UpdSong : TSongInfo;
var Banners : TStringList;
var Toggle : Boolean = True;
var LinePos : Integer = 0;
PAL.Loop := True;
UpdSong := TSongInfo.Create;
Banners := TStringList.Create;

Variabili ed oggetti necessari al programma.


if FileExists(bannertext_file) then
.Banners.LoadFromFile(bannertext_file)
else
WriteLn(‘Il file con i banner non esiste’);

Converte il file in un oggetto TstringList.


LinePos := 0;
while (LinePos<Banners.Count) do
begin
..PAL.WaitForTime(change_interval);
UpdSong[‘title’] := Banners[LinePos];

..Toggle := not Toggle;


..if Toggle then
…begin
….CurSong := ActivePlayer.GetSongInfo;
…..Encoders.SongChange(CurSong);
…..CurSong.Free;
…end
…else
….Encoders.SongChange(UpdSong);
..LinePos := LinePos + 1;
end;

Banners.Free;
UpdSong.Free;

Per tutte le righe nel file, bisogna aspettare il tempo tra un cambio e l’altro e alternare la
visualizzazione dei titoli del brano con la riga all’interno del file, tramite la funzione
SongChange.
SAM Broadcaster è uno dei pochi encoder che supporti i tag ID3 versione 2 all’interno dei
flussi MP3; sono pochi i player che supportano i tag MP3 all’interno del flusso di una web
radio, mentre è più semplice considerare i metadati inviabili per un flusso Windows
Media.
Gli script possono essere utilizzati per indicare orari, date o messaggi particolari
all’interno del flusso, così come per sincronizzare pubblicità con immagini. L’esempio
seguente mostra l’ora locale nell’area di Windows media, aggiornando ogni minuto
l’orario.
PAL.Loop := True;
PAL.WaitForTime(‘XX:XX:00’);
Encoders.WriteScript(‘CAPTION’,’The local time is now ‘+TimeToStr(Now));

La funzione WhiteScript accetta due parametri: la chiave (che specifica il tipo di Stream)
ed i dati da inviare.
6.52.22. Tecniche di scripting avanzate
A CONTATTO DIRETTO CON IL DATABASE E LE QUERY SQL
Il linguaggio PAL permette di accedere direttamente al database tramite query SQL.
Bisogna stare più che attenti nel lavorare direttamente con il database perché, sebbene
possa sembrare molto comodo, è anche molto facile commettere errori che possono
compromettere dati o perderli.
Il consiglio non è di certo quello di non lavorare con il database, ma quello di effettuare
backup frequenti o lavorare su un’altra macchina.
Per comprendere al meglio questa sezione del linguaggio PAL occorre avere delle (solide)
basi di SQL, linguaggio che esula dagli scopi di questo testo.
PARAMETRI SQL
Le query SQL sono normalmente formate in questo modo, almeno per quanto riguarda le
select:
SELECT * FROM songlist WHERE (ID = 123) AND (date_played < ‘2005-01-01’)

I valori 123 e ‘2005-01-01’ sono all’interno della query, il che causa l’aggiornamento delle
query stesse, abbastanza complicato. Per risolvere questo problema PAL ha studiato i
parametri SQL che funzionano come delle variabili.
Ad esempio si può scrivere:
var Q : TDataSet;
Q := Query(‘SELECT * FROM songlist WHERE (ID = :ID) AND (date_played < :DatePlayed)’,[123,’2005-01-
01’],True);

TDataSet è un oggetto studiato per contenere i risultati di una query SQL. La funzione
query ha 3 parametri: il primo è la query, il secondo contiene tutti i parametri SQL,
separati da virgole all’interno di parentesi quadre, mentre il terzo parametro è il parametro
readonly. Il parametro readonly, se impostato come true, non permetterà la modifica dei
dati estrapolati dalla query.
I parametri SQL possono a loro volta essere parametrici, come nel caso della data di oggi.
Q := Query(‘SELECT * FROM songlist WHERE (ID = :ID) AND (date_played
< :DatePlayed)’,[123,Now],True);

PAL converte automaticamente il valore del parametro passato all’interno delle parentesi
quadre nel corretto valore che si aspetterebbe la query nel punto in cui quel parametro è
stato richiamato.
COMANDI SQL
Il linguaggio PAL fornisce due comandi principali per manovrare il linguaggio SQL: sono
le funzioni Query e ExecSQL.
ExecSQL si usa per eseguire codice SQL che non restituisce dati. Questa funzione
restituisce il numero di righe che formavano la sottotabella della query.
function Query(Sql: String; Params: array di variabili; ReadOnly: Boolean): TDataSet;
function ExecSQL(SQL: String; Params: array di variabili): Integer;

Supponiamo, ad esempio, di volere resettare il bilanciamento di tutti i brani a zero. La


query che potremmo usare per capire quanti brani sono stati modificati è questa:
var conta : Integer = 0;
conta := ExecSQL(‘UPDATE songlist SET balance = 0’,[]);
WriteLn(IntToStr(cnt)+’ brani sono stati aggiornati’);

Oppure, cancellare tutti i brani fatti da un artista:


var conta : Integer = 0;
conta := ExecSQL(‘DELETE FROM songlist WHERE artist LIKE :artist’,[‘Gigi D Alessio’]);
WriteLn(IntToStr(cnt)+ ‘brani sono stati cancellati’);

Il comando query viene invece usato con il comando SELECT che ritorna una sottotabella.
La sottotabella viene incapsulata all’interno di un oggetto TDataSet.
L’esempio seguente utilizza la funzione query per stampare i nomi degli ultimi 10 file
eseguiti e funziona solo con Mysql e postgreSQL per via della dicitura LIMIT 10:
var Q : TDataSet;
Q := Query(‘SELECT filename FROM songlist ORDER BY date_played DESC LIMIT 10’,[],True);

Q.First;
while not Q.EOF do
begin
WriteLn(Q[‘filename’]);
Q.Next;
end;

Dopo avere estratto la sottotabella, la funzione First sposta il puntatore alla prima riga;
quindi si estrae il nome file dalla riga e si va avanti finché la tabella non esaurisce tutte le
righe. Lo script successivo seleziona tutti i brani che iniziano con la lettera A e ne setta il
balance a zero. Notare che la funzione query ha il parametro readonly settato su false.
var Q : TDataSet;
Q := Query(‘SELECT * FROM songlist WHERE title LIKE :title’,[‘A%’],False);

Q.First;
…while not Q.EOF do
…begin
…………..WriteLn(Q[‘filename’]);
…………..Q.Edit;
…………..Q[‘balance’] := 0;
…………..Q.Post;
…………..Q.Next;
end;

La funzione edit pone il TDataSet in modalità editabile, visto che di default non lo è
(meccanismo di sicurezza). La funzione post salva i dati all’interno del database mentre la
funzione next, come precedentemente detto, passa alla riga successiva.
6.52.23. Scaricare file
PAL permette, tramite la funzione WebToFile, di scaricare da Internet file musicali (ma
anche d’altro tipo) e gestirli. Il seguente script scarica un file da Internet, lo salva in locale,
lo accoda e lo manda in onda.
const File_Remote = ‘http://indirizzosito/nomefile.MP3’;
const File_Local = ‘c:\content\nomefile.MP3’;
WebToFile(File_Local,File_Remote);
Queue.AddFile(File_Local,ipTop);
ActivePlayer.FadeToNext;

La funzione WebToFile è un mezzo molto potente. Funziona non soltanto per scaricare
file, ma anche per eseguire operazioni come il kick di una precedente sorgente (come dal
caso visto precedentemente) o, ad esempio, azionare un codice PHP su un sito Internet.
6.52.24. Funzioni per maneggiare i nomi dei file
♦ExtractFileDir: la stringa risultante è una directory che può essere passata come
parametro per molte sltre funzioni, come CreateDir, GetCurrentDir, RemoveDir, o
SetCurrentDir. La stringa è vuota se il file non contiene parti che riconducano a
directory;
♦ExtractFileDrive: questa funzione restituisce esclusivamente il drive (la lettera che
corrisponde all’hard disk, in ambiente Windows) del filename passato come parametro. I
nomi che utilizzano la convenzione UNC (Universal naming convention) vedranno
restituito qualcosa simile a: ‘\nomeserver\nomecomputer’;
♦ExtractFileExt: la funzione restituisce l’estensione da un nome file, comprendendo il
punto;
♦ExtractFilePath: la stringa risultante contiene l’intero percorso del file dato come
parametro tranne il nome e l’estensione;
♦ExtractFileName: estrae nome ed estensione dal parametro fornito.

6.52.25. Funzioni per il file system


FUNZIONI BASE
function CopyFile(SrcFileName, DestFile: String; FailIfExists: Boolean):
Boolean;
function RenameFile(OldName: String; NewName: String): Boolean;
function DeleteFile(Filename: String): Boolean;
function FileExists(Filename: String): Boolean;

Queste funzioni consentono di copiare, rinominare, cancellare o controllare se un file


esiste e non necessitano di particolari spiegazioni.
FUNZIONI DI ORGANIZZAZIONE FILE
La prima funzione da studiare è quella inerente il trasportare il contenuto di un file di testo
all’interno di una stringa, mostrandone il contenuto.
var Data : String = ‘‘;
const MyFile = ‘c:\MyTestFile.txt’;
if FileExists(MyFile) then
…………..begin
…………..Data := FileToStr(MyFile);
…………..WriteLn(‘Il contenuto del file è:’);
…………..WriteLn(Data);
…………..end
else
…………..WriteLn(‘Data file does not exist.’);
…………..Data := Data + DateTimeToStr(Now) + #13#10;
…………..if not StrToFile(MyFile,Data) then
…………..WriteLn(‘Non posso aggiornare il file’);

Lo script utilizza le funzioni speculari FileToStr e StrToFile che copiano rispettivamente


un file su una stringa e viceversa. Il resto del programma è composto da verifiche e stampe
a video.
Il file viene salvato nuovamente inserendo la data corrente più dei caratteri di ritorno a
capo (#13 e #10).
Un altro modo per gestire i file di testo è quello di caricare il loro contenuto all’interno di
un oggetto TstringList, che permette di accedere ai contenuti di ciascuna linea del file di
testo.
Si consideri l’esempio successivo che riguarda l’importazione di un file M3U all’interno
di SAM. I File M3U sono dei file di testo contenenti un percorso di un file o di un flusso
per linea. Un generico file M3U può essere così composto:
#EXTM3U
#EXTINF:366,Nome Artista 1 – Nome Canzone 1
c:\musica\Nomeartista1-nomecanzone1.MP3
#EXTINF:258, Nome Artista 2 – Nome Canzone 2
c:\musica\NomeArtista2NomeCanzone2.MP3
#EXTINF:285, Nome Artista 3 – Nome Canzone 3
c:\musica\NomeArtista3NomeCanzone3.MP3
#EXTINF:-1,http://www.machebellawebradio.com:8000
http://www,machebellawebradio.com:8000

Lo script è tripartito: la prima parte carica la playlist all’interno di un oggetto TstringList.


Per caricare il file all’interno dell’oggetto si utilizza la funzione LoadFromFile.
const PlaylistFile = ‘c:\playlist.m3u’;
var List : TStringList;
var T : Integer;
List := TStringList.Create;
if FileExists(PlaylistFile) then
…………..List.LoadFromFile(PlaylistFile)
else
…………..WriteLn(‘La Playlist non esiste’);

La seconda parte dello script rimuove tutti i commenti dal file M3U.
T := 0;
while T < List.Count do
…………..begin
…………..if (Trim(List[T])=‘‘) or (List[T][1]=‘#’) then
…………..begin
……………………….WriteLn(‘Cancellazione riga: ‘+List[T]);
……………………….List.Delete(T);
…………..end
…………..else
…………..T := T + 1;
…………..end;

In sostanza, il programma dice: “fin quando ci sono righe nel file controlla se la riga è
vuota o se contiene un [#] come primo carattere. In questo caso rimuovila, altrimenti
lasciala e vai avanti”.
La terza parte dello script stampa a video la lista dei file o dei flussi della playlist e li
aggiunge alla coda.
for T := 0 to List.Count-1 do
…………..begin
…………..WriteLn(List[T]);
…………..Queue.AddFile(List[T],ipBottom);
…………..end;
List.Free;

FUNZIONI DI MANIPOLAZIONE FILE DI CONFIGURAZIONE


La classe TStringList contiene metodi che possono essere molto utili per la gestione dei
file di configurazione.
const ConfigFile = ‘c:\Config.ini’;
var List : TStringList;
var T : Integer;
List := TStringList.Create;
if FileExists(ConfigFile) then
…………..List.LoadFromFile(ConfigFile)
else
begin
…………..WriteLn(‘‘Il file di configurazione non esiste, se ne creerà uno’);
…………..List.Values[‘stazione’] := ‘FabrizioMondo.com’;
…………..List.Values[‘website’] := ‘http://www.fabriziomondo.com’;
…………..List.Values[‘genere’] := ‘Dance, Musica Classica’;
…………..List.SaveToFile(ConfigFile);
end;
List.Free;

La funzione values creerà i vari campi del file di configurazione, che avranno il contenuto
del parametro di values come nome e il valore impostato alla funzione.
Il file di configurazione avrà un contenuto di questo tipo:
stazione=FabrizioMondo.com
website=http://www.fabriziomondo.com
genere=Dance,Musica classica

6.52.26. Maneggiare indirizzi remoti


Come qualsiasi altro player, SAM è in grado di riprodurre e trasmettere flussi audio
provenienti da server di streaming, per cui può benissimo funzionare da ritrasmettitore di
web radio. I flussi esterni possono essere statici (un MP3 su un sito Internet) oppure
dinamici (una web radio). Lo script seguente inserisce una web radio esterna all’interno
della programmazione ad un certo orario e la rimuove ad un altro orario. Il programma ha
anche dei meccanismi di controllo.
La prima parte è la configurazione delle variabili, indirizzo della web radio ed orari di
inizio e termine della ritrasmissione.
const ShowURL = ‘http://205.188.234.38:8002/’;
const StartTime = ‘01:01:00’;
const EndTime = ‘01:05:00’;

La seconda parte è la reale implementazione.


var T : Integer;
PAL.Loop := True;
PAL.WaitForTime(StartTime);
Queue.Clear;
Queue.AddURL(ShowURL,ipTop);
ActivePlayer.FadeToNext;
T:=0;
while T < 20 do
…………..begin
…………..Queue.AddURL(ShowURL,ipBottom);
…………..CAT[‘Tracks’].QueueBottom(smLRP,EnforceRules);
…………..T:=T+1;
…………..end;
PAL.WaitForTime(EndTime);
Queue.Clear;
ActivePlayer.FadeToNext;

Il ciclo all’interno del programma serve nel caso in cui la ritrasmissione venisse skippata
per mancanza di collegamento o perché la web radio da ritrasmettere è caduta. Questo
ciclo tenterà 20 volte di ripristinare la ritrasmissione, intervallando ogni tentativo con un
brano, finché non arrivi l’orario di ripresa della normale programmazione.
SAM non è in grado di riconoscere i mime types per decidere quale contenuto abbia un
flusso in ingresso. Guarda semplicemente al nome del file. Ogni flusso che termina con
.ogg è un flusso Ogg/Vorbis, mentre ogni URL con protocollo MMS è un flusso WMA.
Si crea la singolare situazione in cui un flusso WMA non viene accettato se indicato con
protocollo HTTP, mentre viene accettato se indicato con protocollo MMS. Tutto il resto
viene considerato flusso MP3.
6.52.27. Maneggiare le categorie
AGGIORNAMENTO TRAMITE LE CARTELLE
È possibile aggiornare il database di SAM Broadcaster in modo molto agevole tramite due
funzioni: la funzione Rescan e la funzione Clear.
Lo script seguente ne mostra un esempio:
PAL.Loop := True;
DIR[‘c:\content\newmusic’].Rescan;
CAT[‘NewMusic’].Clear;
CAT[‘NewMusic’].AddDir(‘c:\content\newmusic’,False,ipBottom);

La funzione Rescan inserisce nella libreria dei brani tutti i file della cartella NewMusic che
non erano precedentemente stati inseriti e rimuove quelli che non esistono più fisicamente
in cartella. È quindi un’operazione d’aggiornamento.
La funzione Clear svuota la categoria NewMusic per poi riempirla nuovamente con il
comando AddDir.
COPIARE CATEGORIE
Il seguente script copia i brani di una categoria all’interno di un’altra categoria cercando di
non arrecare pesantezza al sistema.
const Cat_From = ‘MyCat1’;
const Cat_To = ‘MyCat2’;

var Q : TDataSet;
var T : Integer;
Q := CAT[Cat_From].SongList;
CAT[Cat_To].Clear;
PAL.LockExecution;
Q.First;
…………..while not Q.EOF do
…………..begin
………….. ………….. CAT[Cat_To].AddFile(Q[‘filename’],ipBottom);
………….. ………….. Q.Next;
………….. ………….. if (T mod 10) = 0 then PAL.UnlockExecution;
………….. ………….. if (T mod 10) = 0 then PAL.LockExecution;
…………..T:=T+1;
…………..end;
PAL.UnlockExecution;

Il comando cruciale è chiaramente l’AddFile, ma è opportuno notare come in base al


numero di iterazioni del processo si blocchi e sblocchi l’esecuzione esclusiva.
6.52.28. Selezionare brani
Normalmente quando i brani vengono selezionati per la rotazione sono messi direttamente
in coda, ma cosa si può fare se si vuole effettuare un controllo ulteriore sul brano inserito
in coda prima di inserirlo definitivamente?
Questo script mostra una parziale soluzione:
var Song : TSongInfo;
Song := CAT[‘Tracks’].ChooseSong(smLRP,EnforceRules);
if Song <> nil then
begin
…………..if Song[‘songtype’] = ‘S’ thenQueue.Add(Song,ipBottom);
end;

All’interno del blocco dopo il primo if è possibile mettere qualsiasi logica di


discriminazione dei brani; nel caso proposto si richiede che sia una canzone, ma
ovviamente questo potrebbe non essere sufficientemente discriminatorio (e quasi
sicuramente non lo è).
7. Zararadio
Zararadio è una regia potente, con una versione gratuita e con tante caratteristiche che la
rendono di gradevole utilizzo per le stazioni radio.
Il sito di Zararadio è www.zararadio.com; da questo indirizzo è possibile scaricare il
programma. Una volta installato, la prima finestra che comparirà sarà quella indicata nella
figura 7.1.

Figura 7.1. Scelta della lingua

Figura 7.2. Scelta della lingua

Si sceglie la lingua e si va avanti. Successivamente, sarà richiesto nuovamente di scegliere


la lingua con la quale utilizzare il programma.
È possibile utilizzare la lingua italiana installando l’apposito pacchetto lingua disponibile
sul sito. A questo punto, il programma dovrebbe essere aperto. Si visualizzerà una finestra
come quella raffigurata nella figura 7.3.

Figura 7.3. Finestra introduttiva

Per potere cominciare le trasmissioni, occorre iniziare a creare una playlist. Per crearla, il
metodo più semplice è il drag and drop.
Come si evince dall’immagine, nel riquadro più a sinistra si può selezionare la cartella o i
file di interesse, quindi trasportarli nel riquadro a destra. A questo punto è sufficiente
premere il tasto play per ascoltare.
Zararadio, nella sua versione free, non dispone di un plug-in interno al programma per la
trasmissione sul web: occorre quindi utilizzare un encoder esterno, quale può essere il
plug-in DSP di Winamp.
7.1. Opzioni settabili
Per visionare il menu delle opzioni basta premere il tasto [O]. Si aprirà una finestra
contenente dodici gruppi di opzioni.
7.1.1. Fade

Figura 7.4. Opzione fade

All’interno della sezione fade si trova overlap (in italiano sovrapposizione) che permette
di settare la durata del periodo di chiusura di un brano. È sempre importante prevedere e
valutare un periodo del brano in cui controllare lo stato del volume e preparare il fading.
La seconda sotto-opzione si chiama anch’essa fade. Si può impostare la durata in secondi
del periodo di transizione tra un brano e l’altro. Il valore di default è un buon
compromesso ma, ovviamente, ognuno dovrà valutare le proprie esigenze.
Fade on overlap (in italiano fade in sovrapposizione) indica il fading tra canzoni, mentre
fade on stop indica il fade in chiusura di trasmissione.
End of song detection (rilevatore di fine canzone) permette di verificare “vuoti” all’interno
di un brano musicale. Se all’interno dell’overlap il volume scende sotto un valore in
decibel che si può settare a scelta, Zararadio passerà alla canzone successiva.
7.1.2. Satellite

Figura 7.5. Opzione satellite

Satellite permette di settare quale “linea” della scheda audio dovrà fungere da satellite,
ovvero da fonte audio alternativa per il programma. Generalmente è comodo impostare la
line in della scheda audio. Utile solo se si vuole permettere il controllo completo della
stazione a Zararadio, cosa che non è particolarmente consigliabile.
7.1.3. Uscite
L’opzione uscite permette di settare le apparecchiature di uscita. Ci sono tre sottoparti:
1) uscita principale
2) uscita preascolto
3) uscite player ausiliari.
Si può fare una distinzione in base al numero di schede audio che si hanno a disposizione
e al tipo di attività che si vuole svolgere con i canali ausiliari. L’uscita principale permette
di settare la scheda audio che trasmetterà il flusso musicale standard; nell’utilizzo di
Zararadio in bypass con un encoder, questa scheda deve essere la stessa scheda da cui
l’encoder effettuerà lo streaming.

Figura 7.6. Opzione uscite

L’uscita preascolto permette di settare la scheda audio dalla quale si potranno sentire in
preascolto i jingle, i promo, ma anche musica, senza che essi siano trasmessi. Se si ha a
disposizione una sola scheda audio si possono fare due cose: impostare la stessa scheda
audio dell’uscita principale, oppure disabilitare il preascolto.
Lo stesso discorso si può fare anche per i canali ausiliari.
7.1.4. Registro
L’opzione registro permette di impostare dei file di log per le trasmissioni. Questo è utile
per eventuali report o semplicemente per monitorare il lavoro di Zararadio. Si possono
impostare i log cliccando su attivare log, e decidere se far riportare i dati solo dalla prima
istanza del programma stesso. Si può impostare anche il percorso dove verranno salvati i
file di log.
Un tipico file di log può essere questo:
LOG………….. ………….. ………….. ………….. ………….. ………….. ………….. ………….. ………….. FILE
========
venerdì 6 giugno 2008
TIME………….. ………….. ………….. ………….. ………….. ………….. ………….. ………….. ……..ACTION
—— ………….. ………….. ………….. ………….. ………….. ………….. ………….. ………….. ………….. ——
13:28:09 start C:\MP3\Robbie Williams – Millenium.MP3
13:29:38 start C:\MP3\Robbie Williams – Eternity.MP3
13:34:34 start C:\MP3\Robbie Williams & Kylie Minogue – Kids.MP3
13:38:03 start C:\MP3\Robbie Williams – Rock DJ.MP3
13:42:15 start C:\MP3\Robbie Williams – Rudebox.MP3
Figura 7.7. Opzione registro

7.1.5. Password
L’opzione password permette di gestire la sicurezza del programma.
Si suddivide in varie sezioni: la prima è current password, dove si dovrà inserire la
password precedentemente impostata, ai fini di potere sbloccare l’inserimento di una
nuova password. Se è la prima volta che la si vuole settare, il secondo step è andare su
attivare protezione e dare il segno di spunta. Bisogna settare due volte la password che si
vuole impostare. L’ultima sezione del sottomenu permette di settare quali opzioni
potranno essere effettuate soltanto da chi sarà a conoscenza della password. Vi sono
presenti:
♦finestra degli eventi

♦cancella gli eventi pendenti

♦suona gli eventi pendenti manualmente

♦finestra delle opzioni

♦attiva/disattiva eventi.

Figura 7.8. Opzione password

7.1.6. Rilevatore di silenzio


In silence detector si può permettere a Zararadio di verificare periodi di silenzio (volume
inferiore ai 20 Db) all’interno di brani, e di conseguenza skippare al brano successivo, in
modo da evitare periodi silenti troppo lunghi. Di default è abilitato, ed è settato ad una
durata silente di 15 secondi.
Figura 7.9. Opzione rilevatore di silenzio

7.1.7. Mixer

Figura 7.10. Opzione mixer

Tramite l’opzione mixer si può solo definire il percorso, ovvero la posizione sul disco in
cui si trova l’applicazione che si vuole usare come mixer, al fine di potere regolare i
volumi.
7.1.8. TTH

Figura 7.11. Opzione TTH

La prima sottosezione dell’opzione TTH permette di settare manualmente dei valori di


umidità e temperatura; l’umidità in valori percentuali, la temperatura in gradi (Celsius o
Fahrenheit). Si può anche importare un file di configurazione umidità/temperatura; per
poterlo fare il creatore di Zararadio consiglia, nell’help in linea, di scaricare Weather
Watcher gratuitamente al sito www.singerscreations.com.
Gli annunci possono essere disabilitati dopo un periodo definibile (in minuti) dall’ultimo
update ricevuto.
7.1.9. Explorer
Figura 7.12. Opzione explorer

La finestra explorer permette di settare la cartella root del sistema. Si può scegliere una
cartella ben definita, oppure selezionare tre opzioni: Desktop, Risorse del computer e
Risorse di rete.
Si possono anche scegliere le estensioni dei file gestibili da Zararadio. Per abilitarne una,
basta selezionare la casella corrispondente.
7.1.10. Tags
Tramite l’opzione tags si può impostare la visibilità in playlist dei tag ID3 dei file audio
che verranno trasmessi. Ci sono delle opzioni settabili:
♦ARTI: indica l’artista

♦TITL: indica il titolo

♦ALBM: indica l’album di appartenenza

♦GNRE: indica il genere

♦YEAR: indica l’anno di pubblicazione

♦CMNT: indica eventuali commenti.

Figura 7.13. Opzione tags

7.1.11. Talk Over

Figura 7.14. Opzione talk over


Tramite l’opzione talk over si può settare in millisecondi il periodo di transizione che va
dal momento in cui si preme il comando per parlare (caratterizzato dal simbolo che si vede
in figura) al momento in cui il volume della musica ha raggiunto il picco minimo.
Si può anche settare il livello minimo su cui si appoggerà la musica durante i periodi di
parlato.
7.1.12. Generale

Figura 7.15. Opzione generale

Le opzioni generali sono così strutturate: si può impostare un nome alla stazione, scegliere
una lingua e impostare il percorso del file che conterrà il file con il brano corrente. Si
possono inoltre settare diverse altre opzioni:
♦attivare autostart: se abilitata, Zararadio inizia immediatamente a riprodurre la playlist
all’avvio;
♦attiva AGC: se abilitata, imposta l’Automatic Gain Control, il controllo di guadagno;

♦allow opening more than one istance: se abilitata, permette di aprire più Zararadio
contemporaneamente;
♦disable events in secundary istances: se abilitata, nelle istanze secondarie (fork della
prima) non si possono gestire eventi;
♦all’avvio apri l’ultima lista di riproduzione caricata: se abilitata, all’apertura di Zararadio
comparirà l’ultima lista eseguita;
♦conferma chiusura programma: se abilitata, alla chiusura di Zararadio verrà richiesta una
conferma;
♦suona le tracce con doppio click: se abilitata, sarà sufficiente fare doppio click su una
canzone per mandarla on air immediatamente.
8. Windows Media Encoder
Windows Media Encoder è un codificatore audio/video realizzato da Microsoft che può
essere agevolmente utilizzato per creare web radio o altre tipologie di media. Una volta
installato il programma, la prima finestra che si visualizza è quella illustrata nella figura
8.1.

Figura 8.1. Finestra introduttiva

Chiudendo tale finestra si presenterà davanti il tavolo di lavoro.

Figura 8.2. Tavolo di lavoro

Cliccando su properties si vedrà cosa si deve necessariamente configurare subito.

Figura 8.3. Finestra Properties

La finestra nella figura 8.3 mostra 9 tab; non è essenziale vederli immediatamente tutti. Il
primo tab è il più importante ed è diviso in due colonne.
Si può rinominare il flusso da Source 1 in quello che si preferisce. Sotto questo campo di
testo si trova Source from; tale impostazione consente di scegliere se effettuare streaming
tramite le periferiche di acquisizione audio/video, o tramite file o in entrambi i modi.
Per effettuare una trasmissione musicale con soli file basta cliccare sul comando apposito,
deselezionando il video se si vuole solo trasmettere musica.
Figura 8.4. Impostazioni della finestra Properties

Cliccando su browse si può scegliere un file audio da trasmettere: ad esempio il file


prova.wma. Si consiglia di provare con un file avente nome molto semplice.
Bisogna quindi cliccare su apply e il più sarà fatto.

Figura 8.5. Encoder Ready

Cliccare su Start Encoding. Comparirà un level meter per il volume (a sinistra). A destra
in basso, invece, compariranno dei dati inerenti la trasmissione.

Figura 8.6. Encoder Broadcasting

Quando il brano finisce, proprio perché non impostato diversamente, comparirà la finestra
illustrata nella figura 8.7.

Figura 8.7. Encoding Results


La trasmissione è avvenuta correttamente; questa tuttavia è solo una trasmissione di prova,
poco utile ai registi se non per scopi didattici.
Windows Media Encoder, al contrario di Shoutcast e Icecast, non ha un pannello di
amministrazione visualizzabile dal browser. I dati non sono visibili a terzi. Il flusso (che
per ora è solo un brano condiviso) è raggiungibile all’indirizzo
http://vostroindirizzoip:8080/nomefile.estensione. Ovviamente, è possibile cambiare la
porta da 8080 con qualsiasi altro numero.
8.1. Opzioni
Se nella finestra principale di Windows Media Encoder si clicca su Properties comparirà,
come già visto, una finestra con 9 tab.
Questi nove tab sono:
1) sources
2) output
3) compression
4) video size
5) attributes
6) processing
7) plug-ins
8) security
9) advanced.
8.1.1. Sources

Figura 8.8. Sources

Questo tab configura la tipologia dello streaming. Nel campo name è possibile modificare
il nome della singola sorgente d’interesse.
Sotto, si ha la triplice ripartizione del flusso:
1) audio
2) video
3) script.
Sopra queste tre caselle si hanno:
1) devices
2) file
3) both.
In base a cosa si sceglie si è in grado di trasmettere live, musica o entrambe le cose.
Cliccando su add si potrà aggiungere un altro flusso che andrà configurato
autonomamente dal precedente. La sezione At end riguarda la gestione dei passaggi tra
sorgenti. Alla fine di ogni sorgente si potrà:
1) stoppare
2) continuare con la sorgente successiva
3) riprendere con la prima sorgente
4) looppare.
8.1.2. Output

Figura 8.9. Output

Selezionando Push to server si ha la possibilità di inserire indirizzo IP, porta, mountpoint e


dati aggiuntivi del server al quale ci si vuole connettere; altrimenti, selezionando l’opzione
Pull from encoder (corrispondente ad una trasmissione in locale con un server Shoutcast)
si deve solo scegliere una porta. Windows Media Encoder permette di sceglierne una
liberamente, ma di default propone la 8080. Si ha anche la possibilità di archiviare lo
streaming, abilitando la casella apposita che permetterà di settare limite di durata, limite di
pesantezza, nome file e persino di avvertire quando lo spazio su disco sta per terminare.
8.1.3. Compression
Figura 8.10. Compression

Nella finestra compression si può esaminare il bitrate con il quale verrà trasmessa la voce,
la musica o entrambe. Il passo basilare è quello di scegliere la destinazione. Qual è
l’obiettivo?
Nell’elenco destinations si vedono:
♦file download

♦hardware devices

♦Windows Media server

♦web server

♦Windows Media hardware profilea

♦pocket PC

♦file archive.

Si sceglie (nel caso in questione va lasciato Windows Media server) e si passa ad audio.
In audio si sceglie la qualità desiderata. Se lo si desidera, si può lasciare la modalità
multiple costant bit rate, che permette una scelta di più valori possibili, costanti nel tempo.
Si sceglie quindi una qualità tra quelle disponibili. I valori non sono i “canonici” 128 kbps,
64 kbps e cosi via, ed il motivo è presto detto. Windows Media Encoder aggiunge un
overhead di appena qualche kbps.
Si può scegliere la modalità two-pass (che però è più utile per il video streaming) e settare
anche una compressione temporale.
La compressione temporale risulterà strana a chi ha utilizzato solamente server Shoutcast.
Windows Media server ha un meccanismo che consente di ottimizzare i tempi morti,
tramite l’eliminazione delle pause e il settaggio dell’accelerazione del flusso.
Queste sono le impostazioni basilari; se si clicca su edit comparirà un’altra finestra, come
visibile nella figura 8.11.
Adesso si è in grado di definire un proprio settaggio di codifica. Per farlo, cliccare su new.
La prima riga consentirà di impostare un nome, così come di impostare una descrizione e
scegliere la lingua.
Nella sottosezione Media types, in Audio, si sceglie sia la codifica che la modalità.
Si clicca su add e si sceglie il bitrate che si vuole settare, nei limiti delle possibilità. Il
range va comunque da 4 kbps a 20 Mbps. È bene ricordarsi sempre dell’overhead, quindi
meglio diminuire un po’ le pretese di bitrate che ci si prefigge.

Figura 8.11. Custom encoding settings

Si creerà un tab nuovo, simile a quello della figura 8.12.

Figura 8.12. Settings-new tab

Si può anche valutare il tipo di formato audio preferito e settarlo come meglio si
preferisce.
8.1.4. Attributes
Figura 8.13. Attributes

Il tab attributes permette di modificare alcuni metadati opzionali e di settarne di nuovi.


Basta selezionare un attributo dei metadati presenti e cliccare su edit, dove si potrà inserire
il valore desiderato. Sempre meglio modificarli, per una questione di professionalità.
8.1.5. Plug-ins

Figura 8.14. Plug-ins

La finestra plug-ins è divisa in due colonne. Nella colonna sinistra si ha l’elenco dei plug-
in disponibili; a destra, la finestra dei plug-in attivati. Cliccando sul comando register si ha
la possibilità di attivarne degli altri.
I plug-in non sono configurabili se non abilitati. Una volta abilitato un plug-in (ovvero
facendolo passare nella finestra di destra) si potrà cliccare su configure e modificarne i
parametri.Attenzione però: sono richieste competenze non banali, proprie di tecnici audio
di bassa frequenza e non soltanto di registi web radiofonici.
8.1.6. Security
Figura 8.15. Security

Nella finestra security si potranno aggiungere dei DRM all’interno del flusso audio. Qui
entra in gioco la mission della radio. Se l’obiettivo è quello di creare una radio libera per
tutti, senza particolari vincoli, questa trattazione non interessa. Se si clicca su new, si
visualizza una finestra in cui si potranno aggiungere e gestire i profili. Si clicca su add, e
si avrà la possibilità di inserire nome e URL del provider di interesse, oltre ad avere,
ovviamente, la possibilità di scegliere di renderli reperibili a Windows Media Encoder.

Figura 8.16. New Profile

Cliccando su find provider si visualizzerà una pagina del sito della Microsoft, in cui si
potrà scegliere quello che interessa di più.
Nella finestra Security si può anche importare un file drm precedentemente creato.

Figura 8.17. Add Provider

8.1.7. Advanced
Advanced è il tab che permette di settare dei parametri avanzati.
Figura 8.18. Advanced

È possibile modificare l’identificativo dell’encoder con un nome più facilmente


ricordabile. È persino possibile modificare l’MTU dei pacchetti che vengono inviati
durante il flusso. Il consiglio è quello di lasciare l’opzione in default, ma cliccando su
custom si è liberi di decidere la grandezza che più aggrada. Occorre ricordarsi però di
agire sempre con buon senso, in quanto la massima grandezza dei pacchetti è comunque
vincolata ai mezzi fisici che si utilizzano durante la trasmissione da sorgente a server e da
server ai client.
8.2. Informazioni di trasmissione
A differenza di Shoutcast ed Icecast (e di chissà quali e quanti altri), Windows Media
Encoder non dispone di un pannello di amministrazione pubblico, almeno alle condizioni
in cui lo si è visto, ad esempio, con Shoutcast o Icecast. Una volta che è stato fatto partire
lo streaming (che sia di un brano o dal line in non ha importanza) si vedrà in basso una
serie di tab.
8.2.1. General

Figura 8.19. General

È suddiviso in sottosezioni. La prima sottosezione è input. Questa prima sottosezione è


ulteriormente divisa in: video, audio, script. Se si è scelto di trasmettere solo audio, la
sezione audio sarà l’unica visibile tra le tre.
La seconda sottosezione è encoding. Questa sottosezione è ulteriormente divisa in settings,
DRM protection, video optimization, total bit rate, expected fps, average FPS e total
scripts.
Per questa trattazione, solo alcune di queste impostazioni sono settate e utilizzabili:
♦settings indica la modalità di streaming. Nel caso proposto, si ha un Multiple bit rates
audio, ovvero uno streaming con molte possibilità di valori di bit rate. In modalità CBR,
ovvero Costant bit rate, il quantitativo di bit trasmessi non varia nel tempo;
♦DRM protection visualizza se sono presenti o meno vincoli legati alla gestione dei diritti
digitali. In questo caso, compare un no;
♦video optimization non riguarda certamente una web radio, in quanto si occupa
dell’ottimizzazione del flusso video;
♦total bit rate indica il valore attuale del bit rate impostato per la trasmissione;

♦expected FPS indica il numero di frame che ci si aspetta di avere nell’immediato istante
successivo; riguarda lo streaming video;
♦average FPS indica il numero medio di frame per secondo che si ha nell’intero streaming
video;
♦total scripts indica il numero di scripts presenti nel flusso. Come si può vedere, le ultime
impostazioni sono assenti nell’immagine.
La terza sottosezione è output. Questa sottosezione è ulteriormente divisa in archive,
broadcast port e URL:
♦archive indica dove verrà salvato localmente lo streaming in esecuzione;

♦broadcast port indica la porta da cui avviene la trasmissione e il numero di client


connessi al momento;
♦server URL indica, nel caso in cui fosse stato impostato, l’indirizzo IP del server che
effettua la distribuzione del flusso audio su Internet.
La quarta sottosezione è progress. Questa sottosezione è ulteriormente divisa in elapsed
time, time remaining e percent complete:
♦elapsed time indica il tempo trascorso dall’inizio delle trasmissioni;

♦time remaining indica il tempo rimanente (qualora impostato un limite);

♦percent complete indica la percentuale totale della durata temporale già trasmessa.

La quinta sottosezione è system. Questa sottosezione è ulteriormente divisa in disk space


left, disk time left, CPU load:
♦disk space left indica lo spazio residuo su disco;

♦disk time left indica il tempo in cui è stato attivo il disco;

♦CPU load indica il carico di computazione della CPU, un parametro che è sempre
comunque bene avere sott’occhio.
8.2.2. Statistics

Figura 8.20. Statistics

Statistics rappresenta i dati inerenti l’audio che va dall’encoder al server, che in questo
caso sono uniti in un unico programma.
La prima sottosezione è audio input. Questa sottosezione è ulteriormente divisa in
sampling rate, channels, samples dropped:
♦sampling rate indica il tasso di campionamento dello stream. Nella figura 8.20 si vedono
48100 campionature al secondo;
♦channels identifica se lo streaming in ingresso è mono oppure stereo. Ovviamente si
distingue in base al numero;
♦sample dropped indica il numero di campioni persi durante la trasmissione.

La seconda sottosezione è audio output. Questa sottosezione è ulteriormente divisa in


sampling rate, channels, max, current e AVG bit rate:
♦sampling rate e channels rispecchiano i concetti espressi per audio input;

♦max, current e average bit rate indicano il massimo, il corrente e il medio valore del
bitrate del flusso in uscita.
La terza sottosezione è combined bit rate. Anche in questo caso, niente di nuovo: sono i
valori massimi, medi e correnti dei bitrate comprensivi dei metadati.
8.2.3. Server

Figura 8.21. Server

Il tab server è diviso in cinque sottoparti. Esse sono:


♦Windows Media Services

♦statistics

♦players connected

♦player allocated bandwith

♦URLs for client connections.

La prima sottosezione, Windows Media Services, è ulteriormente divisa in server, che


indica l’indirizzo del server a cui ci si appoggia, e il mountpoint di riferimento per il
particolare flusso audio che si sta esaminando.
La seconda sottosezione si chiama statistics, ma non bisogna confonderla con le statistiche
viste precedentemente. Le due parti in cui è divisa indicano dati inerenti la stabilità del
server (last counter reset) e la sua prestazione (server CPU).
La terza sottosezione è players connected, ovvero i dati sugli ascolti. È presente limit, che
indica il limite massimo di utenze; peak, che indica il picco raggiunto; current
connections, ovvero i player attualmente connessi; percentage of limit, ovvero quale
percentuale del massimo valore di utenze si è raggiunto attualmente, e total connections,
ovvero le connessioni totali al server.
La quarta sottosezione è player allocated bandwith, ovvero la quantità di banda allocata
agli ascoltatori. Si ha anche qui un limit, che indica il limite massimo, un peak, che indica
il picco (attenzione, non è sempre proporzionale al picco numerico di ascolti), current
connections e percentage of limit che danno informazioni simili a quelle della sottosezione
precedente.
La quinta sottosezione è URLs for client connection, ovvero l’indirizzo da cui gli
ascoltatori possono ricevere il flusso audio. Ce ne sono due: il generale e l’alternativo.
Entrambi possono essere copiati tramite i due comandi che si vedono nell’immagine 8.21.
8.2.4. Connections
Il tab connections è diviso in due sole parti. La prima è direct connections, che contiene
informazioni sugli ascoltatori connessi, mentre la seconda è direct connections URLs, che
contiene gli indirizzi d’ascolto della radio, da Internet e in LAN.

Figura 8.22. Connections

8.2.5. Event Log e EDL

Figura 8.23. Events

Il primo tab è diviso in un’unica sottoparte, chiamata events, che indica al suo interno gli
eventi di cui l’encoder ha tenuto traccia. Tali eventi possono riguardare l’encoder stesso
oppure le sue configurazioni. Sono presenti diverse colonne; la prima da sinistra indica la
data in cui è avvenuto l’evento, la seconda indica l’orario, la terza indica cosa ha subito o
provocato l’evento, la quarta indica il tipo di evento avvenuto.
L’ultimo tab si chiama EDL, dove EDL sta per Edit Decision List.

Figura 8.24. Edit Decision List

Usando Windows Media Encoder 9 si possono controllare periferiche come Video Camere
Digitali (DV) direttamente dall’encoder. Questo permette di controllare i tasti di play,
pausa, stop, avanzamento veloce, rewind, seek, eject direttamente dall’encoder. Per
abilitare il controllo periferica, essa deve essere connessa attraverso una porta VIDEO
digitale IEEE 1394 (comunemente detta FIREWIRE).
Tale impostazione permette il controllo dei frame sui contenuti che si vanno a codificare.
Un altro grande vantaggio nell’utilizzo del controllo periferiche è che si può anche creare
un EDL (Edit Decision List, lista di decisioni sull’editing) per permettere di codificare e
organizzare specifiche sezioni del filmato da una o più cassette DV nell’ordine che si
preferisce. Un EDL permette di guadagnare tempo, codificando solo alcune parti della
cassetta a scelta (ad esempio solo l’audio).
Il controllo periferiche permette l’encoding ad una o due vie. Come già detto
precedentemente, la differenza tra encoding a una o a due vie sta nel fatto che la prima
tipologia di codifica si limita a convertire e comprimere il flusso audio/video man mano
che viene incontrato, mentre nel secondo caso il flusso viene prima analizzato e solo
secondariamente codificato e compresso.
L’encoding a due vie può dare una migliore qualità, poiché l’encoder stesso ha maggiori
informazioni disponibili per l’ottimizzazione del bitrate, framerate, dimensione del buffer
e qualità d’immagine basata sulla composizione della scena. Tuttavia, la codifica a due vie
richiede il doppio (o quasi) del tempo, a causa del doppio passaggio. Combinando il
controllo periferica e l’encoding a due vie si può catturare e codificare in un solo
passaggio più di quanto non si faccia catturando prima in un formato non compresso e
dopo codificando tramite la codifica a due vie.
9. IDJC
IDJC (Internet DJ Consolle) è una regia per Gnu/Linux che simula una consolle da DJ a
due piatti più mixer. Le informazioni principali su questa regia si trovano all’indirizzo:
www.onlymeok.nildram.co.uk.
Il programma si trova nei repository delle principali distribuzioni; per cui è sufficiente
installare il programma, se ci si trova su una debian-based, tramite il seguente comando:
apt-get install IDJC

Contemporaneamente alla regia, per effettuare delle trasmissioni si può pensare di


utilizzare un server Shoutcast locale, come spiegato nel terzo capitolo di questo volume.
Una volta aperto il server, Internet DJ Consolle può essere impostata come regia sorgente.
Aprendo la consolle da terminale, la prima finestra che si visualizzerà è quella mostrata
nella figura 9.3.

Figura 9.1. Installazione

Figura 9.2. Server Shoutcast

Figura 9.3. Finestra introduttiva

Per prima cosa, si provi ad usare la consolle come semplice player. Per quanto possa
sembrare banale, non sarà cosi facile.
Alcuni problemi di utilizzo nascono da difficoltà di interazione tra il programma e gli MP3
VBR. Convertendo i file da MP3 ad OGG, il problema è facilmente aggirabile.
Aggiungere un brano per ciascun playlist controller cliccando con il tasto destro e
selezionando playlist, scegliendo add file, ottenendo un risultato simile a quanto mostrato
in figura 9.4.
Figura 9.4. Add file

Fare doppio click sulla canzone aggiunta nel playlist controller di sinistra. La canzone
dovrebbe cominciare a essere riprodotta, ma non si dovrebbe sentire ancora nulla. Per
ascoltare la canzone si clicca su listen. I playlist controller funzionano come dei veri e
propri piatti: per cui, se facciamo partire una canzone anche nella playlist di destra e si
clicca su listen si sentiranno le due canzoni contemporaneamente.
9.1. Trasmettere con IDJC
Per trasmettere si clicchi su server, in basso a sinistra, e si visualizzerà l’immagine di
figura 9.5.

Figura 9.5. Trasmissione

9.1.1. Sezione Connection


TYPE
Si può scegliere tra Shoutcast, come nel caso proposto, Icecast ed Icecast 2.
HOST
In modo simile a quanto affrontato con altre regie, host identifica generalmente il
computer che fa da server. Nel caso di server locali, si può mettere localhost.
PORT
Il numero di porta identificante il processo server sull’host precedentemente indicato.
MOUNT
Identifica il mountpoint a cui riferirsi.
LOGIN
Abilitato solo su server Icecast.
PASS
Password del server.
9.1.2. Sezione Encoding
FORMAT
Si può scegliere tra MP3 e OGG.
BITRATE
Il range di bitrate disponibili va da 24 a 320 kbps.
9.1.3. Sezione Stream Info
DJ NAME
Corrisponde al campo Radio Name; identifica l’artista o in generale l’emittente.
BITRATE
Il range di bitrate disponibili va da 24 a 320.
LISTEN URL
L’indirizzo al quale è raggiungibile la radio.
DESCRIPTION
Descrizione dell’emittente.
GENRE
Genere della radio.
METADATA
Metadati standard inviati durante la trasmissione; identificano il titolo del brano trasmesso
se standard. È possibile selezionarli o meno, a scelta dell’utente.
MAKE PUBLIC
Selezionare la casella per farsi captare dalle pagine gialle di Shoutcast.
SERVER CONNECT
Questo comando connette effettivamente la regia al server.
UNTIL
Il comando until permette di inserire un orario al quale la regia smetterà di streammare.
9.1.4. Sezione Record
La sezione Record serve per registrare in locale il flusso inviato in streaming. Si può
scegliere codifica e bitrate, settare il path e dare dei tag ID3 al file finale, settando artista e
titolo.
CROSSFADING
Una volta aperto IDJC si noterà che in basso è presente una barra con scritto Stream mon.
Accanto a questa barra c’è un campo di testo e un comando con una freccia a due sensi.
Questa barra è un crossfader, ovvero permette di sfumare i brani da una playlist all’altra,
come una vera consolle. A differenza di attrezzature e regie più performanti non ha un
regolatore dei battiti ed altri strumenti utili, e quindi si dovrà rinunciare ad essi.
Il campo di testo accanto alla barra indica quanto dura il crossfading automatico. Si può
scegliere una durata che va da 1 ad 8 secondi. Premendo il comando con la freccia, il
crossfader si muoverà automaticamente.
9.2. Preferenze
9.2.1. General
FEATURE SET
Feature set permette di scegliere se utilizzare una playlist (Basic Streamer) o due (Fully
Featured) alla volta. Si può scegliere se partire automaticamente in versione Basic o Fully.
BITS AND BOBS
Bits and bobs sono dei flag di utilizzo di vari componenti. Se ne descrivono di seguito
alcuni:
♦stream peak: permette di vedere la barra di trasmissione in decibel del flusso inviato in
streaming. Similare del tutto al tab input del plug-in DSP di Winamp;
♦mic peak: similarmente allo stream peak si ha la barra per il microfono, che viene
azionato cliccando sul telefono verde nella finestra principale;
♦PB speed adjuster: serve ad aumentare la velocità di trasmissione del brano. È come se si
ruotasse il vinile con la mano, facendolo andare più veloce o più lento.
STREAM NORMALIZER
Normalizer permette di settare parametri per la trasmissione dello streaming.
PLAYER RESAMPLE QUALITY
Il PRQ permette di scegliere la qualità da utilizzare per il ricampionamento dei brani,
necessario per la trasmissione ad un bitrate costante. Più alta la qualità, maggiore sarà il
tempo necessario.
RECORD AUTOSUSPEND
Il record autosuspend permette di settare limiti in decibel e di ritardo per la registrazione
locale.

Figura 9.6. General


9.2.2. Microphone

Figura 9.7. Microphone

Nella finestra Microphone si trovano tutti i settaggi possibili in termini di guadagno,


compressione ed altro, necessari per effettuare una diretta live.
9.2.3. X-Chat

Figura 9.8. X-Chat

X-Chat è una chat basata su IRC. È possibile inviare, tramite la regia, informazioni sui
brani in trasmissione al momento, con latenza settabile e con messaggio personalizzabile.
Si può anche impostare la scrittura di un messaggio automatico a intervalli di tempo, ma
bisogna prestare attenzione, in quanto molti amministratori vietano gli script.
9.2.4. Jack Ports

Figura 9.9. Jack Ports

Mediante Jack Ports si ha la possibilità di settare e impostare i vari jack disponibili. Per
vedere quali siano disponibili sul proprio computer, scrivere in una console: jack_lsp.
9.2.5. Event
È possibile settare a piacimento un comando che permetta di fare qualcosa all’apertura
dell’applicazione, oppure all’apertura del microfono o dell’ausiliare. La X sotto ogni
opzione intende l’evento OnClose();.
Figura 9.10. Event

9.3. TroubleShooting
Se all’avvio del programma si visualizza la finestra indicata nella figura 9.11 non ci si
deve particolarmente preoccupare.

Figura 9.11. Errore flac

La finestra indica che il player non è in grado di gestire i file FLAC, ma è perfettamente
funzionante.
La finestra indicata nella figura 9.12 vuol dire invece che qualche altro programma sta
usando la scheda audio.
The JACK sound server needs to be running in order to run IDJC: il server JACK deve
essere avviato per far funzionare IDJC.
In order to manually start it try something like:
$ jackd -d alsa -r 44100 -p 2048

Figura 9.12. Errore server JACK

Per farlo iniziare automaticamente si può scrivere in un terminale il comando di cui sopra.
If you would like JACK to start automatically when you start IDJC try this:
echo “/usr/bin/jackd -d alsa -r 44100” >~/.jackdrc
If you have already done this it is possible another application or non-JACK sound server is using the sound card.
Possible remedies would be to close the other audio app or configure the sound server to go into suspend mode
after a brief amount of idle time.

Il comando seguente permette di automatizzare la procedura di inizializzazione del server


JACK:
echo “/usr/bin/jackd -d alsa -r 44100” >~/.jackdrc

Se il problema persiste, esso chiaramente dipende dal fatto che un’altra applicazione sta
usando il server sonoro.
10. Metafile
Un metafile è un file contenente al suo interno delle direttive o dei redirect per la fruizione
di un altro file, con delle indicazioni da passare al programma che apre il file stesso. Si
utilizzano per permettere ai player audio di accedere alle radio su Internet, ma non sono
fondamentali per questo scopo. Di certo si tratta di un comodo strumento da fornire
all’utenza.
10.1. PLS
Un tipico metafile PLS, acronimo di playlist, contiene queste direttive:
[playlist]
numberofentries=1
File1=http://indirizzoip:porta
Title1=Radio XYZ

♦numberofentries è il numero di file o di URL presenti nella playlist;

♦File1 è l’URL del primo file;

♦Title1 è il titolo che apparirà nel player, per il primo URL.

Questa sintassi è sufficiente a fare ascoltare il flusso audio.


10.2. RAM
Incredibile a dirsi, tutti i file RAM per web radio constano semplicemente di un file di
testo con un URL.
http://indirizzoip:porta

E ciò è perfettamente sufficiente.


10.3. ASX
ASX è l’acronimo di Advanced Stream Redirector ed è un dialetto XML utilizzato per
l’ascolto di web radio tramite Windows Media Player ed altri programmi.
<asx version=“3.0”>
<title>Esempio di streaming live</title>

<entry>
<title>File che verrà eseguito prima dello streaming vero e proprio</title>
<ref href=“http://example.com/announcement.wma” />
<param name=“aParameterName” value=“aParameterValue”/>
</entry>

<entry>
<title>Streaming d’esempio</title>
<ref href=“http://example.com:8080” />
<author>Example.com</author>
<copyright>©2005 Example.com</copyright>
</entry>
</asx>

È sufficiente sostituire il link nel tag REF con l’indirizzo della radio, quindi salvare il file
in estensione .asx e piazzarlo da qualche parte su Internet.
11. SCF
La Società Consortile Fonografici è un ente di tutela dei diritti d’autore dei fonografici,
ovvero di coloro che si occupano della produzione sui supporti dei brani idealizzati dagli
autori veri e propri.
Le web radio sono tenute alla stipula di un contratto con questa società, secondo quanto
espresso dalla legge italiana sul diritto d’autore, e al pagamento di quanto richiesto dal
contratto. SCF mette a disposizione tre diversi contratti di licenza a seconda che si tratti di
web radio commerciale, amatoriale o istituzionale.
Il contratto per web radio commerciale prevede un compenso streaming di € 0,0004 a
minuto di connessione e un compenso archivio pari al 50 % di quanto corrisposto a titolo
di compenso streaming. È previsto un Minimo Garantito annuo di € 1.500,00 e
naturalmente, qualora iniziaste l’attività ad anno iniziato, il Minimo Garantito verrebbe
calcolato solo sui mesi di effettiva attività.
Il contratto per web radio amatoriale prevede che il Licenziatario sia una persona fisica, un
compenso forfettario annuo di € 350,00, nessun obbligo di rendicontazione, un limite di
banda passante di 640 Kbit/sec (punto poi successivamente rimosso) e il divieto di inserire
sul sito banner e sponsorizzazioni.
Il contratto per istituzionale viene proposto nel caso in cui il Licenziatario sia un
Organismo Istituzionale e cioè qualsiasi soggetto che abbia quale oggetto sociale una
attività non commerciale, senza scopo di lucro, che utilizzi il sito (e conseguentemente la
web radio), esclusivamente con la finalità di illustrare la propria attività istituzionale,
senza che tale utilizzo generi alcun beneficio di tipo economico e commerciale sia diretto
che indiretto (es. associazioni, fondazioni, enti locali, soggetti e istituzioni pubbliche,
ONLUS, istituti scolastici ecc.). In questo caso il compenso è di € 750,00 annui senza
limiti di banda e obbligo di rendicontazione.
11.1. Il contratto per web radio amatoriale
CONTRATTO DI LICENZA NAZIONALE PER L’UTILIZZAZIONE DI REGISTRAZIONI FONOGRAFICHE
MEDIANTE WEB RADIO AMATORIALE
tra
SCF Società Consortile Fonografici per azioni., con sede in Via Leone XIII, 14, 20145 Milano, capitale sociale
pari a Euro 500.000 (cinquecentomila) iscritta al Registro delle Imprese presso la camera di commercio di Milano
al n. 6812/2000, Codice fiscale e Partita IVA n. 12925820156 in persona del suo presidente Gianluigi Chiodaroli
(nel seguito “SCF”)
e
Signor_________________, residente in ___________________, Via ____________________, Codice fiscale e
Partita IVA n. ____________________ (nel seguito “il Licenziatario”)

La prima parte è introduttiva. Definisce le parti del contratto: ovvero una società ed una
persona fisica. Occorre compilare le parti che permettono di identificare il Licenziatario.
SCF è una società consortile istituita al fine di esercitare in modo collettivo i diritti di utilizzazione relativi alle
Registrazioni Fonografiche (come infra definite) di titolarità di ogni casa discografica, persona fisica o giuridica,
pubblica o privata che le abbia conferito, o le conferisca in futuro, apposito mandato (nel seguito i “Mandanti”);
SCF agisce pertanto in nome proprio e per conto dei propri Mandanti (come infra definiti).

Definizione della natura di SCF. Si esprime in questa parte, cosa sia SCF e per chi lavori.
Da notare che SCF ha un ordinamento giuridico totalmente differente rispetto alla SIAE,
che non è una società consortile ma un ente di diritto pubblico, a gestione privata.
B Il Licenziatario è una persona fisica (così come in appresso meglio definita) titolare del sito web
www._____________ (nel seguito “il Sito”), tramite il quale, sotto la forma della web radio denominata
“________________”, mette a disposizione del pubblico contenuti musicali; il Licenziatario è pertanto
responsabile editoriale dell’organizzazione e della creazione di tutti i contenuti del Sito.

Definizione di Licenziatario. È definito Licenziatario la persona che sottoscrive il


contratto con SCF; è una persona fisica, titolare di un sito Internet, che rappresenta la sede
di trasmissione della radio stessa. Corretta l’attribuzione di una web radio ad un sito
Internet, ma ricordiamo che non è sempre cosi.
C Al fine di consentire al pubblico l’accesso alla suddetta web radio, il Licenziatario ha stipulato separato
contratto di servizio con l’Internet Service Provider ______________.

Premessa alquanto controversa. Non è chiaro se SCF intenda chi offre hosting al sito
oppure chi hosta il server di streaming
D SCF intende concedere in licenza al Licenziatario, che intende acquisirli, alcuni diritti di utilizzazione delle
Registrazioni Fonografiche di titolarità dei Mandanti, per consentire al Licenziatario di metterle a disposizione del
pubblico tramite il Sito ed entro i limiti del territorio (come infra definito).

Definizione di oggetto del contratto.


11.1.1. Art. 1 – Definizioni
Nell’articolo 1 si esplicitano le definizioni delle espressioni utilizzate.
Nel presente contratto (nel seguito “Contratto”) le espressioni che seguono avranno il significato qui di seguito
loro attribuito:
“Ascolto”
indica l’attività di fruizione delle Registrazioni Fonografiche effettuata, tramite il Sito, in modalità Streaming.
“Legge sul Diritto d’Autore”
indica la Legge 22 aprile 1941 n. 633 ed ogni sua successiva modificazione e integrazione (nel seguito L.d.A.).
“Mandanti”
indica i titolari, in via originaria o derivata, dei diritti di utilizzazione delle Registrazioni Fonografiche concessi in
licenza, che abbiano conferito a SCF apposito mandato per la gestione e l’esercizio dei medesimi diritti. L’elenco
aggiornato dei Mandanti è pubblicato sul sito www.scfitalia.it.
“Persona Fisica”
indica qualsiasi soggetto, persona fisica, che utilizzi il Sito, e conseguentemente la web radio, esclusivamente con
finalità di carattere amatoriale, senza che tale utilizzo generi alcun introito o beneficio di tipo economico e/o
commerciale, sia diretto che indiretto; l’utilizzo del Sito, e conseguentemente della web radio, si intende inoltre di
carattere amatoriale, con la conseguenza di farne rientrare il titolare nella presente categoria, quando, in aggiunta
a quanto dianzi meglio specificato, all’interno del Sito medesimo non compaia alcuna forma di pubblicità e/o
sponsorizzazione.
“Registrazione Fonografica”
indica qualsivoglia registrazione originale di un’opera musicale – per tale intendendosi il singolo brano musicale
nonché le singole parti di composizioni di musica classica o di esecuzioni jazz – fissata su qualsiasi supporto
fonografico, oggi conosciuto od inventato in futuro (es. compact disc, musicassetta, mini disc, ecc.), regolarmente
pubblicata dai produttori fonografici Mandanti e da essi posta in commercio.
“Repertorio”
indica l’insieme delle Registrazioni Fonografiche i cui diritti di utilizzazione siano di spettanza dei Mandanti e
debbano essere gestiti da SCF in forza del mandato conferitole da questi ultimi.
“Streaming”
indica la ricezione di dati audio, messi a disposizione via Internet, in modo tale che l’utente possa ascoltare una
determinata Registrazione Fonografica, in tempo reale e solo temporaneamente, sotto forma di flusso continuo e
senza possibilità di riprodurre, registrare o comunque memorizzare il relativo file audio.
“Territorio”
indica il territorio di Italia, San Marino e Città del Vaticano.
Ai fini del Contratto un sito web s’intende situato sul Territorio quando il server è installato sul Territorio, o
quando il Licenziatario ha il proprio domicilio nel Territorio, o ancora, quando la programmazione del Sito e le
principali decisioni economiche sono attuate dal Licenziatario nel Territorio.

Definizioni lessicali: sono proprie di molti contratti e testi di legge.


♦ascolto: la definizione è chiara;

♦legge sul diritto d’autore: anche questo punto dovrebbe essere chiaro;

♦mandanti: la definizione non necessita commenti;

♦persona fisica: esattamente come per la SIAE, è fatto divieto di qualsiasi forma
pubblicitaria diretta (all’interno del flusso audio) che indiretta (all’interno del sito) pena
l’inadempienza contrattuale;
♦registrazione fonografica: per essere diretti, è l’attuazione dell’idea. La SIAE tutela l’idea
di un brano, mentre SCF dovrebbe tutelarne la sua realizzazione fisica;
♦repertorio: la definizione è chiara;

♦streaming: la definizione di streaming prevede che non sia possibile registrare tale flusso,
anche se ciò è particolarmente difficile da attuare;
♦territorio: secondo la SCF, la giurisdizione non è soltanto attuata sui server localizzati in
Italia, ma anche sui Licenziatari residenti in Italia e per le web radio a contesto
linguistico italiano.
11.1.2. Art. 2 – Oggetto
Nell’articolo 2 si esplicita l’oggetto del contratto.
2.1 Con il Contratto, SCF, ai sensi dell’art. 72, lett. a) e lett. d) L.d.A. ed a fronte del pagamento dei corrispettivi
meglio indicati al successivo articolo 4, concede in licenza al Licenziatario, che li acquisisce, i diritti, non
esclusivi e non trasferibili, a qualsiasi titolo, a terzi, che seguono:

Si elencano i diritti intrasferibili che vengono concessi alla stipula del contratto.
il diritto di riprodurre, tramite caricamento dei relativi file nel proprio server, le registrazioni Fonografiche facenti
parte del Repertorio, all’esclusivo scopo di esercitare il diritto di cui alla successiva lettera (b) del presente
articolo;

Con questo contratto si possono utilizzare i brani tutelati dalla società consortile.
il diritto di mettere a disposizione del pubblico, attraverso il Sito, le Registrazioni Fonografiche facenti parte del
Repertorio, in maniera tale che ciascuno possa fruirne tramite il Sito – solamente in modalità streaming ed
esclusivamente per uso personale – dal luogo e nel momento scelti individualmente, e senza alcuna possibilità di
riprodurre, registrare o comunque memorizzare i relativi file.

La società consortile conferma di non volere riconoscere l’esistenza dei web stereo o del
relaying.
2.2 Ogni altro diritto o modalità di utilizzazione del Repertorio, diverso da quelli indicati, è espressamente escluso
dalla licenza conferita con il Contratto.

La licenza vincola l’utilizzo dei brani a quanto espresso all’interno del contratto e
nient’altro.
11.1.3. Art. 3 – Modalità di utilizzazione delle registrazioni fonografiche
Nell’articolo 3 si esplicitano le modalità di divulgazione dei brani.
Il Licenziatario si obbliga a:
a) non rendere noto anticipatamente il momento nel quale verranno messe a disposizione del pubblico determinate
Registrazioni Fonografiche, indicandone il titolo, o l’album di appartenenza o il nome dell’artista. La presente
clausola non esclude peraltro la possibilità di segnalare al pubblico che, in un periodo di tempo futuro ma non
specificato, verranno messe a disposizione le registrazioni di un determinato artista;

Questa sezione dell’articolo obbliga chiaramente a non dare nessuna possibilità di


conoscenza della programmazione futura dell’emittente.
Ciò implica che non è possibile creare una web radio settoriale dedicata ad un’artista, né
tantomeno è possibile creare delle funzioni che indichino quale sia il brano successivo.
b) non mettere a disposizione del pubblico in ciascun arco temporale di 3 (tre) ore:
- più di 3 (tre) differenti Registrazioni Fonografiche facenti parte di un unico album, e più di 2 (due) di esse
consecutivamente;
- più di 4 (quattro) differenti Registrazioni Fonografiche appartenenti ad un determinato artista, o facenti parte di
una qualsiasi compilation di brani, e più di 3 (tre) di esse consecutivamente;

All’interno delle stesse tre ore non è possibile inserire 3 brani di un album oppure 4 brani
dello stesso artista e non 3 consecutivi.
c) non predisporre le sequenze di Registrazioni Fonografiche in modo tale che esse siano parte:
- di una sequenza già registrata e archiviata di durata inferiore a 5 (cinque) ore;
- o di una sequenza già registrata e archiviata di durata pari o superiore a 5 (cinque) ore, che sia messa a
disposizione del pubblico per più di 2 (due) settimane;
- o di una sequenza, messa a disposizione del pubblico in modalità continua (looped), di durata inferiore a 3 (tre)
ore;

Non si può creare una registrazione che sia parte di una sequenza già registrata che duri
meno di 5 ore, oppure, se maggiore di cinque, non deve essere messa a disposizione per
più di 2 settimane. Si deve anche evitare di mettere in loop sequenze di durata inferiore a 3
ore.
d) non predisporre le sequenze di Registrazioni Fonografiche in modo tale che esse siano parte di un programma,
identificabile, nel quale le Registrazioni Fonografiche siano proposte in un ordine predeterminato, a meno che non
si tratti di una sequenza già registrata e archiviata, o di una sequenza in modalità continua (looped) che sia messa
a disposizione del pubblico:
- più di 3 (tre) volte per un periodo – preannunciato al pubblico – di 2 (due) settimane [nel caso di sequenze di
durata inferiore ad 1 (una) ora];
- più di 4 (quattro) volte per un periodo – preannunciato al pubblico – di 2 (due) settimane [nel caso di sequenze
di durata pari o superiore ad 1 (una) ora];

Occorre impedire che il pubblico sappia a priori che brani ascolterà, a meno che non si
tratti di una sequenza predeterminata. Questa frase ha un senso, ma capirlo è complicato.
In ogni caso, se la sequenza dura meno di un’ora, al massimo 3 volte in 2 settimane; se
dura più di un’ora, lo si può fare anche 4 volte.
e) non utilizzare le Registrazioni Fonografiche, sia da sole che abbinate a immagini visive, in modo tale da
provocare confusione, incertezza, errore o comunque indurre il pubblico ad associare stabilmente gli artisti, o i
titolari dei diritti d’autore, o i titolari dei diritti connessi con il Licenziatario, o un particolare prodotto o servizio
pubblicizzato dal Licenziatario; ovvero ancora in modo tale da indurre il pubblico a ritenere che le attività svolte
dal Licenziatario, diverse dalla mera messa a disposizione delle Registrazioni Fonografiche, siano state
sponsorizzate o approvate dagli artisti, dai titolari dei diritti d’autore, o dai titolari dei diritti connessi al diritto
d’autore relativi alle Registrazioni Fonografiche medesime (c.d. diritto di sincronizzazione);

Supponiamo che una radio abbia un jingle che contraddistingue la stazione. Supponiamo
inoltre che tale jingle sia stato ricavato da una canzone molto famosa. Questa lettera
dell’articolo impedisce o impone ai Licenziatari che si eviti in ogni modo possibile che un
brano o meglio “un’opera dei mandanti” sia associata al Licenziatario piuttosto che
all’artista.
f) adottare ogni più opportuna misura tecnologica – che sia disponibile sul mercato e non comporti costi
irragionevoli – idonea a impedire che:
- l’utente, o ogni altro individuo o entità, possa effettuare la scansione automatica delle sequenze musicali messe a
disposizione dal Licenziatario, sia da sole che insieme a sequenze di altre entità emittenti, al fine di selezionare,
perché venga messa a sua disposizione, una determinata Registrazione Fonografica e che l’utente possa realizzare
riproduzioni delle Registrazioni Fonografiche che non siano strettamente temporanee e strumentali alla loro
fruizione in modalità streaming.

Non si deve permettere il ripping.


g) conformarsi alle misure tecnologiche adottate dai titolari dei diritti sulle Registrazioni Fonografiche per
identificare o proteggere le opere in esse contenute e che siano tecnicamente adottabili dal Licenziatario senza
comportare costi eccessivi o la compromissione della qualità sonora;

Bisogna cercare di salvaguardare le opere, sempre che non costi troppo.


h) salvo quanto previsto alla precedente lettera a), fornire al pubblico – in formato di testo, e durante ma non
prima della messa a disposizione di ciascuna Registrazione Fonografica – le seguenti informazioni: titolo della
Registrazione Fonografica, titolo del disco incorporante la Registrazione Fonografica e nome dell’artista, in modo
tale che le informazioni medesime appaiano sull’apparecchio che si sia collegato al Sito. Ove tecnicamente
possibile, il Licenziatario sarà inoltre tenuto a rendere disponibili, unitamente alle Registrazioni Fonografiche, le
informazioni, del genere ora descritto, che i titolari dei diritti d’autore o dei diritti connessi al diritto d’autore
abbiano codificato e inserito nelle Registrazioni Fonografiche medesime;

È possibile fare visualizzare dei dati (i cosiddetti metadata) inerenti il brano attualmente in
trasmissione sull’apparecchio che si collega al sito.
non mettere a disposizione mediante il Sito registrazioni illegali, ivi inclusi, a titolo esemplificativo, bootlegs o
Registrazioni Fonografiche la cui utilizzazione in modalità streaming ovvero in qualunque altra modalità a mezzo
Internet non sia ancora stata autorizzata dai Mandanti nel territorio ove il Licenziatario ha sede;

Sono vietati i bootleg, le registrazioni o i remix non autorizzati dai mandanti.


l) non modificare, effettuare il re-mix, adattare, rimasterizzare, restaurare le Registrazioni Fonografiche facenti
parte del Repertorio o altrimenti manipolarne in qualsivoglia forma o modo la fissazione dei suoni;

Punto simile al precedente.


m) non consentire al pubblico che acceda al Sito di programmare le sequenze di Registrazioni Fonografiche. Il
Licenziatario, inoltre, non avrà la facoltà di inserire nel Sito alcun comando che consenta un ascolto interattivo
delle Registrazioni Fonografiche (quale, ad esempio, il comando del tipo “Skip”, “Pause” o “Back”), né di
installare alcuna funzione che consenta al pubblico di personalizzare le sequenze di Registrazioni Fonografiche, o
di votare queste ultime mentre vengono messe a disposizione.

Non si possono creare web radio on demand.


Si vieta la presenza del tasto SKIP, PAUSE o BACK all’interno dei player del sito. Ciò
purtroppo non è sempre facilmente fattibile perché i player embedded li implementano
spesso.
11.1.4. Art. 4 – Compenso
Nell’articolo 4 si esplicita il compenso per le autorizzazioni.
4.1 Compenso Annuo: A fronte della concessione in licenza, da parte di SCF, dei diritti indicati al precedente
articolo 2.1, per il periodo di Durata del Contratto e per l’eventuale ulteriore periodo di rinnovo ai sensi del
successivo Art. 9, il Licenziatario verserà ad SCF un compenso annuale pari a € 350,00 (trecentocinquanta/00
Euro).

Non c’è molto da dire: 350 Euro l’anno più IVA.


4.2 Il compenso di cui sopra si intende IVA esclusa ed al netto di qualunque altra imposta, tassa o contributo
anche di futura istituzione. Esso sarà inoltre soggetto a rivalutazione di anno in anno, in conformità alle variazioni
dell’indice Istat dei prezzi al consumo per le famiglie di operai ed impiegati dall’anno 2008.

Il prezzo del punto 4.1 è da intendersi senza IVA e tasse di ogni tipo. Il costo scritto verrà
valutato seguendo l’indice Istat dei prezzi al consumo.
11.1.5. Art. 5 – Termini e modalità di pagamento
Nell’articolo 5 si esplicitano i termini e le modalità del pagamento da versare.
Al momento della sottoscrizione del Contratto, SCF provvederà ad emettere la fattura relativa al Compenso
Annuo, di cui al precedente art. 4.1, che il Licenziatario si impegna a corrispondere entro 30 giorni dalla ricezione
della fattura medesima inviata da SCF. Ben s’intenda che, con riferimento al primo anno di durata del Contratto e
qualora la stipula dello stesso sia avvenuta in corso d’anno, il Compenso Annuo dovuto dal Licenziatario sarà pari
alla quota (in dodicesimi) di Compenso Annuo corrispondente ai mesi di effettiva attività.
Per gli anni successivi al primo, in caso di rinnovo del Contratto ai sensi del successivo art. 10, il Licenziatario
corrisponderà a SCF il Compenso Annuo entro il 31 marzo di ciascun anno, previo ricevimento della relativa
fattura emessa da SCF.

SCF invia una fattura che va pagata entro 30 giorni. È possibile avere un compenso pro
mese nel caso in cui il contratto venga stipulato ad anno inoltrato. Per gli anni successivi
al primo, la fattura va pagata entro il 31 marzo dell’anno corrente.
11.1.6. Art. 6 – Controlli
L’articolo 6 tratta dei controlli eseguiti dalla SCF.
In virtù della circostanza che il Compenso, di cui al precedente art. 4, è stato determinato, nella misura ivi
indicata, in ragione dell’appartenenza del Licenziatario alla categoria di Persona Fisica, SCF avrà facoltà di
controllare periodicamente, per tutta la durata del Contratto, direttamente o tramite terzi, la sussistenza delle
caratteristiche, tecniche e non tecniche, della web radio così come dichiarate da Licenziatario. Qualora SCF
avesse a riscontrare differenze tra le effettive caratteristiche della web radio e le caratteristiche dichiarate dal
Licenziatario, SCF avrà facoltà di risolvere il Contratto, in conformità a quanto disposto dal successivo art. 10.

SCF effettua periodicamente dei controlli per verificare la permanenza dei requisiti.
11.1.7. Art. 7 – Ulteriori obblighi del Licenziatario
L’articolo 7 tratta degli obblighi del Licenziatario.
Il Licenziatario si obbliga:
a) ad acquisire esclusivamente supporti originali recanti le Registrazioni Fonografiche del Repertorio, o i relativi
file, procurandosi i predetti materiali presso rivenditori autorizzati dai Mandanti di SCF ovvero, con particolare
riferimento ai file, direttamente presso questi ultimi. SCF si riserva la facoltà di verificare tali circostanze in ogni
momento, potendo richiedere l’esibizione dei supporti impiegati dal Licenziatario ovvero di poter accertare la
provenienza dei file;

SCF obbliga tutti i Licenziatari ad avere supporti originali per ciascun brano trasmesso
dalla web radio. Ciò implica che una web radio dovrebbe dotarsi almeno di qualche
migliaio di compact disk. Con particolare riferimento ai file, direttamente dai mandanti.
b) a utilizzare il Repertorio, acquisito con le modalità di cui sopra, nel rispetto delle leggi vigenti e di quanto
convenuto con il Contratto, e, comunque, in modo da preservarne l’integrità ed il valore artistico-culturale ed
industriale e da rispettare i diritti morali degli autori ed artisti interpreti, nonché l’immagine e la reputazione
commerciale dei Mandanti;

Si invita a preservare la rispettabilità dei mandanti.


c) ad ottenere le necessarie autorizzazioni, di cui alle vigenti norme in materia di diritto d’autore, dalle competenti
società di gestione collettiva dei diritti degli autori e degli editori;
Come confermato anche nel modulo AWR, SCF e SIAE si comportano come due corpi in
mutua induzione, l’una richiama l’altra.
d) a non mettere a disposizione sul Sito, ovvero a rimuovere da esso, eventuali Registrazioni Fonografiche – di
volta in volta specificamente indicate da SCF – di titolarità di Mandanti che abbiano espresso la loro volontà di
non vedere si utilizzano Registrazioni Fonografiche a mezzo webcasting;

Esattamente come per il modulo AWR, si ha l’obbligo di rimuovere dalla programmazione


le opere che i mandanti decidono che non possano essere trasmesse in streaming su
Internet.
e) comunicare a SCF qualsiasi eventuale modifica afferente alla fornitura del servizio di web radio, con
particolare riguardo alla capacità della banda utilizzata e all’eventuale sostituzione dell’Internet Service Provider.

Questo punto richiede che si comunichino ad SCF eventuali cambiamenti inerenti la web
radio.
11.1.8. Art. 8 – Dichiarazioni e manleve
L’articolo 8 esamina le dichiarazioni alle richieste da parte di terzi.
Il Licenziatario solleva SCF ed i suoi Mandanti da ogni eventuale pretesa di terzi aventi diritto e da ogni
responsabilità verso terzi aventi diritto, derivanti da utilizzazioni diverse da quelle regolate dal Contratto.
Fermi restando gli impegni del Licenziatario di cui sopra, SCF solleva il Licenziatario stesso da ogni eventuale
pretesa di terzi e da ogni responsabilità verso terzi aventi diritto relativamente a contestazioni concernenti i diritti
di utilizzazione concessi in licenza con il Contratto.

Ci si sgrava reciprocamente di tutte le richieste da parte di terzi aventi diritto


relativamente l’utilizzazione delle opere mandate in tutela dai mandanti.
11.1.9. Art. 9 – Durata
L’articolo 9 esplicita la durata del contratto.
La durata del Contratto decorre dall’1 gennaio 2008 sino al 31 dicembre 2008. Il Contratto si intenderà
tacitamente rinnovato per successivi periodi di 1 (uno) anno ciascuno, a meno che non intervenga disdetta che
ciascuna delle parti potrà comunicare all’altra, a mezzo di lettera raccomandata A.R., almeno 3 (tre) mesi della
prima o di ogni successiva scadenza.

Il contratto ha durata annuale e si rinnova tacitamente, a meno che non si invii una
raccomandata A.R. tre mesi prima di ogni scadenza.
11.1.10. Art. 10 – Risoluzione in caso di inadempimento
L’articolo 10 tratta dell’inadempimento.
Senza pregiudizio di ogni diritto al risarcimento di eventuali danni o all’esperimento degli ulteriori rimedi previsti
per legge, SCF avrà il diritto di risolvere anticipatamente il Contratto, ai sensi dell’art. 1456 cod. civ., in caso di
inadempimento, da parte del Licenziatario, alle obbligazioni di cui agli articoli 2 (Oggetto), 5 (Termini e Modalità
di Pagamento), 7 (Ulteriori Obblighi del Licenziatario) e 12 (Disposizioni Generali – Cessione del Contratto). In
tali casi, SCF comunicherà al Licenziatario, a mezzo di lettera raccomandata A.R., la propria decisione di
risolvere il Contratto nonché la data dalla quale esso dovrà intendersi risolto.
Il Licenziatario avrà il diritto di risolvere anticipatamente il Contratto ai sensi dell’art. 1456 cod. civ. in caso di
messa in liquidazione volontaria o assoggettamento a procedura concorsuale o fallimento di SCF.
In tale caso il Licenziatario comunicherà a SCF, a mezzo lettera raccomandata A.R., la propria decisione di
risolvere il Contratto nonché la data dalla quale esso dovrà intendersi risolto.

Qualora qualcosa inerente gli articoli precedenti non venisse rispettato, SCF può
comunicare che il contratto è risolto. Si può anche inviare una lettera indicando che il
contratto è risolto, ma solo nel caso in cui SCF sia messa in liquidazione volontaria o
fallimento.
11.1.11. Art. 11 – Legge applicabile e foro competente
L’articolo 11 menziona il foro competente.
Il Contratto è soggetto alla legge italiana. Ogni controversia che in relazione ad essa dovesse insorgere tra le parti
sarà sottoposta alla competenza esclusiva del foro di Milano.

Il foro giuridico competente è quello di Milano.


11.1.12. Art. 12 – Disposizioni generali
L’articolo 12 esamina le disposizioni generali inerenti il contratto.
Modifiche
Qualsiasi modifica al Contratto non sarà valida e vincolante ove non risulti da atto scritto firmato dalla parte nei
cui confronti la stessa viene invocata.
Tolleranza
L’eventuale tolleranza di una delle parti di comportamenti dell’altra posti in essere in violazione delle disposizioni
contenute nel Contratto non costituisce rinuncia ai diritti derivanti dalle disposizioni violate né al diritto di esigere
l’esatto adempimento di tutti i termini e di tutte le condizioni qui previsti.
Cessione del Contratto
Il Licenziatario non potrà cedere, a qualsivoglia titolo il Contratto a terzi o concedere in sub-licenza o a
qualsivoglia altro titolo a terzi, in tutto o in parte, i diritti concessi con il Contratto.

Ogni modifica al contratto deve essere costituita da un atto scritto effettuato senza
interposizioni. È anche impossibile cedere il contratto a terzi.
11.1.13. Art. 13 – Trattamento dei dati personali
L’articolo 13 esplicita le modalità del trattamento dei dati personali.
Il Licenziatario dichiara e garantisce di avere preso visione dell’informativa per la tutela dei dati personali
(Allegato A al presente contratto), fornita da SCF, Titolare del trattamento, ai sensi dell’art. 13 del Decreto
Legislativo n. 196 del 30 giugno 2003 (Codice Privacy), e di averla integralmente compresa ed accettata, in
particolare per quanto riguarda i diritti riconosciuti dall’articolo 7 del Codice Privacy.
SCF garantisce il pieno rispetto delle prescrizioni di cui al Codice Privacy. In particolare, SCF si impegna a
trattare i dati personali del Licenziatario in esecuzione dei diritti ed obblighi nascenti dal presente contratto e nel
rispetto di quanto previsto nell’informativa allegata.

Termini di legge sulla privacy.


11.1.14. Allegato A
L’allegato A definisce il trattamento dei dati personali.
INFORMATIVA sul trattamento dei dati personali (art. 13 D.Lgs. 196/2003), presente anche sul web all’indirizzo
www.scfitalia.it.
Ai sensi del D.Lgs. 196/2003 (Codice Privacy, di seguito, CP), si desidera informarLa circa le modalità di
trattamento dei dati da noi si effettua e dei diritti che, in quanto soggetto interessato, Le spettano.
Titolare del Trattamento è SCF – Società Consortile Fonografici (di seguito, SCF), Via Leone XIII 14, 20145
Milano.
Tutti i dati personali da Lei forniti a SCF, ovvero altrimenti acquisiti preventivamente ed in costanza di rapporto
contrattuale, sono trattati in forma elettronica e cartacea, tramite responsabili ed incaricati debitamente autorizzati,
nei limiti necessari al servizio di amministrazione dei diritti connessi svolto da SCF e per i pagamenti dei
compensi richiesti agli artt. 72, 73 e 73 bis della legge sul diritto d’autore (L. 633/1941). Rientrano tra gli scopi
del trattamento l’adempimento di obblighi previsti da leggi, regolamenti e normative comunitarie (per cui il
conferimento è obbligatorio) e lo svolgimento delle attività strettamente connesse e strumentali alla gestione del
rapporto contrattuale (per cui il conferimento è facoltativo, ma necessario per la conclusione e prosecuzione del
rapporto, che in caso di Suo rifiuto non potrà essere concluso o proseguito). I Suoi dati potranno essere oggetto di
comunicazione: – a soggetti cui la legge, regolamenti o normative comunitarie attribuiscano tale facoltà di
accesso; – alle società che hanno affidato a SCF la gestione dei loro diritti, che potranno consultare i dati tramite
accesso riservato al nostro sito Internet (limitatamente a: ragione sociale; indirizzo; emittente; tipo di contratto); –
a società, enti o consorzi che svolgono attività connesse, strumentali o di supporto alla amministrazione dei diritti
connessi da parte di SCF, quali ad esempio istituti di credito, società che svolgono servizi di consulenza,
elaborazione o postalizzazione, società di recupero crediti, studi legali. Tali soggetti operano quali Responsabili o
autonomi Titolari e un loro elenco aggiornato è a disposizione presso la nostra sede. Per garantirLe una adeguata
visibilità, i dati relativi alla Sua attività (limitatamente a: ragione sociale o nome e cognome; link al Suo sito, ove
presente) saranno resi disponibili senza restrizioni – salvo Suo dissenso – tramite il nostro sito www.scfitalia.it.
Ove non desideri tale servizio, può segnalarlo in ogni momento: il riferimento sarà cancellato senza pregiudizio
per il rapporto contrattuale con SCF. Rientrano fra i Suoi diritti (art. 7 CP) l’accesso, l’aggiornamento e
l’integrazione dei Suoi dati, nonché la loro cancellazione o blocco, nel caso di trattamento effettuato in violazione
di legge. Può in ogni momento opporsi: – per motivi legittimi, al trattamento dei dati che La riguardano, pur
pertinenti allo scopo della raccolta; – in ogni caso, nell’ipotesi di finalità di comunicazioni o ricerche di mercato.
Per l’esercizio dei Suoi diritti può rivolgersi al Responsabile del Trattamento, presso SCF – Società Consortile
Fonografici, Via Leone XIII 14, 20145 Milano, telefonando allo 02-4654751, mandando un fax al n. 02-46547500
o inviando una mail a info@scfitalia.it (all’attenzione del Responsabile del Trattamento per i dati personali).

Sembra un testo lungo, ma in realtà riporta concetti molto semplici. Sostanzialmente, SCF
è titolare dei dati personali comunicati; il Licenzatario può e deve usufruire dei diritti di
cui all’articolo 7.
Il resto riguarda le modalità di trattamento dei dati, la loro consistenza (cartacea e digitale)
e il fatto che SCF possa permettere a determinate condizioni e solo in alcune parti la
visione dei vostri dati a terzi enti sul loro stesso sito www.scfitalia.it.
11.2. Il contratto per web radio istituzionale
Quasi tutti gli articoli del contratto per web radio istituzionale sono uguali a quelli del
contratto per web radio amatoriale; quello che varia tra il contratto per web radio personali
e web radio istituzionali riguarda la definizione di organo istituzionale e il prezzo dovuto.
“Organismo Istituzionale”indica qualsiasi soggetto che abbia quale oggetto sociale una attività non commerciale,
senza scopo di lucro, e che utilizzi il Sito, e conseguentemente la web radio, esclusivamente con la finalità di
illustrare la propria attività istituzionale, senza che tale utilizzo generi alcun beneficio di tipo economico e
commerciale sia diretto che indiretto (es. associazioni, fondazioni, enti locali, soggetti e istituzioni pubbliche,
ONLUS, istituti scolastici ecc.).

La definizione di organismo istituzionale è molto chiara. Non è qualcosa di strettamente


vincolato ad altre definizioni formali di istituzioni, create ad esempio da enti giuridici
esterni ad SCF; ciò fa intendere che, ad esempio, può essere considerata istituzionale
anche una associazione di fatto.
4. Compenso Annuo: A fronte della concessione in licenza, da parte di SCF, dei diritti indicati al precedente
articolo 2.1, per il periodo di Durata del Contratto e per l’eventuale ulteriore periodo di rinnovo ai sensi del
successivo Art. 9, il Licenziatario verserà ad SCF un compenso annuale pari a € 750,00 (settecentocinquanta/00
Euro).

Rispetto al contratto per radio personali, il prezzo da pagare cambia. Si passa da 350 a 750
Euro annui.
11.3. Il contratto per web radio commerciale
Il contratto per web radio commerciale ha molte parti in comune con quelli dedicati a web
radio personali ed istituzionali.
11.3.1. Compenso Streaming
4.1 Compenso Streaming (art. 2.1 lett. b): Euro 0,0004 (zero virgola quattro decimillesimi) per ogni minuto di
connessione al Sito da parte di ciascun utente che, accedendo al Sito medesimo, effettui l’Ascolto delle
Registrazioni Fonografiche facenti parte del Repertorio.

Questo comma richiede ad ogni web radio commercial un pagamento di 4 decimillesimi di


Euro per ciascun minuto di connessione da parte di ciascun utente.
Per chiarezza, ecco alcune casistiche:
♦web radio di bassa e saltuaria audience: 10 ascoltatori, per 6 ore al giorno, per 20 giorni
al mese, per 8 mesi = 0,0004 × 10 × 6 × 60 × 20 × 8 = 230,4 Euro/anno;
♦web radio di media e saltuaria audience: 30 ascoltatori, per 8 ore al giorno, per 25 giorni
al mese, per 10 mesi = 0,0004 × 30 × 8 × 60 × 25 × 10 = 1440 Euro/anno;
♦web radio di alta e saltuaria audience: 100 ascoltatori, per 8 ore al giorno, per 25 giorni al
mese, per 10 mesi = 0,0004 × 100 × 8 × 60 × 25 × 10 = 4800 Euro/anno;
♦Web Radio di bassa e costante audience: 10 ascoltatori costanti per tutto l’anno, festività
incluse = 0,0004 × 10 × 60 × 24 × 365 = 2102,4 Euro/anno;
♦web radio di media e costante audience: 30 ascoltatori costanti per tutto l’anno, festività
incluse = 0,0004 × 30 × 60 × 24 × 365 = 6307,2 Euro/anno;
♦web radio di alta e costante audience: 100 ascoltatori costanti per tutto l’anno, festività
incluse = 0,0004 × 100 × 60 × 24 × 365 = 21024 Euro/anno.
Un grafico può rendere maggiormente esplicativo il confronto tra i costi appena visti. Le
casistiche 1 e 2 vengono livellate dal Minimo Garantito, ovvero da una quota che per il
primo anno è pari a 1500 euro e, per gli anni successivi, al maggiore tra 1500 euro e il
90% del compenso streaming dell’anno precedente. Si veda la figura 11.1.

Figura 11.1. Prezzi non livellati sul Minimo Garantito

Il grafico in figura 11.1 non corrisponde al reale, in quanto le prime due casistiche non
sono livellate dal Minimo Garantito.

Figura 11.2. Prezzi livellati sul Minimo Garantito

Il grafico nella figura 11.2 indica che le web radio con queste utenze (medie, ovviamente)
pagano le cifre riportate. Si potrebbe considerare di abbassare i costi escludendo
minutaggi dovuti alla pubblicità, ma i costi si orientano sempre su queste cifre.
11.3.2. Minimo Garantito
Di seguito si riporta la trattazione del Minimo Garantito.
4.3.1 il Minimo Garantito non restituibile, dovuto dal Licenziatario a titolo di Compenso Streaming con
riferimento al primo anno di Durata del Contratto sarà pari a € 1.000,00 (mille/00 euro). Il Minimo Garantito non
restituibile dovuto dal Licenziatario, a titolo di Compenso Streaming, con riferimento a ciascun anno successivo
al primo, sarà pari al maggior importo tra la somma di € 1.000,00 (mille/00 euro) ed il 90% (novanta percento) di
quanto complessivamente corrisposto per il medesimo titolo nell’anno precedente. 4.3.2 Il Minimo Garantito non
restituibile, dovuto dal Licenziatario a titolo di Compenso Riproduzione Fonogrammi con riferimento al primo
anno di Durata del Contratto sarà pari a € 500,00 (cinquecento/00 euro). Il Minimo Garantito non restituibile
dovuto dal Licenziatario, a titolo di Compenso Riproduzione Fonogrammi, con riferimento a ciascun anno
successivo al primo, sarà pari al maggior importo tra la somma di € 500,00 (cinquecento/00 euro) ed il 90%
(novanta percento) di quanto complessivamente corrisposto per il medesimo titolo nell’anno precedente. 4.3.3 I
compensi di cui sopra si intendono IVA esclusa ed al netto di qualunque altra imposta, tassa o contributo anche di
futura istituzione. Essi saranno inoltre soggetti a rivalutazione di anno in anno, in conformità alle variazioni
dell’indice Istat dei prezzi al consumo per le famiglie di operai ed impiegati dall’anno 2008.

Per Minimo Garantito si intende una quota che SCF deve obbligatoriamente ricevere. Tale
quota è composta da 1000 euro per il compenso streaming e 500 euro per il compenso
riproduzione fonogrammi. Il Minimo Garantito è sicuramente pari a 1500 euro per il
primo anno, mentre in seguito sarà pari al maggiore tra 1500 euro e il 90% della somma di
compenso streaming e compenso riproduzione fonogrammi. I compensi di cui si parla si
intendono IVA esclusa e sottoposti ad aumenti ISTAT.
11.3.3. Rendicontazione
Di seguito si riportano le modalità di rendicontazione.
5.1 Compenso Archivio: Alla sottoscrizione del Contratto, il Licenziatario consegnerà ad SCF l’elenco delle
Registrazioni Fonografiche che egli intende caricare, o ha caricato, sul proprio server; si impegna altresì ad
inviare ad SCF l’aggiornamento di detto archivio con cadenza trimestrale.
Il predetto elenco, relativamente a ciascuna Registrazione Fonografica, dovrà contenere tutte le indicazioni che
seguono: titolo, autore, compositore, artista interprete o esecutore, produttore fonografico, etichetta e numero di
catalogo del disco da cui la Registrazione Fonografica è tratta.

Occorre consegnare alla SCF l’elenco delle canzoni che la radio avrà a disposizione e ad
aggiornare tale elenco ogni tre mesi.
Nella rendicontazione occorrerà inserire titolo, autore, compositore, esecutore, produttore
fonografico, etichetta e numero di catalogo del disco da cui proviene la registrazione per
ciascuna canzone.
5.2 Compenso Streaming: entro 15 (quindici) giorni dalla fine di ogni trimestre, il Licenziatario provvederà a
consegnare ad SCF il rendiconto dettagliato degli Ascolti effettuati dagli utenti nel trimestre stesso. Resta sin
d’ora inteso che ai fini del computo del Compenso Streaming si terrà conto esclusivamente degli Ascolti di durata
superiore a 30 secondi; pertanto il suddetto elenco dovrà evidenziare dettagliatamente e separatamente le due
categorie di Ascolti.
Detto rendiconto, relativamente ad ogni singolo giorno, dovrà tassativamente contenere le informazioni che
seguono:
numero di utenti che si siano connessi al Sito e abbiano effettuato l’Ascolto delle Registrazioni Fonografiche;
durata complessiva della connessione di ciascun utente, che abbia effettuato l’Ascolto delle Registrazioni
Fonografiche, al Sito;
numero totale dei minuti di connessione al Sito da parte della totalità degli utenti che abbiano effettuato l’Ascolto
delle Registrazioni Fonografiche;
elenco delle Registrazioni Fonografiche messe a disposizione del pubblico, con l’indicazione di: titolo, autore,
artista interprete o esecutore.
Questo comma dell’articolo 5 spiega che occorre pagare il compenso streaming entro 15
giorni dalla fine del trimestre. Vengono contate come connessioni valide solo le
connessioni che durano più di trenta secondi. Questa è un aspetto positivo: non vengono
contati eventuali tempi di setup e di buffering iniziali. Tuttavia il crollo dei costi, anche
escludendo utenze che ascoltano meno di 30 secondi, non è così alto.
Si fa obbligo tassativo di rendicontare per ogni singolo giorno il numero di ascoltatori, la
durata complessiva di ascolto di ciascun utente, la durata complessiva di permanenza sul
sito e autore, titolo ed interprete di tutti i brani passati in radio.
11.3.4. Termini e modalità di pagamento
Di seguito si riportano i termini e le modalità di pagamento.
6.1 SCF, trimestralmente, una volta ricevuto il rendiconto di cui al precedente Art. 5.2, provvederà ad emettere la
fattura relativa al Compenso Streaming e al Compenso Riproduzione Fonogrammi, previa deduzione del Minimo
Garantito anticipato a quella data.
Il Licenziatario provvederà a pagare quanto dovuto a SCF entro 30 giorni dall’emissione da parte di quest’ultima
della suddetta fattura.

Si paga entro 30 giorni dall’emissione della fattura.


Il pagamento del Minimo Garantito sarà effettuato, previa emissione da parte di SCF delle relative fatture, con il
versamento di n. 3 rate di pari importo, scadenti rispettivamente il 31 marzo, il 30 giugno ed il 30 settembre di
ogni anno; salvo eventuale conguaglio su quanto effettivamente dovuto, da corrispondersi entro il 31 maggio
dell’anno successivo.
Con riferimento al primo anno di Durata del presente Contratto, il pagamento del Minimo Garantito sarà invece
effettuato, previa emissione da parte di SCF delle relative fatture, con il versamento di n. 2 rate di pari importo,
scadenti rispettivamente la prima entro 30 (trenta) giorni dalla sottoscrizione del Contratto medesimo e la seconda
entro 120 (centoventi) giorni dalla sottoscrizione del Contratto; l’eventuale conguaglio sarà corrisposto entro il 31
maggio dell’anno successivo.
Ben s’intenda che, con riferimento al primo anno di durata del Contratto e qualora la stipula dello stesso sia
avvenuta in corso d’anno, il Minimo Garantito dovuto dal Licenziatario sarà pari alla quota (in dodicesimi) del
Minimo Garantito Annuo corrispondente ai mesi di effettiva attività.

Modalità temporali di divisione del Minimo Garantito nell’anno solare. Vengono inviate 3
fatture, ed un eventuale conguaglio va corrisposto entro il 31 maggio dell’anno
successivo.
Il primo anno, il Minimo Garantito verrà calcolato come quota in dodicesimi se il
contratto sarà stato creato ad anno solare iniziato.
12. Streamripper
Durante gli anni ’80 e ’90 molto spesso si registravano brani musicali trasmessi dalle radio
analogiche attraverso i mangianastri e le musicassette; lo stesso valeva per i film tramite le
VHS ed i videoregistratori.
Al giorno d’oggi nessuno registra trasmissioni radiofoniche direttamente dalla radio con
audiocassette, dato che la qualità, che dipende anche dall’irraggiamento presente e dalle
condizioni atmosferiche, non è sempre delle migliori.
Per ottenere facilmente e velocemente brani musicali si usano programmi di file sharing
come eMule (in questa sede supporremo che si tratti di brani musicali di cui si detengono i
diritti), ma, per ottenere musica, è davvero questa la mossa migliore?
Il P2P, specialmente quello multiplo (ovvero il P2P in cui si scaricano molti file da molte
fonti e in cambio si inviano molti file a molti host) è spesso lento. Questo si può additare
alla politica ADSL che vuole misera la banda in upload, ma ci sono molti altri motivi.
Perché allora non riprendere la politica di “sfruttamento” del flusso audio delle radio?
Così come è stato possibile, tramite le web radio, trasportare su Internet la radiofonia, è
altrettanto possibile effettuare registrazioni dei brani trasmessi dalle web radio e
conservarli come se fossero delle moderne musicassette.
Streamripper è un programma che permette di fare esattamente questo. Permette di
trasformare in MP3, segmentare, intitolare e manipolare il flusso audio di quasi ogni
stream audio/video.
12.1. StreamRipper come plug-in per Winamp
Per prima cosa occorre scaricare il programma dal sito ufficiale.
Una volta scaricato ed installato, il plug-in si carica cliccando su options, quindi su
preferences, quindi scegliendo la categoria general purpose, infine Streamripper. Nella
taskbar si troverà un simbolo: SR. Cliccando due volte si visualizzerà l’applicativo
indicato nella figura 12.1.

Figura 12.1. Finestra principale

Il messaggio visibile all’interno dell’immagine sicuramente non ci sarà, ma comparirà


qualora si ascoltasse un qualsiasi stream.
Si clicca quindi su start, facendo iniziare il ripping del flusso audio. Si visualizzerà la
finestra indicata nella figura 12.2.
Figura 12.2. Avvio del ripping

12.2. Configurazione del plug-in


12.2.1. Connection
La finestra connection permette di impostare le seguenti funzioni:
♦riconnessione automatica in caso di caduta del segnale

♦creazione di un relay

♦quantità massima di byte da scaricare

♦impostazione di un proxy

♦impostazione del nome macchina locale.

Figura 12.3. Connection

12.2.2. File
Nella finestra file si possono invece effettuare altre configurazioni:
♦definizione della directory in cui salvare gli MP3

♦possibilità di separare il flusso in più file

♦possibilità di impostare i tag ID3 nei vari MP3.

Figura 12.4. File

12.2.3. Pattern
Figura 12.5. Pattern

Nella finestra pattern si imposta il settaggio dei nomi dei file.

Figura 12.6. Skin

L’ultima finestra permette di impostare le skin. Le altre finestre non hanno dettagli degni
di nota.
12.3. StreamRipper come standalone su GNU/Linux
Per utilizzare Streamripper su GNU/Linux è possibile scaricare il codice sorgente; oppure,
se si usa una debian-based, scaricare il pacchetto Streamripper direttamente dai repository
di APT. Il programma ha un suo manuale che è possibile evocare da terminale
semplicemente scrivendo man streamripper.
Non ha interfaccia grafica, ma è strettamente legato a Streamtuner, che è dotato di GUI.
Da Streamtuner è possibile cliccare sul tasto record che invoca il seguente comando: x-
terminal-emulator -e streamripper %q -d /directory/dove/salverete/gli/stream -r -q. Questo
comando altro non è che l’evocazione di Streamripper su un terminale. La forma normale
per l’utilizzo di streamripper è ovviamente: streamripper URL:porta.
12.4. Manuale tecnico di Streamripper
Streamripper registra flussi in streaming di Shoutcast ed Icecast. Usa metadata trasmessi
insieme al flusso per determinare inizio e fine di ciascuna canzone, e salva le canzoni sul
tuo hard disk come MP3 separati. In aggiunta, Streamripper permette di creare un relay
per l’ascolto della stazione che stai registrando.
12.4.1. Individuazione dello Splitpoint
Streamripper effettua il taglio tra un file ed un altro quando incontra un attimo “silente”,
ovvero un momento in cui non c’è effettivamente alcun suono. Se non lo trova fa quello
che può, ovviamente dopo l’invio dei metadati per il cambio di canzone.
Questo “periodo” in cui si cerca il punto di silenzio è chiamato search window. Questa
finestra, specialmente se ci si trova in casi di crossfading tra i brani, può essere allungata a
piacimento.
12.4.2. Splitting standard
Cosa succede quindi se non si trova il “silent point”? Si supponga di avere delle
metainformazioni di cambio, al tempo mi (come per la figura di cui sopra). Se l’offset XS
è positivo (XS_offset setta il tempo della search window; può essere positivo per tagli in
avanti e negativo per tagli all’indietro) il separatore TS della canzone è dopo il tempo mi.
Se xs_offset è invece negativo, avverrà chiaramente il contrario. Una volta determinato
questo istante TS (che è dato da metadata + offset) vengono impostati un prepad e
postpad; tutto quello che sta compreso tra questi sarà copiato in entrambe le canzoni.

Figura 12.7. Splitting standard

12.4.3. Separazione basata sul silenzio


La separazione basata sui silenzi è simile alla separazione standard, solo un po’ più
complessa. Ancora, supponiamo che al tempo mi ci sia il cambio di canzone con metadati
connessi.
Una finestra di ricerca denominata search_win viene determinata dai campi xs_offset,
pre_sw e post_sw. Questa finestra comincia all’istante mi + xs_offset – pre_sw e termina
all’istante mi + xs_offset + post_sw.
Se c’è un momento di silenzio di grandezza silence_win, insieme alla finestra di ricerca il
punto centrale del momento di silenzio è selezionato come separatore di traccia. Una volta
determinato il punto TS (track separator), i campi prepad e postpad sono utilizzati per
selezionare quali parti verranno copiate in entrambe le canzoni.

Figura 12.8. Separazione basata sul silenzio


13. GnuMP3d
GnuMP3d è un server di streaming, non limitato ai file audio, che oltre ad essere open
source è robusto, semplice, affidabile e permette di effettuare streaming on demand. La
sua particolarità rispetto ad altri server di streaming riguarda proprio il suo essere orientato
alla richiesta, diversamente rispetto a Shoutcast ed Icecast, che sono orientati al flusso.
Tale differenza sarà probabilmente più chiara in seguito.
È un server che facilmente permette di accedere ad una collezione di file multimediali
presenti nell’host che esegue il programma stesso. Per tale motivo, più che essere utile per
le web radio (ma lo è comunque) è utile per gli artisti che vogliono permettere la libera
condivisione dei file di loro creazione.
13.1. Installazione su Windows
L’installazione si basa su 5 punti tra i quali potrebbe risultare più complesso il primo. I 4
punti sono tradotti quasi integralmente dal file readme per Windows, contenuto all’interno
del file ZIP scaricabile dal sito di GnuMP3d:
1) scaricare ed installare una versione recente di Perl da ActiveState.
Il server è infatti realizzato in Perl; prima era in C++ e prima ancora in C;
2) scompattare il file zip; muovere la directory creata su C:\gnump3d2 mantenendo ogni
possibile file di configurazione che si può avere;
3) fare i cambiamenti desiderati al file c:\gnump3d2\etc\gnump3d.conf.win;
4) eseguire una volta c:\gnump3d2\bin\gnump3d-index.bat;
5) eseguire ‘C:\gnump3d\bin\run.bat’, modificare la posizione dei file MP3 (e magari
anche di altri tipi di media) se necessario (lo script assume che la musica sia in C:\MP3).
13.2. Installazione su Linux
13.2.1. Compilazione
Scaricare il sorgente dalla pagina di download, scompattare ed effettuare da terminale un
semplice make install. Questo è sufficiente a installare il programma in /usr/bin, con il file
di configurazione in /etc/gnump3d/.
13.2.2. Tramite APT
Il programma GnuMP3d, su debian e distribuzioni derivate, si trova nei repository. Su
Ubuntu, ad esempio, per installare correttamente il software è sufficiente scrivere su un
terminale: sudo apt-get install gnump3d.
13.2.3. Dipendenze
Le dipendenze da rispettare sono:
♦Debconf (>= 0.5)

♦logrotate (>= 3.5.4-1)

♦perl
♦perl-modules

♦adduser

♦netbase.

13.3. Configurazione di GnuMP3d su Linux


La configurazione di GnuMP3d su Linux parte dai file che si trovano nella cartella
/etc/gnump3d e che sono file .types, gnump3d.conf e mime.types.
13.3.1. File.types
Il file chiamato file.types già dal nome evidenzia il suo fine: identificare e catalogare quali
siano le estensioni supportabili dal server e riconosciute come media da poter streammare.
Questo denota come, almeno al momento, non sia possibile fare interventi vocali, se non
tramite podcast.
Il file file .types nella versione standard, appena post-installazione, ha questo contenuto:
##
#
# /etc/gnump3d/file.types Specify the types of files we understand.
#
# $Revision: 1.2 $
#
# Steve
#
# http://www.steve.org.uk/
#
##
#
# This is a list of all the file suffixes which we consider
# audio files.
#
# Files with these suffixes will be included in the HTML pages
# served to clients.
#
669 = audio
aac = audio
ape = audio
m4a = audio
dsm = audio
far = audio
flac = audio
it = audio
mid = audio
mod = audio
mp3 = audio
mtm = audio
ogg = audio
ra = audio
rm = audio
s3m = audio
stm = audio
ult = audio
wav = audio
xm = audio
wma = audio
m4p = audio
mpc = audio
aif = audio
aiff = audio
shn = audio
#
# This is a list of all the file suffixes which we consider
# playlist files.
#
# Files with these suffixes will be included in the HTML pages
# served to clients.
#
m3u = playlist
ram = playlist
pls = playlist
#
# This is a list of all the file suffixes which we consider
# movie files.
#
# Files with these suffixes will be included in the HTML pages
# served to clients.
#
mov = movie
mpg = movie
mpeg = movie
avi = movie
wmv = movie

La modifica di questo file è molto semplice. Si possono rimuovere, aggiungere e


modificare le estensioni. Un’estensione impostata come audio verrà trattata come file
audio, se playlist come playlist e se movie come video. Molto semplice davvero.
Nonostante in alcuni casi possa essere utile modificare questo file, questo non è
consigliabile in quanto già correttamente settato.
13.3.2. Mime.types
Il file mime.types è invece leggermente più complesso; non tanto nelle modalità di
modifica, quanto nel suo contenuto e in quello che vuole esprimere.
Il file contiene un elenco di MIME type, ovvero un elenco di Multipurpose Internet Mail
Extensions. Per comprendere cosa siano i MIME type basta ricordare che il protocollo
SMTP, utilizzato tuttora per l’invio delle mail, permette di inviare mail soltanto in codice
ASCII a 7 bit. L’utilizzo di un MIME type permette alla mail, nonostante sia codificata in
ASCII a 7 bit, di potere riconoscere caratteri non standard, di potere inviare allegati e
quanto altro: permette quindi la codifica di un file inviato in ASCII.
Queste estensioni sono elencate, nella forma macrocategoria/sottocategoria, nel file
mime.types, del quale a questo punto è utile esaminare soltanto l’header creato dall’autore.
# This file is part of the “mime-support” package. Please send email (not a
# bug report) to mime-support@packages.debian.org if you would like new types
# and/or extensions to be added.
#
# The reason that all types are managed by the mime-support package instead
# allowing individual packages to install types in much the same way as they
# add entries in to the mailcap file is so these types can be referenced by
# other programs (such as a web server) even if the
specific support package
# for that type is not installed.
#
# Users can add their own types if they wish by creating a “.mime.types”
# file in their home directory. Definitions included there will take
# precedence over those listed here.
#
# Note: Compression schemes like “gzip”, “bzip”, and “compress” are not
# actually “mime-types”. They are “encodings” and hence must _not_ have
# entries in this file to map their extensions. The “mime-type” of an
# encoded file refers to the type of data that has been encoded, not the
# type of encoding.

Senza tradurre letteralmente, si specifica che questo file contiene tutti i MIME type
affinché un programma esterno (come un server web) possa referenziare i tipi anche se
non ha i pacchetti di supporto installati. È una scelta: si preferisce fare così piuttosto che
permettere inserimenti individuali, come nelle mail. Serve sapere soltanto che è possibile
inserire nuovi MIME type tramite la creazione di un file .mime.types che avrà precedenza
rispetto ad altre definizioni.
13.3.3. Gnump3d.conf
# The port upon which we are going to serve. This may be any
# port which is not already in use upon your machine.
# You may use a low port, for example 80, if you are running
# as root but that is only recommended if you make use of
# the `user’ option, which occurs later in this file.
port = 8888.

Questa opzione identifica la porta a cui risponderà il server. È impostata di default la porta
8888, ma è possibile impostare (a proprio rischio) anche la 80, soprattutto se si vuole che
questo server sia accessibile in modo semplice, magari con un alias DNS.
# The following is the interface address that we wish to
# bind upon.
# You’ll only need set this if you are running this server upon
# a machine which has multiple IP addresses and you wish to force
# it to bind to a particular address.
# If you’re not running this server on a machine with multiple
# IP addresses, then please ignore this setting.
# NOTE
######
# If you just want to specify the name used in all the generated
# links then you should be setting ‘hostname’ instead.
#
# binding_host = 192.168.1.2

Questa opzione è utile soltanto nel caso in cui la macchina che ospita il server abbia più di
un indirizzo IP disponibile e si voglia forzare l’utilizzo di un particolare IP locale.
# Set the hostname that is used in all the generated links.
#
# (This defaults to the name of the server machine, with no
# domain suffix).
#
# You won’t need this unless the machine which is serving on
# MUST be accessed via its fully qualified domain name for
# example if you’re running it on a machine which is accessible
# to the world.
#
# NOTE
######
#
# See ‘binding_host’ if you have a machine which has multiple
# IP addresses and you’re trying to bind to one in particular.
#
# hostname = mp3d.foo.org

Questa opzione è fondamentale, soprattutto qualora si voglia rendere pubblico su Internet


il server. Si può decommentare la riga hostname, mettendo al posto di mp3d.foo.org anche
un semplice localhost.
# The root directory where we serve content from, this should be
# the directory containing the MP3, OGG, or other media
files that
# you wish to share.
#
# Obviously the files which you wish to serve should be accessible
# to the user who this server is running as which is set via the
# ‘user’ setting below.
#
# If you’re on a multi-user system its probably a good idea to
# make the audio files readable to other users anyway, share the
# musical goodness!
#
root = /var/music

Questa opzione si limita a identificare quale sia la cartella che contiene i media file che il
server permetterà di streammare. Si chiede che i file siano accessibili all’user che sta
facendo girare il server.
# This is the file which logs all MP3’s / OGG’s / directories
# which clients access.
#
# If you start the server as root it’s recommended that you use
# a canonical location such as ‘/var/log’ or ‘/var/adm’, (because
# your system will, probably, rotate files held there).
#
# If you’re starting this server as a non-root user you should
# change these locations to be a directory upon which you have write
# permissions.

Questa è l’intestazione per la modifica del percorso del file di log del server GnuMP3d. In
questo tralcio particolare si specifica che se il server non è fatto girare da root: si deve
impostare una directory con permessi di scrittura. Nel caso in cui sia l’utente root a fare
partire il server si consiglia la directory impostata di default.
####
#
# IMPORTANT NOTE:
#
# If you want the song statistics to be displayed correctly
# you MUST give the logfile as an absolute path you must also
# ensure that the logfile is readable to the user whom you are
# running the server as.
#
####
Se si vuole che le statistiche vengano visualizzate correttamente, allora occorre impostare
un path assoluto e dare i permessi di lettura all’utente che fa partire il server.
# NOTE:
#
# This logfile is 100% apache logfile compatible so you may run any
# Apache logfile processor upon it if you so wish.
#
# Simplistic statistics such as the most popular directories, songs,
# and clients are available via the installed script ‘gnump3d-top’
# Run ‘gnump3d-top help’ for details.
#
#
####
#
logfile = /var/log/gnump3d/access.log

Esiste uno script chiamato GNUmp3d-top che fornisce statistiche.


#
# Specify the format of the logfile, this may use any valid variables
# which are defined in package “main”.
#
#
log_format = $connected_address $user [$date] “GET $REQUEST” $HTTP_CODE $SERVED_SIZE “-”
“$USER_AGENT”

Questo è il formato del log. Se non si ha molta dimestichezza nella sintassi HTTP e non si
conoscono i log apache, è consigliato lasciare tutto per com’è.
# In the case of problems all output from the server will be sent
# to an error log.
#
# This next option configures where that is
#
errorlog = /var/log/gnump3d/error.log

Tutte le considerazioni fatte per il file di log valgono anche per il log d’errore.
# This option allows you to specify additional arguments to the
# statistics generating program ‘gnump3d-top’, and it’s complete
# path if you don’t have it installed upon the $PATH of the user
# who starts the server:
#
# stats_program = /usr/bin/gnump3d-top
#
#
# For example you may change the default number of lines which are
# reported from the default of 20 to 10 with this:
#
# stats_arguments = count=10
#
# To hide the directories which are handled by the various plugins
# you may use the ‘hide’ option.
#
# stats_arguments = hide
#
# To read multiple logfiles, (eg to cope with files which have been
# processed by logrotate), you could use:
#
# stats_arguments = logfiles = /var/log/gnump3d/access.log*
#
# Combine the options if you wish, and see the gnump3d-top man-page
# for details of more arguments
#
# stats_arguments = count=40 hide logfiles=/var/log/gnump3d/access.log*

Tutte queste opzioni servono per settare il programma gnump3d-top, fondamentale per le
statistiche. È possibile settare un path per tale programma e degli argomenti da passargli,
ovviamente settando e decommentando le righe opportune tra quelle scritte sopra.
# If there is a user value setup below then the server will become that
# user, after creating the listening socket and after opening the logfiles
# for writing.
#
# If you want to run this server via init.d, (which has the effect of
# starting the daemon as root), you should make sure you have this set
# to an appropriate value.
# Otherwise you will have the server running as root, which is clearly
# not a good idea even in the unlikely event that this application is
# 100% bug free.
#
# You may comment the line out if you are running the daemon from your home
# directory, and you are the only user with read access to the server root.
# Although this is not recommended way of running the server.
#
# For the benefit of fellow computer users is recommended that you run the
# server as a user such as ‘nobody’, and allow people read-only access to
# your audio files.
#
user = gnump3d

In questa opzione si setta quale user diventerà il server al momento in cui verrà creata la
socket e i file di log. Sebbene Steve consigli di non utilizzare il server come root, non c’è
da preoccuparsi. Per normali scopi, con la dovuta oculatezza, agire da root non causa
nessun problema. Per questo motivo è bene lasciare questa riga esattamente com’è. Si può
commentare soltanto se l’utente che utilizzerà il server è l’unico user con privilegi di
lettura alla directory radice del server.
Un modo non proprio ortodosso di utilizzare il server, ma fattibile.
# The following section allows you to specify which clients
# are allowed to connect to your server.
#
# If you are leaving this server out on an Internet-accessible
# machine then you will probably want to setup something here,
# or at least make use of the password protection system.
#
# The following entries are commented out, so they have no effect,
# but they should serve as good examples of the things which
# are possible.

Questa sezione permette di specificare quali client hanno i permessi per connettersi al
server. Sono tutte opzioni commentate, che servono da esempio, ma è opportuno
considerare il loro utilizzo e il loro settaggio ai fini della realizzazione di un server
accessibile da Internet.
allowed_clients = 192.168.2.0/8
Dà i permessi a tutta la rete locale, ovvero tutti gli indirizzi da 192.168.2.0 a
192.168.2.255.
allowed_clients = 10.0.0.0/16

Dà i permessi a tutta la rete di classe B, ovvero tutti gli indirizzi da 10.0.0.0 a


10.0.255.255.
allowed_clients = 192.168.2.12

Dà i permessi ad un singolo client.


allowed_clients = none

Non dà i permessi a nessuno.


allowed_clients = 192.168.2.0/8; 194.247.82.33

Dà i permessi sia alla rete locale di classe C sia al client 194.247.82.33.


allowed_clients = 192.168.2.0/8; 194.237.82.0/8

Dà i permessi a due sottoreti.


allowed_clients = all

Dà il permesso a tutti.
La scelta tocca a chi configura, in base alle esigenze.
##
#
# This section controls whether we will prompt clients for
# a username and password prior to granting access to the
# server.
#
# This is enabled by default; all you need to do is create
# a password file in the MP3 directory called ‘.password’.
#
# (To disable this uncomment the ‘enable_password_protection’ line).
#
# The password file should be of the following format:
#
# username:password
# username2:password2
# …:….
# usernameN:passwordN
#
# OR, for Digest authentification, the password file should be of
# the following format:
#
# username:hash
# username2:hash2
#
# hash or hash2 represent
MD5(login:GNUMP3d:password)
# To generate an hash string, type:
# $> echo -n ‘username:GNUMP3d:password’ | md5sum
#
# NOTE
# —-
#
# The password file must be readable to the user the server is running
# as.
#
###
# enable_password_protection = 0
# authentication_type = Basic # Basic or Digest
###

GnuMP3d predispone, di default, un meccanismo di sicurezza attivo, ma latente. È


possibile impostare una password ed un username per potere entrare e utilizzare il server.
Per fare questo, è sufficiente creare, nella directory dei media file, un file nascosto
chiamato .password che conterrà al suo interno una serie di righe nella forma:
username:password.
Se si preferisce si possono utilizzare i meccanismi di digest authentication, che
permettono al server di identificare e validare password ottenute tramite MD5. Esse
devono essere nella forma: username:hash
dove hash è il risultato di un MD5 (login:GNUMP3d:password).
Un buon modo per calcolare la password è usare questi comandi BASH, come del resto già
scritto dal produttore del software:
echo -n ‘username:GNUMP3d:password’ | md5sum

È chiaro che il file delle password deve essere leggibile da parte dell’utente che ha
intenzione di usufruire del server GnuMP3d.
Decommentando la seguente riga si disabilita il meccanismo di protezione; il file
.password, anche se esistente, diventerebbe inutile.
# enable_password_protection = 0

Decommentando, invece, la seguente riga si può scegliere quale delle due modalità di
autenticazione utilizzare, Basic o Digest, in base alle preferenze.
# authentication_type = Basic # Basic or Digest

# Referrer check
#
##
#
# The last security option is the ability to block clients that don’t
# contain a specific ‘Referrer:’ header.
#
# Note that referrer protection isn’t terribly reliable, as many clients
# will not send a referrer header when making a connection. This is
# especially likely when clients are connecting via a ‘privacy enhancing’
# proxy server; such as Internet Junkbuster, etc.
#
# Similarly malicious clients may deliberately stop sending referrers
# if they realise what is going on.
#
#
#
###
# If you wish to only allow a particular referring URL then specify it
# here.
# valid_referrers = http://somesite.com/

Questa opzione permette di bloccare i client che non hanno un header contenente un
particolare referrer, ovvero che non provengono da un altro sito. Tale opzione non è il
massimo della sicurezza, ed è facile capirlo dal fatto che non tutti i client necessariamente
inviano referrer, come ad esempio nel caso in cui ci si connetta tramite un server proxy
come Internet JunkBuster. Tutto questo senza considerare il fatto che si può anche evitare
di mandare i referrer a comando, il che rende l’opzione sicura come mettere un cartello
“non calpestare le aiuole”.
Per abilitare comunque quest’opzione basta decommentare la riga valid_referrers e
impostare l’URL preferito.
# This next option controls what happens when you click upon a
# single MP3 file.
#
# If always_stream is set to ‘1’, and you click upon it you’ll
# actually get a .m3u (playlist) file containing a link to it -
# the advantage of doing this is that you don’t have to download
# the file in its entirety to listen to it it should start playing
# immediately.
#
# If set to ‘0’ the playlists will work via streaming, but selecting
# an individual MP3 file will cause it to be downloaded to your local
# machine prior to playing one drawback of this is that playback
# will probably not start until the entire file has downloaded.
#
always_stream = 1

Si è parlato di GnuMP3d come di un mezzo finalizzato alle radio, e questo è vero; tuttavia
è principalmente un server per lo streaming on demand. Questa opzione permette di
trasformare il server di streaming on demand in un server di semplice download di media
file.
Se l’opzione always_stream è settata ad 1, allora ogni click su un singolo file (ad esempio
un MP3) causerà la creazione di un file m3u di playlist e, di conseguenza, un ascolto in
streaming. Se l’opzione è settata a 0, molto probabilmente il file non verrà eseguito se non
dopo il suo completo download. La differenza è minima ed è una mera questione di tempi
di scaricamento.
# There is a link placed at the top of every directory, which allows you
# to play the songs within that directory recursively.
#
# By default the recursive option plays all the tracks in a
# sorted order by uncommenting the following option you can
# have the recursive playlists default to being in a random order.
#
# recursive_randomize = 1
#

C’è un link posizionato in alto su ciascuna directory che permette l’ascolto dei brani di
quella directory ricorsivamente. Tale impostazione è ordinata di default, ma
decommentando questa opzione si ottiene un ascolto randomizzato.
# This next setting controls the format of the playslist files.
#
# There are two formats this server supports, simple playlists which
# are just plain listings of tracks, and advanced playlists which contain
# copies of the song tags in comments.
#
# The advanced playlists will allow you to view song tag information
# inside the playlist windows of both XMMS and WinAMP
#
#
advanced_playlists = 1
#

Questa opzione permette di utilizzare le playlist avanzate: file scritti in dialetto XML che
permettono la visualizzazione di informazioni sui tag ID3 delle canzoni. Utile per avere
maggiori informazioni, soprattutto nei player.
# All the output the server produces is generated with the help of
# some HTML template files, these are referred to throughout the
# program and each collection of templates is referred to collectively
# as a ‘theme’.

Il server produce output in forma di pagine web. Tali pagine sono personalizzabili e sono
identificate come “temi”.
# This next option allows you to specify which theme should be used
# by default. (Any client can select one of the available themes by
# the use of cookies).

L’opzione permette di scegliere qual è il tema di default; ogni client può sceglierne uno.
# For each theme there are a collection of HTML files which are read
# and used for the server output. There are several basic files which
# must be supplied to be considered a theme:
#
# index.html -> Used for displaying individual directories.
# search.html -> Used for displaying the search form.
# results.html -> Used for displaying the results of a search.
# stats.html -> Used for customising the server statistics page.

Ogni tema è composto da alcuni file. I principali sono i 4 indicati:


♦index.html è utilizzato per visualizzare le directory individuali;

♦search.html è utilizzato per il modulo di ricerca;

♦results.html è utilizzato per visualizzare il risultato della ricerca;

♦stats.html mostra e personalizza la pagina delle statistiche.


# In addition to those each plugin reads in it’s own template file
# and uses that. For example the statistics plugin is accessed via
# the URL http://server.host.name:port/stats/, and reads in a template
# called ‘stats.html’

Oltre a queste pagine, ogni plug-in legge il suo template e lo usa.


# The theme directory defaults to /usr/share/gnump3d but may be
# changed via the ‘theme_directory’ setting given below.
#
# When the server is running you may set the theme from your browser
# via the preferences page, simply visit the link:
#
# http://server.host.name:port/prefs
Si può settare un plug-in anche via web, tramite l’indirizzo sopra mostrato.
# NOTE
# —-
#
# If you create a theme ‘Id be happy to include it in future releases
# if you wish see the online theme creation docs at:
#
# http://www.gnump3d.org/theme.html
#
theme = Tabulara

L’ultima riga è quella da modificare, a piacere dell’utente, tra i temi installati.


##
#
# Set the base theme directory if you wish to place them in a non-standard
# location.
#
##
theme_directory = /usr/share/gnump3d/
##

Piazzare in questa directory i temi non standard del server. Si può scegliere di piazzarli in
un’altra cartella a piacimento; in tal caso occorre modificare questa riga.
# This next option controls how directories are displayed on the index
# pages.
#
# There are several defined variables which you can choose to use:
#
# $LINK = The actual URL of the directory.
#
# $DIR_NAME = The name of the directory.
#
# $SONG_COUNT = The number of songs contained in the directory.
#
# $DIR_COUNT = The number of subdirectories in the directory.
#
# $RECURSE = A link to play the contents of the directory recursively.
#
# $NEW = Will insert the text specified by ‘new_format’ if the
# directory is recently modified.
#
# NOTE: you can also specify “directory_format2” as an alternative display
# format. Directories are then listed with alternating display formats.
# This is useful if you want to have alternating background colors for
# each entry in a table, for example.
#
directory_format = <tr><td width=“10%”> </td><td><a href=“$LINK”>$DIR_NAME</a> $NEW</td>
<td>$SONG_COUNT</td><td>$DIR_COUNT</
td><td>[$RECURSE]</td></tr></a>

Nella creazione della pagina web, il server utilizza delle variabili. Tali variabili sono
spiegate in questa porzione del testo:
♦$LINK: l’attuale URL della directory;

♦$DIR_NAME: il nome della directory;

♦$SONG_COUNT: il numero di canzoni contenute nella directory;


♦$DIR_COUNT: il numero di sottodirectory della cartella corrente;

♦$RECURSE: è un link per suonare la directory ricorsivamente;

♦$NEW: è un testo che viene inserito se la directory è stata recentemente modificata.

È possibile creare anche un directory_format2 che permetterà di avere due impostazioni


alternate, qualora si dovesse preferire così. Si può modificare il codice HTML, ma
conviene settarlo sempre come riga di una tabella. Ci sono degli altri esempi, indicati
sotto, che possono essere d’aiuto per la modifica.
##
# Text to insert if the directory is recently modified.
##
new_format = <font color=“red”><b>New</b></font>

Se la directory è stata modificata per qualsivoglia motivo comparirà questo testo. Si può
modificarlo come meglio si crede, ma è sempre meglio non strafare.
##
# If a directory hasn’t been modifed in more than ‘x’ days then
# it isn’t considered ‘new’.
##
new_days = 7

Per quanti giorni una directory è considerata nuova in seguito ad una modifica? È un
parametro settabile.
# File format
##
#
# This option is analogous to the ‘directory_format’ option above.
#
# It specifies how the files should be listed.
#
# $LINK Is the link to the track itself
#
# $SONG_FORMAT Is a template string which is described below.
#
# NOTE: you can also specify “file_format2” as an alternative display
# format. Files are then listed with alternating display formats.
# This is useful if you want to have alternating background colors for
# each entry in a table, for example.
#
file_format = <tr><td width=“10%”> </td><td><a
href=“$LINK”>$SONG_FORMAT</a></td><td align=“right”>[<a href=“/
info$PLAINLINK”>Info</a>] [<a
href=“$PLAINLINK”>Download</a>]</td></tr>

In modo simile al formato directory, si può settare la formattazione dei file. Anche in
questo caso ci sono delle variabili:
♦$LINK: è il link al file stesso;

♦$SONG_FORMAT: è una stringa che sarà discussa dopo.

Come nel caso delle directory è possibile settare un file_format2 qualora piaccia alternare
layout diversi. Si consiglia sempre di mantenere l’impostazione tabulare del codice
HTML. Un buon modo per personalizzare tutto è quello di italianizzare.
# This next setting, `song_format’, allows you to configure how the
# MP3 and OGG Vorbis files are displayed.
#
# If the file which has been found contains any tag information then
# the following values will be available to you:
#
# $ARTIST -> The artist of the song.
#
# $ALBUM -> The album the song came from.
#
# $COMMENT -> The comment string attached to the song, if any.
# NOT AVAILABLE FOR OGG FILES.
#
# $SONGNAME -> The name of the song.
#
# $YEAR -> The year the song was recorded.
# NOT AVAILABLE FOR OGG FILES.
#
# $GENRE -> The genre of the track.
# NOT AVAILABLE FOR OGG FILES.
#
# $BPS -> The sample rate of the song if non-variable.
# NOT AVAILABLE FOR OGG FILES.
#
# $LENGTH -> The length of the track in MM:SS
# NOT AVAILABLE FOR OGG FILES, OR VBR MP3’s.
#
# $SECONDS -> The length of the track in seconds
# NOT AVAILABLE FOR OGG FILES, OR VBR MP3’s.
#
# $SIZE -> The size of the audio stream.
# NOT AVAILABLE FOR OGG FILES, OR VBR MP3’s.
#
# $TRACK -> The number of the track
#
# $FILENAME will always be available. (This is the name of the file
# without any suffix or directory information).
#
song_format = $TRACK $ARTIST $ALBUM $SONGNAME [ $GENRE - $LENGTH / $SIZE ] $NEW

Questa opzione permette di settare la visualizzazione dei brani:


♦$ARTIST: autore del brano;

♦$ALBUM: album da cui è tratto il brano;

♦$COMMENT: commenti sul brano, inseriti nel tag ID3, e non disponibili per i file OGG;

♦$SONGNAME: nome del brano;

♦$YEAR: anno di composizione del brano, non disponibile per file OGG;

♦$GENRE: genere del brano, non disponibile per file OGG;

♦$BPS: bitrate del file, disponibile solo per file non VBR, mai nel caso di file OGG;

♦$LENGHT: durata del brano in mm:ss, non disponibile per VBR e OGG file;

♦$SECONDS: durata del brano in secondi, non disponibile per VBR e OGG file;

♦$SIZE: grandezza del file, non disponibile per VBR e OGG file;
♦$TRACK: numero di sequenza della canzone;

♦$FILENAME: nome del brano senza suffissi e altri artifizi.


# If you wish to change the text displayed on the ‘Play’
# link you should uncomment the following option, and change the
# text appropriately.
#
##
#
# play_recursively_text = Play
##

Se si gradisce cambiare il testo visualizzato sul link Play si può semplicemente


decommentare questa riga e modificare il testo.
# This next option controls how songs are sorted prior to display,
# and used in the playlists.
#
# You may use any of the $ values which are listed above in
# the ‘song_format’ setting, eg:
#
# Sort by the song name.
# sort_order = $SONGNAME
#
# Sort by artist if present.
# sort_order = $ARTIST
##
# Default to sorting by the track number, due to popular.
sort_order = $TRACK

Metodologia d’ordinamento della visualizzazione delle tracce. Si possono ordinare per


qualsiasi delle variabili settate per song_format. Di default si ordina per track number.
# DOWNSAMPLING / BIT RATE CHANGE
##
#
# This support allows the music to be down-sampled before it is streamed
# to clients. This will slow down the serving, and may be a little
# processor intensive I guess it will depend upon the speed of your
# server, and the number of users you have.
#

Queste impostazioni permettono di diminuire il bitrate dei brani prima che essi vengano
streammati oppure scaricati dai client. Questo ridurrà la velocità del server e potrebbe
appesantire il carico del processore del server stesso; tuttavia, se la banda è scarsa, è una
buona soluzione in alternativa a modificare i file.
# Is downsampling support enabled?
#
# If this is disabled then none of the further downsampling options will
# apply, even if they are set.
#
# Also note that if the downsampling support is disabled the preferences
# page will not allow the clients to select their own bitrate.
#
# (I think this makes sense, if it’s disabled it’s misleading to present
# configuration options to the clients).
#
# downsample_enabled = 1
#

Questa opzione permette di abilitare o disabilitare la possibilità di effettuare il


downsampling. È semplicemente un flag che va decommentato se si vuole sfruttare
l’opportunità sopracitata.
##
#
# YOU MUST UNCOMMENT THESE LINES
#
# Downsampling is based upon IP address, rather than enabled globally
# this allows you to control things a little more tightly than user
# preferences.
#
# For example on a gateway machine you’d want all people on the internal
# LAN to have full quality files, and people remote to have the lower
# quality sounds.
#
# The next two settings specify the downsampling ranges:
#
# downsample_clients = ALL
# no_downsample_clients = 192.168.0.0/24
#
# NOTE: ‘no_downsample_clients’ takes precedence over ‘downsample_clients’.
#

Supponiamo che il server possa avere accessi sia da una LAN (connessione più veloce)
che da Internet. Probabilmente preferiremmo che gli utenti della LAN possano usufruire
dei file a bitrate elevato, mentre tutti gli altri clients dei file in downsampling. Queste
opzioni lo permettono facilmente: downsample_clients indica quali clients usufruiranno di
file a bitrate più basso, mentre no_downsample_clients indica quali clients usufruiranno
dei file a bitrate invariato.
Similarmente a quanto specificato in merito al ban degli IP, si possono combinare le due
opzioni nei modi che preferiamo, ricordandoci che il no_downsample ha precedenza
rispetto all’opzione downsample (e questa è una buona scelta, perché ci permette di
seguire una politica di scelta, simile all’instradamento dei router). Di seguito alcuni
esempi.
# Downsample Everybody:
# downsample_clients = ALL
# no_downsample_clients = NONE

Questo settaggio riduce per tutti il bitrate.


# Downsample remote, allow local to have full quality
# downsample_clients = ALL
# no_downsample_clients = 192.168.0.0/24

Con questo settaggio, tutte le richieste provenienti da Internet riceveranno file a bitrate più
basso, mentre la LAN (ovvero la rete con IP che va da 192.168.0.0 a 192.168.0.255)
riceverà i file alla massima qualità possibile.
# Downsample all except two addresses
# downsample_clients = ALL
# no_downsample_clients = 192.168.0.162; 192.168.0.33

Questo settaggio dà privilegi di ascolto full quality solo a due indirizzi.


# Full quality for all local, except one address
# downsample_clients = 192.168.0.99
# no_downsample_clients = 192.168.0.0/24

Qualità alta per tutta la LAN, tranne che per un singolo IP.
# For each of the downsampling levels the user has chosen the selected
# file will be processed by a command.
#
# This command is assumed to write it’s output directly to STDOUT.
#
# The following options specify the command line to run, note that
# the string ‘$FILENAME’ will be replaced by the file the user is
# requesting.
#

Cominciano le effettive opzioni da decommentare e settare per la conversione di bitrate.


Per ogni singolo caso di conversione, c’è un comando che verrà richiamato dalla shell.
Ciascun comando verrà stampato direttamente nello standard output.
# If you wish to downsample or convert any other file types you
# need to add entries to this file to specify what is done to them
# simply create an entry which looks like:
#
# downsample_”level”_”file suffix” = command args

Prima di passare ai settaggi effettivi, Steve ci comunica le modalità per fare da soli.
Qualora avessimo inserito un nuovo tipo di media file che si può convertire ad un bitrate
più basso (ad esempio AAC+, oppure FLAC, o quello che si vuole), si deve inserire un
riferimento nella forma:
downsample_LIVELLOQUALITÀ_SUFFISSOFILE = comando argomenti.
Di una semplicità mostruosa. C’è poco da dire, Steve è davvero un ottimo sviluppatore.
#downsample_high_mp3 = /usr/bin/lame mp3input -b 56 $FILENAME -
#downsample_medium_mp3 = /usr/bin/lame mp3input -b 32 $FILENAME -
#downsample_low_mp3 = /usr/bin/lame mp3input -b 16 $FILENAME

Ecco le impostazioni per gli MP3. La prima riga indica la qualità alta di downsampling. Si
può scegliere cosa sia da attribuire ad “alto”. Condivido la scelta di Steve di settare ad alto
il valore di 56 kbps, perché si tratta pur sempre di un downsampling. Sostituiamo a 56, 32,
o 16, i valori che preferiamo, con un minimo di coerenza.
Viene richiamato il programma LAME, con lo switch -mp3input, che come è noto serve
proprio a modificare un file MP3 cambiandone il bitrate. Lo switch -b permette di
impostare i seguenti bitrate: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320.
#downsample_high_ogg = /usr/bin/sox -t ogg $FILENAME -t raw | oggenc
raw downmix -b 96 -
#downsample_medium_ogg = /usr/bin/sox -t ogg $FILENAME -t raw |
oggenc raw downmix -b 64 -
#downsample_low_ogg = /usr/bin/sox -t ogg $FILENAME -t raw | oggenc
raw downmix resample 22050 -b 32

Situazione simile per OGG.


Al posto di LAME è richiamato il programma SOX, con lo switch -t impostato prima per
identificare il file OGG, poi per indicare che tale file è headerless (ovvero senza header
iniziale). Tale comando è posto in pipeline con OGGENC, impostato con vari parametri. Il
-raw indica che il file è appunto senza header; -downmix indica che se il file era in
codifica stereo, adesso diverrà mono; -b indica il nuovo bitrate. L’opzione RESAMPLE
indica che il file deve essere ricampionato, passando dai canonici 44,1 Khz ai 22,05 Khz.
# If you always want to force a particular bitrate upon clients who’ve
# not chosen something different then specify it here:
#
# default_quality = medium

Questa opzione, se decommentata, permette di impostare un particolare bitrate, qualora il


client non ne abbia scelto uno di sua volontà.
# Several of the servers features are controlled via external plugins,
# these are simple Perl scripts which are called by the server in response
# to requests.
#
# This next setting allows you to change the location from which the
# plugins are loaded.
#
# plugin_directory = /usr/lib/perl5/gnump3d/plugins
#
#
# NOTE: the following directory should be correctly filled in by
# the installation script if this doesn’t happen report this as
# a bug.
#
plugin_directory = /usr/share/perl5/gnump3d/plugins

Questa opzione permette di settare una directory in cui verranno inseriti i plug-in (che
sono script Perl) che il server richiamerà in base alle richieste ricevute.
#
# Plugin-Specific settings here.
#
Qui andranno delle impostazioni specifiche per i vari plug-in, ammesso che ce ne siano.
# Directories to exclude when choosing a random directory. Seperate
# multiple directories with a ‘|’ character.
#
# plugin_random_exclude = Talk|Midi|Video

Questa opzione permette di escludere alcune directory nel caso in cui si scelga
casualmente quale utilizzare. Per separare le directory da escludere, basta usare il carattere
[|].
##
# HACKING atypical configuration follows, this will not be of
# interest to casual users.
#
# Dragons lie yonder … ->
#
#####

Queste opzioni potrebbero non interessare l’utente medio, ma un buon regista che voglia
utilizzare questo software non può non conoscerle.
# When files are served there needs to be an appropriate mime type
# sent along with them, this allows the browser to pass the response
# back to an MP3 player, etc.
Quando sono disponibili dei file è necessario impostare loro un MIME type (se n’è parlato
in precedenza), affinché si permetta ai browser di trasferire la chiamata a un programma
apposito come un player MP3.
# Most Unix systems will have the file ‘/etc/mime.types’ which is
# used by default. If not point this next file to wherever your mime
# types file is located:
#
mime_file = /etc/gnump3d/mime.types
#

Molti sistemi Unix hanno un file type all’interno di /etc; si ha la possibilità di impostare
un file che sarà utilizzato da GnuMP3d.
# This next setting controls where the file types are looked up.
# we support many audio, visual, and playlist files and to do this
# we need to be able to lookup a file to determine what kind of
# file it is.
#
# Here is the lookup file.
file_types = /etc/gnump3d/file.types

In questa riga si può settare il path del file che conterrà tutte le estensioni supportate come
file da streammare.
# In order to record which songs are currently being played the server
# will create a temporary file containing that path of each file that
# it is serving.
#
# The path under which these files are created in may be set here.
#
now_playing_path = /var/cache/gnump3d/serving

All’interno di questo file troveremo tutte le canzoni che sono trasmesse in un determinato
momento. È possibile modificare il path a piacimento.
# As a speedup and optimisation song tag is read via a companion script
# which is called ‘gnump3d-index’. This will be run automatically when
# the server starts if possible.
#
# This next setting controls where that script will write its tag database
# to.
#
tag_cache = /var/cache/gnump3d/song.tags

Non se n’è ancora parlato, ma corredato a GnuMP3d esiste anche uno script chiamato
gnump3d-index che si occupa di indicizzare i tag delle canzoni. Tali tag vengono salvati in
un file che si può tranquillamente settare.
# This next setting allows you to control the path to the gnump3d-index
# script which is used, as explained above.
#
# Normally you shouldn’t need to touch this.
#
# index_program = /usr/bin/gnump3d-index

Questa riga, se decommentata, indica a GnuMP3d l’indirizzo in cui può trovare lo script
gnump3d-index.
# This setting controls whether we should stream song title
# information in shoutcast format.
#
# If your client supports it then you should enable it, otherwise
# not.
#
# (This works correctly on WinAmp, and XMMS.)
#
shoutcast_streaming = 1

Questa opzione permette di streammare i metadati nello stesso modo in cui lo fa


Shoutcast. Probabilmente Steve è a conoscenza dei metodi di trasmissione dei metadati del
protocollo ICY.
# By default the server logfile is appended to when we start.
#
# If you set the following value to ‘1’ the logfile will be truncated
# instead.
#
# You might want to truncate the file to save space, but doing this
# renders the server statistics less useful.
#
# truncate_log_file = 0

Il log del server viene incollato alla fine del log precedente. Se per motivi di spazio sul
disco si preferisce che esso venga troncato, bisogna decommentare l’ultima riga e
impostarla ad 1.
# By default the server will close a connection it receives if it
# hasn’t received a valid request after 10 seconds.
#
# Here you may change this timeout value.
#
# read_time = 10

Tempo di timeout in secondi.


#
# This next section controls whether we present a HTML interface
# to the server.
#
# In most situations you will want to do this but some people have
# approached me and suggested that it should be tweakable, so here’s
# the option to disable the browsing of the music
#
# If you set this to ‘0’ the best you can probably do is call
# ‘http://server:port/recurse.m3u’ or similar.
#
# enable_browsing = 1

Da quello che si evince nel commento di Steve, qualcuno gli ha consigliato di impostare
un flag di visibilità alla pagina web del server. Inutile dire che questa è stata una opzione
di profonda utilità.
Nel caso in cui non si sia interessati ad un server di streaming on demand, ma unicamente
ad una web radio, si può dare solo l’indirizzo http://server:porta/recurse.m3u o similari e
trasmettere come radio.
# This next value controls whether we should believe, and use, the
# client supplied ‘Host:’ header.
#
# This header is sent by HTTP/1.1 clients only, and could be spoofed.
# You’ll only NEED to use it if tunnelling over SSH or performing similar
# magic.
#
# It’s enabled here because I don’t believe it should cause any real harm
# YMMV.
#
use_client_host = 1

Da utilizzare qualora si voglia che le richieste inviino l’header host, che è una peculiarità
di HTTP/1.1. Non è un’opzione di profondo interesse se non si realizzano tunnel SSH.
# Set this option to rewrite the hostname:port combination in the URLs in
# your playlist. Most people won’t need this unless they are proxying
# their connection or running multiple streaming servers through a load
# balancer or DNS rotor.
#
# Note: If you set this you will almost certainly need to set
# “use_client_host=0”
##
# host_rewrite = ““

Se si desidera che la playlist abbia un indirizzo per ciascun file diverso da server:porta,
magari perché si usa un server proxy, ciò si può fare decommentando la riga host_rewrite.
In più, può essere utile settare a 0 l’opzione precedente, ovvero use_client_host.
# This is an experimental feature ignore it.
#
# It does not work.
#
# Ignore it: You are not expected to understand this (I’ve always wanted
# to leave that as a comment somewhere
#
##
#
# jukebox_mode = 1
# jukebox_player = /usr/bin/mpg123 $FILENAME
#
##

Steve è un gran burlone, oltre che davvero un bravo ragazzo. Ha lasciato un’opzione
sperimentale che non serve a nulla: si chiama modalità jukebox, ed effettivamente non fa
niente se decommentata. Steve ci fa anche notare che non siamo in grado di capirla.
All’interno delle man pages Steve dice:
This is an experimental mode whereby all the songs that users select are played back upon your GNUMP3d
server and not streamed at all.
It’s not been tested very much and is included purely to demonstrate that such a thing is possible. It may
disappear with no notice unless there is sufficient interest in it.
Set this to ‘1’ to enable it, but be sure to set ‘jukebox_player’ to
point to an appropriate playback binary.

Sostanzialmente, il settaggio di questa opzione permette di sfruttare un programma situato


all’interno del server in modo che funzioni esattamente come un jukebox. Il path del file
binario che verrà sfruttato per riprodurre il file è nella seconda riga, ovvero
jukebox_player.
# Make it possible to hide song tags, and just display filenames.
#
##
# hide_song_tags = 0

Se non è importante mostrare i tag delle canzoni si può decommentare l’ultima riga.
# Make it possible to disable the tag cache altogether, to save memory.
#
##
# disable_tag_cache = 0

Decommentare l’ultima riga disabiliterà la cache.


# This option allows you to insert a custom META-tag inside the header of
# each page which is output.
#
# You can add whatever you like here, perhaps the most useful thing to
# add is an encoding type.
#
# add_meta_tag =
# add_meta_tag =
##

Queste opzioni permettono di aggiungere dei tag meta all’interno della sezione head di
ciascuna pagina web visualizzata tramite GnuMP3d.
14. Spreaker
Spreaker è il nome di un progetto italiano di web radio browser driven. Una web radio si
definisce browser driven se la sorgente non è identificabile con un programma di regia
standalone, bensì con una finestra del browser stesso, possibilmente interfacciata a
microfoni o altre attrezzature. Per conoscere il progetto, il primo passo è quello di
iscriversi al sito www.spreaker.com.

Figura 14.1. Home page di Spreaker

La home del proprio account è molto semplice e tutto sembra molto intuitivo. Si può
completare il proprio profilo per poi andare direttamente su trasmetti. Una volta entrati
nell’area di trasmissione, comparirà un mini modulo chiamato crea una puntata.

Figura 14.2. Finestra Trasmetti

In questa pagina si potrà scegliere se caricare un podcast già realizzato con altri strumenti
oppure realizzare tutto tramite Speaker che è l’opzione di interesse per la trattazione. Si
continui a compilare il modulo. Selezionando le opzioni avanzate, si può anche scegliere
di inserire dei tag o una descrizione del programma. Dopo avere compilato tutto, occorre
andare avanti cliccando su Trasmetti.
Si verrà indirizzati su http://www.spreaker.com/broadcast/record.

Figura 14.3. Mixer di Spreaker

Il modulo Trasmetti di Spreaker è un mixer virtuale.


Come si può vedere nella figura 14.3, in alto a sinistra c’è un pulsante di switching tra la
trasmissione live e la creazione dei podcast. Al centro si trovano i canali del mixer; a
sinistra c’è il canale microfono; accanto si trovano i due deck ausiliari, come ad esempio
in regie come SAM Broadcaster. Ancora più a destra si possono vedere due riquadri, che
rappresentano le playlist di effetti e di musica. In alto, cliccando su add, si visualizzerà
una nuova finestra che consentirà di recuperare da un calderone musicale quello che
maggiormente aggrada l’utente e si potrà incrementare questa collezione caricando
manualmente brani, entro certi limiti.

Figura 14.4. Broadcast live

Per effettuare una trasmissione vocale semplice è sufficiente cliccare sul comando rosso in
alto e rientrare entro i 30 minuti. Durante il live, gli ascoltatori potranno sentire la
trasmissione a questo indirizzo:
http://www.spreaker.com/page#!/user/nomeutente/nomepuntata.
14.1. Interfaccia della consolle
Si supponga di volere trasmettere live e si continui a dare un’occhiata alla consolle:
troviamo tre canali. Uno è di presa diretta microfonica: si può collegare all’ingresso
microfono un semplice microfono da 5 euro o un’intera strumentazione discografica; tutto
verrà veicolato dal level meter più a sinistra.

Figura 14.5. Microfono

Tramite il comando mute si può zittire il canale microfonico.


I due canali più a destra sono due ausiliari che possono essere utili per trasmettere jingle
musicali, effetti, ma anche brani, durante una trasmissione vocale. Questi canali hanno
anche una funzione di preascolto che si può attivare o disattivare dal comando monitor.

Figura 14.6. Deck

Cliccando sul comando monitor il brano continua ad essere trasmesso ma non viene
ascoltato dallo speaker e dal regista (ammesso che siano in questo caso due figure
differenti). La domanda che ci si può porre adesso è: come caricare la musica sugli
ausiliari? Per fare questo esiste una finestra, ancora più a destra, chiamata playlist.
Cliccate sul pulsante add per entrare in una finestra di gestione dei file. Questa finestra
contiene quattro tab: explore, search, latest ed upload. Explore consente di cercare
all’interno di un database comune le canzoni di interesse per la trasmissione. Se non avete
caricato nulla troverete un sacco di brani, ma anche effetti, jingle e loop, molto gradevoli.

Figura 14.7. Finestra Playlist

Il tab search consente di cercare in modo più approfondito all’interno del database
personale e comune, mentre latest visualizza i brani più recenti, utilizzati o caricati.
Upload permette di caricare un brano all’interno del proprio database personale, che ha
dei limiti temporali. Si possono caricare in media sino ad un massimo di 10 ore.
Dopo avere scelto o caricato il brano, basta cliccare sul comando add del singolo brano
per inserirlo in playlist. Dalla playlist anche con un semplice drag and drop sarà possibile
muovere il brano sul deck ausiliario.
La stessa procedura può essere attuata anche per Sound FX. Si consiglia di tenere separati
effetti e brani, almeno per quanto riguarda la loro sistemazione in playlist e Sound FX;
chiaramente si andranno poi a mescolare sui deck.
15. DirEttore
DirEttore è un software di automazione radiofonica estremamente potente e professionale.
Il progetto DirEttore è visionabile al sito www.mixtime.com. Il software è fornito tramite
una congrua donazione ed è disponibile per sistemi Windows.
15.1. Requisiti minimi
I requisiti minimi di installazione della regia sono:
♦sistema operativo: Microsoft® Windows Seven™ / Vista™/XP™/ 2000™/Server 2003™

♦risoluzione: 1024 x 768 @ 65536 colori

♦processore: Pentium IV o Athlon XP @ 1GHz

♦memoria: 1 GB RAM

♦scheda audio: scheda compatibile con Directx 8 (DirectSound).

15.2. Installazione della regia


Dopo avere lanciato il file DirEttoreSetup.exe si avvia il processo di installazione. Si
installerà il programma, i file di inizializzazione, un manuale in inglese, il logo del
progetto DirEttore ed alcuni file dimostrativi. Tutti i file che verranno inseriti
manualmente dall’utente all’interno della cartella di installazione non saranno disinstallati
automaticamente dal software.

Figura 15.1. Installazione

Figura 15.2. Password

Dopo la finestra di benvenuto e la finestra di accettazione della licenza, per completare


l’installazione si dovrà inserire la password fornita dal produttore.
15.3. File audio supportati
DirEttore accetta il formato AAC, Flac, MP3 a qualsiasi bitrate in CBR o VBR, Ogg
Vorbis, Wave a qualsiasi bitrate e risoluzione e WMA, ammesso che i relativi codec siano
installati sul sistema.
15.4. Caratteristiche principali e definizioni
THREE PLAYERS
Si possono mixare brani con tre player virtuali nello stesso momento, mentre un quarto è
disponibile per lanciare il brano successivo.
CUE START
Ogni brano successivo è settato al suo punto d’inizio mentre il brano precedente è in onda,
per evitare partenze ritardate. In questo modo i brani cominceranno immediatamente.
CUE POINT
Si possono settare i punti start, intro e mix per ciascun brano, esattamente come si possono
settare tre tipi di fading: veloce, normale e lento. L’opzione do not fade può essere settata
tramite l’editor dei cue point.
ROTATION
Una sequenza di elementi in rotazione, come jingle, annunci temporali e sweeper, che
sono selezionati casualmente all’inizio di ciascun nuovo ciclo.
ROTATION ELEMENT
Rotation element è una directory selezionata contenente brani classificati seguendo i
generi precedentemente elencati, l’età o quello che si preferisce.
PLAYLIST
Una playlist è una sequenza predefinita di brani, jingle, pubblicità, annunci e sweeper, che
può ripetersi.
SEQUENCE
Sequence è un elenco di brani sequenziali nel tempo con definizione di intro, outro ed
elementi di mezzo tra i brani in rotazione. La sequenza è utile per la costruzione di
pubblicità, di trailer o altre tipologia di audio.
TIME ANNOUNCEMENT
Un annuncio in tempo reale con la voce di uno speaker. Seguendo alcune semplici regole
si può costruire il proprio annuncio temporale da mixare con la musica.
SWEEPER
Uno sweeper è un jingle o un file vocale programmato per terminare esattamente al punto
di intro del brano successivo, che è normalmente settato all’inizio della parte vocale del
brano.
VOICE-TRACK
Come lo sweeper, voice-track è un jingle o file vocale programmato per terminare all’intro
del brano successivo, ma a differenza dello sweeper inizia dal brano attualmente in
trasmissione.
15.5. La finestra principale
La finestra principale si visualizza facendo doppio click sull’icona di DirEttore dopo che
tutte le opzioni sono state caricate.

Figura 15.3. Finestra principale

La finestra principale è ridimensionabile e contiene tutte le funzionalità e i controlli del


programma. Dalla finestra si è sempre ad un solo click di distanza da qualsiasi funzione
richiesta, permettendo cambi di configurazione istantanei senza perdere la visualizzazione
di quanto si sta trasmettendo.
15.5.1. Il pannello dei player
Il gruppo di indicatori in alto a sinistra indica il brano appena trasmesso, il brano
attualmente in onda ed il prossimo brano in trasmissione. Un controllo dello slider viene
fornito per permettere cambi o semplicemente vedere la posizione del brano in
trasmissione.

Figura 15.4. Pannello dei player

Lo slider cambia colore dal verde al giallo ed infine al rosso in base all’avvicinarsi del
termine del brano. La regia utilizza cinque player virtuali, dei quali quattro sono dedicati
alla normale programmazione musicale, mentre il quinto è usato per lanciare eventi
speciali come gli annunci temporali, gli sweeper e le voice-track.

Figura 15.5. Player virtuali

Soltanto tre dei quattro player normali possono riprodurre simultaneamente; il quarto è
sempre messo in pausa, pronto a fare partire il brano successivo. Sono mostrati tre stati,
identificati dai colori.
STOP
Stop indica che in questo player non è caricato alcun brano.
ON CUE
On cue indica che il player ha un brano caricato e pronto per essere suonato.
PLAY
Play indica che il player sta riproducendo musica.
Ci sono quattro misuratori di volume per permettere di dare un riscontro visuale del
volume attuale di un player. Il player speciale non cambia il suo volume.
15.5.2. Il pannello dei contatori

Figura 15.6. Pannello dei contatori

Tutti i contatori del pannello mostrano il tempo in formato H:MM:SS.T; è quindi scontato
che il massimo tempo visualizzabile sia 9:59:59.9. I file che durano più di 10 ore verranno
comunque riprodotti ma non verrà calcolato il tempo oltre il limite massimo. L’unica
eccezione a questa regola è il contatore del calcolo della durata sotto il pannello di stato, il
quale utilizza il formato HH:MM:SS.T, permettendo quindi di mostrare una durata
massima di 24 ore. Le durate che superano questo limite verranno visualizzate con un
messaggio “more than one day”, più di un giorno.

Figura 15.7. Barra della CPU

La prima barra verticale (figura 15.7) mostra l’attuale utilizzo della CPU di sistema; in
questo modo l’utente è sempre informato sullo stato del sistema e se il programma
richiede risorse che il computer non può fornire o se è il caso di chiudere qualche
programma contemporaneamente aperto.
La seconda e la terza barra verticale (figura 15.8) mostrano i livelli volumetrici del player
di preascolto e del player degli effetti istantanei. Il loro range va da – 30 a 0 dB, dove il
limite superiore è il massimo livello prima del clipping.

Figura 15.8. Barra dei livelli volumetrici dei player

Il primo grande contatore (figura 15.9) è un countdown al mix point precedentemente


settato. Quando le cifre sono mostrate in verde, il counter mostra il countdown fino alla
fine della porzione del brano trasmesso. Lo sfondo del contatore comincia a lampeggiare
in rosso come avvertimento per indicare la fine del brano.

Figura 15.9. Countdown

Quando lo sfondo ritorna blu, indica che è stato settato un punto di intro e, in tal caso, i
numeri mostrati rappresentano il countdown al punto di intro stesso. Lo sfondo comincia a
lampeggiare cinque secondi prima del momento del punto di intro, come avvertimento.
Gli altri due contatori sono:
♦elapsed (sinistra): il tempo trascorso dal reale punto di inizio (che non necessariamente è
il punto di inizio settato nella finestra di modifica dei cue point);
♦remain (destra): il count down reale del brano.

Sotto questi contatori ci sono quattro indicatori: l’equalizzatore DSP, il compressore, il


VST e lo stato remoto (figura 15.10).

Figura 15.10. Indicatori

Se il colore di sfondo corrispondente all’indicatore è nero la funzione è disabilitata;


altrimenti è attivata. Si può fare doppio click sull’indicatore per cambiare lo stato.
L’indicatore remoto diventerà rosso indicando un’attività da connessione remota.

Figura 15.11. Sezione cue point

A sinistra di questo pannello (sezione della finestra principale) c’è la sezione dei cue point
nella quale si possono verificare tutti i cue point del brano corrente così come le tipologie
di fading, che sono cinque:
♦NO

♦CUT

♦FAST

♦NORMAL

♦s SLOW.

I punti di partenza e di intro si riferiscono sempre alla posizione di partenza del brano,
mentre i punti di mix fanno riferimento alla posizione finale del brano. L’indicazione del
mix point cambia il colore di sfondo quando la traccia corrente viene limitata in durata
dalla massima durata settata.
Il pannello di stato centrale mostra informazioni critiche su tutto il processo
d’automazione. La prima grande riga è usata per indicare gli attuali settaggi di
automazione e per avvertire l’operatore se c’è un problema. Normalmente questo significa
che sta succedendo qualcosa di diverso dal comportamento normale della regia.

Figura 15.12. Pannello di stato centrale

La seconda riga indica che un evento programmato o un break commerciale è in arrivo e


pronto per essere inserito nella playlist corrente. La terza fila informa che l’azione
successiva sarà un evento speciale, come un annuncio temporale o uno sweeper.
Un’altra funzione inclusa nei contatori e nel pannello di stato è lo strumento di ricerca.
Esso consente all’utente di cercare i file audio supportati in una data directory. I caratteri
jolly sono consentiti, ma il brano da cercare non deve contenere l’estensione, poiché
questa verrà aggiunta automaticamente dal programma. Le tracce risultato della ricerca
possono essere preascoltate prima di essere inserite nel flusso automatico: la funzione
autoplay rende facile il preascolto del brano per mezzo di un semplice clic sul brano
desiderato.

Figura 15.13. Strumento di ricerca

Una volta trovato il brano desiderato è sufficiente fare doppio clic su un risultato per
aggiungere immediatamente il brano dopo la selezione corrente nella playlist principale.

Figura 15.14. Info brano

Sotto il comando di strumento di ricerca vi è il comando Info brano che mostra


informazioni estese memorizzate dall’utente per un determinato brano. Questa vista è
mutuamente esclusiva con la vista degli ultimi brani riprodotti. È possibile scegliere tra
due diverse dimensioni di caratteri: piccoli e grandi.

Figura 15.15. Nome brano

Le informazioni estese contenute nei tag ID3 di un file MP3 si possono visualizzare
semplicemente facendo doppio click sul nome del brano in onda. L’indicazione del nome
del brano diventerà arancione e i campi del tag ID3v1 verranno visualizzati nel pannello di
stato centrale. I tag visualizzati sono artista, nome brano, album ed anno.
Rifacendo doppio click si ripristinerà la situazione originaria.
15.5.3. Il volumetro principale
La finestra principale comprende anche un misuratore volumetrico stereo logaritmico con
un indicatore del livello di picco. Il range va da – 30 a 0 dB dove 0 è il livello del clipping
digitale che fa scattare gli indicatori di picco (l’indicazione di picco viene mantenuta attiva
per un secondo).

Figura 15.16. Misuratore del volume

Il misuratore volumetrico mostra il livello sonoro generato dai player in trasmissione (dal
primo al quarto) insieme ai player degli sweeper e degli annunci temporali.
I player degli effetti istantanei e il preascolto hanno i loro misuratori volumetrici accanto
al misuratore di sforzo della CPU. I numeri all’interno della barra sono livelli output
espressi in decibel (Db). L’indicatore è digitalmente corretto ma la resa audio reale
dipenderà fortemente dai settaggi del mixer della scheda audio trasmittente.
15.5.4. Primo gruppo comandi

Figura 15.17. Primo gruppo di comandi

Ci sono tre gruppi di comandi: uno posizionato verticalmente nell’angolo in alto a destra
dello schermo, il secondo sotto i contatori, il terzo gruppo è composto da due file
orizzontali di comandi.
Queste due file sono raggruppate logicamente: la prima raccoglie i modificatori
operazionali mentre la seconda gli operatori di visualizzazione. La fila in alto contiene 8
comandi usati per cambiare la configurazione del flusso in trasmissione all’istante, oppure
per modificare le informazioni visualizzate sulla finestra principale.
Di seguito si analizza la prima riga.
BREAK AFTER
Break after ferma l’automazione al momento del termine del brano attualmente in onda,
applicando il fading settato. Questo comando è attivo solo quando l’automazione è attiva.
Inoltre, break after è attivato automaticamente quando si è raggiunto il massimo numero
di errori riscontrabili durante la selezione della traccia audio. È anche possibile settare
questa funzione su uno specifico brano tramite il menu contestuale della playlist
principale.
LIVE ASSIST/AUTO
Live assist/auto scambia le due modalità. Live assist è la modalità manuale, dove il brano
successivo non parte automaticamente ma è attivato tramite l’utilizzo del comando invio o
spazio o facendo doppio click. Gli eventi schedulati in questa modalità sono disabilitati.
Auto, invece, automatizza completamente la rotazione tramite l’inserimento di eventi
schedulati.
PLAYLIST/ROTATION
Il comando playlist/rotation scambia le due modalità operazionali permesse da DirEttore.
Playlist permette di trasmettere una sequenza fissa e predefinita di brani, jingle, sweeper e
annunci temporali.
ROTATION
Tramite rotation si riproduce una sequenza predefinita di elementi da rotazione (insieme
agli annunci temporali e agli sweeper) che sono casualmente selezionati all’inizio di
ciascun nuovo ciclo.
ROTATE NOW
Rotate now ricostruisce la finestra della playlist corrente con i nuovi brani selezionati in
base alla rotazione attiva. Se è attiva la modalità playlist, il comando rotate now
semplicemente reinstallerà la playlist corrente.
Di seguito si analizza la seconda riga.
EXPAND I.P./COLLAPSE I.P.

Figura 15.18. Expand i.p./collapse i.p.

Expand i.p./collapse i.p. scambia la visualizzazione espansa e quella compressa del


gruppo dei player degli effetti istantanei. Quando la visualizzazione espansa è abilitata, il
lato destro della sezione playlist della finestra principale verrà riempita dal pannello
espanso a prescindere dalle impostazioni di visualizzazione della rotazione e degli eventi.

Figura 15.19. Dettaglio

Partendo da sinistra, il numero sullo sfondo nero identifica il player degli effetti istantanei
associato. Lampeggerà in rosso quando il player viene attivato.
Al centro ci sono i comandi di inizio e di stop, una replica di quelli descritti nella seconda
sezione del gruppo orizzontale. L’unica differenza è che caption mostrerà il nome del
brano associato. Se è inattivo, non c’è un file caricato per il comando.
Ciascun player ha anche il suo contatore personale per il countdown e un indicatore
progressivo, alla sua destra. La durata è calcolata tenendo conto del possibile punto di
inizio ma, visto che il player degli effetti istantanei è un cart like, il punto di fine sarà
sempre la fine del brano e non verrà applicato il fading, a prescindere dal cue point settato.
ROTATE VIEW/LIVE FADER

Figura 15.20. Rotation

Figura 15.21. Live Fade Control

Rotate view/live fader scambia la rotazione attualmente selezionata e il pannello per il


controllo live del fading. La rotazione mostra gli elementi appartenenti alla rotazione
corrente. Mostra inoltre la categoria associata a ciascun elemento in rotazione. Il controllo
live del fading permette di sfumare la musica su e giù per potere parlare sopra il
programma corrente. Premendo il comando live player si applica il fading solo al brano
corrente, mentre il brano successivo partirà a volume pieno.
All players applicherà il fading a tutti i player, player speciali (annunci temporali e
sweeper) inclusi. Sono disponibili cinque livelli di fading: max, 3, 2, 1 e min.

Figura 15.22. Fade Live

È anche possibile scegliere una delle tre velocità di fading disponibili: fast, norm e slow,
che hanno rispettivamente una durata di 1, 4 e 8 secondi. Quando sono espansi i player
istantanei, il gruppo di controllo del fader è piazzato dove si trova il gruppo dei player
degli effetti istantanei compresso.
EVENTS VIEW/FILES VIEW
La funzione events view/file view scambia la visualizzazione degli eventi schedulati e
l’albero dei file e delle directory. La finestra di visualizzazione dei prossimi eventi
schedulati mostra gli eventi in avvicinamento nei successivi 60 minuti, permettendo di
disabilitarli rimuovendo la spunta alla checkbox upcoming scheduled events. Gli eventi
mostrati con uno sfondo luminoso rosso o rosa sono eventi immediati.
Figura 15.23. Upcoming scheduled events

Figura 15.24. Albero delle directory

L’albero delle directory mostra soltanto i file audio supportati, permettendo di scegliere il
brano che si vuole aggiungere al programma corrente nella visualizzazione playlist o
rotation. È anche possibile preascoltare un brano cliccando con il tasto destro sul nome e
selezionare prelisten track sul menu.
I BRANI APPENA TRASMESSI

Figura 15.25. Last played tracks

Qualora dovessero servire maggiori informazioni sui brani recentemente trasmessi,


premere il comando last played/tracks only. Comparirà una finestra che mostra gli ultimi
duemila brani riprodotti dalla regia. Per cancellare l’intero contenuto della finestra basta
semplicemente fare un doppio click sulla parte iniziale. Questa finestra è alternativa a
quella che permette di vedere le informazioni sui brani.
15.5.5. Secondo gruppo comandi
Il secondo gruppo è fatto da dodici player di effetti istantanei (che possono essere fatti
partire usando i tasti funzione da [F1] a [F12]). Se servisse sapere il nome dei file caricati
in ciascun comando, basta posizionare il mouse sopra un comando e si visualizzerà una
finestrella che mostra il nome del brano associato.

Figura 15.26. Nome file

Un altro modo per visualizzare il nome del brano è cliccare con il tasto destro all’interno
dell’area delimitata dai 12 comandi in modo da mostrare una lista dei file caricati o
attivando la visualizzazione espansa precedentemente descritta, dove questo menu
contestuale è comunque disponibile.
I comandi inattivi indicano che non c’è un brano caricato per il comando corrispondente.
Ci sono due controlli aggiuntivi in questo gruppo, con le seguenti funzionalità:
♦edit:
apre la finestra di configurazione dei player degli effetti istantanei. Da qui si
possono modificare e provare tutti i dodici comandi;
♦load: carica un gruppo di player di effetti istantanei precedentemente salvato. Questa
modalità è la più veloce per cambiare l’attuale parco jingle.

Figura 15.27. Secondo gruppo di comandi

COMANDO PANIC
La funzione panic completa la fila orizzontale di comandi. Permette l’inserimento nella
playlist di un numero predefinito di brani da una data cartella, in modo da risolvere ogni
situazione di panico (da qui il nome) nella quale il regista si trovi in situazione di silenzio
non causato da un crash di sistema o dal programma.

Figura 15.28. Comando Panic

Premere il comando panic due volte o premere due volte il tasto [Esc] (che è la scorciatoia
da tastiera collegata al tasto panic) per fermare immediatamente e senza fading tutti i
player della regia, sweeper e annunci temporali inclusi. Si comincerà dal primo brano in
situazioni di panico. La grandezza del tasto panic varia in base alla risoluzione dello
schermo.
15.5.6. Terzo gruppo di comandi
Il gruppo verticale di comandi permette di accedere alle finestre di configurazione
principali, insieme alla funzione di play e stop.

Figura 15.29. Terzo gruppo di comandi


Tra i player degli effetti istantanei e il gruppo verticale c’è un indicatore di data e orario
che lampeggia in rosso al completamento di ogni minuto.
La data e l’ora dipendono dall’orologio di sistema.
Il formato data può essere scelto tra la modalità a 12 o a 24 ore semplicemente facendo
doppio click sull’indicatore temporale.
15.5.7. Playlist e rotazione
La visualizzazione della playlist e della rotazione permette il controllo del flusso di
automazione. La riga in alto racchiude le informazioni su come il programma è stato
configurato. Partendo da sinistra si è informati su quale brano della lista corrente si stia
mandando in onda, la modalità selezionata (playlist o rotazione) se è abilitato il logging,
se si è in modalità voice-track, se l’opzione di autocue è abilitata ed infine la durata
dell’intera lista, calcolata tenendo conto dei cue point.

Figura 15.30. Indicatore di data e orario

La lista sotto il testo informativo mostra informazioni sul tipo di elemento, sul titolo del
brano, sui cue point associati, sulla tipologia di fading, lo stato dell’opzione skip intro, la
durata reale di trasmissione del brano, quando il brano verrà trasmesso (opzione valida
solo se è attiva l’automazione), la durata dell’intro, il percorso completo del file, lo stato
voice-track del brano (che istruisce l’automazione a trattare il brano come un voice-track)
e lo stato del voice-track overlapping (che indica che una voice-track può sovrapporsi al
brano specificato).
Gli sweeper e le voice-track sono identificati con uno sfondo bluastro mentre gli annunci
temporali sono identificati da uno sfondo rosso.
Tutte le colonne della lista possono essere ricombinate.
Facendo doppio click sull’header si setteranno tutte le colonne nella posizione di default
mostrata in figura 15.31.

Figura 15.31. Playlist e rotazione

Nella visualizzazione della playlist/rotazione ci sono altri tre codici colore. Se


l’automazione è ferma, il brano che è correntemente in fase on cue (quindi il brano che
partirà premendo il tasto play) verrà identificato con uno sfondo grigio scuro. Se
l’automazione è attiva, il brano che è attualmente in trasmissione è identificato da uno
sfondo grigio scuro mentre il brano successivo è identificato con uno sfondo grigio chiaro.
Il cursore si riconosce sempre per lo sfondo nero.
Se si fa click col tasto destro su un elemento si aprirà un menu contestuale. È possibile
scegliere di preascoltare il brano selezionato, oppure settare il break after (interruzione
dopo un brano). L’icona del brano cambierà in base al settaggio di questa opzione,
indicando dove avverrà il break after.

Figura 15.32. Menu contestuale

Si possono anche modificare i cue point o le informazioni del brano selezionato, inserirne
un altro prima o dopo la posizione del cursore oppure cambiare o cancellare il brano
selezionato. Non si possono modificare i cue point del brano attualmente attivo. Mentre
l’automazione è attiva è possibile cambiare il brano successivo con uno degli altri presenti
nella visualizzazione playlist/rotazione. Gli sweeper e gli annunci temporali non possono
essere settati come brani successivi. Se l’automazione è ferma, questa opzione non è
disponibile e verrà disabilitata dal menu contestuale. Per ultimo, è anche possibile inserire
una playlist nel flusso d’automazione e crearne un’altra dai brani presenti.
15.6. Il preascolto

Figura 15.33 Preascolto

La finestra di preascolto permette il monitoraggio del brano selezionato nella sezione


playlist/rotazione della finestra principale. Cliccare col tasto destro sul brano che si deve
preascoltare e scegliere prelisten track. Si visualizzerà una finestra. È possibile selezionare
un livello di volume per il preascolto, fare partire o fermare il brano e muoversi attraverso
l’intero brano usando il controllo orizzontale.
L’analisi spettrale mostra la distribuzione delle frequenze del brano per entrambi i canali,
mentre il contatore mostra la posizione corrente ed il pannello mostra il limite superiore
della frequenza (che è la frequenza di campionamento divisa a metà, si veda la sezione di
teoria).
Vengono forniti anche dei dettagli sul brano. I dettagli mostrano il tipo di brano e le
informazioni associate prese dai tag ID del file, qualora presenti.
Ci sono tre finestre che permettono di settare il livello di audio per il preascolto: questa
finestra, la finestra di configurazione della playlist e la finestra di editing dei cue point. In
ogni caso il cambiamento avrà effetto sul livello volumetrico globale di preascolto.
15.7. Editor delle informazioni dei brani
Figura 15.34. Track info editor

Dopo avere correttamente settato questa funzione nella finestra di configurazione (tab
track info), se si volessero aggiungere informazioni ad un brano specifico (come ad
esempio la biografia dell’artista o qualsiasi altra informazione estesa), si può usare l’editor
interno del programma raggiungibile cliccando col tasto destro sul brano desiderato.
Si visualizzerà l’editor delle informazioni dei brani permettendo di:
♦modificare

♦copiare e incollare da un’altra sorgente

♦caricare il testo da un altro file .dti (track info file) precedentemente salvato dal direttore.

CASO 1
Scrivere il testo desiderato entro il massimo limite di caratteri.
CASO 2
Copiare ed incollare il testo da qualsiasi altra sorgente. Il testo verrà copiato senza
formattazione. Se il testo supera il massimo numero di caratteri consentiti verrà troncato.
CASO 3
Fare doppio click su uno degli oggetti presenti in lista. Il testo verrà copiato nell’editor,
sovrascrivendo ogni altro testo inserito, per essere disponibile per ulteriori modifiche.
I file .dti vengono salvati all’interno della cartella Demo di DirEttore, sottocartella Info.
Aprendo con un editor di file testuali un file .dti si nota che è composto semplicemente dal
testo salvato con all’inizio un header, la stringa DTIFileV1.
15.8. Configurazione dei player degli effetti istantanei

Figura 15.35. Player degli effetti istantanei

I player degli effetti istantanei consentono di suonare simultaneamente 12 effetti audio o


anche brani, usando sia i comandi associati che le scorciatoie da tastiera (tasti da [F1] a
[F12]). Premere il comando corrispondente all’effetto desiderato lo attiverà (se inattivo) e
lo disattiverà (se attivato). L’effetto partirà dal punto precedentemente settato dall’editor
dei cue point. Se non ne è stato fissato uno, il brano partirà dall’inizio.
La finestra in basso (figura 15.35) è visualizzabile premendo il comando edit nella finestra
principale.
La finestra permette di caricare o scaricare i player e ascoltare il brano selezionato, in
modo da creare il parco effetti desiderato. Una volta che si è soddisfatti dalla scelta si può
salvare l’insieme per un uso futuro e caricare un altro insieme di effetti precedentemente
salvato. Se il brano viene cancellato, lo slot con quel brano caricato diventa inutilizzabile e
non disponibile ad ulteriori caricamenti.
Per svuotare uno slot si deve premere il corrispondente comando remove, oppure il
comando remove the content of all istant player slots per svuotare l’intero insieme di
players.
Un tipico set di player di effetti istantanei è un file con estensione .ipl ed ha la seguente
sintassi:
[InstantPlayers]
Player1=C:\DirEttore\Demo\Voices\DE Sweeper 1 [0-0-39-1].MP3
Player2=C:\DirEttore\Demo\Voices\DE Sweeper 2 [0-0-24-1].MP3
Player3=C:\DirEttore\Demo\Voices\DE Sweeper 3 [0-0-17-1].MP3
Player4=Empty Slot
Player5=Empty Slot
Player6=Empty Slot
Player7=C:\DirEttore\Demo\Jingles\DirEttore Jingle 1 [0-0-52-1].MP3
Player8=C:\DirEttore\Demo\Jingles\DirEttore Jingle 2 [0-8-31-1].MP3
Player9=C:\DirEttore\Demo\Jingles\DirEttore Jingle 3 [0-18-45-1].MP3
Player10=C:\DirEttore\Demo\Jingles\DirEttore Jingle 4 [0-16-66-1].MP3
Player11=C:\DirEttore\Demo\Jingles\DirEttore Jingle Long [0-18-31-1].MP3
Player12=Empty Slot

15.9. Configurazione della rotazione


Per potere trasmettere musica occorre istruire la regia riguardo il posizionamento dei file
audio. Si suggerisce di configurare bene le cartelle per maggiore chiarezza e semplicità
d’utilizzo del software.

Figura 15.36. Finestra Rotation


Dalla cartella madre contenente tutti i file audio si possono creare tutte le sottocartelle
contenenti ciascuna la sua categoria di file.
Adesso è utile assemblare la musica selezionata in una sorta di lista ordinata, in modo di
avere il controllo di quanto trasmesso, e soprattutto su quando venga fatto.
Custom elements identifica gli elementi personalizzabili. Per elementi personalizzabili si
intendono quei contenuti che si preferisce raccogliere con un nome unico.
Cliccando sul comando add new si visualizza una finestra intitolata add new custom
element; successivamente se ne può aggiungere uno.
Per farlo occorre dargli un nome contenente massimo 50 caratteri; dopo tale operazione,
cliccare sul comando della navigazione all’interno delle cartelle e selezionare la cartella
contenente i brani da inserire in categoria.
Fare doppio click sulla cartella che si vuole assegnare al nuovo elemento personalizzato.
Infine, si deve selezionare il metodo di ricerca desiderato.
Di default, un nuovo elemento personalizzato cerca i brani supportati solo nella cartella
associata, ma se si seleziona lo scan method la ricerca verrà estesa a tutte le sottocartelle.
Questo metodo viene chiamato “scansione ricorsiva” e permette all’utente di organizzare
meglio la rotazione. L’unica cosa da ricordare è che la scansione ricorsiva consuma risorse
e può compromettere la velocità di risposta del sistema.
Una volta terminato, cliccare su OK.
Controllare la metà superiore della finestra rotation (sotto l’header chiamato appunto
custom elements) per visualizzare l’elemento personalizzato.
Si continui creando un semplice programma per cominciare.
Dopo avere creato un numero di elementi personalizzati congruo al programma che si
vuole creare, ci si concentri sulla parte rotazione della finestra divisa, chiamata anch’essa
rotazione.
Si clicchi sull’elemento che si vuole caricare per primo all’interno della rotazione. Fare
doppio click sull’elemento o semplicemente selezionarlo e premere selected custom
element nel frame insert into rotation.
Ripetere l’operazione a piacimento per comporre il programma.
Prima di salvare non dimenticarsi di scegliere la cartella degli sweeeper che la regia userà
quando verrà avviata la rotazione.
Dare un nome alla rotazione e premere save.
15.10 Configurazione della playlist
Questa finestra rappresenta il secondo metodo di DirEttore per trasmettere un programma.
Diversamente da quanto avviene in modalità rotazione, dove i brani sono scelti
casualmente, in questo caso i brani e gli elementi vanno fissati chiaramente.
In questa finestra, alto a sinistra in si vedono i file supportati e l’albero delle cartelle. Se si
fa doppio click su un brano, questo sarà aggiunto al pannello di costruzione della playlist a
destra, nella posizione corrente del cursore. Gli elementi della playlist possono essere
rimescolati tramite il drag & drop.
Questi due pannelli affiancati possono essere ridimensionati per visualizzare meglio le
informazioni.
Deve essere specificata una cartella degli sweeper associati, in modo da scegliere gli
sweeper appropriati per una particolare playlist. È anche possibile aggiungere sweeper,
annunci temporali e elementi di rotazione per arricchire la programmazione ma, per questo
motivo, la durata della playlist non sarà calcolabile perché gli elementi saranno presi
casualmente man mano.
Anche in questo caso si può cancellare l’elemento selezionato oppure tutti quanti ed in più
salvare o caricare una playlist precedentemente salvata. Si possono importare anche file
M3U. Lo schedulatore di eventi è la funzione che inserisce la playlist all’interno del flusso
del programma al tempo specificato e con dei parametri indicati.
Se invece si vuole passare dalla modalità rotazione alla modalità playlist, basta premere il
comando corrispondente nella finestra principale. In questo modo la lista corrente
contenuta nel playlist builder sarà trasmessa alla fine del brano corrente, ignorando il resto
della rotazione.
Questo è utile qualora servisse eliminare rapidamente una sequenza di brani
precedentemente caricata, ma occorre fare attenzione, perché la playlist ricomincerà da
capo una volta terminata.
È possibile preascoltare il brano selezionato anche nell’albero delle cartelle o nel playlist
builder. Basta selezionare un brano e premere il comando prelisten.

Figura 15.37. Prelisten

È anche possibile abilitare la funzione autoplay mediante il comando omonimo. In questo


modo, i brani selezionati inizieranno ad essere riprodotti automaticamente. In entrambi i
casi il nome del brano caricato nel player di preascolto è visibile nella barra del titolo della
finestra della playlist.
Il volume di preascolto può essere impostato tramite la barra di scorrimento verticale. Tale
impostazione è globale. Questo significa che le modifiche fatte si rifletteranno anche nella
finestra di preascolto.
La creazione di una playlist complessa può essere influenzata dalla difficoltà nel
rintracciare errori.
Per questo motivo la finestra contiene tre strumenti importanti:
♦check duplicates (controllo duplicati)

♦check consistency (controllo di coerenza)

♦check duration.

L’errore più comune durante la creazione di una playlist è l’inserimento della stessa traccia
più di una volta. Il controllo dei duplicati avvia la ricerca di qualsiasi voce duplicata. Se
viene trovato un duplicato, sarà elencato nella finestra dei risultati ed evidenziato nella
playlist.
Una playlist è sostanzialmente fatta di file. Se si modifica il nome di un file referenziato in
una playlist, l’automazione non sarà in grado di trovare il brano.
Il comando di controllo della coerenza esegue una ricerca di tutti i file contenuti nella
playlist e restituisce quelli mancanti (anche loro evidenziati nella playlist). Gli elementi
particolari (annunci temporali, sweeper e gli elementi di rotazione) sono esclusi dalla
ricerca.

Figura 15.38. Strumenti di controllo della playlist

Se si vuole sapere la durata di una determinata playlist è sufficiente premere il tasto


controllo durata. Gli elementi speciali sono esclusi dal calcolo; in questo caso, perché non
è possibile prevedere la durata di un elemento che viene scelto in fase di esecuzione. Il
livello di precisione restituito è quello impostato nella scheda parametri generali della
finestra di configurazione.
Anche qui si può vedere lo strumento di ricerca. Esso consente all’utente di cercare i file
audio supportati in una data cartella, aggiungendo quella su cui si fa doppio click in
corrispondenza della playlist corrente, nella posizione del cursore. Per aiutare l’utente a
ricordare l’ultima playlist caricata nell’editor di playlist, la barra del titolo contiene il
nome dell’ultima playlist caricata. Il programma chiederà se si desidera sovrascrivere il
file corrente una volta che la playlist viene modificata e salvata. La barra del titolo
conterrà anche l’ultimo brano preascoltato.
15.11. Schedulatore degli eventi

Figura 15.39. Schedulatore degli eventi

Da questa finestra è possibile controllare e modificare l’attuale comportamento del


programma, con l’inserimento di eventi che possono attivare tracce, rotazioni, sequenze,
playlist, elementi di rotazione, annunci temporali e sweeper. Aggiungere un evento è
un’operazione semplice; basta seguire poche semplici regole.
In primo luogo è necessario decidere l’ora di inizio e la data di avvio/fine dell’evento che
si desidera aggiungere (se necessario). Poi la ripetizione desiderata (che può anche non
esserci) che inserisce l’evento solo al momento esatto, o ogni ora se lo stesso elemento
viene ripetuto ogni ora ai minuti e secondi impostati. In questo caso, l’orario sarà
sostituito da caratteri di sottolineatura (__: mm:ss) nella visualizzazione.

Figura 15.40. Aggiungi evento

È possibile impostare l’inizio dell’evento come immediato; in questo modo il flusso di


musica sarà immediatamente interrotto e l’evento programmato avviato, altrimenti
attenderà la fine del brano in riproduzione. Si noti che un evento immediato in un elenco
di eventi (tutti con lo stesso tempo di inizio) li renderà tutti immediati.

Figura 15.41. Active days

Mai dimenticare di attivare l’evento una volta inserito, altrimenti non sarà mai
programmato (per garantire retrocompatibilità, gli eventi salvati prima della versione 1.8
sono abilitati di default).

Figura 15.42. Insert rotation elements

L’ultima cosa da scegliere è quando l’evento deve essere attivo. I giorni della settimana
non selezionati sono quelli in cui l’evento non verrà inserito nel flusso di automazione. A
questo punto è necessario selezionare il tipo di elemento che si desidera aggiungere.
Premere il comando sfoglia se è necessario inserire tracce, rotazioni, le sequenze e le
playlist. Gli elementi di rotazione, gli annunci temporali e gli sweeper hanno i loro
comandi separati. Qualora selezionati, l’impostazione corrente verrà copiata nell’elemento
appena aggiunto, nella posizione in cui si trova il cursore. Il comando dell’elemento di
rotazione ha una propria finestra da cui è possibile scegliere l’elemento corretto.
È importante spostare l’evento inserito al posto desiderato, perché se c’è più di un
elemento con lo stesso tempo di inizio, DirEttore seguirà la posizione in elenco per
aggiungere gli elementi nella playlist dell’automazione. Gli elementi possono essere
spostati tramite drag & drop.
In presenza di molti eventi può essere difficile trovare un evento programmato per iniziare
in un giorno specifico. Lo schedulatore degli eventi consente di vederli organizzati per
giorno semplicemente facendo clic sulla scheda necessaria. Una volta selezionato il
giorno, è possibile visualizzare gli eventi abilitati, nascondendo quelli che sono stati
disattivati selezionando la casella in basso a sinistra dello scheduler.

Figura 15.43. Visualizzazione eventi

Gli eventi di queste visualizzazioni parziali sono di sola lettura.


Infatti, solo nella prima scheda “visualizzare e modificare tutti gli eventi” è possibile
modificare alcuni dei parametri associati ad un evento inserito, tramite un semplice doppio
clic.

Figura 15.44. View enabled events only

È possibile cambiare tutto, tranne l’evento stesso.

Figura 15.45. Eventi in programmazione

Premendo il tasto modifica l’evento viene aggiornato con i nuovi parametri. Come per
tutte le caratteristiche più importanti del programma, è possibile salvare gli attuali eventi
in programma o caricare le sessioni precedentemente memorizzate utilizzando i comandi
associati. Bisogna assicurarsi di attivare gli eventi in programma, altrimenti nessuno degli
eventi inseriti sarà programmato (indipendentemente dal loro status, abilitato o meno).
L’ultima cosa importante riguardo gli eventi in programma è la seguente: se l’inserimento
di un particolare elemento si verifica un secondo prima della fine del brano attualmente
riprodotto, questo sarà riprogrammato per il prossimo minuto.
15.12. Pianificazione delle pubblicità

Figura 15.46. Pianificazione della pubblicità

La versione Broadcast offre un potente strumento che permette all’utente di programmare


spot indipendentemente dagli eventi in programma. È possibile inserire fino a 20 spot ogni
5 minuti come un unico blocco indivisibile. Gli eventi che si verificano durante la
trasmissione spot saranno messi alla fine del blocco spot. Verrà eseguita la stessa
operazione per eventi di avvio immediato, che in questo caso non saranno più immediati.
La prima scheda della finestra è l’editor principale del pianificatore degli spot. È una
griglia temporale che divide le 24 ore in intervalli da 5 minuti. In ogni riga è possibile
inserire fino a 20 spot che verranno riprodotti seguendo l’ordine di inserimento da sinistra
a destra. Le celle che vengono lasciate vuote tra due spot pubblicitari non vengono
considerate. All’interno di questa griglia è possibile aggiungere, eliminare, spostare e
scambiare gli spot lungo la griglia del tempo, così come modificare le proprietà e
modificare il colore dello spot.
Il menu contestuale permette infatti di duplicare degli spot, al fine di definire un insieme
di orari di trasmissione, eliminare un elemento indesiderato, spostarlo e sostituirlo. È
anche possibile trovare il precedente ed il successivo spot che corrisponde a quello
selezionato. Un colore può essere aggiunto ad uno specifico spot ed ogni cella contenente
quello spot sarà colorata con lo stesso colore.
Se si fa doppio clic su una cella vuota (oppure facendo click con il tasto destro e quindi
scegliere aggiungere) si visualizzerà una finestra in cui viene richiesto il file da inserire
nella cella selezionata.
Ogni elemento inserito è abilitato e attivo tutti i giorni di default, non scade mai ed è
messo in coda calendario immediatamente dopo aver premuto il comando OK nella
finestra del pianificatore spot pubblicitari.
Se, al contrario, si fa doppio click su una cella non vuota, si visualizzerà un editor. In
questo editor si può abilitare lo spot, settare l’inizio e la data di scadenza, oltre che ai
giorni in cui dovrà essere attivo.
Queste informazioni sono disponibili, in sintesi, all’interno della cella selezionata.
Il blocco commerciale può essere identificato tramite un jingle di intro, un effetto
separatore tra due spot ed un jingle d’uscita che informa l’ascoltatore che il blocco
pubblicitario è finito.
Si può scegliere di usare uno degli identificatori, tutti, oppure nessuno. Piuttosto che usare
la barra di scorrimento, quando si vuole inserire un numero di spot separati temporalmente
si può facilmente accedere all’inizio dell’ora semplicemente premendo il comando
associato. Questo farà in modo che la griglia mostri l’orario prestabilito ed i primi trenta
minuti. È anche possibile salvare un insieme di spot, resettare l’intera griglia o richiamare
una lista salvata tramite il comando load.
Occorre abilitare gli spot, altrimenti nessuno di essi verrà inserito (a prescindere dal loro
stato, abilitato o meno) e non saranno schedulati.
Gli spot inseriti sono identificati tramite un’icona e uno sfondo verde. La figura 15.46
mostra l’inserimento di tre spot con i loro intro, sweeper e outro associati.
Di default, il blocco commerciale ha una priorità temporale rispetto ai programmi. A parità
di tempo partirebbe quindi prima la pubblicità. Se si vuole invertire la priorità c’è un
settaggio importante nella finestra di configurazione sotto il tab automation behaviour che
indica proprio la priorità degli eventi schedulati.
Se si vuole vedere l’intera immagine al fine di capire quante volte sia stato schedulato uno
spot o quali spot verranno trasmessi è possibile visualizzare i vari giorni usando i comandi
dei tab in cima alla finestra del pianificatore degli spot.
Essendo soltanto una vista d’insieme (l’editing si fa soltanto nella griglia principale, il
primo tab), si può determinare se si vogliono vedere solo gli spot abilitati oppure tutti, in
un particolare giorno della settimana.
Se uno spot è presente nel pianificatore, ma non esiste più come file, non sarà inserito e i
separatori si adegueranno. Se non è presente nessuno spot di un blocco, non saranno
inseriti nemmeno gli intro, gli outro e i separatori.
15.13. Editor delle sequenze
Il concetto alla base di una sequenza è molto chiaro: la necessità di suonare un certo
numero di brani, separati da un jingle, con un’introduzione ed un brano o un jingle finale.
L’implementazione di una sequenza è semplice; tuttavia questa semplicità nasconde
notevoli potenzialità. Se, per esempio, si dovesse creare una presentazione di trailer di
film, basta creare un elemento di rotazione dove sono inseriti tutti i trailer. Quindi settare
l’intro, l’outro e i separatori, senza fare altro.
DirEttore popolerà casualmente la lista con il numero selezionato di elementi di rotazione.
La stessa cosa si può applicare ai blocchi pubblicitari, dove l’unica cosa alla quale bisogna
fare attenzione è come organizzare gli elementi di rotazione usati per trasmettere gli spot e
quando schedularli.
Partendo dall’alto della finestra dell’editor di sequenze si può notare che è possibile
assegnare un file all’intro, all’outro e ai separatori della sequenza. Premere il comando
corrispondente per scegliere il jingle desiderato, oppure nessuno se non se ne vuole
inserire all’interno della sequenza.
Adesso premere view per selezionare l’elemento di rotazione desiderato, che verrà inserito
il numero di volte impostato (da 1 a 20). Se alla fine si pensa di avere creato una sequenza
incorretta, si potrà resettare tutto tramite il comando reset all e quindi ricominciare. Una
volta correttamente terminato, si può salvare la sequenza tramite il tasto save ed andare
allo schedulatore degli eventi per selezionare quando trasmettere la sequenza. È sempre
possibile riaprire una sequenza precedentemente salvata tramite il comando load.
15.14. Editor dei cue point
All’interno dell’editor dei cue point si possono settare i punti start, intro e mix per ciascun
brano, così come le tipologie di fading e l’opzione start from intro point. Queste opzioni
sono memorizzate modificando il nome file, mettendo dei caratteri alla fine.
Questa modalità di salvataggio dei cue point consente di non dover avere un database
dove memorizzare le informazioni, permettendo di spostare la propria libreria di brani
senza particolari problemi e senza dovere aggiornare nulla.
Una volta che il file è stato caricato, viene effettuato il calcolo della forma d’onda da
visualizzare. Durante il processo è possibile operare sull’editor normalmente, ma non si
può salvare. Premere play e settare il punto dal quale il brano comincerà, il punto dal
quale inizia la parte vocale (intro point) e il punto di mix. Set definisce il punto mentre get
lo richiama.
Una volta settati, tutti i punti possono essere troncati per avere una maggiore precisione
tramite i due comandi trim.
Il trimming può solo essere fatto quando il brano è in riproduzione. Si può testare il punto
di mix con la tipologia di fade associato, premendo il comando test mix point, non
disponibile quando è stata selezionata l’opzione do not fade.
Si può aggiustare il tempo di preroll (da 0 a 30 secondi, ad intervalli di un secondo) per
effettuare il test del mix point, indicando il numero di secondi prima dello stesso.
Sono disponibili quattro tipi di fading:
♦fast

♦normal (impostazione di default)

♦slow

♦cut.

C’è anche l’opzione per non effettuare il fading al punto di mix: per fare ciò selezionare
do not fade. Si può anche forzare il brano per cominciare sempre dal punto di intro; in
questo modo il brano salterà l’inizio e partirà dal punto di intro impostato.
Silence detection è l’opzione che può essere usata per aggiustare automaticamente la
posizione d’inizio e di fine in base ai livelli audio impostati nello slider dedicato. Si
possono scegliere i livelli di silenzio separatamente oppure contemporaneamente per
entrambi i punti.
Si può anche abilitare il riconoscimento automatico al caricamento per i brani senza
nessun assegnazione dei cue point.
La finestra dei dettagli dei brani mostra il tipo del brano fornendo informazioni avanzate
su codifica, frequenza di campionamento, bitrate e numero di canali. Se la tipologia di
codifica è MP3, il titolo, l’artista e il nome dell’album verranno letti dai tag ID3, qualora
impostati.
Si può anche visualizzare il livello e lo spettro del brano, insieme allo slider del
preascolto, per fornire tutti i controlli e le analisi del brano selezionato. Ci sono quattro
contatori: il primo (partendo dall’alto) mostra la posizione corrente, corrispondente allo
slider.
Il secondo mostro il tempo di trasmissione reale, ovvero il tempo di trasmissione occupato
dal brano tenendo conto dei cue point. Questa opzione è utile perché in questo modo si
può verificare l’attuale durata del brano mentre lo si taglia.
Il terzo contatore è una visualizzazione statica della durata totale del brano caricato.
Dalla versione 1.9 il voice tracking è diventato parte integrante dei settaggi associati al
singolo brano. È ora possibile rendere un brano una voice-track semplicemente abilitando
la casella voice-track. In questo modo, quando il brano è piazzato nel flusso di
automazione verrà marcato come sweeper e trattato come uno sweeper o una voice-track
in dipendenza dai settaggi dell’automazione.
L’opzione voice-tracking nasconde un problema. Se un particolare brano, come jingle o
annunci, non deve essere sovrapposto da una voice-track, il settaggio del brano deve
impedire all’automazione di evitare la sovrapposizione.
La casella no voice track overlap serve proprio a questo. Se abilitata, il brano associato
non avrà nulla di sovrapposto prima del mix point.
15.15. Configurazione
Per visualizzare la finestra di configurazione, premere il comando configuration in alto a
destra nella finestra principale.
In questa finestra si possono fornire a DirEttore delle istruzioni per personalizzare la
stazione radiofonica.
15.15.1. Parametri generali
Inserire il nome della radio (massimo 50 caratteri);
♦selezionare enable autostart se si vuole che DirEttore cominci a riprodurre all’avvio del
processo;
♦selezionare enable autocue se si desidera avere il brano nel player on cue (il player che
posiziona il brano in modalità “pronto per partire”) al momento della selezione, ad
automazione ferma. Questa operazione richiede mediamente un secondo. Gli annunci
temporali e gli sweeper sono esclusi dall’autocue;
♦selezionare enable real-time error check se si vuole che i brani mancanti o indisponibili
siano marcati con uno sfondo rosso;
♦selezionare enable splash screen se si vuole la finestra con l’andamento progressivo di
caricamento all’avvio;
♦selezionare enable duration calculation per permettere al programma di calcolare la
durata totale della playlist o della rotazione, insieme al calcolo della durata di ogni
singolo brano nella finestra di playlist o rotazione. Si può anche scegliere la velocità (e
di conseguenza l’accuratezza) del processo di calcolo. Si può anche salvare la
configurazione premendo il comando OK piuttosto che salvare quando il programma è
chiuso. Questa opzione è utile in caso di crash del programma.

Figura 15.47. Parametri generali della regia

15.15.2. Track defaults tab


Il tab track defaults permette di settare il punto di mix di default, la tipologia di fading e la
lunghezza massima assoluta di tutti i brani non editati tramite il cue points editor.
Nel campo default mix point si può impostare il numero di secondi che devono trascorrere
tra il punto di mix e la fine del brano usando le frecce su e giù. L’intervallo va da 0 a 30
secondi, a gradini da 0,1 secondi.
Da quel punto in poi si applicherà il fading scelto.
La sezione di massima lunghezza permette di impostare o di non impostare la durata
massima che un brano al quale non sono stati assegnati cue point non può superare.
L’intervallo va da 1 a 10 minuti con gradini da 1 secondo, mentre il comando default
imposta la durata a 5 minuti. Un metodo alternativo disponibile per impostare
automaticamente i punti di start e di mix è l’analisi dell’ampiezza del suono, metodo
mutualmente esclusivo con il metodo di scelta del punto di mix precedentemente discusso.
In questa sezione si può scegliere indipendentemente sotto quale livello sonoro in decibel
si farà partire il punto di start e quale per quello di mix.
Si consiglia di provare livelli bassi per il punto d’inizio (da – 20 a – 25 decibel) e livelli
più alti per il punto di fine (da – 5 a – 10 decibel).

Figura 15.48. Track defaults

15.15.3. Track Info tab


Se si vogliono aggiungere maggiori informazioni ad uno specifico brano (ad esempio la
biografia dell’artista o qualsiasi cosa sia utile) è necessario impostare tre parametri:
♦il ritardo di visualizzazione (display delay), ovvero il tempo che deve passare prima che
le informazioni siano visibili nell’area delle informazioni sui brani (in basso a sinistra);
♦il ritardo di ricerca (browse delay), ovvero il tempo che deve passare prima che le
informazioni siano mostrate mentre ci si muove attraverso la finestra di
playlist/rotazione con il mouse o tramite la tastiera;
♦il percorso delle informazioni sui brani (track info path), ovvero il percorso dentro il
quale la regia cercherà i file .dti che contengono le informazioni precedentemente
salvate sui brani.
Nel tab track info si può anche impostare la grandezza del font che verrà usato per
visualizzare le informazioni sul brano.

Figura 15.49. Track info tab

15.15.4. Logging tab


Se si abilita il logging, selezionando la casella enable logging DirEttore registrerà senza
dare segnalazioni tutto quello che verrà trasmesso dalla regia, insieme alle azioni più
importanti intraprese dal processo di automazione, come inizio, fine e terminazioni non
previste.
Si deve scegliere un percorso dove salvare un file di log. Il formato del file di log è
DDMMMYYYLog.txt.
Questo significa che c’è un solo log per singolo giorno. In questo modo, tutte le
informazioni che possono interessare società come la SIAE saranno raccolte in questi file.
L’opzione enable on-air track file permette al regista di inviare il nome del brano corrente
ad un file, chiamato DirEttore.dtf, per poterlo inviare ad un encoder che possa leggere ed
inviare metadata partendo da un file esterno al flusso (uno su tutti EdCast). È possibile
abilitare gli avvisi d’errore (enable error warnings) se si vuole essere informati (e quindi
disabilitare la generazione dell’on-air track file) ogni volta che c’è un errore di scrittura
dei file.
Se l’opzione non è impostata, non verranno mostrati messaggi e la scrittura sarà
ripristinata solo dopo che l’errore sarà risolto.
Di default il testo generato durante uno spot pubblicitario è advertisement ma è possibile
sostituirlo con una frase personalizzata, lunga al massimo 50 caratteri.
Figura 15.50. Logging tab

15.15.5. Rotation tab


Tramite il tab rotation si può variare il comportamento della struttura della rotazione,
scegliendo il minimo intervallo in brani per la ripetizione di un brano già trasmesso.
L’intervallo va da 5 a 1000 brani.
Questa distanza minima è garantita se e solo se ci sono brani sufficienti all’interno delle
cartelle settate per tutti i singoli elementi scelti per quella rotazione. È possibile estendere
il controllo anche all’artista, scegliendo l’opzione enable artist separation control, per
evitare che uno stesso artista sia riprodotto troppo spesso. Quest’ultima opzione funziona
soltanto se la struttura del nome file dei brani è così definita: Nome artista – Nome brano.
Infine, se è selezionata l’opzione restore session at startup, il programma ricorderà
l’ultima distanza minima tra i brani quando si costruirà la rotazione della sessione
successiva.

Figura 15.51. Rotation tab

15.15.6. Panic tab


Per far funzionare al meglio la funzione panic occorre specificare un percorso dove sono
memorizzati i file antipanico. I file antipanico verranno richiamati cliccando sul comando
panic della finestra principale.
Se all’interno della cartella indicata non ci sono file riproducibili l’opzione non sarà
disponibile, per cui occorre prestare attenzione.
È anche importante impostare il numero di file (da 1 a 20) che verranno inseriti premendo
il comando panic.
Figura 15.52. Panic tab

15.15.7. Sweeper and voice-tracks tab


Per usare la funzione sweeper deve essere specificato il percorso in cui sono memorizzati
gli sweeper stessi.
Quando l’opzione immediate start on overtaking viene abilitata, lo sweeper verrà
programmato per iniziare all’inizio del brano associato, se la differenza tra il punto di intro
e la durata dello sweeper supera il numero di secondi impostato. Questo meccanismo
viene attuato per evitare lunghi ritardi dall’inizio del brano all’inizio dello sweeper.
È anche possibile impostare la quantità di riduzione del volume del brano nel momento in
cui è presente lo sweeper, da 0 a – 30 decibel. Gli avvisi sul corretto uso della funzione
sweeper sono pienamente spiegati in questo stesso tab.
Se è abilitata l’opzione enable voice-tracking tutti i brani marchiati come voice-tracks e
gli elementi sweeper agiranno in modo differente. La principale differenza tra uno
sweeper ed una voice-track, come mostrato in figura 15.54, è che se la durata del brano da
mixare è più grande della durata dell’intro la voice track sfumerà il brano precedente e
inizierà in modo da finire all’esatto intro point del brano successivo, mentre lo sweeper
aspetterà la fine del brano precedente e ritarderà l’inizio del brano successivo, per
terminare all’esatto punto di intro.

Figura 15.53. Sweeper and voice-tracks tab


Figura 15.54. Differenza tra sweeper e voice-track

15.15.8. Time announcement tab


Nella finestra time announcement si può configurare il posizionamento dei file contenenti
gli annunci selezionando time announcement file path. Si deve anche selezionare il tipo di
file (.wav oppure MP3). Gli annunci temporali devono avere una struttura definita, in
modo che la regia possa cercare il file corretto. La struttura è la seguente:
♦HRSXX (.wav o .MP3) per le ore con minuti

♦MINXX (.wav o .MP3) per i minuti

♦s HRSXX_O (.wav o .MP3) per le ore in punto.

È possibile testare se i settaggi sono corretti usando il comando test. In questo modo
l’annuncio temporale sarà riprodotto nel player di preascolto. Qualora qualcosa vada
storto comparirà un messaggio d’avviso.

Figura 15.55. Time announcement tab

15.15.9. View tab


La visualizzazione playlist/rotazione consente di vedere tutte le informazioni contenute
all’interno dei brani, organizzandole in colonne.
Se non si vogliono visualizzare alcune delle informazioni fornite, questa finestra consente
di selezionare le informazioni di cui realmente si ha bisogno. Il nome dell’evento ed il
titolo del brano non possono essere nascosti.
Figura 15.56. View tab

15.15.10. Audio cards tab


Ci sono molti player al lavoro nell’automazione audio cards, tutti raggruppati in modo di
essere assegnati ad una scheda audio dedicata. Il primo gruppo è l’on air group (i 4 player
on air, il player degli sweeper e delle voice-track e i player degli annunci temporali). Il
secondo è dedicato ai 12 player degli effetti istantanei mentre il terzo è dedicato al player
di preascolto.
I player on air possono essere divisi in sottosezioni (rimanendo raggruppati nel loro
gruppo logico) e ciascun player può avere la sua scheda audio personale. L’assegnazione
delle schede audio può avvenire a tempo di comando anche se con delle disconnessioni.

Figura 15.57. Audio cards tab

Figura 15.58. Single/multiple soundcards

I player che subiscono modifiche inviano i loro segnali alla scheda audio di nuova
assegnazione immediatamente dopo che si è premuto il comando OK.
Alcune schede audio con output multipli potrebbero mostrare un numero di canali minore
rispetto a quelli fisicamente presenti. Questa differenza dipende dall’implementazione dei
driver Direct Sound. I driver ASIO non sono supportati.
15.15.11. Compressor tab
Il compressore DSP è un oggetto DirectX Media immerso nell’automazione che permette
il livellamento del suono dei segnali audio provenienti dai player on air, dai player degli
effetti istantanei, dagli sweeper e dagli annunci temporali. I parametri usuali (guadagno,
attacco, rilascio, soglia e ratio) possono essere impostati in questo tab. Il miglior modo per
settare tutto è fare dei tentativi e vedere come reagisce il sistema alle modifiche man mano
fatte.

Figura 15.59. Compressor tab

15.15.12. Equalizer tab


L’equalizzatore è il secondo oggetto DirectX Media immerso nell’automazione. Permette
l’equalizzazione sonora dei segnali audio che provengono dai player on air, dai player
degli effetti istantanei, dai player degli sweeper e degli annunci temporali. Ci sono 10
bande disponibili, ciascuna con un intervallo di 30 decibel (da + 15 a – 15). È importante
effettuare cambiamenti puntuali ed ascoltare come ogni nuova impostazione modifichi
l’audio. Per eliminare distorsioni non volute, si provi ad utilizzare guadagni negativi.
Il percorso audio dall’output dei player all’output della scheda audio è indicato in figura
15.61.

Figura 15.60. Equalizer tab

Figura 15.61. Percorso dai player alla scheda audio

15.15.13. Password tab


Qualora servisse proteggere l’accesso alla finestra di configurazione è possibile abilitare
una password dal tab password. Questa modalità di sicurezza non è particolarmente
efficace ma serve soltanto come semplice metodo di filtraggio degli accessi ad una delle
aree più importanti del programma. La password deve essere inserita due volte e il
comando di cambio password deve essere premuto per confermare la password impostata
o cambiata.
Si possono selezionare i comandi della finestra principale che si vuole abilitare dopo che è
attivo il controllo password.

Figura 15.62. Password tab

I player degli effetti istantanei saranno sempre attivi ad ogni utente perché fanno parte del
programma e non delle configurazioni della regia. Una volta che la password è impostata,
ogni volta che il comando di configurazione o l’equivalente tasto della tastiera viene
premuto comparirà la finestra per l’inserimento della password.
Non c’è un numero massimo di volte in cui si può inserire una password sbagliata ma il
limite di cinquanta caratteri della password consente di impostare password resistenti
anche ad un brute force attack.

Figura 15.63. Inserimento password

15.15.14. Remote control tab


La finestra remote control rappresenta un’importante funzione della regia da usare insieme
al programma DirEmote. Si può abilitare e disabilitare il server di controllo remoto
inserito all’interno di DirEttore e permettere l’uso remoto delle opzioni break after, next,
fade (e le relative funzioni), play, stop e i player degli effetti istantanei.

Figura 15.64. Remote control tab

È possibile autorizzare uno specifico indirizzo IP a connettersi da remoto oppure


autorizzare tutti i computer connessi alla stessa rete. Si può anche abilitare la funzione
start da remoto tramite l’accettazione di comandi di start da remoto e/o mandare lo stesso
comando ad uno specifico indirizzo IP. In questo modo, quando l’automazione si ferma
(manualmente o tramite un comando break after), si manderà il comando all’indirizzo IP.
Questo è un semplice metodo per cambiare il sistema di playout senza interruzioni o la
necessita di un regista in sede.
Il controllo remoto utilizza le porte 19860 e 19865 per comunicare, porte che sono aperte
a prescindere dallo stato del controllo remoto.
Se si usa un firewall, le porte devono essere aperte, altrimenti la funzione potrebbe non
lavorare correttamente e causare falsi allarmi di sicurezza.
Se si accetta il comando start da remoto e si manda tramite remoto il comando allo stesso
indirizzo IP del computer dove è situata la regia si creerà un loop logico tale da attivare
l’automazione ogni volta che si ferma, ricominciando immediatamente.
15.15.15. Automation behaviour tab
Nella finestra automation behaviour si possono cambiare alcuni parametri
dell’automazione. La prima sezione determina il flusso audio del programma quando si
trova in modalità playlist. Se è abilitata la modalità rotazione, l’automazione passerà alla
modalità rotazione alla fine della playlist corrente (in modalità playlist).
La seconda sezione riproduce per primi gli eventi e determina se gli eventi programmati
devono essere riprodotti prima di un blocco commerciale che ha lo stesso orario di
trasmissione. Di default, infatti, i blocchi commerciali hanno sempre la priorità.

Figura 15.65. Automation behaviour tab

15.15.16. VST effect tab


Il tab degli effetti VST abilita il processamento dei segnali audio provenienti dall’on air,
dai player degli effetti istantanei, dagli sweeper e dagli annunci temporali, tramite un plug-
in degli effetti VST compatibile. Sono disponibili sul mercato un gran numero di effetti
VST, ed essi permettono di fare le operazioni più varie, dall’equalizzazione alla
compressione. Una finestra dedicata permette all’utente di impostare i parametri
dell’effetto VST scelto usando l’interfaccia interna al programma. Per potere testare i
risultati prima di applicare l’effetto che si vuole dare ai player dell’automazione è
possibile preascoltare un brano di test. C’è anche un’opzione per avere il loop del brano di
test.
Figura 15.66. VST effect tab

Figura 15.67. Percorso audio dall’output dei player alla scheda audio

15.16. Come avviare l’automazione


Escludendo l’opzione autostart nella finestra di configurazione, ci sono due modalità
disponibili per far partire la musica:
♦premendo il comando play (o il tasto spazio associato) partirà il brano che si trova
attualmente sul player on cue;
♦premendo invio partirà il brano sotto il cursore. Ci si può muovere attraverso la lista
corrente usando le frecce o selezionando il brano desiderato. Gli sweeper e gli annunci
temporali non possono essere avviati in questo modo.

Figura 15.68. Automazione attiva e automazione ferma

Mentre si è in onda, se si vuole fare partire il brano successivo immediatamente, senza


aspettare che termini il brano attuale, ci si può limitare a premere il tasto next o il
comando [BACKSPACE] associato.
15.17. Scorciatoie da tastiera
Sono state inserite nel sistema alcune scorciatoie da tastiera per potere aiutare il regista a
controllare tutti gli aspetti dell’automazione:
♦[INVIO] riproduce il brano selezionato nella finestra playlist della finestra principale;

♦[SPAZIO] cambia lo stato dell’automazione da play a stop e viceversa;

♦[ESC] avvia la funzione panic. Deve essere premuto due volte;

♦[F1] – [F12] invertono lo stato (da play a stop e viceversa) dei player degli effetti
istantanei da 1 a 12;
♦[BACKSPACE] passa al brano successivo quando è attiva la rotazione;
♦[A] passa dalla modalità auto alla modalità live assist e viceversa;

♦[B] ferma l’automazione alla fine del brano corrente;

♦[C] apre la finestra dei cue point;

♦[E] apre la finestra dello schedulatore degli eventi;

♦[F]controllo per il live;

♦[I] finestra di configurazione dei player degli effetti istantanei;

♦[J] caricamento di un gruppo di player di effetti istantanei precedentemente salvato;

♦[L] scambia la visualizzazione live fader con rotation e viceversa;

♦[M] scambia la modalità playlist con rotation e viceversa;

♦[N] ricostruisce la rotazione;

♦[O] visualizza la finestra del pianificatore di pubblicità;

♦[P] visualizza la finestra di configurazione della playlist;

♦[R] visualizza la finestra dell’editor della rotazione;

♦[S] visualizza la finestra dell’editor della sequenza;

♦[T] visualizza la sezione delle informazioni sui brani, che è mutualmente esclusiva con la
sezione degli ultimi brani trasmessi;
♦[V] scambia la visualizzazione degli eventi con quella dei file e viceversa;

♦[X] espande o collassa la visualizzazione dei player degli effetti istantanei;

♦[TAB] attiva lo strumento di ricerca;

♦[0] visualizza la finestra di configurazione;

♦[K] visualizza la finestra con le scorciatoie da tastiera.

15.18. I file generati dalla regia


15.18.1. Listato di un file playlist
Il file salvato dalla finestra playlist ha l’estensione .dpl.
[Playlist]
AssociatedSweeperDir=C:\DirEttore\Demo\Voices
ElementsCount=5
ElementName1=NomeFile1.MP3
ElementType1=AUDIO
ElementPath1=PATH\NomeFile1.MP3
ElementName2=NomeFile2.MP3
ElementType2=AUDIO
ElementPath2=PATH\NomeFile2.MP3
ElementName3=NomeFile3.MP3
ElementType3=AUDIO
ElementPath3=PATH\NomeFile3.MP3
ElementName4=NomeFile4.MP3
ElementType4=AUDIO
ElementPath4=PATH\NomeFile4.MP3
ElementName5=NomeFile5.MP3
ElementType5=AUDIO
ElementPath5=PATH\NomeFile5.MP3

♦ Playlist è l’indicatore iniziale;

♦AssociatedSweeperDir è la directory dove sono contenuti gli sweeper collegati;

♦ElementsCount indica il numero di elementi della playlist;

♦ElementNameN indica il nome dell’elemento;

♦ElementTypeN si vedrà soltanto la voce AUDIO ma, modificandola, questa cambierà


anche nel programma;
♦ElementPathN indica il percorso assoluto del file nell’albero delle directory.

15.18.2. Listato di un file rotazione


Il file salvato dalla finestra rotazione ha l’estensione .rot.
[Rotation]
AssociatedSweeperDir=C:\DirEttore\Demo\Voices
ElementsCount=6
ElementName1=MP3
ElementName2=SWEEPER
ElementName3=TIME ANNOUNCEMENT
ElementName4=MP3
ElementName5=TIME ANNOUNCEMENT
ElementName6=MP3

♦Rotation è l’indicatore iniziale;

♦AssociatedSweeperDir è la directory dove sono contenuti gli sweeper collegati;

♦ElementsCount indica il numero di elementi della playlist;

♦ElementNameN indica il nome dell’elemento.

15.18.3. Listato di una collezione di eventi


Il file salvato dalla schedulatore di eventi ha l’estensione .evt.
[ScheduledEvents]
EventsCount=1
StartTime1=__:00:00
EventName1=Time with intro
EventType1=PLAYLIST
ActiveDays1=MoTuWeThFrSaSu
EventRepeat1=HOUR
ExpirationDate1=NEVER
StartDate1=ALWAYS
StartMode1=IMMEDIATE
EventEnabled1=TRUE
EventPath1=C:\DirEttore\Time\Time with intro.dpl

♦ScheduledEvents è l’indicatore iniziale;

♦EventsCount è il contatore degli eventi totali del file;

♦StartTimeN indica l’orario di inizio dell’evento;

♦EventNameN indica il nome dell’evento;


♦EventTypeN indica la tipologia d’evento;

♦ActiveDaysN indica i giorni della settimana in cui sarà attivato l’evento;

♦EventRepeatN indica ogni quanto tempo deve essere ripetuto; nel caso proposto hour
indica ogni ora;
♦ExpirationDateN indica quando l’evento uscirà dalla schedulazione;

♦StartDateN indica quando l’evento entrerà in schedulazione;

♦StartModeN indica se l’evento dovrà cominciare immediatamente o debba essere


ritardato;
♦EventEnabledN indica se l’evento è abilitato o meno;

♦EventPathN indica il percorso del file richiamato.

15.18.4. Listato del piano pubblicitario


Il file salvato dal pianificatore pubblicitario ha l’estensione .dcs.
[Commercials]
001001=Percorso/nomefile.MP3|16777215|MoTuWeThFrSaSu
E|ALWAYS|NEVER
[Globals]
INTRO=a
OUTRO=
SEPARATOR=

♦Commercials è l’indicatore iniziale;

♦0010001 rappresenta l’indice di riga (prime tre cifre) e di colonna (ultime tre cifre) dello
spot nel quadro del pianificatore;
♦Percorso/nomefile.MP3 indica il percorso dello spot;

♦16777215 indica il colore dello spot, in questo caso bianco;

♦MoTuWeThFrSaSu indica i giorni della settimana in cui lo spot verrà trasmesso;

♦E indica che l’evento è abilitato; c’è un trattino al suo posto se lo spot non lo è;

♦Always indica che lo spot non ha una data di inizio posticipata rispetto ad oggi;

♦Never indica che lo spot non esce mai dalla rotazione pubblicitaria;

♦i parametri globali (globals) indicano il file di intro, di outro e i separatori tra gli spot.

15.18.5. Listato delle sequenze


Il file salvato dal generatore di sequenze ha l’estensione .seq.
[Sequence]
SequenceIntro=NONE
SequenceSeparator=NONE
SequenceOutro=NONE
SequenceElement=MP4
ElementRepetition=3

♦Sequence è l’indicatore iniziale;


♦SequenceIntro è il file di introduzione impostato;

♦SequenceSeparator è il file di separazione impostato;

♦SequenceOutro è il file di uscita impostato;

♦SequenceElement è l’elemento da mettere in sequenza;

♦ElementRepetition è il numero di volte (da 1 a 20) che verrà messo in sequenza un


elemento della categoria SequenceElement.
15.18.6. Modalità di salvataggio dei cue point

Figura 15.69. Salvataggio dei cue point

Una volta impostati i punti di un file, cliccando sulla voce save cuepoints verrà salvato il
file cambiandone il nome.
Se ad esempio abbiamo un file originario del tipo: NomeArtista – Nomebrano.MP3, il
nome file dopo il salvataggio dei cue point sarà: NomeArtista – Nomebrano [N-K-J-
ZY].MP3, dove
♦N rappresenta il tempo, partendo da zero, del cue point start, espresso in decimi di
secondo. Se si è scelto che il brano debba partire da 15,1 secondi, N varrà 151;
♦K rappresenta il tempo, partendo da zero, del cue point intro, espresso in decimi di
secondo. Se il cantante comincia a cantare da 23,1 secondi, N varrà 231;
♦J rappresenta il tempo, partendo da zero, del cue point mix, espresso in decimi di
secondo. Se si denota che il cantante smette di cantare a partire dai 4 minuti e 12
secondi, N varrà 2412;
♦Z vale 4 se è impostato il flag di partenza obbligatoria dal cue point start;

♦Y cambia in base alla tipologia di fading scelto.

Ovviamente occorre stare attenti a cambiare i cue point di un file solo quando ancora non
è inserito nella rotazione del programma o non è in trasmissione in quel preciso momento.
Regole di buon senso, ma non fa mai male ricordarle.
15.18.7. Listato dei player degli effetti istantanei
Il file salvato dall’editor dei player degli effetti istantanei ha l’estensione .ipl.
[InstantPlayers]
Player1=Path/Nomefile.MP3
Player2=Path/Nomefile.MP3
Player3=Path/Nomefile.MP3
Player4=Empty Slot
Player5=Empty Slot
Player6=Empty Slot
Player7=Path/Nomefile.MP3
Player8=Path/Nomefile.MP3
Player9=Path/Nomefile.MP3
Player10=Empty Slot
Player11=Empty Slot
Player12=Empty Slot

♦InstantPlayers è l’indicatore iniziale;

♦PlayerN contiene il percorso e il nome dell’effetto istantaneo, oppure l’indicazione empty


slot se vuoto.
16. GISS.tv
GISS.tv è un sito che fornisce un servizio paragonabile ad un server Icecast gratuito. Per
ottenere il servizio bisogna andare sul sito www.giss.tv e cliccare sul link create your
channel, che si trova a metà pagina. Si deve poi compilare il modulo inserendo un
indirizzo mail e il nome del mountpoint scelto, ad esempio NomemioCanale.mp3.

Figura 16.1. Home page di GISS.tv

Una volta compilato il modulo arriverà una mail per attivare il canale.
Insieme al link per attivare il canale verrà inviata una password da conservare
accuratamente.

Figura 16.2. Channel edit/Interface setup

16.1. Configurazione del canale


Una volta sul sito, scegliere il link Edit Your Channel.
Si visualizzerà un form con due campi da compilare; il primo è il nome del mountpoint,
che dovrà essere inserito senza slash; il secondo campo richiede la password di streaming
arrivata via mail.
Una volta effettuato il login si verrà rinviati ad una pagina con due tab: il primo è channel
edit, mentre il secondo è interface setup.
All’interno del tab channel edit si può editare una serie di parametri quali e-mail,
descrizione del canale, keywords, is public (che rappresenta la visibilità che si vuole dare
al canale), il sito Internet correlato al canale, l’indirizzo del logo del canale ed il tipo di
contenuti scelti.
Andando adesso su interface setup si può creare l’interfaccia, che è un mezzo per potere
veicolare un’immagine del canale. In questo tab è possibile impostare la data del prossimo
programma, con una relativa descrizione formattabile in HTML. Si possono anche
impostare delle parole chiave ed indicare un file OGG o MP3 da fare ascoltare nel caso in
cui non ci fosse una sorgente attiva in un particolare momento per un qualsivoglia motivo.
Si può attivare una chat e impostare un comando per il servizio Ekiga o Skype.
Una volta editata l’interfaccia si potrà visitarla ad un URL costruito così:
http://giss.tv/interface/?mp=nomecanale.estensione.
17. Caster.fm
Caster.fm è un sito Internet che fornisce un server di streaming Icecast gratuito,
esattamente come visto a proposito di Giss.tv, ma con molti altri servizi a corredo.
Caster.fm è una vera e propria piattaforma per la gestione di una web radio, almeno dal
punto di vista della presentazione all’utente. Una volta caricato il sito www.caster.fm, si
visualizzerà in alto un menu con alcune opzioni. Registrarsi è molto semplice: basta
compilare il modulo presente alla pagina di registrazione, dove verranno anche richieste
due password, una per la gestione del pannello di controllo (e con la quale effettuare il
login) e una per la trasmissione.
Una volta registrati, occorre effettuare il login con le credenziali impostate per essere
all’interno del pannello di controllo. Comparirà la dashboard, che è la home page del
servizio.
All’interno della dashboard ci sono cinque tab, nell’ordine:
♦server

♦website

♦tutorials

♦downloads

♦embed.

17.1. Tab server


All’interno del tab server comparirà questa scritta:
Your Server is OFFLINE,
To start your broadcasting you must first START YOUR RADIO SERVER, then you will see the broadcasting
details.

Cliccando sul link si farà partire il server. A questo punto comparirà una finestra molto
simile a questa:
Server IP: indirizzo Port: porta
Mount: Bitrate:
Username: Password:

I dati identificabili in questo modulo sono chiari se si ha una minima esperienza nella
realizzazione di un’emittente (anche con altri software).
Una volta impostati tutti i dati forniti dal servizio all’interno dell’encoder si potrà
cominciare a trasmettere.
Occorre ricordare che il bitrate massimo utilizzabile per questo server è di 128 kbps, che
però è più che sufficiente per la maggior parte delle web radio.
17.2. Tab website
Andando sul tab website si aprirà una pagina con tre campi:
Your Website Address Is:
HTML Link to your website:
BB Code Link to your website: (for forums)
Raggiungendo la pagina dell’indirizzo (che è nella forma nomeregistrato.caster.fm) si
troverà una pagina polifunzionale con molte opzioni utili per la nuova emittente.
All’interno di questo sito c’è qualcosa di simile alla finestra mostrata nella figura 17.1.

Figura 17.1. Home personale di Caster.fm

A destra si troverà un box con alcune immagini (una casa, un telefono, un fumetto, un
calendario ed una ruota dentata).
Ognuna di queste immagini apre uno slider in basso a sinistra. Il sito dell’emittente parte
di default con lo slider Radio dashboard, che corrisponde al disegno della casetta.
Radio dashboard permette agli ascoltatori di inserire commenti, ad esempio tramite
Facebook.
Il telefono indica lo slider chiamato Request a song.

Figura 17.2. Finestra di richiesta brani

Tramite questa finestra si potrà dedicare una canzone a qualcuno.


Il terzo slider è il Live chat, mediante il quale è possibile chattare con gli altri ascoltatori
della radio.
Il quarto slider è Broadcasts schedule, che permette di visualizzare le registrazioni dei
programmi effettuati (tuttavia non disponibili prima che la radio abbia raggiunto
determinati obiettivi).
Il quinto ed ultimo slider è Player settings, dal quale si possono cambiare i player
disponibili per l’ascolto.
Le opzioni per la modifica di questa pagina si troveranno all’interno della sezione
Settings.
Quando la web radio sta trasmettendo comparirà sulla destra, al posto del box di off-air, la
finestra rappresentata nella figura 17.3.

Figura 17.3. Banner di identificazione del live broadcasting


Cliccando sul comando Tune In With Your Media Player si aprirà un altro slider con un
elenco di link (non condivisibili) utili per l’ascolto con i principali player audio
standalone.
17.3. Tab tutorials
Il tab tutorials non fa altro che elencare alcune possibilità di utilizzo del server fornito da
Caster.fm.
Questo tab è un grosso contributo fornito dai gestori del servizio, perché è assolutamente
professionale spiegare, da parte dello staff, come utilizzare il servizio stesso nella pratica,
evitando di darlo nudo e crudo e lasciare all’utente l’onere di doversi documentare.
Le opzioni elencate sono le seguenti:
♦Broadcast Directly From Your Soundcard With Edcast Standalone

♦Broadcast From Winamp Playlist with Edcast Winamp Plugin

♦Broadcast From Foobar2000 Playlist with Edcast Foobar Plugin

♦Broadcast With Sam Broadcaster

♦Broadcast With Mixxx.

Ognuno dei cinque link porta ad un tutorial corrispondente. Le opzioni presentate sono
molto comuni, ma non le uniche possibili. Ci sono moltissimi altri modi di utilizzare il
server di Caster.fm (che altro non risulta essere che un server Icecast).
Ad esempio, andando sulla finestra di Edcast Standalone si vede che la guida è strutturata
in modo molto semplice e spartano, lasciando all’utente la cura di tutte le opzioni
secondarie.
17.4. Tab downloads ed embed
I due tab downloads ed embed del servizio Caster.fm permettono di scaricare i software
per l’utilizzo del server e di incorporare la radio all’interno di siti web di qualsivoglia
tipologia.
Il tab download presenta questi link:
♦Stand-Alone Version of EdCast – Broadcast From Line-In, Stereo Mix etc.

♦Winamp 5 AND EdCast For Winamp (Free)

♦Foobar2k AND EdCast For Foobar2k (Free)

♦Mixxx (Free)

♦SpacialAudio SAM Broadcaster

♦Lame Encoder (Required).

Sono tutti software più che utili allo scopo, anche se sono solo alcuni dei software che
possono fungere da sorgente per lo streaming.
Il Lame Encoder è la sequenza di istruzioni che permette di trasmettere in MP3.
Il tab embed permette invece di inserire all’interno del proprio sito un player molto carino,
personalizzabile in dimensioni.
Webplayer Embed Code: (Size: Small / Medium / Big)
Status Block Embed Code:
18. Edcast
Edcast è un encoder adatto a stazioni di piccole e medie dimensioni. Esiste in tre modalità:
come standalone, come plug-in di Winamp e come plug-in di Foobar. Durante
l’installazione del plug-in (ma anche per la versione standalone) verrà richiesto di
procurare il file lame_enc.dll per potere effettuare l’encoding in MP3. Il software non lo
fornisce, ma si può tranquillamente scaricare la libreria e piazzarla nella cartella in cui è
stato installato Winamp.
Una volta installato anche l’encoder bisogna procedere all’attivazione.
Su Winamp, cliccare col tasto destro in un qualsiasi punto del player e quindi su Opzioni >
Preferenze.
Comparirà la finestra rappresentata nella figura 18.1.
Cliccando su Edcast si visualizzerà l’encoder.
Occorre creare un encoder di trasmissione cliccando, nella finestra di Edcast, sul comando
add encoder. Comparirà una riga nell’area di testo sottostante. Cliccando col tasto destro
su questa riga, scegliere configure per aprire il menu di configurazione.

Figura 18.1. Finestra preferenze di Winamp

Figura 18.2. Finestra principale di Edcast

18.1. Menu di configurazione


18.1.1. Basic Settings
Figura 18.3. Impostazioni basilari di Edcast

BITRATE
L’opzione bitrate indica il bitrate di trasmissione in kbps.
QUALITY
Quality indica la qualità di trasmissione qualora settabile (diversamente, ad esempio, dei
casi di server Icecast o Shoutcast).
SAMPLERATE
Samplerate è la frequenza di campionamento settabile. L’opzione standard è sempre
44100.
CHANNELS
Il numero di canali; 1 per mono, 2 per stereo.
ENCODER TYPE
Tipologia di encoding, ad esempio OGG oppure MP3.
SERVER TYPE
Tipologia di server di streaming al quale connettersi.
SERVER IP
Indirizzo del server di streaming.
SERVER PORT
Porta del server di streaming.
ENCODER PASSWORD
Password del server di streaming.
MOUNTPOINT
Nome del mountpoint al quale connettere la sorgente.
YP SETTINGS
Impostazione delle pagine gialle.
Figura 18.4. Finestra di impostazione delle pagine gialle

PUBLIC SERVER
Public Server è un flag che permette di rendere il server privato, utile durante l’utilizzo
combinato di Edcast con Shoutcast.
STREAM NAME/DESCRIPTION/URL/GENRE
Stream name/description/URL/genre identificano rispettivamente il nome dell’emittente,
la sua descrizione, l’URL del sito di appartenenza della radio e il genere principale della
musica trasmessa.
Non sono parametri obbligatori, così come non lo sono ICQ, AIM e IRC, parametri dove
vanno inseriti gli account di questi tre servizi di messaggistica istantanea.
18.1.2. Advanced settings

Figura 18.5. Finestra delle impostazioni avanzate

Si può decidere di salvare il flusso trasmesso localmente flaggando Save archive of


stream.
In questo modo occorrerà indicare una directory dove salvare il flusso e il livello di
logging da ottenere. Sono possibili 4 livelli, da 1 a 4. Più grande il numero, maggiori
saranno le informazioni disponibili al log file disponibile all’indirizzo locale che è stato
impostato nel campo Log File.
18.2. Metadata
La finestra metadata è tripartita: c’è una prima parte chiamata Manually Enter Metadata,
dove si può inserire un metadato (che è un testo visualizzato dai player che riproduce il
flusso di vostra competenza).
La seconda parte si chiama External Metadata, dove si può scegliere se inserire un file di
metadata da un indirizzo locale (File), un indirizzo remoto (URL) o disabilitarli. Interval
(Sec) indica il numero di secondi tra un aggiornamento e l’altro.
La terza finestra consente di estrarre dati da una finestra aperta sul PC sul quale l’encoder
sta lavorando e di troncare questo testo estratto sia prima sia dopo un pattern.

Figura 18.6. Finestra di gestione dei metadata


19. MB Studio
Mb Studio è una regia radiofonica particolarmente diffusa sul territorio, realizzata
dall’azienda italiana MB Soft, autrice di numerosi software di automazione radiofonica e
di gestione delle emittenti radio locali. All’interno del software, cliccando in alto su
MBStudio, quindi su Configurazione, si visualizzerà una finestra contenente le principali
configurazioni impostabili per la regia.

Figura 19.1. Particolare del menu degli strumenti della regia

I tab della finestra di configurazione sono:


♦audio

♦opzioni

♦canzoni

♦cartelle

♦voci sintetiche

♦modem

♦rete

♦RDS Pira

♦webcast

♦email

♦pubblicazioni.

19.1. Audio
19.1.1. Scheda Audio
La sezione audio consente di scegliere la scheda audio principale tra le schede disponibili
e per questa impostare l’AGC (Automatic Gain Control) in quattro modalità: none, soft,
standard ed hard.
Si può settare anche la compressione audio con le stesse opzioni dell’AGC. L’audio buffer
è impostabile come default, low, standard ed high.Il valore di default è di 500
millisecondi.
Oltre alle tre opzioni si può scegliere il volume d’uscita che va da un massimo di 100 ad
un minimo di 0. Le sorgenti esterne impostabili sono 4; per ognuna di esse è possibile
impostare la scheda audio, il canale d’ingresso, il livello sonoro, alcune proprietà e il
preascolto.
Cliccando su proprietà in un qualsiasi canale EXT si visualizzerà un’altra finestra
contenente delle sotto-opzioni, di seguito analizzate.
PROPRIETÀ
Il tab proprietà (attenzione a non confondere il tab proprietà con la finestra proprietà:
hanno lo stesso nome ma livelli logici diversi) contiene quattro sezioni:
♦modo di play, che permette di impostare le modalità di missaggio della sorgente esterna,
se ripeterla e suonarla dall’inizio alla fine ad un dato volume;
♦titolo, che consente di impostare un titolo alla sorgente;

♦tipologia, che può classificare ulteriormente la sorgente;

♦statistiche, campo che può essere scelto tra le opzioni in base alla tipologia di audio che
contiene:
-generico
-pubblicità
-informazione
-informazione locale.

Figura 19.2. Tab Schede audio della finestra Audio

Figura 19.3. Tab Proprietà della finestra omonima

FLAGS
Il tab flags contiene alcune opzioni binarie, ovvero attivabili o disattivabili.
Tutte le opzioni sono chiare da sé e saranno ancora più chiare una volta compreso
integralmente il comportamento della regia e dopo avere visionato tutte le azioni e gli
oggetti che la caratterizzano.
Figura 19.4. Tab Flags della finestra Proprietà

Figura 19.5. Tab Bits della finestra Proprietà

BITS
Tramite il tab bits è possibile gestire i comandi da dare all’oggetto (in questo caso la
sorgente esterna) tramite bit di commutazione.
Le tre sezioni rappresentano i comandi che possono arrivare all’ingresso, all’inizio ed alla
fine. La differenza tra ingresso e inizio sta nella differenza tra caricamento dell’oggetto ed
effettiva trasmissione.
19.1.2. Opzioni
Le opzioni consentono di impostare la scheda audio per il preascolto, che nel caso
visualizzato è no sound, ovvero nessuna scheda, ma che può essere scelta tra le schede
audio disponibili al sistema. Il DSP Plugin da utilizzare può essere scelto tra un elenco a
tendina che comprende:
♦AudioProc

♦Jammix

♦Sa Stereo Tool

♦XAP.
Figura 19.6. Tab Opzioni della finestra Audio

19.1.3. Mixaggi
Il tab mixaggi consente di impostare il tempo di mixaggio dei brani, il tempo di fading, il
volume delle voice-track e il tempo massimo di silenzio prima dell’interruzione di un
brano.

Figura 19.7. Tab Mixaggi della finestra Audio

19.2. Opzioni
19.2.1. Opzioni
Il tab opzioni consente di scegliere se avviare il software all’avvio, permette di indicare se
il computer sul quale si sta lavorando è o non è il PC di trasmissione della radio, permette
di mostrare o non mostrare la griglia che suddivide ogni singolo evento previsto in
trasmissione e permette di indicare se il comando “attiva sequenze” può recuperare
sequenze che non sono in orario.
Oltre a queste opzioni, il tab omonimo consente di indicare se si sta utilizzando la scheda
Usb Velleman K8055.
La Velleman K8055 aggiunge alla regia le seguenti funzionalità:
♦lettura di 5 contatti di ingresso digitali;

♦apertura/chiusura di 8 contatti di uscita digitali;

♦lettura 2 ingressi analogici;

♦lettura di bit di sincronismo provenienti da ricevitori satellitari;

♦apertura / chiusura di contatti programmabili per ora e/o giorno.

Questa scheda è necessaria per:


♦interfacciare alla regia il ricevitore satellitare della rete INBLU ed altre reti, e permette di
ricevere i bit di inizio/fine programma;
con comandi esterni i comandi play/live/next/automatic propri di
♦telecomandare
MBStudio PRO;
♦fare scattare contatti esterni attraverso orari prestabiliti dall’agenda della regia o
attraverso le proprietà dell’oggetto in onda.

Figura 19.8. Tab Opzioni della finestra Opzioni

La maggior parte delle web radio non utilizza connessioni satellitari proprio perché non
interessata ai collegamenti tramite l’etere, anche se la web radio fa parte di
un’associazione di radio su Internet.
La maggior parte delle opzioni inerenti bit di configurazione e collegamenti satellitari è
quindi di scarso interesse per il web radiofonista medio. All’interno della finestra opzioni
si può anche impostare il numero di sessione, il numero di CPU e la priorità
dell’applicazione.
Se si acquista più di una licenza è possibile utilizzare fino a 3 sessioni di MB Studio
contemporaneamente nello stesso computer.
Il programma va installato più volte ed in cartelle diverse, ed ogni MB Studio deve avere
un numero di sessione differente che va da 0 a 2. Stessa cosa per la CPU.
L’ultima opzione dell’omonimo sotto-tab è l’impostazione dell’editor audio predefinito.
19.2.2. Altro

Figura 19.9. Tab Altro della finestra Opzioni

LINER
Nella sezione liner è possibile impostare piccoli gruppi di oggetti chiamati prima, tra e
dopo che possono poi essere assegnati ad una, alcune o tutte le sequenze orarie o ad altre
funzioni. Sono disponibili 20 gruppi diversi a cui è possibile dare un titolo di
riconoscimento. Dopo avere impostato i liner, occorre andare in MB SPOT, aprire le
proprietà di una, alcune o tutte le sequenze orarie ed impostare il liner desiderato.
Per inserire un oggetto, fare doppio click su prima e/o tra e/o dopo ed inserire l’oggetto
desiderato.
Il comando importa serve a caricare la configurazione liner da un’altra regia MB Studio. Il
database dei liner è salvato nel file MBLiners.cfg.
I liner servono anche ad impostare i file audio da usare nelle prove del preascolto. In
questo caso usare un liner dedicato, inserire i file desiderati, poi andare nella finestra di
preascolto e selezionare il numero del gruppo di liner.
Ad esempio:
♦scegliere un numero di liner vuoto;

♦dare un titolo (ad esempio “prova preascolto”);

♦in prima mettere un file audio per provare la fine refrain;

♦in tra mettere un file audio per provare outro;

♦in dopo mettere un file audio per provare la fine;

♦ora aprire il preascolto e selezionare il numero di liner di cui al punto 1.

MUSICLINE
♦Attiva servizio MusicLine: attiva il servizio di jukebox automatico. Le richieste musicali
vengono ricevute automaticamente da MB Studio via SMS;
♦inserisci richieste automaticamente: se l’opzione è attiva, MB Studio inserisce le canzoni
richieste dagli ascoltatori in modo automatico e secondo un proprio criterio interno. Se
l’opzione è disattivata le richieste vengono inserite rimpiazzando i brani musicali che
hanno il flag “Permetti sostituzione con MusicLine”;
♦limita richieste da stesso mittente: numero massimo di richieste che lo stesso mittente
può fare nelle 24 ore;
♦liner: se desiderato, è possibile fare precedere e/o seguire da un liner ogni canzone
richiesta via MusicLine.
19.2.3. Annuncio
Figura 19.10. Tab Annuncio della finestra Opzioni

CARTELLA ANNUNCIO ORARIO


La cartella che contiene gli annunci orari; i file devono avere la seguente sintassi:
♦ore00 ore01 ore02…fino a ore23

♦minuti01 minuti02 minuti03…fino a minuti59.

La regia concatena automaticamente le ore e i minuti; tuttavia è anche possibile preparare


un unico file che annuncia ore e minuti:
♦ore0001 ore0002 ore0003…fino a ore2359.

Poiché per il punto orario 00 è opportuno dire l’ora con una intonazione diversa rispetto a
quando seguono i minuti è possibile preparare un file unico che annuncia solo l’ora:
♦ore0000 (“è mezzanotte!”)

♦ore0100 (“è l’una!”)

♦ore0200 (“sono le due!”)

♦fino a 2300 (“sono le 23!”).

I file possono avere qualunque formato: MP3, .wav, OGG, wma, flag, m4a, etc.
L’annuncio dell’ora esatta può essere inserito in qualunque playlist, minilist o sequenza
oraria tramite l’annuncio orario (quando si fa doppio click per inserire un oggetto).
CARTELLA ANNUNCIO DATA
La cartella che contiene gli annunci della data; i file devono avere la seguente sintassi:
s lunedì martedì mercoledì giovedì venerdì sabato domenica
♦1 2 3… fino a 31

♦gennaio febbraio marzo… fino a dicembre

♦2009 2010 2011 2012 2013… all’infinito.

La regia concatena automaticamente nome del giorno, numero del giorno,mese e anno. I
file possono avere qualunque formato: MP3, .wav, OGG, wma, flag, m4a, etc.L’annuncio
della data può essere inserito in qualunque playlist, minilist o sequenza oraria tramite
l’annuncio data (quando si fa doppio click per inserire un oggetto).
CARTELLA ANNUNCIO METEO
La suddetta cartella contiene gli annunci meteo.
19.2.4. Caratteri
Nella finestra caratteri è possibile cambiare i caratteri grafici utilizzati da MB Studio. Al
termine delle modifiche è necessario riavviare la regia. Grazie al comando valori
predefiniti è possibile tornare ai caratteri originariamente impostati.
Figura 19.11. Tab Caratteri della finestra Opzioni

19.2.5. RSS Feed


Nella cartella RSS Feed è possibile impostare gli indirizzi dei feed RSS.

Figura 19.12. Tab RSS Feed della finestra Opzioni

19.3. Canzoni

Figura 19.13. Tab Canzoni

DISTANZA TRA STESSO INTERPRETE


Distanza tra stesso interprete indica la distanza minima in ore tra canzoni dello stesso
interprete. Si applica solo agli interpreti a cui non è stata applicata alcuna distanza nella
finestra di preascolto.
DISTANZA TRA STESSO TITOLO
Distanza tra stesso titolo indica la distanza minima in ore tra canzoni aventi lo stesso
titolo. Si applica solo ai titoli a cui non è stata applicata alcuna distanza nella finestra di
preascolto.
DISTANZA TRA STESSO ALBUM
Distanza tra stesso album indica la distanza minima in ore tra canzoni facenti parte di uno
stesso album.
Non ha effetto sulle canzoni hitlist.
DISTANZA TRA STESSA HITLIST
Distanza tra stessa hitlist indica la distanza minima in ore tra una stessa canzone hitlist.
La stessa distanza si applica anche tra 2 canzoni hitlist dello stesso interprete.
Questi valori sono regole che MB Studio cercherà di applicare. Qualora non vi si riuscisse
(succede, ad esempio, quando si applicano distanza troppo elevate e l’archivio è limitato o
poco assortito) verrà visualizzato un errore di timeout e la canzone visualizzata con un
triangolo di avviso giallo.
LIMITA DURATA CANZONI A
Limita durata canzoni a indica la durata massima in onda di una canzone. In MBStudio
PRO questo valore può essere modificato in certi giorni e orari automaticamente tramite
l’agenda.
PERMETTI REFRAIN CASUALE
Il refrain casuale permette la messa in onda di un breve spezzone di canzone da usare con
l’evento refrain. Ha effetto solo sulle canzoni a cui non è stato segnato inizio refrain e fine
refrain.
OUTRO
Valore outro da utilizzare con i voice outro e voice-track. Ha effetto solo sulle canzoni a
cui non è stato segnato l’outro. Se lasciato su automaticamente l’outro viene calcolato
automaticamente dalla regia.
VISUALIZZA SEMPRE IN MAIUSCOLO
Se attivo, l’archivio canzoni viene sempre mostrato in maiuscolo.
COLONNE LISTA CANZONI
Colonne lista canzoni permette di selezionare quali colonne visualizzare nell’archivio
canzoni.
FASCE ORARIE MUSICALI
Fasce orarie musicali permette di impostare da 1 fino a 7 fasce orarie da utilizzare per
includere/escludere canzoni e file dalla casualità
CARTELLA ANNUNCIO CANZONI
La cartella annuncio canzoni deve contenere gli annunci e/o i disannunci delle canzoni.
L’annuncio e/o il disannuncio possono essere caricati attraverso la finestra di preascolto.
INSERISCI ANNUNCIO CANZONE
Abilita/disabilita l’inserimento dell’annuncio canzone.
INSERISCI DISANNUNCIO CANZONE
Abilita/disabilita l’inserimento del disannuncio canzone.
PERMETTI VOCE SINTETICA (SOLO MBSTUDIO PRO)
Se nel sistema sono installate voci sintetiche, permetti voce sintetica consente l’annuncio
della canzone utilizzando una voce sintetica. Ha effetto solo quando la canzone non ha un
annuncio con voce umana.
19.4. Cartelle
Nella finestra cartelle devono essere elencate tutte le cartelle che contengono i file audio
che MB Studio deve riprodurre.

Figura 19.14. Tab Cartelle

Devono essere elencate sia le cartelle che le sottocartelle.


Quando MB Studio deve riprodurre un qualunque file, jingle, canzone o altro, lo cerca in
tutte queste cartelle. Se la cartella non è presente nella lista viene visualizzato il messaggio
“impossibile caricare…”
Occorre fare attenzione a non avere 2 o più file con lo stesso nome, anche se posizionati in
cartelle diverse. In tal caso, infatti, MB Studio potrebbe imprevedibilmente riprodurre uno
qualunque di questi file:
♦aggiungi: aggiunge una cartella alla lista. Se sono presenti delle sottocartelle, MB Studio
chiede se queste si vogliono aggiungere oppure no;
♦ottimizza: verifica l’esistenza di tutte le cartelle elencate e rimuove quelle assenti o non
raggiungibili e quelle non si utilizzano da più di 60 giorni;
♦cancella: rimuove una, alcune, o tutte le cartelle selezionate.

19.5. Voci sintetiche


Le voci sintetiche vanno impostate nella finestra omonima.
Per ogni linguaggio è possibile associare una voce sintetica predefinita.

Figura 19.15. Tab Voci sintetiche

Questa voce verrà utilizzata per l’annuncio delle canzoni della stessa lingua. È necessario
che il campo lingua di ogni canzone sia correttamente settato; ad esempio, una canzone in
lingua italiana verrà annunciata dalla voce sintetica impostata nel selettore italiano. Il
cursore velocità regola la velocità di lettura delle voci. Le voci sintetiche non sono fornite
con Windows e nemmeno con l’acquisto della regia, ma devono essere acquistate
separatamente.
19.6. Modem
Nella sezione Modem si configura il collegamento tra MB Studio ed il modem GSM per la
ricezione/invio di SMS.

Figura 19.16. Tab Modem

PORT
Tramite il comando port va selezionata la porta COM virtuale sulla quale è configurato il
modem.
ABILITA RICEZIONE
Se si attiva abilita ricezione, MB Studio leggerà i messaggi SMS immediatamente. Se
disattivato, nessun messaggio SMS verrà letto dal modem; saranno disattivati anche tutti i
servizi MusicLine, telecomando e titolo.
ABILITA INVIO
Se si attiva abilita invio, MB Studio permetterà l’invio di messaggi SMS. Se disattivato,
nessun messaggio SMS potrà essere inviato; saranno disattivati anche i messaggi di
risposta di MusicLine e telecomando e titolo.
INVIA TITOLO CANZONE
Se si attiva invia titolo, MBStudio risponderà automaticamente a qualsiasi SMS
contenente la parola “titolo”, comunicando i titoli delle ultime canzoni andate in onda.
PREFISSO NAZIONALE
Il prefisso nazionale per l’Italia è +39.
LIMITA INVIO GIORNALIERO SMS A
Con il comando limita invio si potrà limitare il numero di SMS inviati in un giorno. È
ottimo per economizzare e razionalizzare i costi del servizio.
LIMITA INVIO MESSAGGI AI SEGUENTI PREFISSI
Esempi:
♦+3933 (per limitare ai soli Tim)

♦+3933, +3934 (per Tim + Vodafone)

♦+3932 (per limitare ai soli Wind).

INTESTAZIONE SMS
Nel campo intestazione si può inserire un breve testo che apparirà all’inizio di ogni SMS
inviato. Si può, ad esempio, mettere il nome dell’emittente oppure il nome di uno sponsor.
Si può anche modificare automaticamente questo testo in base agli orari e/o ai giorni della
settimana tramite l’agenda.
PIN
Se la scheda SIM richiede la digitazione di un PIN di accesso, bisogna scrivere nella
sezione PIN tale codice, altrimenti il modem non funzionerà.
SCA
Se non si riesce ad inviare messaggi in uscita, si può indicare nella sezione SCA il corretto
numero telefonico del Centro Servizi della compagnia telefonica.
LINGUA
Il selettore lingua definisce il set di caratteri da utilizzare nella ricezione e invio di
messaggi. Per le lingue scritte in caratteri latini (inglese, italiano, francese, etc.) si può
utilizzare il formato 7 bit. Con questo formato ogni singolo messaggio può contenere 160
caratteri.
Per le lingue scritte in caratteri non latini (russo, giapponese, cinese, etc.) bisogna usare il
set di caratteri a 8 bit. Con questo formato ogni singolo messaggio può contenere 140
caratteri.
SALVA IN
Il selettore salva in definisce la posizione di salvataggio dei messaggi SMS all’interno del
modem:
♦nella carta sim (SM – Sim Card)

♦nella memoria del modem (ME – Modem Area)

♦in un’area mista (MT – Mixed Area).

Qualora si avessero problemi di ricezione o invio degli SMS si possono provare una alla
volta queste soluzioni fino a trovare quella che funziona correttamente col modem di cui si
è in possesso.
Se lo si desidera, si può anche fare in modo che MB Studio riproduca un suono sulla
scheda di preascolto (se abilitata) all’arrivo di una telefonata o di un SMS. Per fare questo
basta inserire nella stessa cartella di MB Studio un file chiamato RING.wav che suonerà
all’arrivo di una telefonata, e un file chiamato SMS.wav che suonerà all’arrivo di un SMS.
19.7. Rete
19.7.1. Cartella di lavoro MB Studio
La cartella di lavoro indica a MBStudio dove si trovano i database (canzoni, file casuali,
download, agenda, sequenze orarie, playlist); dunque qui va selezionata la cartella MB
Studio del computer di messa in onda.
Se si usa MB Studio in un solo computer non ci sarà alcun bisogno di settarla; essa
corrisponde comunque alla cartella in cui è stato installato il programma (ad esempio
C:\MBStudio).
Se invece oltre al computer di trasmissione è stata installatala regia anche in altri computer
connessi in rete con quello principale, allora si deve inserire il percorso di rete esatto che
porta fino alla cartella MB Studio del computer di messa in onda.
Ad esempio: si installi MB Studio due volte, la prima su un computer denominato regia e
la seconda su un computer denominato ufficio. Si ponga il caso che MB Studio sul
computer ufficio possa essere usato per amministrare l’altro MB Studio installato sul
computer regia.
Sul computer regia non si deve compiere alcuna operazione.
Sul computer ufficio si deve cliccare la casella cartella di lavoro, navigare le risorse di
rete, navigare il computer regia fino a raggiungere la cartella MB Studio. Il risultato
potrebbe quindi essere \REGIA\c\MBStudio.
A questo punto, nel computer ufficio MB Studio visualizzerà esattamente le canzoni, le
playlist, i download, l’agenda, i file casuali e le playlist dal vivo che sono presenti nel PC
regia e si potranno modificare e salvare i dati lavorando col computer ufficio senza dover
andare nel computer regia. Questa operazione va fatta sia su MB Studio che su MB Spot.
19.7.2. Connessioni TCPIP
ATTENDI CONNESSIONI SULLA PORTA
MB Studio attende le connessioni sulla porta indicata nel campo omonimo; questa porta è
utilizzata per gli splittaggi o perle connessioni di MBLive. Se si modifica questo valore si
deve anche riavviare MB Studio affinché la modifica abbia effetto.
LIMITA CONNESSIONI A QUESTO INDIRIZZO
Si può impostare MB Studio affinché accetti connessioni solo da uno specifico indirizzo
IP o da un intervallo di indirizzi.
Ad esempio, chi utilizza gli splittaggi in una rete.
LAN con intervallo 192.168.0.1<->192.168.0.255 potrà impostare in questa casella il
valore 192.168.0.* oppure direttamente l’indirizzo dell’unico PC autorizzato a collegarsi,
come ad esempio 192.168.0.5.
Nella maggior parte dei casi, comunque, si può lasciare vuota questa casella, in quanto la
sicurezza delle connessioni sarà garantita dalla presenza della password di rete che sarà
impostata più sotto.
PROTEGGI CONNESSIONI CON QUESTA PASSWORD
Si può digitare una password che servirà a criptare le comunicazioni tra i vari MB Studio e
MB Live. Attenzione: si deve impostare la stessa password su tutti i PC che si utilizzano,
altrimenti le comunicazioni di rete falliranno. Se si lascerà vuota questa casella, un
malintenzionato potrebbe connettersi ad MB Studio via Internet e disturbarne il
funzionamento.
19.7.3. Split

Figura 19.17. Tab Split della finestra Rete

MASTER
Se si usano gli splittaggi, attivare il flag master sul computer principale.
SLAVE
Se si usano gli splittaggi, attivare il flag slave sui computer secondari di splittaggio.
REMOTE MASTER IP
Solo nei computer slave, inserire in Remote master IP l’indirizzo IP e la porta del
computer master, ad esempio 192.168.1.12:9000.
SINCRONIZZA OROLOGIO
Il flag sincronizza orologio permette la sincronizzazione automatica dell’orologio di
sistema tra 2 o più MB Studio/MB Live interconnessi tra loro.
REMOTE HOST
In alcune configurazioni avanzate, MB Studio può inviare comandi di start/stop ad altri
MB Studio o MB Recorder. In tal caso, inserire in remote host l’indirizzo e la porta
dell’applicazione remota, ad esempio: 192.168.1.24:9010.
Se l’opzione aggiorna automaticamente è attiva, questa casella cambia automaticamente
l’indirizzo quando riceve una connessione dall’esterno.
19.7.4. Titoli esterni

Figura 19.18. Tab Titoli esterni della finestra Rete


ACCETTARE TITOLI ESTERNI
MB Studio PRO può ricevere il titolo del programma o della canzone che è in
riproduzione in un altro MB Studio. Per fare questo, attivare l’opzione accettare titoli
esterni. Col selettore oggetto si può specificare se MB Studio deve accettare i titoli quando
è in onda MB Live o una specifica porta EXT; se lo si lascia su qualsiasi, MB Studio
accetterà i titoli ogni volta che va in onda MB Live o una qualunque porta EXT.
INVIARE TITOLI AL SEGUENTE INDIRIZZO
Se l’opzione inviare titoli al seguente indirizzo è attiva, MB Studio invierà i titoli
all’indirizzo, porta e password che sono stati specificati.
Ecco un esempio pratico di utilizzo del servizio titoli:
♦fare una diretta dall’esterno con MB Live e in esterna usare anche un altro MB Studio per
riprodurre della musica;
♦nello studio centrale: abilitare l’opzione accettare titoli esterni;

♦in esterno: abilitare inviare titoli immettendo IP, porta e password dello studio centrale.

Figura 19.19. Tab MB Live della finestra Rete

Quando lo studio centrale manderà in onda MB Live appariranno a schermo i titoli suonati
in esterno (i brani verranno anche segnati come trasmessi nell’archivio musicale,
mantenendo così sincronizzati gli archivi musicali).
19.7.5. MB Live
L’opzione MB Live attiva o disattiva la possibilità di collegarsi dall’esterno con MB Live.
Il valore di buffer serve a ottimizzare il funzionamento: più è basso e meno ritardo ha
l’audio di MB Live, ma si è più a rischio di disturbi causati da cali di velocità della rete.
Liner serve a selezionare un liner da inserire automaticamente prima e/o dopo ogni
collegamento MB Live.
19.7.6. Altro
Figura 19.20. Tab Altro della finestra Rete

CRYPTO BOX SERVER


Crypto box server va usato solo in configurazioni avanzate. Lasciare sempre vuota questa
casella.
DOWNLOAD - USA MODALITÀ FTP PASSIVO
Se la connessione Internet avviene attraverso un router, si deve attivare l’opzione modalità
FTP passivo se si effettua qualche download da uno o più siti di tipo FTP. Se invece la
connessione avviene attraverso un modem USB, tale opzione dovrebbe essere disattivata.
In ogni caso, se si riscontrano problemi ad effettuare download da qualche sito FTP,
provare a attivare o disattivare l’opzione per vedere se ciò risolve il problema. Questa
opzione non ha alcun effetto sui download da siti tramite protocollo HTTP.
19.8. RDS Pira
MB Studio può gestire direttamente l’encoder PIRA RDS 32, che però non è di utilità per
le emittenti su Internet, in quanto rilevante solo per trasmissioni FM.

Figura 19.21. Tab RDS Pira

19.9. Webcast
La sezione webcast va configurata per la trasmissione su Internet della radio, ed è senza
dubbio la sezione più importante per gli scopi di questo testo.
Figura 19.22. Tab Cattura della finestra Webcast

19.9.1. Tab Cattura


SCHEDA DI CATTURA
Dalla scheda di cattura si preleva il segnale audio. Selezionare MBStudioMix per mandare
in streaming tutto il mixaggio audio di MB Studio, altrimenti selezionare una scheda audio
da cui prelevare l’audio.
INGRESSO
Selezionare quale ingresso utilizzare. Se si usa Windows 7 o Windows Vista questo
selettore offre una sola scelta ed è inutilizzato: la selezione del canale di ingresso si farà
direttamente sul selettore scheda di cattura.
19.9.2. Tab DSP Plugin
PLUG-IN
Si può impostare un Plug-in DSP (sono gli stessi che vengono usati in Winamp). Questi
plug-in vanno scaricati o acquistati separatamente da altri fornitori.

Figura 19.23. Tab DSP Plugin della finestra Webcast

ATTIVA MONITORAGGIO SU QUESTA SCHEDA


Se il monitoraggio è attivo, l’audio processato dal plug-in viene inviato alla scheda audio
di preascolto (Configurazione/Audio/Opzioni).
19.9.3. Tab Testo metadata
Figura 19.24. Tab Testo metadata della finestra WebcastT

TESTO
Si può specificare un testo che verrà visualizzato sui player degli ascoltatori. Solitamente
si usano alcuni caratteri jolly per visualizzare il titolo del brano in onda o del successivo;
ecco una lista di caratteri utilizzabili:
♦%timexx% orario di trasmissione dell’oggetto xx

♦%itemxx% titolo dell’oggetto xx

♦%yearxx% anno dell’oggetto xx

♦%commentxx% commento dell’oggetto xx

♦%albumxx% album dell’oggetto xx

♦%authorxx% autore dell’oggetto xx

♦%labelxx% etichetta dell’oggetto xx

♦%codexx% codice dell’oggetto xx

♦%filexx% nome del file dell’oggetto xx.

Esempi:
♦per visualizzare solo il titolo del brano in onda: %item0%

♦per visualizzare anche il brano che seguirà: %item0%seguirà: %item1%

♦per visualizzare anche l’anno del brano in onda: %item0%%year0%

♦per visualizzare testo libero più brano in onda: state ascoltando %item0% e tra poco
seguirà %item1%
♦per visualizzare anche il commento del brano in onda: %item0% - %comment0%.

TITOLO, DESCRIZIONE, GENERE, HOME PAGE


Inserire i dati identificativi della stazione; questi dati aiuteranno ad essere visibili nei
motori di ricerca e nelle liste di stazioni.
19.9.4. Tab Encoder (da 1 a 4)
In questa sezione si possono attivare fino a 4 encoder per trasmettere su Internet.
Ogni encoder può lavorare in protocollo Shoutcast (MP3 o AAC+) o Icecast (MP3 o
OGG) o Windows Media (WMA o WMA PRO oppure Multiple bitrates). I dati da inserire
variano a seconda del protocollo utilizzato. Ricordarsi di selezionare attiva per iniziare a
trasmettere.

Figura 19.25. Tab Encoder della finestra Webcast

19.9.5. Tab 90 giorni

Figura 19.26. Tab 90 giorni della finestra Webcast

In questa sezione è possibile attivare un registratore a ciclo continuo:


♦codec: indica il formato di registrazione;

♦cartella: indica in quale cartella verranno registrati i file;

♦chiudi file ogni xx ore: permette di registrare da un nuovo file ogni ora ad un nuovo file
ogni giorno (24 ore);
♦archivia fino a xx giorni: fa cancellare automaticamente i file più vecchi del periodo
indicato.
19.9.6. Tab registratore
In questa sezione è possibile configurare un registratore che può essere avviato o fermato
tramite le proprietà dell’oggetto in onda. È utile per registrare programmi in diretta da
riutilizzare per repliche.
INIZIO-FINE
Orario inizio/fine della registrazione. Se si utilizza il sistema di inizio/fine registrazione
tramite le proprietà bit (avvia registratore/termina registratore) è opportuno impostare un
orario di inizio anticipato di qualche minuto e un orario di fine posticipato di qualche
minuto.
Figura 19.27. Tab Registratore della finestra Webcast

FILE
Nel campo file va inserito il file da registrare (anche formato da caratteri jolly).
PROPRIETÀ DA TASTO [+]
Ciccando sul tasto [+] si otterrà un sottomenu con opzioni supplementari:

Figura 19.28. Tab Proprietà della sezione Registratore

♦aggiungi il giorno al nome del file: aggiunge automaticamente il nome del giorno al file
(esempio: buongiorno in musica_lunedì);
♦aggiungi la data al nome del file: aggiunge automaticamente la data al file (esempio:
buongiorno in musica_310511);
♦aggiungi l’ora al nome del file: aggiunge automaticamente al nome del file l’orario di
inizio registrazione arrotondato al quarto d’ora più vicino. Esempi:
-se il file nomefile inizia a registrarsi tra le 10:54 e le 11:07 diventerà nomefile_1100
-se il file nomefile inizia a registrarsi tra le 11:08 e le 11:23 diventerà nomefile_1115
-se il file nomefile inizia a registrarsi tra le 11:24 e le 11:37 diventerà nomefile_1130
-se il file nomefile inizia a registrarsi tra le 11:38 e le 11:53 diventerà nomefile_1145.

♦aggiungi il numero al nome del file: tramite l’opzione aggiungi il numero, se il file esiste
già non viene cancellato e viene invece aperto un nuovo file con numerazione
sequenziale. Esempio: news_1.MP3, news_2.MP3, news_3.MP3, ecc;
♦invia al server FTP: al termine della registrazione il file viene automaticamente inviato al
server FTP, come configurato in Configurazione\Pubblicazioni\FTP Upload;
♦start con bit: la registrazione si avvierà solo quando, dopo l’orario di inizio, andrà in onda
un oggetto avente la proprietà bit/avvia registratore e terminerà soltanto quando andrà in
onda un oggetto avente la proprietà bit/termina registratore oppure terminerà all’orario
di fine. Se si usa un codec WMA o WMA PRO verranno inseriti nel file anche i
metadata (titolo programma o canzone attualmente in onda). Quando si rimanderà in
onda il file con MB Studio verranno visualizzati nuovamente i titoli presenti nella
registrazione. Per avviare il registratore deve andare in onda un oggetto nelle cui
proprietà sia attivo il bit avvia registratore (e nel registratore deve essere attivo il flag
start con bit). Per fermare il registratore deve andare in onda un oggetto nelle cui
proprietà sia attivo il bit termina registratore (e nel registratore deve essere attivo il flag
start con bit). Per non registrare le sequenze orarie, impostare questi bit nei liner delle
sequenze stesse; oppure, se non si usano i liner, nel primo e nell’ultimo oggetto della
sequenza. Per avviare fisicamente la registrazione si dà per scontato che la parte
Configurazione\WebCast\Cattura sia già opportunamente configurata su MB Studio Mix
oppure sulla scheda audio da cui si vuole registrare.
19.10. Email
Nella sezione Email si configurano i server per la ricezione l’invio della posta.
19.10.1. POP3
♦Server: inserire qui l’indirizzo del server POP di ricezione posta;

♦utente: inserire qui il nome utente per accedere al server POP;

♦password: inserire qui la password per accedere al server;

♦prova: con questo comando si può verificare se i dati POP inseriti funzionano
correttamente.
19.10.2. SMTP
♦Mittente: inserire qui il nome mittente che appare a chi legge; solitamente è il nome della
stazione radio;
♦indirizzo risposte: se qualcuno risponde a un messaggio di MB Studio, potrebbe essere
preferibile ricevere la risposta in un’altra casella email; in tal caso, inserire qui
l’indirizzo email alternativo;
♦server: inserire qui l’indirizzo del server SMTP di spedizione posta;

♦utente: alcuni server SMTP richiedono autenticazione con utente e password; se è questo
il caso, inserire qui il nome utente per accedere al server SMTP;
♦password: alcuni server SMTP richiedono autenticazione con utente e password; se è
questo il caso, inserire qui la password per accedere al server SMTP;
♦autenticazione: alcuni server SMTP richiedono autenticazione con utente e password; se
è questo il caso, selezionare il metodo di autenticazione; se non si sa quale sia, occorre
provarli uno alla volta aiutandosi col comando prova per trovare quello che funziona;
♦modello: MB Studio invia email in semplice formato testo. Se invece si preferisce
preparare un modello grafico (che comprende il logo ed altri elementi decorativi), allora
si deve preparare un file HTML ed inserirlo in questa casella;
♦prova: con questo comando si può verificare se i dati inseriti funzionano correttamente.
Figura 19.29. Tab Email

MBStudio non supporta connessioni IMAP.


19.11. Pubblicazioni
Nella sezione Pubblicazioni è possibile configurare l’upload automatico di alcuni file sul
server FTP, in modo che possano essere sfruttati dal sito web per visualizzare informazioni
ai vostri visitatori.
19.11.1. Playlist
INVIA AL SERVER FTP ONAIR.TXT
Se attivata l’opzione invia al server FTP OnAir.txt, MB Studio invia al server un piccolo
file di testo denominato OnAir.txt contenente il titolo del programma o della canzone
attualmente in onda. MB Studio invia il file automaticamente ogni volta che cambia
l’oggetto in onda. Sul sito web si può quindi sfruttare questo file con qualche applet java,
flash, php, asp o con qualunque metodo che permetta di visualizzare il contenuto di un file
di testo.

Figura 19.30. Tab Pubblicazioni

MODELLO
Tramite modello si può inserire un modello scritto in qualunque linguaggio (testo, php,
java, asp, flash, etc) che deve contenere uno o alcuni caratteri jolly che MB Studio
automaticamente sostituirà con i contenuti richiesti.
Elenco dei caratteri jolly utilizzabili:
♦%timexx% orario di trasmissione dell’oggetto xx

♦%itemxx% titolo dell’oggetto xx (se è una canzone viene visualizzato interprete e titolo)

♦%yearxx% anno dell’oggetto xx

♦%commentxx% commento dell’oggetto xx


♦%albumxx% album dell’oggetto xx

♦%authorxx% autore dell’oggetto xx

♦%labelxx% etichetta dell’oggetto xx

♦%codexx% codice dell’oggetto xx

♦%filexx% nome del file dell’oggetto xx

♦%artist% interprete dell’oggetto xx (se è una canzone viene visualizzato solo l’interprete)

♦%title% titolo dell’ oggetto xx (se è una canzone viene visualizzato solo il titolo).

Al posto di xx inserire il numero dell’oggetto desiderato (0 = oggetto attualmente in onda;


da – 1 a – 99 = oggetti già trasmessi; da 1 a 99 = oggetti da trasmettere).
19.11.2. Messaggi
MODELLO
Tramite modello si può inserire un modello scritto in qualunque linguaggio (testo, php,
java, asp, flash, etc.) che deve contenere uno o alcuni caratteri jolly che MB Studio
automaticamente sostituirà con i contenuti richiesti.
Elenco dei caratteri jolly utilizzabili:
♦%timexx% data e ora del messaggio xx

♦%senderxx% mittente del messaggio xx

♦%messagexx% testo del messaggio xx.

Al posto di x inserire il numero dell’oggetto desiderato (da 0 a 99 = ultimi messaggi


ricevuti).
19.11.3. Cartella immagini
In cartella immagini va impostata la cartella che contiene le copertine delle canzoni, i
loghi della stazione radio, le immagini associate alle playlist o alle sequenze orarie o agli
oggetti che vanno in onda. Le immagini devono essere in formato .jpg e di piccolo
formato (preferibilmente intorno a 160x160 pixel).
MB Studio non permette di visualizzare foto troppo grandi.
Per associare una foto a una canzone, usare il preascolto di ogni canzone (tab altro). Per
caricare i loghi della stazione radio, salvare dentro questa cartella fino a 10 immagini
denominate default.jpg, default1.jpg, default2.jpg e così via fino a default9.jpg.
Verrà visualizzata una immagine a caso. Il primo logo deve obbligatoriamente chiamarsi
default.jpg.
Per associare una immagine ad una playlist, salvare in questa cartella una foto avente lo
stesso titolo della playlist.
Per associare una immagine ad una sequenza oraria, salvare in questa cartella una foto
avente lo stesso titolo della sequenza oraria.
Per associare una immagine ad un oggetto, salvare in questa cartella una foto avente lo
stesso titolo inserito nella proprietà titolo/tipologia dell’oggetto. Se viene attivato il click
vicino al nome della cartella, l’immagine viene automaticamente inviata sul sito FTP con
il nome OnAir.jpg e quindi può essere visualizzata sul sito web.
Scarica ed installa automaticamente: se attivo, MB Studio cerca sul server MB SOFT la
copertina della canzone in onda.
19.11.4. FTP Upload
♦Sito: è l’indirizzo del server FTP del sito web;

♦porta: porta di connessione del server FTP (solitamente 21);

♦cartella remota: in quale cartella del server FTP va fatto l’upload;

♦utente: utente per autenticazione al server FTP;

♦password: password per autenticazione al server FTP;

♦usa modalità FTP passivo: utilizza una connessione passiva per i trasferimenti
(solitamente va abilitato);
♦prova: cliccare su questo comando per testare i parametri di connessione al server FTP.
20. Hardware
Qualsiasi regista web deve interfacciarsi non soltanto con software dedicati al suo ruolo
ma anche e soprattutto con hardware.
Se si vuole realizzare una web radio professionale e dal suono qualitativamente eccellente
non si può prescindere dall’utilizzare attrezzature fisiche come mixer e microfoni. Come
per qualsiasi bene acquistabile, esistono varie versioni di mixer, microfoni, cavi ed
amplificatori. Questi si differenziano tra loro per prezzo, caratteristiche e punti di forza.
Sarà l’esperienza del singolo regista a fare capire quali siano le attrezzature che rendono la
propria web radio la migliore possibile.
Le attrezzature principali che una web radio deve avere sono:
♦mixer, per far confluire i vari ingressi in una o più uscite;

microfoni, per effettuare gli interventi vocali;


♦amplificatore per cuffia, per distribuire l’audio a speaker ed ospiti;

♦cavetteria e connettori, per connettere i vari componenti tra di loro.

20.1. Mixer
Il mixer (mixer audio) è un’apparecchiatura utilizzata per mescolare, modificare e
sommare segnali audio, utilizzata dai registi non solo di web radio, ma anche di eventi
live, dai DJ e da tecnici in generale.
Un mixer si differenzia da un altro per molti aspetti, come ad esempio il numero dei canali
o la sensibilità dei controlli per il volume.

Figura 20.1. Prospetto frontale di un mixer

Il numero di canali determina il numero di periferiche di riproduzione audio che è


possibile collegare in entrata al mixer contemporaneamente.
I diversi tipi di mixer condividono la stessa struttura, che consiste essenzialmente nel
trattare segnali sonori provenienti da diversi canali di ingresso e sommarli in uno o più
canali di uscita.
20.1.1. Canali di ingresso
Ciascun canale di ingresso riceve il suono da una sorgente che può essere, ad esempio, un
microfono, uno strumento musicale elettronico, un riproduttore di dischi, CD, nastri
magnetici o schede audio.
A seconda del particolare tipo di mixer e dell’uso per cui è progettato, ciascun canale
possiede una combinazione di funzionalità.
Nel layout della console, ciascuna periferica connessa occupa un canale, corrispondente ad
una striscia verticale.
20.1.2. Connettori di ingresso
La sezione connettori contiene uno o più connettori per i cavi di segnale. Tra i connettori
usati troviamo gli XLR (noti anche come Cannon, a bassa impedenza, usati tipicamente
per i microfoni), i Jack (alta impedenza, usati per sorgenti “in linea” come tastiere) e gli
RCA (usati per lettori CD e simili). Tutti questi connettori verranno discussi in modo
esteso nella sezione omonima.
20.1.3. Stadio di ingresso
La sezione di ingresso si occupa di adattare il segnale elettrico in ingresso alle
caratteristiche del mixer. Contiene un potenziometro per regolare il livello (Gain) e
talvolta altri controlli, ad esempio per l’alimentazione remota di un microfono a
condensatore (Phantom) oppure per invertire la fase del segnale (di fondamentale
importanza quando si riprende la stessa fonte sonora con più microfoni).
20.1.4. Equalizzatore
La sezione equalizzatore si occupa di bilanciare le componenti del suono nelle varie bande
di frequenza. Tipicamente gli equalizzatori sono a tre o quattro bande; su mixer di fascia
medio-alta alcune bande possono essere parametriche, ovvero è possibile modificare la
frequenza centrale ed eventualmente l’ampiezza di ciascuna banda. È presente talvolta un
filtro passa-alto (HPF). La frequenza di taglio è generalmente fissa (tipicamente 80/100
Hz). Sui mixer di fascia alta tale frequenza è modificabile ed è talvolta presente anche un
filtro passa basso (LPF).
20.1.5. Mandate monitor
La sezione mandate monitor contiene uno o più potenziometri per regolare l’invio di
segnale ai canali di monitor. Questi canali generalmente sono pre-fader; ovvero, il livello
del segnale inviato ai monitor non viene influenzato dal livello del fader. Tuttavia, questi
canali possono anche essere settati come post-fader, e in questo caso risentono del livello
dei fader.
20.1.6. Mandate effetti
La sezione effetti contiene uno o più potenziometri per regolare l’invio di segnale ai canali
destinati a processori di effetto. Questi canali sono post-fader; ovvero, il livello del
segnale inviato ai monitor viene influenzato dal livello del fader.
20.1.7. Selettore dei gruppi
Il selettore dei gruppi è presente solo su mixer di fascia più alta. Ogni canale della console
presenta uno o più tasti che abilitati convogliano il segnale audio a gruppi di canali in
uscita.
20.1.8. Pan-pot
Il potenziometro pan-pot permette di posizionare una sorgente sonora in un qualunque
punto tra il canale sinistro e il canale destro dell’immagine stereofonica di un dispositivo
audio.
20.1.9. Potenziometro (Fader)
Il potenziometro fader, tipicamente a slitta, regola l’invio del segnale ai canali di uscita
principali, o ai gruppi se presenti.
20.1.10. Canali di uscita
Nella grande maggioranza dei casi, il canale di uscita di un mixer audio è composto da due
segnali mono: uno per il canale destro l’altro per il canale sinistro. I segnali mono d’uscita
possono essere poi inviati a dei diffusori (comunemente detti casse) o processati tramite
equalizzatori o quanto altro si ritiene opportuno.
20.1.11. Master
I master sono i due canali di uscita principali, solitamente destro e sinistro; in consolle di
fascia alta è presente una terza uscita denominata mono, generalmente dedicata
all’alimentazione di subwoofer. Il master è principalmente usato per alimentare l’impianto
di amplificazione in ambiente live, ma anche apparecchiature per registrazione (sala
d’incisione).
20.1.12. AUX
Le mandate dette ausiliari, che nel mixer troviamo sotto il nome di AUX, possono essere
utilizzate in svariati modi. In ambito live vengono utilizzate principalmente per l’invio del
segnale ai monitor (o spie) dei musicisti sul palco o per l’invio ad outboard (effetti) esterni
per il processamento del suono. Questo tipo di mandate, in genere, ha due possibilità di
prelevamento del segnale che prendono il nome di pre, se si vuole che la quantità di
segnale sia indipendente dalla posizione del fader, e post, se invece si vuole che sia
vincolato. Questo comporta una certa comodità, poiché sullo stesso banco si avrà la
possibilità di creare una svariata serie di mix a seconda delle esigenze dello spettacolo.
Generalmente le mandate pre vengono utilizzate per il pilotaggio delle spie sul palco e le
post per le mandate agli effetti.
20.1.13. Effetti
I canali effetti alimentano processori di effetti interni o esterni permettendo di alimentare
l’effetto con una combinazione specifica dei canali in ingresso. Il segnale prodotto dal
processore di effetto viene tipicamente reinserito in un canale di ingresso. Molti mixer
posseggono canali di ingresso semplificati specificamente per questa funzione.
20.1.14. Gruppi
La funzionalità gruppi permette di raggruppare i canali di ingresso in gruppi che possono
essere regolati in modo unitario, ad esempio la batteria o una sezione di strumenti
omogenei.
20.2. Microfoni
È nota a tutti quale sia in generale la funzione di un microfono, mentre non è noto a tutti
che ne esistano di varie categorie e con differenze non solo economiche ma tecnologiche.
Il microfono converte le differenze di pressione dell’aria dovute alla voce ed in generale ai
suoni che circondano il microfono stesso in un segnale elettrico contenente le
informazioni sulla forma d’onda. Risparmiare sui microfoni non è mai una scelta saggia
per una web radio. Sempre meglio spendere qualcosa in più ma avere la certezza di una
migliore qualità del suono.

Figura 20.2. Un microfono classico

20.3. Amplificatore per cuffia

Figura 20.3. Prospetto frontale di un amplificatore per cuffia

L’amplificatore per cuffia è uno strumento molto utile per permettere a più persone di
ascoltare contemporaneamente uno stesso flusso, ad esempio l’uscita di un mixer. La
maggior parte degli amplificatori per cuffia accetta più ingressi e permette più uscite, per
cui è possibile ascoltare un unico flusso su più cuffie così come distribuire un flusso ad
una singola cuffia indipendentemente dalle altre.
20.4. Cavi e connettori
20.4.1. Connettore XLR
Il connettore XLR è utilizzato comunemente per le connessioni elettriche nel campo
dell’audio professionale e Hi-end. Colloquialmente viene chiamato connettore Cannon in
riferimento al costruttore originale: la Cannon Electric (adesso parte della ITT
Corporation). Questo connettore è dotato di un sistema di blocco.

Figura 20.4. Connettori XLR femmina (sinistra) e maschio (destra)

STORIA
Il connettore XLR è stato prodotto per la prima volta negli Stati Uniti dalla Cannon
Electric. La sigla XLR deriva dal nome originale Cannon X; in seguito, furono aggiunti
prima un blocco (latch) di sicurezza, e poi un isolante di gomma (rubber) attorno ai poli.
La sigla XLR è a volte interpretata come “eXtra Long Run”. Un connettore XLR può
avere diversi schemi di piedinatura; i tipi più comuni sono a tre, quattro e cinque poli.
APPLICAZIONI
Nella sua versione a tre poli, il connettore XLR viene usato normalmente per la
terminazione di linee audio bilanciate, ma spesso viene usato anche per segnali sbilanciati,
creando un corto circuito tra il polo di massa e quello freddo. È praticamente l’unico tipo
di connettore impiegato per il collegamento di microfoni, mentre per i segnali a livello di
linea è più comunemente usato il jack stereo.

Figura 20.5. Schema dei pioli di un connettore XLR

Bisogna fare attenzione alle apparecchiature che usano il polo 3 come caldo, perché può
capitare facilmente di invertire la polarità del segnale audio. Sempre la versione tripolare
viene usata per le connessioni audio di tipo digitale: in questo caso il sistema di
modulazione usato non pone problemi nel caso di connessioni in controfase.
PIN FUNZIONE
♦Massa (schermatura del cavo)

♦polarità normale (“caldo”)

♦polarità inversa (“freddo”).

In riferimento alla figura 20.5, guardando il connettore femmina il pin in alto a sinistra è il
numero 2, quello in alto a destra è il numero 1 e quello in basso è il 3. Guardando il
connettore maschio, il pin in alto a sinistra è il numero 1, quello in alto a destra è il
numero 2 e quello in basso è il 3.
Come regola, il connettore maschio è usato come uscita e il connettore femmina come
ingresso.I microfoni hanno un connettore maschio integrato come uscita, mentre un cavo
audio è di tipo maschio/femmina. Il mixer audio presenta dei connettori femmina agli
ingressi, mentre le uscite e i ritorni saranno maschi.
ASPETTI COSTRUTTIVI
Il connettore femmina XLR è progettato per connettere il polo numero 1 (di solito la
massa) prima degli altri. Questo permette di collegare o scollegare i connettori senza
introdurre ronzii di massa, come succede per esempio con i connettori di tipo RCA.

Figura 20.6. Connettori XLR alloggiati all’interno del mixer


20.4.2. Connettore Jack
Il connettore jack o connettore TRS è un connettore utilizzato spesso nel campo dell’audio
e in particolar modo per i dispositivi portatili. La dicitura TRS deriva dai termini inglesi
tip (corrisponde alla punta), ring (la parte centrale, l’anello) e sleeve (la manica, la parte
finale del connettore).
VERSIONI
♦2,5 mm (3/32”) mono (TS)

♦3,5 mm (1/8”) mono (TS)

♦3,5 mm (1/8”) stereo (TRS)

♦6,3 mm (1/4”) stereo (TRS).

Esistono diverse versioni del connettore jack:


♦mono

♦stereo (TRS)

♦tricanale (TRRS).

A seconda delle dimensioni, le principali sono:


♦jack 6,3 mm (amplificatori, casse, auricolari, strumenti musicali);

♦mini-jack 3,5 mm (lettori MP3, lettori CD, schede audio, auricolari);

♦supermini-jack 2,5 mm (lettori MP3, auricolari, palmari, videocamere).

Si differenziano anche per la loro forma:


♦dritti: il connettore ha un’uscita rettilinea del cavo;

♦a pipa (o piegati): il connettore ha un’uscita del cavo piegata a 90°.

STRUTTURA
In riferimento alla figura 20.7, si distinguono:
1) manica
2) anello
3) punta
4) anelli isolanti.

Figura 20.7. Sezioni di un connettore JACK

20.4.3. Connettore RCA


I connettori RCA sono spesso utilizzati nel campo dell’audio semiprofessionale,
amatoriale e anche nel video come connettore per il video composito, ma sono anche
adibiti ad altri usi. Il nome “RCA” deriva dalla Radio Corporation of America, che
progettò questo tipo di connettore negli anni Quaranta per permettere la connessione dei
giradischi agli amplificatori.

Figura 20.8. Connettori RCA

Negli anni Cinquanta il connettore RCA comincio a sostituire il connettore jack nella
componentistica audio, man mano che gli impianti domestici Hi-Fi diventavano sempre
più popolari. Il connettore RCA è cablato su cavo coassiale e trasporta un solo segnale
elettrico sbilanciato, ovvero un singolo canale audio analogico (audio mono).
UTILIZZI
Nel caso più comune il cavo è di tipo maschio/maschio, con una spina a ogni estremità.
Un eventuale cavo di prolunga è di tipo maschio/femmina, con presa volante su
un’estremità del cavo. Il connettore è composto da una protuberanza centrale (maschio) o
da un foro (femmina), circondati da un anello e separati da un isolante di plastica o
ceramica. Il bloccaggio della connessione non è meccanico ma avviene a pressione,
sfruttando la piccola differenza di diametro dell’anello esterno.
Da notare che, a differenza di connettori professionali come il tipo XLR, il polo centrale
viene in contatto con l’altro connettore prima della massa; per cui, accade spesso che
durante la connessione si verifichino ronzii o soffi se questa avviene ad apparecchiature
accese.
Nel cablaggio di apparati audio questo connettore si trova frequentemente in
configurazioni a jack-doppio RCA, che permette ad esempio di collegare un lettore MP3 o
un PC ad un Mixer.
In questo caso i connettori RCA sono colorati in modo diverso, in modo da distinguere il
canale destro dal sinistro: il destro è rosso, mentre il sinistro è solitamente bianco (talvolta
nero).
SVANTAGGI
Uno dei problemi dei connettori RCA è che ogni segnale richiede un cavo differente. In un
impianto già moderatamente complesso questo porta ad un numero di cavi consistente, che
diventa ancora più numeroso se si utilizzano segnali video a componenti, con sei cavi per
ogni ingresso/uscita.
ORIGINE
I connettori RCA sono conosciuti anche come prese cinch o connettori phono.
Quest’ultimo termine deriva dall’abbreviazione della parola inglese phonograph
(giradischi), poiché lo scopo iniziale delle connessioni RCA era il collegamento di un
giradischi ad un ricevitore radio usato come amplificatore.
Glossario
All’interno del glossario sono presenti delle brevi spiegazioni dei termini più comuni che
un regista radiofonico può incontrare nel corso dello studio di manualistiche tecniche o
nell’utilizzo dei software.
Il glossario non contiene dettagli specifici per nessuna voce, in quanto ogni singola voce
viene adeguatamente documentata all’interno del suo contesto di appartenenza. La
presenza del glossario nasce per permettere al regista di chiarire, il più velocemente
possibile, un dubbio su un termine (sia esso un acronimo o meno) che può trovare durante
la lettura di questo manuale come di altri testi inerenti il mondo della radiofonia su
Internet, della radiofonia in generale, ma anche delle telecomunicazioni e dell’informatica.
A
ABR
ABR è l’acronimo di Average Bit Rate ed è in realtà un sistema VBR costretto ad usare
per la maggior parte del tempo il bitrate scelto inizialmente.
AGC
L’Automatic Gain Control è un sistema di controllo implementato in regie radiofoniche
come SAM Broadcaster che permette di migliorare la qualità del flusso audio e adattare lo
stesso alle proprie esigenze.
AIFF
L’Audio Interchange File Format è un formato di file contenente un file audio codificato
similarmente a quanto avviene per i file WAV. Si tratta di una codifica lossless.
ALBERO
Un albero è un grafo connesso, non orientato e senza cicli. Per poterlo definire tale, il
grafo deve rispettare almeno uno dei seguenti punti:
♦possedere un solo cammino per ogni coppia di vertici;

♦essere aciclico massimale; ossia, se gli si aggiunge un altro arco per unire due suoi nodi si
forma un ciclo;
♦costituire un grafo connesso minimale; ossia, se si rimuove un suo arco si perde la
connessione.
ALIAS DNS
Un alias DNS è un nome che identifica una scheda di rete su Internet. Ad esempio, alla
scheda di rete di un server avente IP pari a 134.45.11.99 può corrispondere l’alias DNS
www.google.com.
ARTEFATTO
La definizione di artefatto varia in base al contesto di utilizzo. In informatica, un artefatto
è un prodotto realizzato o implementato a corredo di un altro prodotto definito principale.
L’esempio più classico di artefatto, nella teoria delle web radio, è l’inserimento
dell’immagine del corrispondente album all’interno di un file MP3.
ASX
Acronimo per Advanced Stream Redirector, è un formato file basato su un dialetto del
linguaggio XML. I file ASX sono comodi per memorizzare più flussi audio dentro un
unico file. Svolgono le stesse funzioni dei file PLS, RAM o M3U.
ATH
Acronimo per Absolute Threshold of Hearing; indica il livello minimo di udibilità. Tutti i
suoni che superano in ampiezza l’ATH sono da elaborare, gli altri non lo sono.
AUX
Canale o player ausiliare, che fornisce supporto ai canali o ai player principali, ai quali
può essere sovrapposto.
AWR
Acronimo per “Autorizzazione Web Radio”; è la licenza SIAE per le radio su Internet.
B
BANDA
Nell’ambito delle telecomunicazioni, è l’intervallo di frequenze disponibili per la
trasmissioni di dati in un intervallo di tempo. Si misura in bit al secondo. Le web radio
trasmettono utilizzando la banda in upload mentre i client utilizzano la banda in download,
notoriamente più alta della prima.
BITRATE
Il concetto di bitrate è molto simile a quello di banda. Si può intendere che la banda in
upload di un host sia il contenitore che limita al massimo il bitrate possibile. Si tratta di
una velocità di trasmissione misurata, quindi, in bit al secondo. Un brano musicale viene
codificato ad un bitrate che ne indica la qualità. Più alto è il numero di bit per secondo di
un brano più alta sarà la sua qualità e maggiore sarà la banda necessaria alla sua
trasmissione. Il bitrate può essere variabile (VBR) o costante (CBR).
BROADCASTING
Modalità di trasferimento informazioni da un mittente ad una moltitudine di destinatari
non definiti a priori.
BYPASSING
Procedura che consente di utilizzare come sorgente qualsiasi regia anche se non
originariamente predisposta allo scopo. Uno dei programmi che consente il bypassing è
Winamp, ma anche Edcast.
C
CANALE
Parte logica di un mixer che può contenere un unico strumento o fonte d’ingresso, che
andrà poi sommata alle altre per costituire l’uscita unica del mixer stesso.
CANNON
Vedi xlr.
CLIENT
Programma che consente l’ascolto della web radio.

Figura G.1. Schema di un’architettura server/clients

Da un punto di vista topologico, il client audio è considerato un dead end nella quasi
totalità delle web radio, a meno che non si tratti di una web radio basata sul peer to peer.
CPU
L’unità centrale di elaborazione è l’hardware all’interno di un sistema che si occupa
dell’esecuzione di comandi trascritti all’interno delle memorie.
D
DBMS
Database Management System. Sistema di gestione delle basi di dati. Nell’ambito
radiofonico, i DBMS (come mysql o ms sql) intervengono ad esempio nella gestione del
parco brani.
DEAD END
Sinonimo di client, è un terminale che non svolge funzioni attive ma che si limita a
ricevere dati.
DECK
“Piatto” virtuale in cui un brano va in esecuzione all’interno di una regia radiofonica.

Figura G.2. Prospetto del deck di SAM Broadcaster

DNAS
Nome del server Shoutcast.
DNS
Domain Name System. Servizio che trasforma indirizzi letterali in indirizzi IP.
E
ENCODER
Nell’ambito del multimediale, per encoder si intende un qualsiasi software/hardware in
grado di convertire un segnale audio eterogeneo in ingresso in un segnale audio omogeneo
(o eterogeneo secondo regole) in uscita. Uno dei più comuni encoder per web radio è
l’encoder LAME, che consente ad esempio di convertire un flusso audio comprendente
musica, voce, ed effetti sonori in uno stream MP3 CBR.
EQUALIZZATORE
Componente software o hardware utile a prevenire distorsioni del suono. Un equalizzatore
interviene nel modificare le ampiezze del suono in base alle fasce di frequenza.

Figura G.3. Grafico frequenza/ampiezza di un equalizzatore

F
FLAC
Codec audio rientrante tra i software liberi di tipologia lossless.
FOGLIA
Definizione di un qualsiasi nodo di un albero che non abbia nodi uscenti. In base alla
definizione una foglia è un client oppure un relay al quale non si è connesso nessun client.
FRAME MP3
Porzione del file MP3 che viene processata separatamente dalle altre per permettere la
compressione del file PCM originario e la divisione delle frequenze in ordine di priorità.
FREQUENZA DI CAMPIONAMENTO
La frequenza di campionamento di un segnale analogico è il numero di volte al secondo in
cui tale segnale viene trasformato in un valore numerico che lo contraddistingue
univocamente. Per potere ricostruire un segnale analogico senza perdite o sovrapposizioni
risulta necessario che la frequenza di campionamento sia almeno superiore al doppio della
larghezza di banda del segnale analogico. Tuttavia, anche in questo caso, la ricostruzione
accurata del segnale può risultare impossibile, esattamente come è impossibile trasformare
senza perdite un segnale appartenente ad un insieme numerico avente la potenza del
continuo (il segnale analogico) in uno appartenente ad un campo discreto (il segnale
digitale).
G
GAIN
Vedi guadagno.
GRAFO
Un grafo è un insieme di elementi, detti nodi o vertici, collegati fra loro da archi o lati. I
nodi possono rappresentare qualsiasi tipo di oggetto si desideri, mentre l’arco può
rappresentare qualsiasi tipo di collegamento tra tali oggetti. Nell’ambito radiofonico è
utile considerare la teoria dei grafi per studiare i relay e l’utilizzo della banda per la
trasmissione.
GUADAGNO
In questa trattazione possiamo considerare guadagno il rapporto tra il volume
dell’ingresso di un canale e il volume d’uscita del canale stesso di un mixer.
GUI
Graphic User Interface, interfaccia grafica dei programmi.
H
HASH
Funzione matematica che associa ad un’informazione qualsiasi un’altra informazione.
Caratteristica peculiare della funzione è la sua semplicità di calcolo in un verso ed
impossibilità di calcolo nel verso opposto.
HEADER FRAME MP3
L’header dei frame MP3 fornisce informazioni sui frame di un file MP3.
HERTZ
Unità di misura della frequenza. Si utilizza spesso per indicare la frequenza di
campionamento di un segnale analogico.
I
ICY
Acronimo di I Can Yell, è il protocollo di Shoutcast. Definisce le regole per la
comunicazione tra sorgente, server e client, ad esempio per l’invio dei metadata del flusso
audio.
ID3
Insieme di informazioni aggiuntive inserite in un file audio di tipo MP3. È l’abbreviazione
di Identify an MP3. Classico esempio di metadata.
J
JACK
Vedi jack audio connection kit.
JACK AUDIO CONNECTION KIT
Jack audio connection kit è un server audio che fornisce connessioni a bassa latenza per
dati sia audio che MIDI utilizzato in sistemi GNU/Linux.
L
LATENZA
Differenza tra il tempo di emissione di un suono ed il tempo di ricezione dello stesso. La
latenza è quindi il grado di differita che si ha in una trasmissione audio di qualsiasi tipo,
non solo su Internet. Minore è la latenza, migliore è la qualità del servizio e la possibilità
di interattività. È fisicamente impossibile annullarla.
LISTENER PEAK
In un server Shoutcast, è il massimo valore di ascoltatori simultanei registrato.
LOCALHOST
Rappresenta la macchina sul quale sta girando un programma. Identifica l’interfaccia di
loopback. Solitamente è corrispondente all’indirizzo 127.0.0.1, a prescindere dal fatto che
la macchina sia o meno collegata ad Internet.
LOG
File che contiene uno storico dei dati di competenza. Normalmente un file di log è
prodotto da tutti i server di streaming, ad esempio per tenere una memoria delle
connessioni ricevute.
LOOPBACK
L’interfaccia di loopback viene utilizzata nelle reti TCP/IP per identificare la macchina
locale su cui i programmi sono in esecuzione, detta anche localhost.
LOSSLESS
Un codec audio è lossless se è in grado di ricostruire esattamente il segnale analogico in
ingresso senza perdere nessun tipo di informazione. Un esempio di codec lossless è il
FLAC. L’unico requisito che deve seguire un codec lossless per essere reputato tale è la
corretta ricostruzione del segnale originario dopo una fase di codifica e decodifica, a
prescindere dalle modalità.
Di conseguenza un codec lossless può comunque utilizzare degli algoritmi per limitare la
grandezza del file codificato, come effettivamente avviene.
LOSSY
Un codec audio è lossy se comprime il file audio campionato eliminando informazioni
sulla base di algoritmi propri del codec stesso. Il segnale originario non è coincidente con
il file decodificato proprio per la perdita di informazioni nella fase di codifica. Questi
codec mediamente creano file dal peso molto più basso rispetto ai codec lossless. Il caso
più famoso al mondo di codec lossy è l’MP3.
M
METADATA
Dati che identificano altri dati; possono rappresentare titoli, autori e informazioni su un
flusso audio. Un caso emblematico è rappresentato dai tag ID3.
MINIJACK
Nome del formato intermedio del connettore jack. Questo connettore viene spesso usato
per lettori CD o cuffie per computer.
MIXER
Dispositivo che accetta in ingresso diverse sorgenti audio e restituisce in uscita un flusso
unico contenente la somma dei flussi in ingresso, spesso manipolati.
MONO
Modalità di codifica e riproduzione audio che sfrutta un solo canale.
MASTER SERVER
Un master server, in una configurazione di relay, è il server contenente il flusso che vuole
essere ritrasmesso.
MOUNTPOINT
Un mountpoint è una risorsa all’interno di un server che rappresenta un singolo flusso
audio ma anche audio/video. I mountpoint hanno dei nomi simili a quelli dei file
(mystream.ogg oppure /mystream). Quando gli ascoltatori si connettono a server come
Icecast2 devono specificare il mountpoint dal quale desiderano servirsi. Inoltre, le sorgenti
devono specificare un mountpoint al quale connettersi.
P
PCM
Acronimo per Pulse Code Modulation; la modulazione a codifica d’impulso converte un
segnale analogico in un segnale digitale ad un particolare bitrate costante dato dal numero
dei bit del singolo campione per il numero di campioni al secondo.
PEER 2 PEER
Architettura informatica non gerarchica in cui tutti i nodi hanno lo stesso peso e non vi è
contrapposizione distinta tra client e server.
PEERCAST
Server di streaming basato sul Peer 2 Peer.
PERCEPTUAL CODING
La codifica percettiva è una modalità di codifica audio che tiene estremamente conto di
come il suono viene percepito e non di come sia da un punto di vista quantitativo. Questa
modalità di codifica consente ai codec lossy di potere comunque generare un file
codificato ascoltabile ed apprezzabile con un peso ridotto anche del 90% rispetto al PCM
originario.
PHANTOM
Tecnica di passaggio della corrente elettrica attraverso gli stessi cavi utilizzati per il
passaggio dell’audio.
PHONO
Altro nome del connettore RCA.
PIPELINE
Dall’inglese “tubatura”, nel campo delle web radio una pipeline è una sequenza di
comandi o di funzioni nelle quali l’uscita di una di queste rappresenta l’ingresso della
successiva. Esempi di pipeline sono le sequenze di controlli del flusso audio di SAM
Broadcaster, così come una qualsiasi sequenza di comandi su Linux per la gestione di un
server Shoutcast.
PLS
Contrazione di playlist. Estensione che identifica le playlist create da software come
Winamp, contenenti un elenco di brani o di riferimenti a flussi audio.
PLUG-IN
Programma o porzione di software non fondamentale per il funzionamento del programma
al quale aggiunge funzionalità. Un esempio di plug-in è il DSP per Shoutcast, contenente
un encoder fondamentale per la trasmissione.
PORTA
La porta è un identificativo numerico, compreso tra 1 e 65536, che consente ad un
calcolatore di avere connessioni contemporanee con altri calcolatori. Ogni processo su un
particolare computer (come ad esempio il processo “Server di streaming”) è identificato
da un indirizzo IP e il corrispondente numero di porta. Nella grande maggioranza dei casi
di server di streaming locali, il numero di porta della trasmissione è 8000, ma può
ovviamente variare.
Q
QUEUE
All’interno delle regie radiofoniche, in particolare in SAM Broadcaster, queue rappresenta
la playlist temporanea da cui il software preleva le canzoni o i file audio di successiva
esecuzione rispetto al brano attuale.
R
RADICE
Definizione dell’unico nodo all’interno di un albero che non abbia un arco entrante. In
base a questa definizione, la radice di un albero di relay è il server di streaming principale
al quale si connette la sorgente.
RAM
Estensione file di Real Audio contenente all’interno un URL. Svolge le stesse funzioni dei
file ASX, PLS o M3U.
RCA
Tipologia di connettore audio sbilanciato, utilizzato ad esempio per connettere lettori CD
ad un mixer.
REGIA RADIOFONICA
Software in grado di organizzare le trasmissioni musicali e vocali di una emittente
radiofonica. Si occupa di organizzare le rotazioni musicali e consente ai registi radiofonici
di semplificare il loro lavoro.
RELAY
Un relay è un server di streaming che rilancia un segnale fornitogli in ingresso da un altro
server di streaming. Non è mai direttamente collegato alla sorgente del flusso audio ma
sempre ad un altro server di streaming. I relay sono comodi quando la banda a
disposizione per i server di streaming non è sufficiente per l’intera utenza.
RIPPING
Procedura di salvataggio su Hard Disk del flusso audio di una web radio.

Figura G.4. Schema di un’infrastruttura web-radiofonica

RITARDO DI PROPAGAZIONE
Differenza temporale tra il momento in cui un evento (quale può essere ad esempio un
suono) viene emesso dall’emittente e il momento in cui viene ricevuto dal ricevente. Non
è un concetto limitato alla radiofonia su Internet ma investe qualsiasi tipo di
comunicazione a prescindere dal mezzo. Viene spesso chiamato latenza, ma il corretto
concetto di latenza riguarda la conversione analogico-digitale.
RSS FEED
Aggregatore di notizie; consente di avere in un luogo unico più notizie da più fonti
accorpate, ad esempio, per argomento.
S
SAM BROADCASTER
Regia radiofonica completa di strumentazioni per la gestione musicale e per il
broadcasting.
SAMPLE RATE
Vedi frequenza di campionamento.
SEGNALI
Input inviati ad un programma durante l’esecuzione. In ambiente Linux, il programma
sc_trans (eseguibile dell’encoder MP3 di Shoutcast) accetta segnali come USR1 o
WINCH, che sono standard.
SERVER DI STREAMING
All’interno della catena di trasmissione web radiofonica, il server di streaming ha la
funzione di redistribuzione ai client del flusso audio generato dalla sorgente. I principali
server di streaming sono Icecast, Shoutcast e Windows Media Encoder.
SHOUTCAST
Server di streaming audio/video particolarmente conosciuto ed utilizzato. Rappresenta uno
degli standard per le web radio nel mondo. Utilizzabile sia su Windows che su sistemi
*nix.

Figura G.5. Server Shoutcast avviato senza interfaccia grafica

SIAE
Acronimo di Società Italiana Autori ed Editori; è il principale riscossore dei proventi ed
ente di tutela del diritto d’autore. Per effettuare trasmissioni di brani coperti da diritti
d’autore di proprietà del concessionario SIAE occorre stipulare la licenza AWR.
SLAVE SERVER
Un server slave, in una configurazione di relay, è il server che intende ritrasmettere il
flusso del master server. Opera come un client qualsiasi.
SOUNDCARD INPUT
Segnale diretto della scheda audio; permette di trasmettere l’output della scheda audio che,
almeno in architetture semplici, corrisponde a quello che si sente dalle casse del computer,
nessun suono escluso.
SORGENTE
Per sorgente si intende qualsiasi apparato che fornisca all’encoder il flusso di input per la
codifica. Può essere una regia radiofonica, ma può essere anche un file o un microfono. La
tipologia, la costanza e la qualità della sorgente influenzano molto la classificazione
dell’emittente.
SPEAKER
Figura professionale radiofonica che si occupa del trasmettere la propria voce. Si
differenzia dal tecnico radiofonico perché si occupa unicamente di diffondere contenuti, di
qualsiasi tipo siano.
STEREO
Modalità di codifica e riproduzione audio che sfrutta due canali, il sinistro e il destro.
Questa modalità è adatta alla diffusione su due altoparlanti.
STREAMING
Sequenza di dati rappresentanti audio o video trasmessi attraverso una rete telematica. Si
differenzia in live e on demand. Nel caso dello streaming audio, lo streaming live può
essere identificato nelle web radio, mentre lo streaming on demand nei podcast.
STREAMRIPPER
Applicazione che consente di effettuare il ripping delle web radio.
T
TEOREMA DI NYQUIST/SHANNON
Per gli scopi di questo testo, il teorema di Nyquist/Shannon descrive come sia impossibile
ricostruire accuratamente (tecnicamente: senza aliasing) un segnale analogico avente
intervallo di frequenze pari ad N hertz se tale segnale non è stato campionato con un passo
pari almeno al doppio della banda stessa. A titolo d’esempio, se un segnale audio ha una
banda che va da 0 hertz a 20000 hertz, che è il caso più comune, tale segnale analogico
non potrà essere ricostruito adeguatamente per tutte le frequenze se non è campionato con
almeno 40000 campioni al secondo.
TIMEOUT
Tempo massimo entro il quale deve pervenire una risposta a chi effettua una richiesta. Può
andare in timeout una sorgente che si disconnette dal server di streaming. Dopo tale
timeout i client del server possono, ad esempio, essere disconnessi.
TRS
Altro nome del connettore audio di tipo jack.
U
UPLOAD
Per upload si intende il caricamento di un file o di un flusso da un computer ad un altro.
La banda di trasmissione adibita al trasferimento di tale file o di tale flusso è detta banda
in upload e la sua grandezza determina il numero di ascoltatori massimi che può avere
un’emittente web radiofonica.
V
VBR
Acronimo di Variable Bit Rate; è una modalità di codifica che non mantiene un bitrate
costante ma lo varia nel tempo in base alla necessità di una maggiore risoluzione per un
particolare momento in un brano. È quindi una codifica a bitrate modellabile sulle base
delle esigenze.
W
WAV
Contrazione di WAVEform Audio File Format, ma anche più semplicemente di Wave; è un
formato di immagazzinamento dati audio elaborato da Microsoft per processori Intel.
Viene spesso utilizzata la codifica PCM.
WEB RADIO
Particolarizzazione dello Streaming Audio Live. Si definisce web radio uno streaming
audio che abbia particolari caratteristiche di continuità e di contenuti, tra cui la presenza di
musica e/o di interventi vocali. Si differenzia dal podcast per la sua natura di flusso in
diretta.
Figura G.6. Interfaccia grafica del player Winamp

WINAMP
Client audio per l’ascolto di file e web radio. Il programma è raggiungibile al sito
www.winamp.com ed è utilizzabile anche come sorgente o come bypass per le riprese da
scheda audio.
X
XLR
Tipologia di connettore audio utilizzato per collegare casse o altri dispositivi ad un mixer.
XML
Acronimo per Extensive Markup Language; il linguaggio XML consente di creare dei
documenti strutturati. Lo si può utilizzare per fornire facilmente una sequenza di valori di
opzioni ad un server; ciò avviene, ad esempio, per il server Icecast.
Y
YELLOWPAGES
Le pagine gialle corrispondono a degli elenchi online comprendenti tutte le web radio che
in quel momento stanno trasmettendo con un particolare server di streaming. Se è
impostata l’opzione di visualizzazione pubblica, la radio comparirà all’interno delle
pagine gialle.
Table of Contents

©
Premessa
1. Teoria della Web Radio
1.1. Introduzione
1.2. Teoria dei grafi
1.3. Web Radio a fonte unica
1.4. Web radio a fonte multipla
2. Codifica Audio
2.1. Come funziona MP3
2.1.1. Anatomia di un MP3
2.2. Come funziona WMA
2.3. Come funziona Vorbis
2.3.1. Dentro l’algoritmo
2.3.2. Il bitrate peeling
2.3.3. I container di Vorbis
2.3.4. I metadata
2.4. Come funziona AAC
2.4.1. Streaming
2.5. Come funziona FLAC
2.5.1. Passaggi di funzionamento
3. Shoutcast
3.1. Versione 1.9
3.1.1. Il file di configurazione
3.1.2. L’interfaccia web di Shoutcast 1.9.7
3.2. Versione 2.0
3.2.1. SC_SERV_BASIC.CONF
3.2.2. SC_SERV_DEBUG
3.2.3. SC_SERV_PUBLIC
3.2.4. SC_SERV_RELAY
3.2.5. Transcoder
3.2.6. Digital Signal Processor
3.2.7. Input configuration Tab
3.2.8. Soundcard mixer control Tab
3.3. Modalità operative DSP con Winamp
3.3.1. Connessione diretta di Winamp a Shoutcast Server v1
3.3.2. Connessione diretta di Winamp a Shoutcast Server v2
3.3.3. Connessione sorgente DJ tramite transcoder in un Shoutcast Server 1
3.3.4. Connessione sorgente DJ tramite transcoder in un Shoutcast Server 2
3.4. Configuration builder
3.5. Shoutcast su Linux
3.5.1. Sc_serv.conf
3.5.2. Sc_trans.conf
3.5.3. Example.lst
4. Icecast
4.1. Impostazioni principali
4.1.1. Icecast.xml
4.1.2. File di configurazione
4.1.3. Limiti
4.1.4. Autenticazione
4.1.5. Impostazioni delle pagine gialle
4.1.6. Altre impostazioni
4.1.7. Socket in ascolto
4.1.8. Ripetitori
4.1.9. Mount Specific Settings
4.2. Impostazioni di percorso
4.3. Diario di bordo
4.4. Impostazioni di sicurezza
4.5. Interfaccia di amministrazione di Icecast 2
4.5.1. Funzioni di amministrazione specifiche per mountpoint
4.5.2. Funzioni generali di amministrazione
4.5.3. Interfaccia web di amministrazione
4.6. Statistiche del server Icecast 2
4.6.1. Statistiche generiche
4.6.2. Statistiche specifiche per una sorgente
4.7. Relaying di Icecast 2
4.7.1. Tipologie di relays
4.7.2. Creare un relay master-slave
4.7.3. Creare un relay single-broadcast
4.8. Directory delle pagine gialle di Icecast 2
4.8.1. Configurare Icecast2 per il supporto pagine gialle
4.8.2. Configurazione per il supporto pagine gialle
4.9. Autenticazione dell’ascoltatore Icecast 2
4.9.1. HTPASSWD Listener Authentication
4.9.2. Configurazione di user e password
4.10. Conclusioni
4.10.1. URL
4.11. Documentazione specifica per Win32
4.11.1. Server status tab
4.11.2. Aggiungere statistiche alla finestra
4.11.3. Rimuovere statistiche dal server status
4.11.4. Modificare il file di configurazione
4.11.5. Stats tab
5. SIAE
5.1. Art. 1 – Definizioni
5.2. Art. 2 – Oggetto della licenza
5.3. Art. 3 – Diritti Concessi
5.4. Art. 4 – Repertorio della SIAE
5.5. Art. 5 – Territori
5.6. Art. 6 – Diritti esclusi
5.7. Art. 7 – Riserva degli aventi diritto
5.8. Art. 8 – Limiti della licenza
5.9. Art. 9 – Utilizzazioni pubblicitarie
5.10. Art. 10 – Inizio, cessazione, variazione di attività. Menzioni e informazioni
obbligatorie
5.11. Art. 11 – Link tra il sito del Licenziatario e i siti di terzi
5.12. Art. 12 – Utilizzazione di altri repertori tutelati dalla SIAE
5.13. Art. 13 – Tipologie di Web Radio e calcolo dei compensi
5.13.1. Web radio commerciali
5.13.2. Web radio istituzionali e/o comunitarie
5.13.3. Web radio personali
5.14. Art. 14 – Estensione della Licenza all’offerta degli stessi contenuti su
Social Network (sperimentale)
5.15. Art. 15 – Termini e modalità di pagamento dei compensi
5.16. Art. 16 – Penali
5.17. Art. 17 – Report
5.18. Art. 18 – Controlli della SIAE
5.19. Art. 19 – Digital Delivery
5.20. Art. 20 – Termini di validità
5.21. Art. 21 – Risoluzione del contratto di Licenza
5.22. Art. 22 – Legge applicabile e Foro competente
5.23. Art. 23 – Dichiarazione privacy
6. SAM Broadcaster
6.1. Menu File
6.2. Menu Player
6.3. Menu General
6.4. Menu Window
6.4.1. Deck
6.5. Player display
6.6. Controlli ausiliari
6.7. Playlist
6.7.1. Comprendere le categorie di playlist
6.8. Queue
6.8.1. Queue Display
6.8.2. Aggiungere e rimuovere dalla coda
6.8.3. Scorciatoie da tastiera
6.9. History
6.9.1. Scorciatoie da tastiera
6.10. SAM requests
6.10.1. Request Display
6.10.2. Scorciatoie da tastiera
6.11. Voice FX
6.11.1. Voice FX Display
6.11.2. Configurazione
6.11.3. Utilizzo di Voice FX
6.11.4. Scorciatoie da tastiera
6.12. Volume
6.13. Sound FX
6.13.1. Sound FX display
6.13.2. Sound FX control
6.14. Fade Control
6.14.1. Crossfading manuale
6.14.2. Fading manuale
6.14.3. Tempo adjust (pitch control)
6.14.4. Smooth Beat Fade
6.14.5. Beat fade (Metodo di sincronizzazione dei battiti tradizionale)
6.15. SAM Voice-tracking
6.15.1. Configurazione del voice-tracking
6.15.2. Voice-tracking: comandi principali
6.16. StreamAds Control
6.16.1. Control buttons
6.17. Encoders
6.17.1. Encoders Display
6.17.2. Interfaccia di scripting
6.17.3. Come aggiungere un encoder
6.18. Statistic Relays
6.18.1. Statistic Relays Control
6.18.2. Come aggiungere un relay di statistiche
6.18.3. Statistic relays graph
6.19. FTP log
6.20. PAL script
6.21. PCI Max Ultra
6.22. Event Scheduler
6.22.1. Event Action Tab
6.22.2. Schedule Times Tab
6.22.3. Event log
6.22.4. Event log display
6.23. Clock
6.24. Menu Layout
6.25. Menu Tools
6.26. Menu Help
6.27. Toolbars
6.28. Configurazione di SAM Broadcaster
6.29. Member Details
6.30. Station Details
6.31. Audio Mixer Pipeline
6.32. Crossfading
6.32.1. Configurazione di base
6.32.2. Configurazione del crossfading
6.33. Gap killer
6.34. Playlist Rotation Rules
6.34.1. Playlist Rotation Logic Modules
6.35. Request Policy
6.35.1. Regole di richiesta
6.35.2. Vantaggi e svantaggi del ritardo di richiesta
6.36. General
6.36.1. Configurazione basilare
6.37. HTML Output
6.37.1. General HTML output
6.37.2. Playlist HTML output
6.37.3. Upload file via FTP
6.38. StreamAds Providers
6.39. SAM StreamAds Logic
6.40. Registration Key
6.41. Equalizzatore
6.42. AGC (Automatic Gain Control)
6.43. DSP (Digital Sound Processing)
6.44. Output
6.44.1. Air Output Settings
6.44.2. Cue output settings
6.44.3. Buffer settings
6.45. SAM Shortcut Keys
6.45.1. Scorciatoie globali
6.45.2. Scorciatoie di finestra
6.46. Editor delle informazioni dei brani
6.47. Tab details
6.48. Tab Settings
6.48.1. Cue point
6.48.2. Come settare un cue point
6.48.3. Beat-per-minute
6.48.4. Altre opzioni
6.48.5. Opzioni di applicazione
6.48.6. Tab Fading
6.49. Troubleshooting
6.49.1. Touch Aborted
6.49.2. Audio Fast Forwarding
6.49.3. SAM was unable to queue a song after 20 tries
6.49.4. Unable to send data fast enough
6.49.5. Codici numerici d’errore
6.50. Sezione vocale
6.51. Template per il web
6.51.1. _playing.html
6.51.2. _songinfo.html
6.52. Approfondimento sui PAL Scripts
6.52.1. Introduzione
6.52.2. Avvertenze per l’utilizzo degli script PAL
6.52.3. Come creare un PAL script
6.52.4. Inserire un commento in uno script
6.52.5. Comandi utili per il debugging
6.52.6. Variabili e costanti
6.52.7. Matematica del PAL
6.52.8. Gestione delle stringhe
6.52.9. Altre funzioni di interesse per le stringhe
6.52.10. Gestione del tempo
6.52.11. La logica nel PAL
6.52.12. Costrutti principali
6.52.13. Comandi di attesa
6.52.14. Velocizzare l’esecuzione degli script
6.52.15. Gli oggetti
6.52.16. I principali oggetti
6.52.17. Funzioni di utilità
6.52.18. LinerAdder
6.52.19. Funzioni di utilità - Curtime
6.52.20. Funzioni di utilità – Gestione del volume
6.52.21. Encoder e relay di statistiche
6.52.22. Tecniche di scripting avanzate
6.52.23. Scaricare file
6.52.24. Funzioni per maneggiare i nomi dei file
6.52.25. Funzioni per il file system
6.52.26. Maneggiare indirizzi remoti
6.52.27. Maneggiare le categorie
6.52.28. Selezionare brani
7. Zararadio
7.1. Opzioni settabili
7.1.1. Fade
7.1.2. Satellite
7.1.3. Uscite
7.1.4. Registro
7.1.5. Password
7.1.6. Rilevatore di silenzio
7.1.7. Mixer
7.1.8. TTH
7.1.9. Explorer
7.1.10. Tags
7.1.11. Talk Over
7.1.12. Generale
8. Windows Media Encoder
8.1. Opzioni
8.1.1. Sources
8.1.2. Output
8.1.3. Compression
8.1.4. Attributes
8.1.5. Plug-ins
8.1.6. Security
8.1.7. Advanced
8.2. Informazioni di trasmissione
8.2.1. General
8.2.2. Statistics
8.2.3. Server
8.2.4. Connections
8.2.5. Event Log e EDL
9. IDJC
9.1. Trasmettere con IDJC
9.1.1. Sezione Connection
9.1.2. Sezione Encoding
9.1.3. Sezione Stream Info
9.1.4. Sezione Record
9.2. Preferenze
9.2.1. General
9.2.2. Microphone
9.2.3. X-Chat
9.2.4. Jack Ports
9.2.5. Event
9.3. TroubleShooting
10. Metafile
10.1. PLS
10.2. RAM
10.3. ASX
11. SCF
11.1. Il contratto per web radio amatoriale
11.1.1. Art. 1 – Definizioni
11.1.2. Art. 2 – Oggetto
11.1.3. Art. 3 – Modalità di utilizzazione delle registrazioni fonografiche
11.1.4. Art. 4 – Compenso
11.1.5. Art. 5 – Termini e modalità di pagamento
11.1.6. Art. 6 – Controlli
11.1.7. Art. 7 – Ulteriori obblighi del Licenziatario
11.1.8. Art. 8 – Dichiarazioni e manleve
11.1.9. Art. 9 – Durata
11.1.10. Art. 10 – Risoluzione in caso di inadempimento
11.1.11. Art. 11 – Legge applicabile e foro competente
11.1.12. Art. 12 – Disposizioni generali
11.1.13. Art. 13 – Trattamento dei dati personali
11.1.14. Allegato A
11.2. Il contratto per web radio istituzionale
11.3. Il contratto per web radio commerciale
11.3.1. Compenso Streaming
11.3.2. Minimo Garantito
11.3.3. Rendicontazione
11.3.4. Termini e modalità di pagamento
12. Streamripper
12.1. StreamRipper come plug-in per Winamp
12.2. Configurazione del plug-in
12.2.1. Connection
12.2.2. File
12.2.3. Pattern
12.3. StreamRipper come standalone su GNU/Linux
12.4. Manuale tecnico di Streamripper
12.4.1. Individuazione dello Splitpoint
12.4.2. Splitting standard
12.4.3. Separazione basata sul silenzio
13. GnuMP3d
13.1. Installazione su Windows
13.2. Installazione su Linux
13.2.1. Compilazione
13.2.2. Tramite APT
13.2.3. Dipendenze
13.3. Configurazione di GnuMP3d su Linux
13.3.1. File.types
13.3.2. Mime.types
13.3.3. Gnump3d.conf
14. Spreaker
14.1. Interfaccia della consolle
15. DirEttore
15.1. Requisiti minimi
15.2. Installazione della regia
15.3. File audio supportati
15.4. Caratteristiche principali e definizioni
15.5. La finestra principale
15.5.1. Il pannello dei player
15.5.2. Il pannello dei contatori
15.5.3. Il volumetro principale
15.5.4. Primo gruppo comandi
15.5.5. Secondo gruppo comandi
15.5.6. Terzo gruppo di comandi
15.5.7. Playlist e rotazione
15.6. Il preascolto
15.7. Editor delle informazioni dei brani
15.8. Configurazione dei player degli effetti istantanei
15.9. Configurazione della rotazione
15.10 Configurazione della playlist
15.11. Schedulatore degli eventi
15.12. Pianificazione delle pubblicità
15.13. Editor delle sequenze
15.14. Editor dei cue point
15.15. Configurazione
15.15.1. Parametri generali
15.15.2. Track defaults tab
15.15.3. Track Info tab
15.15.4. Logging tab
15.15.5. Rotation tab
15.15.6. Panic tab
15.15.7. Sweeper and voice-tracks tab
15.15.8. Time announcement tab
15.15.9. View tab
15.15.10. Audio cards tab
15.15.11. Compressor tab
15.15.12. Equalizer tab
15.15.13. Password tab
15.15.14. Remote control tab
15.15.15. Automation behaviour tab
15.15.16. VST effect tab
15.16. Come avviare l’automazione
15.17. Scorciatoie da tastiera
15.18. I file generati dalla regia
15.18.1. Listato di un file playlist
15.18.2. Listato di un file rotazione
15.18.3. Listato di una collezione di eventi
15.18.4. Listato del piano pubblicitario
15.18.5. Listato delle sequenze
15.18.6. Modalità di salvataggio dei cue point
15.18.7. Listato dei player degli effetti istantanei
16. GISS.tv
16.1. Configurazione del canale
17. Caster.fm
17.1. Tab server
17.2. Tab website
17.3. Tab tutorials
17.4. Tab downloads ed embed
18. Edcast
18.1. Menu di configurazione
18.1.1. Basic Settings
18.1.2. Advanced settings
18.2. Metadata
19. MB Studio
19.1. Audio
19.1.1. Scheda Audio
19.1.2. Opzioni
19.1.3. Mixaggi
19.2. Opzioni
19.2.1. Opzioni
19.2.2. Altro
19.2.3. Annuncio
19.2.4. Caratteri
19.2.5. RSS Feed
19.3. Canzoni
19.4. Cartelle
19.5. Voci sintetiche
19.6. Modem
19.7. Rete
19.7.1. Cartella di lavoro MB Studio
19.7.2. Connessioni TCPIP
19.7.3. Split
19.7.5. MB Live
19.7.6. Altro
19.8. RDS Pira
19.9. Webcast
19.9.1. Tab Cattura
19.9.2. Tab DSP Plugin
19.9.3. Tab Testo metadata
19.9.4. Tab Encoder (da 1 a 4)
19.9.5. Tab 90 giorni
19.9.6. Tab registratore
19.10. Email
19.10.1. POP3
19.10.2. SMTP
19.11. Pubblicazioni
19.11.1. Playlist
19.11.2. Messaggi
19.11.3. Cartella immagini
19.11.4. FTP Upload
20. Hardware
20.1. Mixer
20.1.1. Canali di ingresso
20.1.2. Connettori di ingresso
20.1.3. Stadio di ingresso
20.1.4. Equalizzatore
20.1.5. Mandate monitor
20.1.6. Mandate effetti
20.1.7. Selettore dei gruppi
20.1.8. Pan-pot
20.1.9. Potenziometro (Fader)
20.1.10. Canali di uscita
20.1.11. Master
20.1.12. AUX
20.1.13. Effetti
20.1.14. Gruppi
20.2. Microfoni
20.3. Amplificatore per cuffia
20.4. Cavi e connettori
20.4.1. Connettore XLR
20.4.2. Connettore Jack
20.4.3. Connettore RCA
Glossario
Table of Contents
©
Premessa
1. Teoria della Web Radio
1.1. Introduzione
1.2. Teoria dei grafi
1.3. Web Radio a fonte unica
1.4. Web radio a fonte multipla
2. Codifica Audio
2.1. Come funziona MP3
2.1.1. Anatomia di un MP3
2.2. Come funziona WMA
2.3. Come funziona Vorbis
2.3.1. Dentro l’algoritmo
2.3.2. Il bitrate peeling
2.3.3. I container di Vorbis
2.3.4. I metadata
2.4. Come funziona AAC
2.4.1. Streaming
2.5. Come funziona FLAC
2.5.1. Passaggi di funzionamento
3. Shoutcast
3.1. Versione 1.9
3.1.1. Il file di configurazione
3.1.2. L’interfaccia web di Shoutcast 1.9.7
3.2. Versione 2.0
3.2.1. SC_SERV_BASIC.CONF
3.2.2. SC_SERV_DEBUG
3.2.3. SC_SERV_PUBLIC
3.2.4. SC_SERV_RELAY
3.2.5. Transcoder
3.2.6. Digital Signal Processor
3.2.7. Input configuration Tab
3.2.8. Soundcard mixer control Tab
3.3. Modalità operative DSP con Winamp
3.3.1. Connessione diretta di Winamp a Shoutcast Server v1
3.3.2. Connessione diretta di Winamp a Shoutcast Server v2
3.3.3. Connessione sorgente DJ tramite transcoder in un
Shoutcast Server 1
3.3.4. Connessione sorgente DJ tramite transcoder in un
Shoutcast Server 2
3.4. Configuration builder
3.5. Shoutcast su Linux
3.5.1. Sc_serv.conf
3.5.2. Sc_trans.conf
3.5.3. Example.lst
4. Icecast
4.1. Impostazioni principali
4.1.1. Icecast.xml
4.1.2. File di configurazione
4.1.3. Limiti
4.1.4. Autenticazione
4.1.5. Impostazioni delle pagine gialle
4.1.6. Altre impostazioni
4.1.7. Socket in ascolto
4.1.8. Ripetitori
4.1.9. Mount Specific Settings
4.2. Impostazioni di percorso
4.3. Diario di bordo
4.4. Impostazioni di sicurezza
4.5. Interfaccia di amministrazione di Icecast 2
4.5.1. Funzioni di amministrazione specifiche per
mountpoint
4.5.2. Funzioni generali di amministrazione
4.5.3. Interfaccia web di amministrazione
4.6. Statistiche del server Icecast 2
4.6.1. Statistiche generiche
4.6.2. Statistiche specifiche per una sorgente
4.7. Relaying di Icecast 2
4.7.1. Tipologie di relays
4.7.2. Creare un relay master-slave
4.7.3. Creare un relay single-broadcast
4.8. Directory delle pagine gialle di Icecast 2
4.8.1. Configurare Icecast2 per il supporto pagine gialle
4.8.2. Configurazione per il supporto pagine gialle
4.9. Autenticazione dell’ascoltatore Icecast 2
4.9.1. HTPASSWD Listener Authentication
4.9.2. Configurazione di user e password
4.10. Conclusioni
4.10.1. URL
4.11. Documentazione specifica per Win32
4.11.1. Server status tab
4.11.2. Aggiungere statistiche alla finestra
4.11.3. Rimuovere statistiche dal server status
4.11.4. Modificare il file di configurazione
4.11.5. Stats tab
5. SIAE
5.1. Art. 1 – Definizioni
5.2. Art. 2 – Oggetto della licenza
5.3. Art. 3 – Diritti Concessi
5.4. Art. 4 – Repertorio della SIAE
5.5. Art. 5 – Territori
5.6. Art. 6 – Diritti esclusi
5.7. Art. 7 – Riserva degli aventi diritto
5.8. Art. 8 – Limiti della licenza
5.9. Art. 9 – Utilizzazioni pubblicitarie
5.10. Art. 10 – Inizio, cessazione, variazione di attività. Menzioni e informazioni
obbligatorie
5.11. Art. 11 – Link tra il sito del Licenziatario e i siti di terzi
5.12. Art. 12 – Utilizzazione di altri repertori tutelati dalla SIAE
5.13. Art. 13 – Tipologie di Web Radio e calcolo dei compensi
5.13.1. Web radio commerciali
5.13.2. Web radio istituzionali e/o comunitarie
5.13.3. Web radio personali
5.14. Art. 14 – Estensione della Licenza all’offerta degli stessi contenuti su
Social Network (sperimentale)
5.15. Art. 15 – Termini e modalità di pagamento dei
compensi
5.16. Art. 16 – Penali
5.17. Art. 17 – Report
5.18. Art. 18 – Controlli della SIAE
5.19. Art. 19 – Digital Delivery
5.20. Art. 20 – Termini di validità
5.21. Art. 21 – Risoluzione del contratto di Licenza
5.22. Art. 22 – Legge applicabile e Foro competente
5.23. Art. 23 – Dichiarazione privacy
6. SAM Broadcaster
6.1. Menu File
6.2. Menu Player
6.3. Menu General
6.4. Menu Window
6.4.1. Deck
6.5. Player display
6.6. Controlli ausiliari
6.7. Playlist
6.7.1. Comprendere le categorie di playlist
6.8. Queue
6.8.1. Queue Display
6.8.2. Aggiungere e rimuovere dalla coda
6.8.3. Scorciatoie da tastiera
6.9. History
6.9.1. Scorciatoie da tastiera
6.10. SAM requests
6.10.1. Request Display
6.10.2. Scorciatoie da tastiera
6.11. Voice FX
6.11.1. Voice FX Display
6.11.2. Configurazione
6.11.3. Utilizzo di Voice FX
6.11.4. Scorciatoie da tastiera
6.12. Volume
6.13. Sound FX
6.13.1. Sound FX display
6.13.2. Sound FX control
6.14. Fade Control
6.14.1. Crossfading manuale
6.14.2. Fading manuale
6.14.3. Tempo adjust (pitch control)
6.14.4. Smooth Beat Fade
6.14.5. Beat fade (Metodo di sincronizzazione dei battiti
tradizionale)
6.15. SAM Voice-tracking
6.15.1. Configurazione del voice-tracking
6.15.2. Voice-tracking: comandi principali
6.16. StreamAds Control
6.16.1. Control buttons
6.17. Encoders
6.17.1. Encoders Display
6.17.2. Interfaccia di scripting
6.17.3. Come aggiungere un encoder
6.18. Statistic Relays
6.18.1. Statistic Relays Control
6.18.2. Come aggiungere un relay di statistiche
6.18.3. Statistic relays graph
6.19. FTP log
6.20. PAL script
6.21. PCI Max Ultra
6.22. Event Scheduler
6.22.1. Event Action Tab
6.22.2. Schedule Times Tab
6.22.3. Event log
6.22.4. Event log display
6.23. Clock
6.24. Menu Layout
6.25. Menu Tools
6.26. Menu Help
6.27. Toolbars
6.28. Configurazione di SAM Broadcaster
6.29. Member Details
6.30. Station Details
6.31. Audio Mixer Pipeline
6.32. Crossfading
6.32.1. Configurazione di base
6.32.2. Configurazione del crossfading
6.33. Gap killer
6.34. Playlist Rotation Rules
6.34.1. Playlist Rotation Logic Modules
6.35. Request Policy
6.35.1. Regole di richiesta
6.35.2. Vantaggi e svantaggi del ritardo di richiesta
6.36. General
6.36.1. Configurazione basilare
6.37. HTML Output
6.37.1. General HTML output
6.37.2. Playlist HTML output
6.37.3. Upload file via FTP
6.38. StreamAds Providers
6.39. SAM StreamAds Logic
6.40. Registration Key
6.41. Equalizzatore
6.42. AGC (Automatic Gain Control)
6.43. DSP (Digital Sound Processing)
6.44. Output
6.44.1. Air Output Settings
6.44.2. Cue output settings
6.44.3. Buffer settings
6.45. SAM Shortcut Keys
6.45.1. Scorciatoie globali
6.45.2. Scorciatoie di finestra
6.46. Editor delle informazioni dei brani
6.47. Tab details
6.48. Tab Settings
6.48.1. Cue point
6.48.2. Come settare un cue point
6.48.3. Beat-per-minute
6.48.4. Altre opzioni
6.48.5. Opzioni di applicazione
6.48.6. Tab Fading
6.49. Troubleshooting
6.49.1. Touch Aborted
6.49.2. Audio Fast Forwarding
6.49.3. SAM was unable to queue a song after 20 tries
6.49.4. Unable to send data fast enough
6.49.5. Codici numerici d’errore
6.50. Sezione vocale
6.51. Template per il web
6.51.1. _playing.html
6.51.2. _songinfo.html
6.52. Approfondimento sui PAL Scripts
6.52.1. Introduzione
6.52.2. Avvertenze per l’utilizzo degli script PAL
6.52.3. Come creare un PAL script
6.52.4. Inserire un commento in uno script
6.52.5. Comandi utili per il debugging
6.52.6. Variabili e costanti
6.52.7. Matematica del PAL
6.52.8. Gestione delle stringhe
6.52.9. Altre funzioni di interesse per le stringhe
6.52.10. Gestione del tempo
6.52.11. La logica nel PAL
6.52.12. Costrutti principali
6.52.13. Comandi di attesa
6.52.14. Velocizzare l’esecuzione degli script
6.52.15. Gli oggetti
6.52.16. I principali oggetti
6.52.17. Funzioni di utilità
6.52.18. LinerAdder
6.52.19. Funzioni di utilità - Curtime
6.52.20. Funzioni di utilità – Gestione del volume
6.52.21. Encoder e relay di statistiche
6.52.22. Tecniche di scripting avanzate
6.52.23. Scaricare file
6.52.24. Funzioni per maneggiare i nomi dei file
6.52.25. Funzioni per il file system
6.52.26. Maneggiare indirizzi remoti
6.52.27. Maneggiare le categorie
6.52.28. Selezionare brani
7. Zararadio
7.1. Opzioni settabili
7.1.1. Fade
7.1.2. Satellite
7.1.3. Uscite
7.1.4. Registro
7.1.5. Password
7.1.6. Rilevatore di silenzio
7.1.7. Mixer
7.1.8. TTH
7.1.9. Explorer
7.1.10. Tags
7.1.11. Talk Over
7.1.12. Generale
8. Windows Media Encoder
8.1. Opzioni
8.1.1. Sources
8.1.2. Output
8.1.3. Compression
8.1.4. Attributes
8.1.5. Plug-ins
8.1.6. Security
8.1.7. Advanced
8.2. Informazioni di trasmissione
8.2.1. General
8.2.2. Statistics
8.2.3. Server
8.2.4. Connections
8.2.5. Event Log e EDL
9. IDJC
9.1. Trasmettere con IDJC
9.1.1. Sezione Connection
9.1.2. Sezione Encoding
9.1.3. Sezione Stream Info
9.1.4. Sezione Record
9.2. Preferenze
9.2.1. General
9.2.2. Microphone
9.2.3. X-Chat
9.2.4. Jack Ports
9.2.5. Event
9.3. TroubleShooting
10. Metafile
10.1. PLS
10.2. RAM
10.3. ASX
11. SCF
11.1. Il contratto per web radio amatoriale
11.1.1. Art. 1 – Definizioni
11.1.2. Art. 2 – Oggetto
11.1.3. Art. 3 – Modalità di utilizzazione delle registrazioni
fonografiche
11.1.4. Art. 4 – Compenso
11.1.5. Art. 5 – Termini e modalità di pagamento
11.1.6. Art. 6 – Controlli
11.1.7. Art. 7 – Ulteriori obblighi del Licenziatario
11.1.8. Art. 8 – Dichiarazioni e manleve
11.1.9. Art. 9 – Durata
11.1.10. Art. 10 – Risoluzione in caso di inadempimento
11.1.11. Art. 11 – Legge applicabile e foro competente
11.1.12. Art. 12 – Disposizioni generali
11.1.13. Art. 13 – Trattamento dei dati personali
11.1.14. Allegato A
11.2. Il contratto per web radio istituzionale
11.3. Il contratto per web radio commerciale
11.3.1. Compenso Streaming
11.3.2. Minimo Garantito
11.3.3. Rendicontazione
11.3.4. Termini e modalità di pagamento
12. Streamripper
12.1. StreamRipper come plug-in per Winamp
12.2. Configurazione del plug-in
12.2.1. Connection
12.2.2. File
12.2.3. Pattern
12.3. StreamRipper come standalone su GNU/Linux
12.4. Manuale tecnico di Streamripper
12.4.1. Individuazione dello Splitpoint
12.4.2. Splitting standard
12.4.3. Separazione basata sul silenzio
13. GnuMP3d
13.1. Installazione su Windows
13.2. Installazione su Linux
13.2.1. Compilazione
13.2.2. Tramite APT
13.2.3. Dipendenze
13.3. Configurazione di GnuMP3d su Linux
13.3.1. File.types
13.3.2. Mime.types
13.3.3. Gnump3d.conf
14. Spreaker
14.1. Interfaccia della consolle
15. DirEttore
15.1. Requisiti minimi
15.2. Installazione della regia
15.3. File audio supportati
15.4. Caratteristiche principali e definizioni
15.5. La finestra principale
15.5.1. Il pannello dei player
15.5.2. Il pannello dei contatori
15.5.3. Il volumetro principale
15.5.4. Primo gruppo comandi
15.5.5. Secondo gruppo comandi
15.5.6. Terzo gruppo di comandi
15.5.7. Playlist e rotazione
15.6. Il preascolto
15.7. Editor delle informazioni dei brani
15.8. Configurazione dei player degli effetti istantanei
15.9. Configurazione della rotazione
15.10 Configurazione della playlist
15.11. Schedulatore degli eventi
15.12. Pianificazione delle pubblicità
15.13. Editor delle sequenze
15.14. Editor dei cue point
15.15. Configurazione
15.15.1. Parametri generali
15.15.2. Track defaults tab
15.15.3. Track Info tab
15.15.4. Logging tab
15.15.5. Rotation tab
15.15.6. Panic tab
15.15.7. Sweeper and voice-tracks tab
15.15.8. Time announcement tab
15.15.9. View tab
15.15.10. Audio cards tab
15.15.11. Compressor tab
15.15.12. Equalizer tab
15.15.13. Password tab
15.15.14. Remote control tab
15.15.15. Automation behaviour tab
15.15.16. VST effect tab
15.16. Come avviare l’automazione
15.17. Scorciatoie da tastiera
15.18. I file generati dalla regia
15.18.1. Listato di un file playlist
15.18.2. Listato di un file rotazione
15.18.3. Listato di una collezione di eventi
15.18.4. Listato del piano pubblicitario
15.18.5. Listato delle sequenze
15.18.6. Modalità di salvataggio dei cue point
15.18.7. Listato dei player degli effetti istantanei
16. GISS.tv
16.1. Configurazione del canale
17. Caster.fm
17.1. Tab server
17.2. Tab website
17.3. Tab tutorials
17.4. Tab downloads ed embed
18. Edcast
18.1. Menu di configurazione
18.1.1. Basic Settings
18.1.2. Advanced settings
18.2. Metadata
19. MB Studio
19.1. Audio
19.1.1. Scheda Audio
19.1.2. Opzioni
19.1.3. Mixaggi
19.2. Opzioni
19.2.1. Opzioni
19.2.2. Altro
19.2.3. Annuncio
19.2.4. Caratteri
19.2.5. RSS Feed
19.3. Canzoni
19.4. Cartelle
19.5. Voci sintetiche
19.6. Modem
19.7. Rete
19.7.1. Cartella di lavoro MB Studio
19.7.2. Connessioni TCPIP
19.7.3. Split
19.7.5. MB Live
19.7.6. Altro
19.8. RDS Pira
19.9. Webcast
19.9.1. Tab Cattura
19.9.2. Tab DSP Plugin
19.9.3. Tab Testo metadata
19.9.4. Tab Encoder (da 1 a 4)
19.9.5. Tab 90 giorni
19.9.6. Tab registratore
19.10. Email
19.10.1. POP3
19.10.2. SMTP
19.11. Pubblicazioni
19.11.1. Playlist
19.11.2. Messaggi
19.11.3. Cartella immagini
19.11.4. FTP Upload
20. Hardware
20.1. Mixer
20.1.1. Canali di ingresso
20.1.2. Connettori di ingresso
20.1.3. Stadio di ingresso
20.1.4. Equalizzatore
20.1.5. Mandate monitor
20.1.6. Mandate effetti
20.1.7. Selettore dei gruppi
20.1.8. Pan-pot
20.1.9. Potenziometro (Fader)
20.1.10. Canali di uscita
20.1.11. Master
20.1.12. AUX
20.1.13. Effetti
20.1.14. Gruppi
20.2. Microfoni
20.3. Amplificatore per cuffia
20.4. Cavi e connettori
20.4.1. Connettore XLR
20.4.2. Connettore Jack
20.4.3. Connettore RCA
Glossario

You might also like