Springe zum Inhalt

Pausenmusik für Airtime

Vor kurzem habe ich beschrieben, wie eine eigene kleine Webradiostation mit OpenSource-Software aufgesetzt werden kann. Das dort eingesetzte Airtime bietet "unterhalb" der Weboberfläche viele Möglichkeiten, den Sendebetrieb durch entsprechende Skripte anzupassen. Eine häufige Anwendung wird das Senden von Musik zu den Zeiten sein, in denen keine Show und kein Live-DJ geplant ist. Mit minimalen Änderungen an den Airtime-Skripts lässt sich dieses Vorhaben einfach bewerkstelligen.

Hinter der Weboberfläche von Airtime verbergen sich Python-Skripts. Zuständig für die Einstellungen, was in der Zeit ohne eine eingeplante Sendung passieren soll, ist das Skript

/usr/lib/airtime/pypo/bin/liquidsoap_scripts/ls_script.liq

In den Zeilen 38 und 39 (bei Version 2.0.2) wird mit

default = amplify(0.00001, noise())
default = rewrite_metadata([("artist","Airtime"), ("title", "offline")],default)

festgelegt, dass in den Pausenzeiten ein Rauschen mit sehr geringer Lautstärke gespielt und dazu die Metadaten Airtime - offline zu eventuellen Zuhörern übertragen werden.

Zufällige Musik aus einem Ordner spielen

Zuerst müssen die Zeilen 38 und 39 mit einem "#" am Zeilenanfang auskommentiert werden. Anschließend fügt man folgende Zeile direkt danach ein:

default = playlist(mode='random', "/srv/music/")

Mit dieser Zeile wird liquidsoap (ein Teil der Airtime-Installation) angewiesen, in den Pausenzeiten Musik aus dem Verzeichnis /srv/music in einer zufälligen Reihenfolge zu spielen.

Musik, Jingles und Drops zufällig abspielen

Mit folgendem Skript lässt sich Musik aus einem Verzeichnis abspielen und zufällig werden Jingles und Drops aus zwei anderen Verzeichnissen eingeblendet:

# At first we define some locations...
drops = playlist(mode='randomize',reload=1,reload_mode="rounds","/srv/users/drops/")
music = playlist(mode='randomize',reload=1,reload_mode="rounds","/srv/users/music/")
jingles = playlist(mode='randomize',reload=1,reload_mode="rounds","/srv/users/jingles/")
 
# Here we rotate between the directories. The numbers indicate how many songs are played from each share
default = rotate(weights=[1,3,1,3], [jingles,music,drops,music])
 
def crossfade(s)
  #duration is automatically overwritten by metadata fields passed in
  #with audio
  s = fade.in(type="log", duration=0., s)
  s = fade.out(type="log", duration=0., s)
  fader = fun (a,b) -> add(normalize=false,[b,a])
  cross(fader,s)
end

Danke an Benjamin Krause.

Dabei sind noch viele andere Anwendungsmöglichkeiten denkbar. Weitere umfangreiche Beispiele sind in der Dokumentation zu liquidsoap zu finden.

Ein Gedanke zu „Pausenmusik für Airtime

  1. olimdevona

    Wenn ich die Zeilen in das liquidsoap script einfüge, dann funktioniert der streaming server nicht mehr. Es heisst dann immer bei airtime getting informations from the server und das hört dann nicht mehr auf...

Kommentare sind geschlossen.