Differences between revisions 4 and 5
Revision 4 as of 2009-03-08 23:23:33
Size: 2521
Editor: fruity
Comment:
Revision 5 as of 2009-03-11 12:04:42
Size: 3228
Editor: fruity
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Versione consigliata liquidsoap-3.6.8-1 Versione consigliata liquidsoap-3.8.1
Line 32: Line 32:
# this is to reload any playlist every hour and every quarter # this is to reload any playlists every hour and every quarter
Line 36: Line 36:
# playlist directory, need to make a definition to avoid
# the replay of jingles
# playlists files, also works with /path/to/directory/withaudiofiles/
# but somehow take more memory
# reload them any -tot-
# there is cronjob that regenerate the playlists based on directories
# any 15 minutes
Line 39: Line 42:
listall = say_metadata(playlist("/home/radio/soap/playlists/globale.pls")) listall = quarter("/home/radio/soap/playlists/globale.pls")
Line 41: Line 44:
# live istance # live istance to be picked.
Line 44: Line 47:
# one jingle five audio # every 5 tracks play one jingle
Line 47: Line 50:
server = output.icecast.mp3(restart=true, restart_delay=5, port=8000, user="source", password="xxx", genre="Experimental,Eclectic,Free pirate radio", url="http://radiocybernet.org/", description="Online since 1997", public=true, samplerate=22050, bitrate=24, stereo=false) # server definition, definition can be nested, in fact the set to the icacasr server uri is afterwards
mp3
= output.icecast.mp3(restart=true, restart_delay=5, port=8000, user="source", password="xxx", genre="Experimental,Eclectic,Free pirate radio", url="http://radiocybernet.org/", description="Online since 1997", public=true, samplerate=22050, bitrate=24, stereo=false)
Line 51: Line 55:
dyne="radio.dyne.org"
# define an event, if event appears relay the live
# there is a hack here, older version say_metadata with text2speech worked at end of track
# this has never worked
# need to be refactored for new say_metadata at beginning of track
Line 62: Line 68:
# crossfade example
Line 67: Line 74:
broadcast = event(live,say_metadata(radio)) # use event to start the live watch,relay. Again, if no live is there then run the normal radio schedule
broadcast = event(live,radio)
Line 69: Line 77:
outdyne = server(host=dyne, mount="rcyb.mp3", name="rcyb.mp3", broadcast ) # nesting variables
dyne="radio.dyne.org"
Line 71: Line 80:
oggdyne = ogg(host=dyne, mount="rcyb.ogg", name="rcyb.ogg", broadcast ) # nesting definition, see above
mp3dyne = mp3(host=dyne, user="source", password="xxx", mount="rcyb.mp3", name="rcyb.mp3", broadcast )

oggdyne = ogg(host=dyne, user="source", password="xxx", mount="rcyb.ogg", name="rcyb.ogg", broadcast )

Usare liquidsoap per stremmare 24/24.

Versione consigliata liquidsoap-3.8.1

Riferimento originale:

http://savonet.sourceforge.net/

Documentazione:

http://savonet.sourceforge.net/doc-0.3.8/documentation.html

Riferimenti API:

http://savonet.sourceforge.net/doc-0.3.8/reference.html

Stralci, esempi e scripts:

http://savonet.sourceforge.net/doc-0.3.8/scripts/index.html

Codice per radio cybernet:


# server socket, telnet socket and logs settings
%include "~/soap/scripts/radio_cybernet/server.liq"
%include "~/soap/scripts/radio_cybernet/log.liq"

# this is to reload any playlists every hour and every quarter
hour = playlist(reload=3600)
quarter = playlist(reload=900)

# playlists files, also works with /path/to/directory/withaudiofiles/
# but somehow take more memory
# reload them any -tot-
# there is cronjob that regenerate the playlists based on directories
# any 15 minutes
jingle = mksafe(hour("/home/radio/soap/playlists/jingles.pls"))
listall = quarter("/home/radio/soap/playlists/globale.pls")

# live istance to be picked.
live = "http://radio.dyne.org:8000/rcyb_live.mp3"

# every 5 tracks play one jingle
radio = random(weights=[1,5],[ jingle, listall ])

# server definition, definition can be nested, in fact the set to the icacasr server uri is afterwards
mp3 = output.icecast.mp3(restart=true, restart_delay=5, port=8000, user="source", password="xxx", genre="Experimental,Eclectic,Free pirate radio", url="http://radiocybernet.org/", description="Online since 1997", public=true, samplerate=22050, bitrate=24, stereo=false)

ogg = output.icecast.vorbis(restart=true, restart_delay=5, port=8000, user="source", password="xxx", genre="Experimental,Eclectic,Free pirate radio", url="http://radiocybernet.org/", description="Online since 1997", public=true, samplerate=22050, stereo=false)

# define an event, if event appears relay the live
# there is a hack here, older version say_metadata with text2speech worked at end of track
# this has never worked
# need to be refactored for new say_metadata at beginning of track
def event(c,d)
        def add_metadata(id,s)
                p = 'say:$(if $(description),"Radio cybernet online since 19 97 $(description)$(if $(genre),\", $(genre)\").")'
                s = on_track(fun (m) -> ignore(execute("#{id}.push #{p % m}")), s)
                smooth_add(delay=5.,normal=s,special=request.queue(id=id))
        end
        fallback(track_sensitive=false,[add_metadata("live",input.http(c)),d])
end

# crossfade example
def crossfade(a,b)
        add(normalize=false,[ sequence([ blank(duration=5.),fade.initial(duration=10.,b)
]),fade.final(duration=10.,a) ])
end

# use event to start the live watch,relay. Again, if no live is there then run the normal radio schedule
broadcast = event(live,radio)

# nesting variables
dyne="radio.dyne.org"

# nesting definition, see above
mp3dyne = mp3(host=dyne, user="source", password="xxx", mount="rcyb.mp3", name="rcyb.mp3", broadcast )

oggdyne = ogg(host=dyne, user="source", password="xxx", mount="rcyb.ogg", name="rcyb.ogg", broadcast )


liquidradio (last edited 2009-10-12 15:39:48 by fruity)