\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{ngerman}
%\usepackage{geometry}
\usepackage{graphicx}
%\usepackage{hyperref}

\title{Handbuch Rivendell\\Radio Helsinki}
\author{Christian Pointner, equinox@helsinki.at\\Robert Vogel, vogel@mur.at}

\begin{document}
\maketitle

\begin{abstract}
Die Radioautomatisierung Rivendell ist eine Softwarelösung auf der Basis von Opensource Software.
\end{abstract}

\newpage
\section*{Vorwort}
Vielen Dank, für die Geduld, die der Verein in der Implementierungsphase aufbrachte. Nur mit Hilfe von konnte dieses Projekt verwirklicht werden.

\newpage
\tableofcontents

\newpage
\section{Informationen für Sendungsmacher}
\subsection{Vorgaben}
\begin{enumerate}
\item Die Sendelänge darf im Regelfall nicht überschritten werden, da eine mögliche Folgesendung die Vorherige beendet. Ausnahmen bedarf es einer Rücksprache mit der Redaktion.
\item Findet die Sendung regelmäßig statt und bedarf es keiner expliziten Freischaltung der Sendung, kann die Datei in den entsprechenden Ordner bis unmittelbar vor der Sendung gestellt werden. 
\item Der Importvorgang muß vor dem Beginn der Sendung abgeschlossen sein. 
\end{enumerate}
\subsection{Importieren von Audiomaterial}
\subsubsection{Der Ordner \emph{/programm}}
Das Importieren von Audiomaterial erfolgt indem Sie eine Audiodatei in den Ordner \emph{/programm/Wochentag/Sendungsname} kopieren.
\\Einen Link in den Ordner /programm finden Sie auf Ihrem Desktop. Am Loginrechner (Hochladen über das Internet) befindet sich \emph{/programm} ebenfalls.
\\ {\bf Achtung!} Nach dem erfolgten Import in die Automation verschwindet das Audiomaterial aus dem Ordner! 
\subsubsection{Pflege und Kontrolle mit RDLibrary}
Es gibt weiterhin die Möglichkeit Audiodateien über das Programm
RDLibrary zu importieren. RDLibrary befindet sich unter \emph{Anwendungen
$\rightarrow$ Sound $\rightarrow$ RDLibrary}.
\\Die Rivendell Library \emph{Abbildung 1} besteht aus mehreren Objekten, Carts genannt. Ein Cart ist ein Datenbehälter, der Audiomaterial dem System bereitstellt.
\\Der Spalte Group entnehmen Sie die Zuordnung des Carts zu einer bestimmten Sendung. Weiterhin ist die Länge und der Titel der Sendung dargestellt.
Durch markieren eines Carts und Betätigen des Edit Buttons erhalten Sie genauere Informationen.
\begin{figure}[htbp]
  \centering
   \includegraphics[width=0.80\textwidth]{grafics/rdlibrary}
   \caption{RDLibrary}
   \label{fig:Bild1}
\end{figure}
Durch markieren eines Carts und Betätigen des Edit Buttons erhalten Sie die Ansicht \emph{Abbildung 2} für die darin liegende Audiodatei.

\begin{figure}[htbp]
  \centering
   \includegraphics[width=0.80\textwidth]{grafics/Cart_Audio}
   \caption{Cart}
   \label{fig:Bild2}
\end{figure}
Neben den Informationen in \emph{Abbildung 2} (ähnlich einem ID3Tag) über Titel, Album und Erscheinungsjahr kann über das Feld ``Cut Info/Record'' oder ``Edit Markers'' die Datei angehört werden.
\begin{figure}[htbp]
  \centering
   \includegraphics[width=0.50\textwidth]{grafics/Cut_info}
   \caption{Cut Info}
   \label{fig:Bild4}
\end{figure}
\begin{figure}[htbp]
  \centering
   \includegraphics[width=0.80\textwidth]{grafics/Cut}
   \caption{Cut}
   \label{fig:Bild3}
\end{figure}

Insbesondere in der Ansicht ``Edit Markers'' \emph{Abbildung 3} besteht die Möglichkeit durch Bedienen von ``Cut Start'' und ``Cut End'' direkten Eingriff auf den Start und Endpunkt des Sendematerials auszuüben.



\subsection{Anmerkungen}
\begin{description}
 \item Wie Sie vielleicht bemerkt haben beginnt die Darstellung des Titels manchmal mit ``imported from''. Diese Schreibweise entsteht dann, wenn der Titel beim Importieren dem ID3Tag (bei mp3s) nicht entnommen werden konnte. Wie wissen, daß ID3Tag kleinergleich Version 2.3 funktioniert und die Werte Titel, Artist, Album und Jahr übernommen werden.
\item Erfahrungsgemäß dauert das Einpflegen (über den Ordner \emph{/programm}) einer 60minütigen Sendung im mp3-Format (128kbps) etwa 30 Sekunden. Je schlechter die Qualität des Ausgangsmaterials ist, desto länger dauert der Vorgang. Sollte die Datei nach 3 Minuten nicht aus dem Ordner verschwunden sein, ist es nötig die Technik zu kontaktieren.
\item Wir raten dazu die importierte Sendung in der Library anzuhören. Über diesen Weg lassen sich Irrtümer weitgehen ausschließen und man kann das tatsächlich gesendete Material (für das man verantwortlich ist) auf Pegeldifferenzen, Benennungen und genaue Länge hin kontrollieren.
\end{description}

\newpage
\section{Erweiterte Funktionen}
Dieses Kapitel richtet sich einerseits an Sendungsmacher, die mit mehr als einer Datei vorproduzierten Inhalt gestalten, andererseits an Musikredakteure, die Musikpools pflegen.
Diesen Sendungsmachern bzw Sendungen sind mehrere Carts im Librarybereich zugeordnet.

Anmerkung: Die Funktionen hier sind noch nicht hundertprozentig durchgetestet. Die derzeitige und meistens populierte Vorgabe ``1 Datei pro Sendung'' ist die garantierte und stabile Variante, daß eine vorproduzierte Sendung abgespielt wird.

\subsection{Pflege und Kontrolle mit RDLibrary}
Bevor man eine Abspielliste mit neuem Material befüllt, sollten alte Dateien aus der Library gelöscht werden. Ein oder mehrere Dateien können markiert und mit ``Delete'' gelöscht werden. Es ist nicht möglich de Löschvorgang rückgängig zu machen.

Vorsicht: Entstehen durch löschen einzellner Carts Lücken, so füllt Rivendell beim Importierten die Lücken im Cartbereich. Es ergeben sich möglicherweise nicht gewollte Abspielreihenfolgen.

Der einfachste Weg Audiomaterial in Rivendell zu importieren geht auch hier über den Ordner /programm. Wir empfehlen für eine neue Sendung alle Carts zu löschen und dann zu importieren.

\subsection{Pflege von existierenden Abspiellisten mit RDLogedit}
Öffnen Sie das Programm RDLogedit und Doppelklicken Sie das zu bearbeitende Log Ihrer Sendung. Es kann nun die Abspielreihenfolge 
Wichtig: derzeit ist es noch wichtig, daß am Anfang und Ende die MACRO-CARTS (Sendung Beginnt/Sendung endet) stehen. Im nächsten Update wird diese Vorgabe verschwinden.

\subsection{Erstellen einer Playlist mit RDLogedit}


\subsection{Importieren von Audiomaterial mit RHImport}

\subsection{Poolpflege mit RDLibrary}
Der auch hier einfachste Weg Audiomaterial in Rivendell zu importieren ist der Weg über den Ordner /programm/pool/poolX. Die Filter-, Sortier und Suchfunktion der Library (im oberen Bereich) sind nützliche Hilfen, um den Überblick über hunderte Dateien in den Pools zu behalten.

Vorsicht: Rivendell füllt beim Importierten Lücken im Cartbereich.


\newpage
\section{Bereich für Programmkoordination}
\subsection{zeitliche Vorgaben}
Audiomaterial für bereits eingetragene Sendungen können Sie bis unmittelbar vor der Sendung eingepflegen. 
\\ Der Augenmerk jetzt liegt auf den Zeitpunkten sowohl für den heutigen als auch den Logs für die kommenenden Tage. Folgende Zeiten sind zu beachten:
\\ {\bf{vor 22:00}} - ist die letzte Änderungen für Sendeablauf des morgigen Tages im Wochenblatt möglich, da die Logs für den morgigen Tag immer um 22:00 Uhr neu generiert werden. Manuelle Änderungen der Logs mit RDLogedit vor diesem Zeitpunkt überschreibt RDLogManager.
\\ {\bf{nach 22:00}} - Änderungen am heutigen (zwischen 22:00 und 24:00 editiert, morgigem) Programm sind nur über RDlogedit möglich!
\\ {\bf{4-Wochen-Rythmus}} - Radio Helsinki folgt einem 4 Wochen dauernden Rythmus. Der Kontrollbildschirm im Foyerraum stellt oben rechts farblich ``Woche X'' dar. Farblich gekennzeichnet sind die Wochen am Jahresplan im Redaktionsraum. (Weiterhin dargestellte Informationen am Bildschirm im Foyer siehe Kap 1.3)
\\ {\bf{1 Minute vor Mitternacht}} - zwischen 23:59:00 Uhr und 00:00:01 Uhr dürfen keine Sendungen starten, eine bereits laufende Sendung ist kein Problem! Der früheste Zeitpunkt am Tag für eine Sendung ist 00:00:01.

\subsection{farbliche Vorgaben}
Für die stündliche Zuordnung (hilfreich für den Wochenplan für Woche 1 bis 4) geben wir für Clocks folgende Farben vor:
\begin{enumerate}
 \item Grün: Sendezeit ist wöchentlich, vorproduziert und von 1 Sendung belegt
 \item Blau: Sendezeit teilen sich mehrere Sendungen (diese Sendungen mindestens sind nicht wöchentlich)
 \item Rot: mindestens 2 Sendungen gemeinsam in einer Stunde (auch wenn wöchtlich)
 \item Orange: nur Programmvorschau in dieser Stunde
\end{enumerate}
z.B. eine Sendestunde, die wöchentlich stattfindet und sich mit der Programmvorschau eine Sendestunde teilt ist Rot. Der für Rivendell ``ideale Normalfall'' ist Grün, auf alle Anderen ist besonders zu achten.

\subsection{kurzfristige Änderungen im heutigen Sendeablauf mit RDLogedit}
Wir unterscheiden zwischen 3 verschiedenen Arten von Logs. Es gibt Logs für die einzellnen  Sendungen, die Hintergrundmusik und die Tageslogs. Musik- und Tageslogs enthalten im Namen ein Datum (für den entsprechenden Tag, dem Musiklog ist ein ``M'' vorgestellt)
Im Programm RDLogedit hat man (rechteabhängig) direkten Zugriff einerseits auf die täglich abspielenden Logs andererseits auch Zugriff auf die einzellnen Sendungslogs. Die Sendungsmacher sehen nur ``Ihr'' Log.

Durch Markieren und ``EDIT'' (oder Doppelklick) erhält man den Edit Log Dialog. Markieren Sie die zeiliche Stelle, vor die eine weitere Sendung hinzugefügt werden soll. Im Dialog (Bild) ist darauf zu achten, daß die Zeit ``Start at'' einen festgelegten Wert hat. Die ``Transition Type'' muß STOP sein. Mit ``Select Cart'' fügt man die gewünschte Sendung ein.

Alle Einträge im Log müssen eine STOP Transition haben! Kontrolle über webinterface.

Tests technikseitig haben ergeben, daß eine chronologische sortierte Abfolge der Sendungen nicht notwendig ist, der Übersicht halber aber besser! Die Sortierreihenfolge könnte mit den Pfeilen (unten Mitte) geändert werden.

\subsection{Änderungen am Sendeplan mit RDLogmanager}
``EDIT GRID'' listet alle möglichen GRIDS (Grid in der folge Wochenplan genannt) auf.

Die für das Sendeprogramm relevanten Wochenpläne sind ``SchedWk1'' für Woche 1 bis ``SchedWk4'' für Woche 4. ``Edit'' eines der vier! Sie erhalten ein großes Blatt mit jeder Stunde einer Woche. Mit Klicken auf die entsprechende Stunde kann Sendung XY ausgewählt werden.
\ Wichtig ist hier, wenn eine Sendung wöchentlich vorproduziert stattfinden soll, so muß sie in jedem der 4 Wochenpläne eingetragen sein.

\ Die eingetragenen Sendungen im Grid einer Woche bieten derzeit nur die Kontrolle über vorproduzierte und wiederholte Sendungen sodaß eine direkten Sendeplatzvergabe über diese Ansicht derzeit nicht möglich ist.
Da Rivendell im Livebetrieb im Moment noch nicht vorgesehen ist, sind Clocks für Live noch nicht sichtbar. In Zukunft werden auch Livesendungen eingetragen werden können.
\subsection{Szenarien}

\newpage
\section{Bereich für redaktionelle Administration}
\subsection{Vorgaben}
\begin{description}
\item{\bf{Benennung von Benutzern - ldap Benutzernamen}}
Die Verwendung von Radio Helsinki Benutzernamen ist unabdingbar, da sonst keinerlei Möglichkeit besteht sich am System anzumelden und mit Rivendell zu arbeiten. Die Länger des Benutzernamens ist auf 64 Zeichen beschränkt.

\item{\bf{Benennung von Gruppen}}
Bei der Benennung der Gruppen (Sendungen) sind 10 Zeichen keine Leer oder Sonderzeichen möglich. Gruppen müßen nicht den Sendungsnamen folgen, es wird der Übersicht halber dennoch angeraten.

\item{\bf{Gruppenbeschreibung - z.B. $01_1700-1010-090-Sendungsname$}}
Das ist eine Gruppenbeschreibung fr Sendung am Montag, 17:00 Uhr, die in der ersten und dritten Woche (somit 2-wöchentlich) stattfind und 90 Minuten dauert.

\item{\bf{Benennung von Services}}
Bei der Benennung der Services (ebenfalls Sendungen) sind 10 Zeichen keine Leer oder Sonderzeichen möglich. Services müßen nicht den Sendungsnamen folgen, es wird der Übersicht halber dennoch angeraten.

\item{\bf{Benennung von dropboxen}}
\item{\bf{Benennung von Logfiles}}

\item{\bf{Benennung von Ordnern im Filesystem}}
Die derzeitige Benennung der Ordner folgt der Form \emph{/programm/Tag/ Sendezeitpunkt-maximaleSendelänge-Terminus-Sendungsname}.
In Zukunft wird die Benennung der Form \emph{/programm/Tag/Sendungsname} folgen.

\item{\bf{Benennung von Events}}
Pools: ep poolname (Lehrzeichen dazwischen)
Sendungen: ev Sendungsname (Lehrzeichen dazwischen)

\item{\bf{Benennung von Clocks}}
Pools: clp poolname
Sendungen: clv xxxx sendung1 sendung2 sendungx (xxxx=Wochenrythmus, dahinter folgen chronologisch die Sendungen dieser einen Stunde)

Beachten Sie: Im Clock für manche Stunden müßen sowohl mehrere Sendungen stattfinden können, als auch die Fälle mitbedacht werden, daß ein oder mehrere 

\end{description}


\subsection{Erweiterte Funktionen des RDLogmanager}
Logs generieren, Zeiten beachten

\subsection{RDLogedit}
stets Transitions beachten, 
letztendlich Kontrolle per Webinterface
\subsection{Webinterface auf \emph{airplay}}
Kontrolle auf Richtigkeit, Fehlendes, Ausgelaufenes
\subsection{Sendungszeiten ändern}
Gruppenbeschreibung,
Clock umbenenen,
Dropbox umbenennen,
\subsection{Sendung anlegen}
\begin{description}
\item{\bf{Gruppe und Service anlegen mit \emph{RDAdmin:}}}
\begin{enumerate}
 \item neue Gruppe anlegen
 \item disable Gruppe für alle Benutzer und Services
 \item Cartbereich beachten, ein Cart zuordnen
 \item neuen Service anlegen (auf der Basis ``newservice''!)
 \item in neuer Gruppe den Service Automat und neuen Service aktivieren
 \item Dropbox im Host airplay-dropbox anlegen
 \begin{enumerate}
 \item gehe in ``Hosts'' airplay-dropbox
 \item neue Dropbox
 \item Gruppe zuordnen
 \item genaues Cart festlegen
 \item Ordner festlegen /programm/0X-Tag/Uhrzeit
\end{enumerate}
\end{enumerate}

\item{\bf{Marcocart mit \emph{RDLibrary:} anlegen}}
\begin{enumerate}
 \item neues Macro in Gruppe SENDUNGEN anlegen 
 \item Titel sollte genauer Sendungsname sein (Darstellung an versch. Stellen),
 \item Macrocartinhalt
 \begin{enumerate}
 \item Zeile 1: ``LL 1 neuerlogname!''
 \item Zeile 2: ``PL 1 0!''
\end{enumerate}
\end{enumerate}

\item{\bf{Sendungslog mit \emph{RDLogedit:} anlegen}}
\begin{enumerate}
 \item neues sendungsspezifisches Log im Service Sendungsname anlegen
 \item Name des Logs, wie ``neuerlogname''
 \item Loginhalt
 \begin{enumerate}
 \item Zeile 1: Makro - Sendung beginnt
 \item Zeile 2: Countdown 5 sec
 \item Zeile 3: Sendungscart (Nummer angeben oder ein Testfile in die Dropbox)
 \item Zeile 4: Makro - Sendung endet
\end{enumerate}
\end{enumerate}

\item{\bf{Automatische Sendezeiten mit \emph{RDLogManager:} festlegen}}
\begin{enumerate}
 \item Event anlegen
 \begin{enumerate}
  \item Benennung ``ev Sendungsname''
  \item enable ``Use hard Start Time'', Action ``Start immediatly'', Transition: ``STOP''
  \item im Feld ``Pre-Import-Cart'' das MACRO (Gruppe SENUNGEN) ``Sendungsname'' ziehen
  \item 
  \item 
 \end{enumerate}
 \item Clock anlegen
 \begin{enumerate}
  \item Benennung ``clv xxxx Sendungsname''
 \end{enumerate}

 \item ins Grid eintragen, Wochen beachten

\end{enumerate}
\end{description}

\subsection{Sendung löschen}
Dropbox,
Event,
Clock (Beachte Mehrfach events in Clock),
Carts in Library?
Gruppe (wenn möglich Cartbereich für neue Sendungen dokumentieren),

\newpage
\section{Bereich für technische Administration}
derzeitige Softwareversion: $1.6.0$
\subsection{Hardware Struktur}
Das Setup besteht aus derzeit 2 Servern (\emph{airplay} und \emph{airplay2}) einem Audioswitch
inkl. Steuereinheit (\emph{rhctl}) und 6 Clients
\begin{description}
\item{\bf{airplay}} Der Master Server. Hier läuft die Hauptdatenbank
  und dieser Server kümmert sich um das Importieren der
  Audiodateien. Weiters laufen hier alle Cron-Scripte die die Schedule
  und Musiklogs der nächsten Tagen im voraus generieren.
  Die Steuerkommandos für den Audioswitch laufen über
  die serielle Schnittstelle zu \emph{rhctl}. Weiters wird im
  Sekundentakt über eine weitere serielle Schnittstelle ein
  Heartbeat an \emph{rhctl} geschickt der von diesem überwacht wird.
\item{\bf{airplay2}} Der Standby Server. Hier läuft die
  Backupdatenbank die für eine Life-Replikation der Hauptdatenbank
  konfiguriert ist. Der Datenbank User mit dem die \emph{Rivendell}
  Daemons auf dieser Maschine arbeiten hat nur auf einige wenige Tabellen Schreibrechte
  von denen auszugehen ist das sie niemals ein Konflikt mit
  replizierten Daten vom Mastersystem erzeugen. Auch dieser Server ist
  per serieller Schnittstelle mit \emph{rhctl} verbunden um die
  Steuerkommandos zum Audioswitch zu senden.
\item{\bf{rhctl}} Dieses selbstgebaute Gerät steuert den
  Audioswitch. Im normalen Betrieb reagiert es auf Kommandos des
  Mastersystems und schaltet vom Mainlog auf das Musiklog und
  umgekehrt. Weiters überwacht es den Heartbeat des Mastersystem und
  schaltet Gegebenenfalls auf das Standbysystem um. In diesem Modus
  reagiert es nicht mehr auf Kommandos des Mastersystems sondern hört nur
  noch auf das Standbysystem. In diesem Fall wird ein e-Mail an
  \emph{logs@helsinki.at} gesendet. Weiters überwacht ein
  kleiner Daemon die Silence-Detection des Audioswitch. Derzeit wird
  wenn Stille erkannt wird nur ein e-Mail an \emph{logs@helsinki.at}
  geschickt aber es sind auch andere Aktionen denkbar bzw. geplant.
\end{description}
\subsubsection{Serverkonfiguration}
\subsubsection{Clientkonfiguration}
pamrd, Clients in RDAdmin (Security Model: user)

\newpage
\section{Richtlinien}
\subsection{Audionormalpegel}
Wert: $-9~dbfs$
\\Dieser Standartwert ist beim Importprozess gesetzt, auch in der Library beim Importieren sollte dieser nicht verändert werden. Bild.
\subsection{Zeiten}

Loggenerierung
Replikationszeiten für Audiofiles am Standby

\newpage
\section{Grenzen}

\begin{quote}
ein Zitat
\end{quote}

\end{document}
