Merged 'documentation'

This commit is contained in:
Fred Gleason 2017-11-07 07:47:48 -05:00
commit fab9e57733
151 changed files with 11211 additions and 2203 deletions

15
.gitignore vendored
View File

@ -1,4 +1,7 @@
*~
*.1
*.5
*.8
*.cgi
*.exe
*.la
@ -10,6 +13,7 @@
*.rlm
*.rpm
*.so
*.xsl
rivendell-*.tar.gz
rivendell-*.zip
.AppleDouble
@ -26,12 +30,13 @@ config.status
config.sub
configure
depcomp
docs/docbook/*.1
docs/docbook/*.5
docs/docbook/*.8
docs/docbook/*.html
docs/docbook/*.pdf
docs/apis/*.html
docs/apis/*.pdf
docs/opsguide/frontspiece.xml
docs/opsguide/*.html
docs/opsguide/*.pdf
helpers/cwrap
helpers/docbook
helpers/jsmin
importers/nexgen_filter
importers/panel_copy

107
ChangeLog
View File

@ -16174,6 +16174,28 @@
* Updated 'NEWS'.
2017-10-17 Fred Gleason <fredg@paravelsystems.com>
* Incremented the package version to 2.17.0int00.
2017-10-17 Fred Gleason <fredg@paravelsystems.com>
* Moved the man pages to 'docs/manpages/'.
* Stubbed out a Rivendell Operations Guide in 'docs/opsguide/'.
2017-10-17 Fred Gleason <fredg@paravelsystems.com>
* Added the text of the 'Generating and Maintaining Logs with
RDLogEdit' chapter to the Ops Guide.
2017-10-18 Fred Gleason <fredg@paravelsystems.com>
* Finished transcribing previous text into the Ops Guide.
2017-10-19 Fred Gleason <fredg@paravelsystems.com>
* Applied structural markup to the first three chapters of the
Operations Guide.
2017-10-19 Fred Gleason <fredg@paravelsystems.com>
* Added sectionalized id tags to the Ops Guide.
2017-10-19 Fred Gleason <fredg@paravelsystems.com>
* Applied structural markup to the first 'rdcatch' chapter of the
Operations Guide.
2017-10-19 Fred Gleason <fredg@paravelsystems.com>
* Applied structural markup to the 'rdlogedit' chapter of the
Operations Guide.
2017-10-19 Fred Gleason <fredg@paravelsystems.com>
* Applied structural markup to the 'rdairplay' chapter of the
Operations Guide.
2017-10-19 Fred Gleason <fredg@paravelsystems.com>
* Added a 'Show Event Type' filter to rdcatch(1).
2017-10-19 Fred Gleason <fredg@paravelsystems.com>
@ -16198,6 +16220,11 @@
2017-10-19 Fred Gleason <fredg@paravelsystems.com>
* Updated 'NEWS'.
* Incremented the package version to 2.17.0int02.
2017-10-23 Fred Gleason <fredg@paravelsystems.com>
* Applied structural markup to the 'rdlogedit' chapter of the
Operations Guide.
* Applied structural markup to the 'voicetracking' chapter of the
Operations Guide.
2017-10-25 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in rdadmin(1) that caused a segfault when opening the
'Edit Host' dialog.
@ -16210,3 +16237,83 @@
2017-10-25 Fred Gleason <fredg@paravelsystems.com>
* Updated 'NEWS'.
* Incremented the package version to 2.17.0int03.
2017-11-01 Fred Gleason <fredg@paravelsystems.com>
* Added an rmlsend(1) man page.
* Revised the "Interfacing with the Linux Ecosystem" chapter in the
Operations Guide to include all command-line utilities.
2017-11-01 Fred Gleason <fredg@paravelsystems.com>
* Cleaned up title formatting in the Operations Guide.
2017-11-01 Fred Gleason <fredg@paravelsystems.com>
* Added screenshots for the 'System Overview' chapter of the
Operations Guide.
* Added screenshots for the 'Managing the Current User with RDLogin'
chapter of the Operations Guide.
* Added screenshots for the 'Content Management with RDLibrary'
chapter of the Operations Guide.
* Added screenshots for the 'Automating Tasks with RDCatch'
chapter of the Operations Guide.
* Added screenshots for the 'Generating and Maintaining Logs with
RDLogEdit' chapter of the Operations Guide.
* Added screenshots for the 'Running Logs with RDAirPlay' chapter
of the Operations Guide.
2017-11-02 Fred Gleason <fredg@paravelsystems.com>
* Added screenshots for the 'Generating Logs with RDLogManager'
chapter of the Operations Guide.
2017-11-02 Fred Gleason <fredg@paravelsystems.com>
* Added screenshots for the 'VoiceTracking' chapter of the
Operations Guide.
2017-11-02 Fred Gleason <fredg@paravelsystems.com>
* Removed FIXME clauses from the Operations Guide.
* Added a screenshot for RMLSend to the Operations Guide.
2017-11-02 Fred Gleason <fredg@paravelsystems.com>
* Moved the contents of 'docs/SWITCHERS.txt' to the Operations Guide.
2017-11-03 Fred Gleason <fredg@paravelsystems.com>
* Moved the contents of 'docs/GPIO.txt' to the Operations Guide.
2017-11-03 Fred Gleason <fredg@paravelsystems.com>
* Removed 'docs/ENCODERS.txt'.
* Removed 'docs/implemented_macros.txt'.
* Removed 'docs/JACK.txt'.
2017-11-03 Fred Gleason <fredg@paravelsystems.com>
* Renamed 'docs/docbook/' to 'docs/apis/'.
* Qualified all 'id=' tag attributes as 'xml:id=' in the Operations
Guide.
2017-11-03 Fred Gleason <fredg@paravelsystems.com>
* Moved the contents of 'docs/datetime_wildcards.txt' to an
appendix in the Operations Guide.
2017-11-03 Fred Gleason <fredg@paravelsystems.com>
* Moved the contents of 'docs/metadata_wildcards.txt' to an
appendix in the Operations Guide.
2017-11-03 Fred Gleason <fredg@paravelsystems.com>
* Refactored the XML source for the Operations Guide up into
per-chapter files.
2017-11-03 Fred Gleason <fredg@paravelsystems.com>
* Fixed a typo in 'docs/opsguide/filepath_wildcards.xml'.
2017-11-05 Fred Gleason <fredg@paravelsystems.com>
* Added DocBook stylesheets for books in 'docs/stylesheets/'.
2017-11-05 Fred Gleason <fredg@paravelsystems.com>
* Removed the 'Genmeral Notes' section titles from the
'Supported GPIO/Switcher Devices' appendix in the Operations Guide.
2017-11-06 Fred Gleason <fredg@paravelsystems.com>
* Added a logo to the title page of the Operations Guide.
2017-11-06 Fred Gleason <fredg@paravelsystems.com>
* Added the Operations Guide to 'rivendell.spec.in'.
2017-11-06 Fred Gleason <fredg@paravelsystems.com>
* Moved the contents of 'docs/catchd.txt' to 'docs/apis/catchd.xml.'
2017-11-06 Fred Gleason <fredg@paravelsystems.com>
* Moved the contents of 'docs/MESSAGE_BOX.txt' to the
Operation Guide.
2017-11-06 Fred Gleason <fredg@paravelsystems.com>
* Moved the contents of 'docs/ripc.txt' to 'docs/apis/ripc.xml.'
2017-11-06 Fred Gleason <fredg@paravelsystems.com>
* Removed 'docs/NEXGEN_FILTER.txt'.
2017-11-06 Fred Gleason <fredg@paravelsystems.com>
* Moved the contents of 'docs/RIVENDELL_FILTER.txt' to the
Operation Guide.
2017-11-06 Fred Gleason <fredg@paravelsystems.com>
* Moved the contents of 'docs/WINGS_FILTER.txt' to the
Operation Guide.
2017-11-07 Fred Gleason <fredg@paravelsystems.com>
* Removed 'docs/NOW+NEXT.txt'.
* Removed 'docs/WIN32.txt'.
* Removed 'docs/copy_split_format.odt'.
* Moved remaining unformatted notes to 'docs/misc/.

View File

@ -30,7 +30,8 @@ uninstall:
rm -f $(DESTDIR)/$(sysconfdir)/rd-bin.conf
rm -f $(DESTDIR)/etc/pam.d/rivendell
EXTRA_DIST = my.cnf-master\
EXTRA_DIST = asound.conf-sample\
my.cnf-master\
my.cnf-standby\
rd-bin.conf.in\
rd.conf-sample\

View File

@ -236,12 +236,17 @@ if test -z $MP4V2_DISABLED ; then
fi
#
# Build DocBook Items?
# DocBook
#
if test -z $DOCBOOK_DISABLED ; then
USING_DOCBOOK=yes
fi
AM_CONDITIONAL([DOCBOOK_AM], [test "$USING_DOCBOOK" = yes])
if test $DOCBOOK_STYLESHEETS ; then
ln -s $DOCBOOK_STYLESHEETS helpers/docbook
fi
#AC_SUBST(DOCBOOK_STYLESHEETS,$DOCBOOK_STYLESHEETS)
#
# RDXport Debug
@ -501,8 +506,13 @@ AC_CONFIG_FILES([rivendell.spec \
web/tests/Makefile \
conf/Makefile \
docs/Makefile \
docs/docbook/Makefile \
docs/apis/Makefile \
docs/examples/Makefile \
docs/manpages/Makefile \
docs/misc/Makefile \
docs/opsguide/frontspiece.xml \
docs/opsguide/Makefile \
docs/stylesheets/Makefile \
docs/tables/Makefile \
debian/Makefile \
debian/patches/Makefile \

View File

@ -1,93 +0,0 @@
File Exporting and Encoders in Rivendell
Rivendell has the capability to export audio in many different formats using
several different modules (RDLibrary, RDCatch and RDCastManager). To
accomplish this, Rivendell uses audio *encoder* objects, each of which enable
one or more particular 'export formats'. A list of all
recognized export formats for each host can be found by looking in
RDAdmin->ManageHosts->AudioResources, under 'Supported Export Formats'.
Encoders in Rivendell come in two different basic types, "built-in", and
"custom". Each type is discussed separately below.
BUILT-IN ENCODERS
Some built-in encoders are enabled automatically as part of the basic
Rivendell installation process, while others require one or more external
library packages in order to be recognized and used. The following chart
shows the dependencies:
FORMAT REQUIRED PACKAGE(S) AVAILABLE AT
-------------------------------------------------------------------------
Linear PCM16 [included]
MPEG 1,2 Layer 2 [included]
MPEG 1,2 Layer 3 Lame http://lame.sourceforge.net
FLAC Flac http://flac.sourceforge.net
OggVorbis LibOgg, LibVorbis http://www.vorbis.com
CUSTOM ENCODERS
It is possible to configure a Rivendell host to export audio in a format not
supported by one of the built-in encoders by configuring a 'custom' encoder.
Generally, all that is needed is an encoder program that can be invoked from
the Linux command-line. The configuration is done in
RDAdmin->ManageHosts->CustomEncoders. Each encoder needs the following
information:
NAME
A unique-per-host name for the encoder.
DEFAULT EXTENSION
A typically two- or three-letter long file extension to associate with this
encoder.
COMMAND LINE
The command line that Rivendell should invoke to encode a file. When invoked,
Rivendell will pipe the source audio data into standard input of the program
shown here, using sixteen-bit little-endian format with no headers (so-called
'raw' mode) and with channelization and sample rate as indicated in the
configuration for the specific export being executed. The following
wildcard characters can be used to pass parameters from the specfic export
configuration:
%f - Full destination path/name.
%c - Number of channels
%r - Sample rate, in samples/sec
%b - Bitrate, in bits/sec
ALLOWABLE PARAMETERS
Finally, each encoder can be provided with a list of zero or more 'allowed'
values for Channel, Sample Rate and Bit Rate. Rivendell will use these values
(along with the 'NAME' value, see above) to populate the approriate controls
in the Edit Export Settings dialog. If no values are configured for a
particular parameter, then the correponding control in the dialog will be
shown as disabled ("greyed-out"), in which case it is assumed that the encoder
being invoked either does not need the parameter or has had it hard-coded in
the configured command line.
EXAMPLE
As an example, let's set up a custom encoder to produce 'Flash' encoded audio
files using the FFmpeg multimedia transcoder (http://ffmpeg.mplayerhq.hu/) and
the Freeware Advanced Audio Coder (http://sourceforge.net/projects/faac/).
After installing these packages and verifying that Flash files can be
successfully generated from the command line, we go into
RDAdmin->ManageHosts->CustomEncoders, click the 'Add' button and fill out the
name:
New Encoder Name: Flash AAC
Click 'Ok', and the Edit Encoder dialog will open. Fill out the parameters
as follows:
Default Extension: flv
Command Line: ffmpeg -y -vn -f s16le -ac %c -ar %r -i - -vn -f flv -acodec libfaac -ac %c -ar %r -ab %b %f
Allow Channels: 1,2
Allow Sample Rates: 22050,44100
Allow Bit Rates: 8,16
Note that the bit rates here are specified in kbps!
Click 'OK' to save, then go to RDAdmin->ManageHosts->AudioResources. You
should now see a 'Flash AAC [Custom]' entry in the 'SUPPORTED EXPORT FORMATS'
list.

View File

@ -1,185 +0,0 @@
GPIO Notes for Rivendell
Rivendell supports the following General Purpose Input/Output (GPIO)
devices:
Gameport Joystick Buttons
USB Joystick Buttons
Measurement Computing PCI-PDIS08 Board
Measurement Computing PCI-PDIS16 Board
Measurement Computing PCI-DIO24 Board
Several supported switcher devices feature GPIO capabiities as well,
see the file 'SWITCHERS.txt' for more info.
JOYSTICK DEVICES
Joystick support utilizes the Linux Input Device subsystem. Inputs
are active-low, and should be wired as follows:
02: Input 1
04: Ground
07: Input 2
05: Ground
10: Input 3
12: Ground
14: Input 4
12: Ground
In addition, you will need to connect 47 kohm resistors between the
following pins: 1-3, 6-8, 9-11 and 13-15. While not strictly needed
for the GPI portion of the interface to work, the kernel's analog
joystick driver will refuse to initialize the port if these resistors
(or a real joystick) are not present.
The device name of the joystick will be one of the /dev/input/event<n>
devices.
NOTE: There have been reports that some port models do not internally
connect pin 12 to ground. The symptom of this situation will be that
Inputs 1 and 2 work, but not Inputs 3 and 4. If this is the case,
connecting the ground for Inputs 3 and 4 to pins 04 or 05 should remedy
the problem.
MEASUREMENT COMPUTER GPIO BOARDS
To configure one of the supported MeasurementComputing GPIO boards,
proceed as follows:
1) Install the card(s) in the computer. In the case of the PCI-DIO24,
two cards may be necessary, as each seperate card is entirely
utilized as either inputs or outputs.
2) Test it out. Two programs exist for this purpose: 'gpitest' tests
GPI inputs, and 'gpotest' tests GPO outputs. These programs come
with the 'libradio' package.
3) Define a GPIO device in RDAdmin->Stations->Switcher/GPIO. Use
a device type of 'Local GPIO'.
-----------------------------------------------------------------------------
GPIO BOARD-SPECIFIC NOTES
The Measurement Computing PCI-PDIS08 and PCI-PDIS16 boards feature
floating, opto-isolated inputs. The inputs are not polarity sensitive
and may be driven by either AC or DC. The outputs are electro-mechanical
relays with dry contacts. Connector pinouts are as follows:
PCI-PDIS08 -- DB37 Male Connector
PCI-PDIS16 -- DB37 Male Connector (using C50F-37F Cable)
Pin Signal
----------------
1 Input 8/16
20 Input 8/16
2 Input 7/15
21 Input 7/15
3 Input 6/14
22 Input 6/14
4 Input 5/13
23 Input 5/13
5 Input 4/12
24 Input 4/12
6 Input 3/11
25 Input 3/11
7 Input 2/10
26 Input 2/10
8 Input 1/9
27 Input 1/9
9 Output 8/16 C
28 Output 8/16 N/O
10 Output 7/15 C
29 Output 7/15 N/O
11 Output 6/14 C
30 Output 6/14 N/O
12 Output 5/13 N/C
13 Output 5/13 N/O
31 Output 5/13 C
14 Output 4/12 C
32 Output 4/12 N/C
33 Output 4/12 N/O
15 Output 3/11 N/C
16 Output 3/11 N/O
34 Output 3/11 C
17 Output 2/10 C
35 Output 2/10 N/C
36 Output 2/10 N/O
18 Output 1/9 N/C
19 Output 1/9 N/O
37 Output 1/9 C
----------------------
C = Common
N/O = Normally Open
N/C = Normally Closed
-----------------------------------------------------------------------------
The Measurement Computing PCI-DIO24 board features TTL logic-level
connections, which can be configured to operate either as inputs or
outputs. Connector pinouts are as follows:
PCI-DIO24 -- DB37 Male Connector
Pin Signal
---------------------
37 Input/Output 1
36 Input/Output 2
35 Input/Output 3
34 Input/Output 4
33 Input/Output 5
32 Input/Output 6
31 Input/Output 7
30 Input/Output 8
10 Input/Output 9
9 Input/Output 10
8 Input/Output 11
7 Input/Output 12
6 Input/Output 13
5 Input/Output 14
4 Input/Output 15
3 Input/Output 16
29 Input/Output 17
28 Input/Output 18
27 Input/Output 19
26 Input/Output 20
25 Input/Output 21
24 Input/Output 22
23 Input/Output 23
22 Input/Output 24
11 Ground
13 Ground
15 Ground
17 Ground
19 Ground
21 Ground
18 +5 VDC
20 +5 VDC
16 +12 VDC
14 -12 VDC
WARNING: The +5 VDC, +12 VDC and -12 VDC pins are connected directly to
the power supply buss of the host PC. Improper use of these pins can
cause serious damage to your computer!
-----------------------------------------------------------------------------

View File

@ -1,110 +0,0 @@
JACK Support in Rivendell
Rivendell can optionally be compiled to provide full support for the
JACK Audio Connection Kit. Instructions on enabling such support can
be found in the INSTALL file. Information about JACK itself can be
found at:
http://jackit.sourceforge.net/
STARTING UP RIVENDELL WITH JACK
When Rivendell's audio daemon, caed(8) is started, and JACK support is
enabled, caed(8) will look for a running jackd(1). If it finds one,
it will attempt to join the graph and create the following ports:
rivendell_<N>:capture_<M>L
rivendell_<N>:capture_<M>R
...
rivendell_<N>:playout_<M>L
rivendell_<N>:playout_<M>R
...
where <N> is the number of the virtual 'card' Rivendell will use to
access JACK, and <M> is the number of the virtual 'port' within that
'card'. The card number is selected automatically by caed(8), and
will be the first unused card number after any ASI adapters found in
the system are initialized. The 'L' and 'R' stand for 'left' and
'right' stereo channels, respectively. These card/port pairs can be
assigned within RDAdmin just like any other Rivendell audio resource.
JACK DAEMON MANAGEMENT
On distros that use a SysV-ish init system (such as SuSE), it's
possible to configure Rivendell to automatically start and stop the
jackd(8) daemon as needed. To do this, proceed as follows:
On SuSE
Fire up Yast2, click 'System' and then select 'Editor for
/etc/sysconfig Files'. Under 'Configuration Options', select
'Applications' and then 'Rivendell'. Configure the parameters there
as desired, then click 'Finish' to save them.
Other Distros
Edit the file '/etc/sysconfig/rivendell' and set the variables to
the desired settings.
JACK SESSION MANAGEMENT
Simple session connection management is possible by placing entries
within the [JackSession] section of /etc/rd.conf. The format is as
follows:
[JackSession]
Source<n>=<src-port>
Destination<n>=<dest-port>
where:
<n> = Arbitrary connection number, must start at '1' and go up
consecutively.
<src-port> = The name of the source JACK port to connect, in
standard CLIENTNAME:PORTNAME format.
<dest-port> = The name of the destination JACK port to connect, in
standard CLIENTNAME:PORTNAME format.
Here is an example [JackSession] section:
[JackSession]
Source1=rivendell_1:playout_0L
Destination1=alsa_pcm:playback_1
Source2=rivendell_1:playout_0R
Destination2=alsa_pcm:playback_2
Source3=rivendell_1:playout_1L
Destination3=alsa_pcm:playback_3
Source4=rivendell_1:playout_1R
Destination4=alsa_pcm:playback_4
Source5=rivendell_1:playout_2L
Destination5=alsa_pcm:playback_9
Source6=rivendell_1:playout_2R
Destination6=alsa_pcm:playback_10
Source7=alsa_pcm:capture_1
Destination7=rivendell_1:record_0L
Source8=alsa_pcm:capture_2
Destination8=rivendell_1:record_0R
Source9=alsa_pcm:capture_3
Destination9=rivendell_1:record_1L
Source10=alsa_pcm:capture_4
Destination10=rivendell_1:record_1R
Source11=alsa_pcm:capture_9
Destination11=rivendell_1:record_2L
Source12=alsa_pcm:capture_10
Destination12=rivendell_1:record_2R
This example sets up an ICE1712-based soundcard (a Midiman Delta-66,
in this case) to use the first three playout and record ports of Card
1 in Rivendell. It is, of course, fully possible to dynamically
manage the port assignments through use of a JACK patchbay (such as
QJackConnect) as well.

View File

@ -1,9 +0,0 @@
Message Box RML Notes
When using the 'Message Box' ['MB'} RML, it may be necessary to configure
the X server to allow local connections from other processes. One way to
do this is to execute the following command as the local Rivendell user:
xhost +local:
For more information, see the xhost(1) man page.

View File

@ -2,7 +2,7 @@
##
## docs/automake.am for Rivendell
##
## (C) Copyright 2002-2016 Fred Gleason <fredg@paravelsystems.com>
## (C) Copyright 2002-2017 Fred Gleason <fredg@paravelsystems.com>
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License version 2 as
@ -20,40 +20,13 @@
## Use automake to process this into a Makefile.in
if DOCBOOK_AM
DOCBOOK_AM_OPT = docbook
DOCBOOK_AM_OPT = stylesheets apis manpages opsguide
endif
SUBDIRS = $(DOCBOOK_AM_OPT) examples\
misc\
tables
EXTRA_DIST = ALSA.txt\
ando_interface.odt\
asound.conf-sample\
catchd.txt\
colors\
copy_split_format.odt\
datetime_wildcards.txt\
implemented_macros.txt\
ENCODERS.txt\
GPIO.txt\
JACK.txt\
MESSAGE_BOX.txt\
metadata_wildcards.txt\
NEXGEN_FILTER.txt\
NOW+NEXT.txt\
pam_rd.txt\
PODCASTING.txt\
RDMONITOR.txt\
reports.txt\
ripc.txt\
RIVENDELL_FILTER.txt\
SAGE_ENDEC.txt\
scheduler_formats.ods\
SWITCHERS.txt\
WIN32.txt\
WINGS_FILTER.txt
CLEANFILES = *~
MAINTAINERCLEANFILES = *~\
aclocal.m4\

View File

View File

@ -1,57 +0,0 @@
CONFIGURING NOW & NEXT IN RIVENDELL
SCOPE
Rivendell has the ability to automatically send information regarding
the current and next-to-play events in RDAirPlay logs to external
systems (such as RDS/RDBS encoders or web servers) using TCP/IP UDP
datagrams. This capability is referred to in Rivendell as 'Now &
Next'. This document provides some pointers on setting up this
capability.
CONFIGURATION
Now and Next is configured in RDAdmin->ManageHosts->RDAirPlay.
Pressing the 'Configure Now & Next Parameters' button here will open a
dialog. Each RDAirPlay log machine can be seperately configured, as
follows:
IP ADDRESS: The IP address, in dotted-quad notation, to which
packets should be sent.
UDP PORT: The UDP port number to which packets should be sent.
UDP STRING: The contents of the update string. The following
placeholder macros can be used, which will be replaced
appropriately when a packet is sent:
%n - The currently-playing CART NUMBER
%g - The currently-playing GROUP NAME
%t - The currently-playing TITLE field
%a - The currently-playing ARTIST field
%l - The currently-playing ALBUM field
%y - The currently-playing YEAR field
%b - The currently-playing LABEL field
%c - The currently-playing CLIENT field
%e - The currently-playing AGENCY field
%u - The currently-playing USER DEFINED field
%h - The length of the currently playing cut, in mS.
%r - A "Unix" style newline (naked ASCII 10)
%R - An "MS-DOS" style newsline (ASCII 13/10)
%% - A literal '%'.
Additionally, with the exception of the '%r', '%R' and '%%'
placeholders, the corresponding field for the next-to-play
event can be specified by simply uppercasing the above
placeholders. Any other characters will be sent unchanged.
ENABLING AUDIO
Before any data is sent, RDAirPlay checks to see that the Group
to which the event's cart belongs has been enabled to send Now & Next
data. This can be set on a group-by-group basis in
RDAdmin->ManageGroups by setting the 'Transmit Now & Next data' box
appropriately.
OPERATION
Once properly configured, RDAirPlay will send a UDP packet as
specified every time the corresponding log changes status.

View File

@ -1,70 +0,0 @@
Usage Notes for the 'rivendell_filter' Import Script.
Rivendell_filter is a script designed to be used to import existing audio
and meta-data from another Rivendell system. It is invoked as follows:
USAGE
rivendell_filter -h <hostname> -u <username> -p <password> -A <audio-dir>
-g <default-group> -s <start-cartnum> -e <end-cartnum>
Where:
<hostname> = The MySQL hostname of the source Rivendell database.
<username> = The MySQL username of the source Rivendell database.
<password> = The MySQL password of the source Rivendell database.
<audio-dir> = The name of the directory containing the source
Rivendell audio files.
<default-group> = The name of the group in which to place carts
belonging to a source Group for which there
is no corresponding destination Group.
<start-cartnum> = The first cart in the range of those to be transferred.
<end-cartnum> = The last cart in the range of those to be trasnferred.
OVERVIEW
In order transfer carts from an external Rivendell system, proceed as
follows:
1) CREATE RIVENDELL GROUPS
In RDAdmin->ManageGroups, create a Group to correspond to each Rivendell
Group that exists in the library to be imported, and an additional
group to catch any carts that may not have a corresponding Group.
2) LOCATE THE EXTERNAL RIVENDELL DATABASE AND AUDIO FILES
The directory containing the audio files can be mounted from a remote
system if needs be. Read-only access is adequate (and in fact recommended),
as the script does not modify these items in any way.
3) VERIFY AVAILABLE DISK SPACE
Verify that enough disk space is available in the '/var/snd/'
directory of the destination system to accomodate the audio to be
imported. You should have at least the amount of space currently occupied
by the source files, plus 5 percent additional.
4) INVOKE SCRIPT
Start up the script, as described in the USAGE section above. The
script will print progress reports as it proceeds, or notify you of
error conditions as required.
WARNING
If a cart from the source system has the same number as one one the
destination, the destination cart (data and *all* audio) will be overwritten!
NOTE ON AUDIO PROCESSING
Rivendell_filter does not alter or reencode the audio sample data in any
way, and thus does *not* incurr any generation or transcoding loss of
quality. At the same time, this means that the incoming audio will be
brought into the new Rivendell system *exactly* as it exists in the
source system, with all parameters (e.g. sample rate, bit rate, level,
etc) unaltered. If you need to alter one or more of these parameters as
part of the import process, we suggest you use the RDImport script
instead.
NOTE ON GROUP ASSIGNMENTS
WARNING: Rivendell_filter makes no attempt to enforce group numbering rules!
If a group to which a given source cart belongs exists on the destination
system, the cart will be placed in that group, regardless of numbering rules.

View File

@ -1,903 +0,0 @@
Switcher Application Notes for Rivendell
The following devices are supported as switchers under Rivendell:
360 Systems AM-16/B Audio Crosspoint Switcher
Broadcast Tools 10x1 Audio Switcher
Broadcast Tools 16x1 Audio Switcher
Broadcast Tools 16x2 Audio Switcher
Broadcast Tools 8x2 Audio Switcher
Broadcast Tools ADMS 44.22 Analog/AES Digital Matrix Switcher
Broadcast Tools GPI-16 General Purpose Input Module
Broadcast Tools Sentinel 4 Web AES Switcher
Broadcast Tools SRC-16
Broadcast Tools SS 12.4 Audio Switcher
Broadcast Tools SS 16.4 Audio Switcher
Broadcast Tools SS 4.1 MLR Switcher/Router
Broadcast Tools SS 4.2 Audio Switcher
Broadcast Tools SS 4.4 Audio Switcher
Broadcast Tools ACS 8.2 Audio Control Switcher
Broadcast Tools SS 8.2 Audio Switcher
Broadcast Tools Universal 4.1MLR>>Web
Harlond Virtual Mixer
Kernel GPIO
LiveWire LWRP Audio
LiveWire LWRP GPIO
LiveWire Multicast GPIO
Local Audio Adapter
Logitek vGuest
Modbus TCP
Quartz Electronics Type 1 Routing Protocol
Ross NK Video Switchers (via SCP/A Serial Interface)
Serial Port Modem Control Lines
Sierra Automated Systems 16000(D) Audio Router
Sierra Automated Systems 32000 Audio Router
Sierra Automated Systems 64000 Audio Router
Sierra Automated Systems User Serial Interface (USI)
Sine Systems ACU-1 (Prophet version)
Software Authority Protocol
StarGuide III Satellite Receiver
Wegener Unity4000 DVB Satellite Receiver
WheatNet Blade LIO
WheatNet Blade SLIO
See the sections below for notes on each specific model.
----------------------------------------------------------------------------
360 SYSTEMS AM-16/B AUDIO CROSSPOINT SWITCHER
Driver Name: 360 Systems AM-16/B
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of MIDI connections to the 'MIDI IN' and
'MIDI OUT' ports on the back of the unit, with the appropriate MIDI device
specified in the 'Device:' field in RDAdmin->ManageHosts->Switchers/GPIO.
The following settings should be configured on the AM-16/B:
Control Port Type: MIDI (jumper JMP1)
Program Send: OFF
Receive Channel: o (Omni mode)
Memory Protect: OFF
The driver uses MIDI programs '0' and '1' on the AM-16/B when processing
crosspoint changes; anything previously saved in those programs will
be overwritten!
----------------------------------------------------------------------------
BROADCAST TOOLS 10x1
Driver Name: BroadcastTools 10x1
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
parameters should be set to 2400 baud rate, no parity, 8 data bits, 1
stop bit, CR/LF termination.
----------------------------------------------------------------------------
BROADCAST TOOLS 16x1
Driver Name: BroadcastTools 16x1
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
parameters should be set to 9600 baud rate, no parity, 8 data bits, 1
stop bit, CR/LF termination.
Driver Name: BroadcastTools 16x2
Supported RML Commands:
Switch Take ('ST')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
parameters should be set to 9600 baud rate, no parity, 8 data bits, 1
stop bit, CR/LF termination.
Operation in 'multidrop' mode is not supported.
----------------------------------------------------------------------------
BROADCAST TOOLS 8x2
Driver Name: BroadcastTools 8x2
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
parameters should be set to 2400 baud rate, no parity, 8 data bits, 1
stop bit, CR/LF termination.
The 8x2 should be configured to use 'Mix' mode. This can be done by holding
down the F1 button on the switcher while powering up.
Operation in 'multidrop' mode is not supported.
----------------------------------------------------------------------------
BROADCAST TOOLS ADMS 44.22 Analog/AES Digital Matrix Switcher
Driver Name: BoradcastTools ADMS 44.22
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
Switch Take ('ST')
Switch Add ('SA')
Switch Level ('SL')
Switch Remove ('SR')
GENERAL NOTES:
Control is done by means of a serial connection to the unit's integrated
serial port. The 'OPTIONS' switches on the back of the unit should be set
as follows:
1: OFF (UP)
2: OFF (UP)
3: OFF (UP)
4: OFF (UP)
5: OFF (UP)
6: OFF (UP)
7: ON (DOWN)
8: ON (DOWN)
9: OFF (UP)
10: OFF (UP)
The Rivendell serial interface should be set to use 9600 bits/sec, 8 bits,
1 stop bit and no flow control.
---------------------------------------------------------------------------
BROADCAST TOOLS GPI-16 General Purpose Input Module
Driver Name: BroadcastTools GPI-16
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
GENERAL NOTES:
Control is done by means of a serial connection to the unit's integrated
serial port. There is also a 'plus' version that features an integrated
type B USB interface that simulates a serial port.
The unit should work correctly with factory default settings. The Rivendell
serial interface should be set to use 9600 bits/sec, 8 bits, 1 stop bit and
no flow control.
----------------------------------------------------------------------------
BROADCAST TOOLS SENTINEL 4 WEB AES SWITCHER
Driver Name: BroadcastTools Sentinel 4 Web
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of a TCP/IP connection to the unit's integrated
Ethernet port.
On the 'Email/Network Setup' page of the unit, be sure that the 'TCP Enabled'
box is checked and that 'TCP Listen Port' is set to the same number as is
used in the 'IP Port' setting in Rivendell's driver configuration
('56' by default).
----------------------------------------------------------------------------
BROADCAST TOOLS SRC-16
Driver Name: BroadcastTools SRC-16
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
GENERAL NOTES:
Control is done by means of a serial connection to the unit's integrated
serial port.
The unit should work correctly with factory default settings. The Rivendell
serial interface should be set to use 9600 bits/sec, 8 bits, 1 stop bit and
no flow control.
----------------------------------------------------------------------------
BROADCAST TOOLS SS 12.4
Driver Name: BroadcastTools SS 12.4
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
parameters should be set to 9600 baud rate, no parity, 8 data bits, 1
stop bit, CR/LF termination.
The SS 12.4 should be configured to use 'Mix' mode. This can be done
by setting DIP switches SW1-7 and SW-1-3 to OFF.
Operation in 'multidrop' mode is not supported.
----------------------------------------------------------------------------
Driver Name: BroadcastTools SS 16.4
Supported RML Commands:
GPO Set ('GO')
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
parameters should be set to 9600 baud rate, no parity, 8 data bits, 1
stop bit, CR/LF termination.
A total of 24 GPO outputs are supported, with the relays appearing as
GPO lines 1-8 and the open collector outputs as lines 9-24. All 24
'PIP' inputs are supported as GPI devices.
The SS 16.4 should be configured to use 'Mix' mode and to have 'PIP'
mode enabled. This can be done by setting DIP switches SW24-5, SW24-6
and SW24-8 to ON.
Operation in 'multidrop' mode is not supported.
----------------------------------------------------------------------------
BROADCAST TOOLS SS 4.2
Driver Name: BroadcastTools SS4.2
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
speed on the SS 4.2 should be set to 9600 (DIP switches SW13-3 and
SW13-4 set to 'off'). Serial port parameters in RDAdmin should be set
to 9600 baud rate, no parity, 8 data bits, 1 stop bit, CR/LF termination.
The SS 4.2 should be configured to use 'Mix' mode --i.e. DIP switches
SW13-5 and SW13-6 should both be 'on', and the unit ID should be set to
'0', with DIP switches SW13-1 and SW13-2 both 'off'.
Operation in 'multidrop' mode is not supported. If you wish to use
GPI (referred to as 'PIP', for 'Parallel Input Port' in the Broadcast
Tools documentation), then you will also need to be sure that DIP
switch SW13-7 is ON.
----------------------------------------------------------------------------
BROADCAST TOOLS SS 4.1 MLR SWITCHER/ROUTER
Driver Name: BroadcastTools SS4.1 MLR
Supported RML Commands:
Switch Take ('ST')
GPI Enable ('GE')
GPI Set ('GI')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
speed on the SS 4.1 should be set to 9600 (DIP switches SW6-4 and
SW6-5 set to 'off'). Serial port parameters in RDAdmin should be set
to 9600 baud rate, no parity, 8 data bits, 1 stop bit, CR/LF termination.
The SS 4.1 should be configured to use unit ID '0', with DIP switches
SW6-1, SW6-2 and SW6-3 all set to 'off'.
Operation in 'multidrop' mode is not supported. If you wish to use
GPI (referred to as 'PIP', for 'Parallel Input Port' in the Broadcast
Tools documentation), then you will also need to be sure that DIP
switch SW6-7 is ON.
----------------------------------------------------------------------------
BROADCAST TOOLS SS 4.4
Driver Name: BroadcastTools SS4.4
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
speed on the SS 4.4 should be set to 9600 (DIP switch SW3 set to 'off').
Serial port parameters in RDAdmin should be set to 9600 baud rate, no parity,
8 data bits, 1 stop bit, CR/LF termination.
The SS 4.4 should be configured to use 'Mix' mode --i.e. DIP switches
SW4 and SW5 should both be 'on', and the unit ID should be set to
'0', with DIP switches SW1 and SW2 both 'off'.
Operation in 'multidrop' mode is not supported. If you wish to use
GPI (referred to as 'PIP', for 'Parallel Input Port' in the Broadcast
Tools documentation), then you will also need to be sure that DIP
switch SW8 is 'on'. If you wish to use the open collector and relay outputs
as GPO, then you will also need to be sure that DIP switch SW6 is 'off'.
----------------------------------------------------------------------------
BROADCAST TOOLS ACS 8.2
Driver Name: BroadcastTools ACS8.2
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
Switch Level ('SL') [Output #1 only]
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
speed on the ACS 8.2 should be set to 9600. Serial port parameters
should be set to 9600 baud rate, no parity, 8 data bits, 1 stop bit,
no termination.
The ACS 8.2 should be configured to use 'Mix' mode --i.e. DIP switches
SW17-5 and SW17-6 should both be 'on', and the unit ID should be
'0', with DIP switches SW17-1 and SW17-2 both 'off'.
Operation in 'multidrop' mode is not supported. If you wish to use
GPI (referred to as 'PIP', for 'Parallel Input Port' in the Broadcast
Tools documentation), then you will also need to be sure that DIP
switch SW17-10 is ON.
The ACS 8.2 supports the Switch Level [SL] RML for connections to
Output 1. Six different gain levels are supported: 0 dB, -3 dB,
-6 dB, -10 dB, -15 dB and -20 dB. For for a specified gain level of
greater than or equal to -20, the applied gain will be rounded down
to the next supported level. For gain levels of less than -20 dB, the
minimum supported gain (-20 dB) will be applied.
----------------------------------------------------------------------------
BROADCAST TOOLS SS 8.2
Driver Name: BroadcastTools SS8.2
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
speed on the SS 8.2 should be set to 19200 (some have found 9600 to work
instead). Do *not* use 38400, as there are known bugs within the SS 8.2
when used with this speed! Serial port parameters should be set to
19200 baud rate (or 9600 if that worked instead), No parity, 8 data
bits, 1 stop bit, CR/LF termination (or potentially no termination).
The SS 8.2 should be configured to use 'Mix' mode --i.e. DIP switches
SW-14-4 and SW-14-5 should both be 'on', and the unit ID should be
'0', with DIP switches SW-14-1, SW-14-2 and SW-14-3 all 'off'.
Operation in 'multidrop' mode is not supported. If you wish to use
GPI (referred to as 'PIP', for 'Parallel Input Port' in the Broadcast
Tools documentation), then you will also need to be sure that DIP
switch SW-14-10 is ON.
----------------------------------------------------------------------------
BROADCAST TOOLS UNIVERSAL 4.1MLR>>WEB
Driver Name: BroadcastTools 4.1 MLR>>Web
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
Switch Take ('ST')
Control is by means of a TCP/IP connection to port 56. In 'Email/Network
Setup' on the web configuration page, both the 'TCP Enabled' and 'PIP Mode
Enabled' controls must be set to 'Enabled'.
----------------------------------------------------------------------------
Harlond Virtual Mixer
Driver Name: Harlond Virtual Mixer
Supported RML Commands:
Fire Salvo ('FS')
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
Switch Add ('SA')
Switch Level ('SL')
Switch Remove ('SR')
Switch Take ('ST')
GENERAL NOTES:
Control is by means of a TCP/IP connection to port 5002. Output busses are
mapped as follows:
OUTPUT BUSS
------ ----
1 PGM
2 AUD
3 UTL
4 CUE
Input channel ON/OFF is sensed/controlled by means of the respective GPIO
number using GE/GI/GO RMLs.
----------------------------------------------------------------------------
Kernel GPIO
Driver Name: Kernel GPIO
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
This driver can be used to control kernel-based GPIO interfaces, such as
the GPIO pins on a Raspberry Pi. Pins are allocated such that inputs come
first, followed by outputs.
Further information on kernel GPIO devices can be found at
https://www.kernel.org/doc/Documentation/gpio/sysfs.txt
----------------------------------------------------------------------------
LiveWire LWRP Audio
Driver Name: LiveWire LWRP Audio
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
LiveWire is a distributed audio router and control system, with the
components (called 'nodes') configured and controled via TCP/IP. More
information can be found at http://www.axiaaudio.com/.
This driver can be used to create and remove connections between audio
sources and destinations via LiveWire Routing Protocol (LWRP).
Configuration is a matter of entering the IP address, password and base
output number for each node in
RDAdmin->ManageHosts->Switcher/GPIO->LiveWire Nodes. The driver
will autodetect all other parameters from the nodes themselves. The
resulting constellation of nodes can be controled with the 'Switch Take'
['ST'] RML by specifying the LiveWire source stream number as the <input>
parameter and the the base output number+the slot number-1 for the <output>
parameter.
----------------------------------------------------------------------------
LiveWire LWRP GPIO
Driver Name: LiveWire LWRP GPIO
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
LiveWire is a distributed audio router and control system, with the
components (called 'nodes') configured and controled via TCP/IP. More
information can be found at http://www.axiaaudio.com/.
This driver can be used to control LiveWire's GPIO subsystem by means of
the LiveWire Routing Protocol (LWRP) with both physical as well as 'virtual'
GPIO devices.
Only two items need to be specified in the configuration: the IP address
of the device to control and the 'Layer', with 'V' specifying a virtual
GPIO device and 'D' specifying an actual physical one. The driver
will autodetect all other parameters (e.g. the number of input and output
lines) from the device itself.
----------------------------------------------------------------------------
LiveWire Multicast GPIO
Driver Name: LiveWire Multicast GPIO
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
LiveWire is a distributed audio router and control system, with the
components (called 'nodes') configured and controled via TCP/IP. More
information can be found at http://www.axiaaudio.com/.
This driver provides the ability to access GPIO functions from LiveWire-
enabled control surfaces for setups that lack a virtual GPIO device --e.g.
when interfacing audio directly to a LiveWire node without using a native
LiveWire software audio driver or audio adapter.
When configuring it, the 'IP Address' field should contain the address
of the local interface to which the LiveWire network is attached, while
the 'LiveWire GPIOs' list should be populated with the stream number - GPIO
line associations to be used.
----------------------------------------------------------------------------
Driver Name: Local Audio Adapter
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
Switch Add with Gain ('SX')
GENERAL NOTES:
It's possible to use one or more of the actual audio adapters as a
switcher device using this driver. Doing so makes it possible to
route audio directly from the adapter inputs to outputs, while at the
same time using it for audio capture/playout in the usual manner.
Driver Name: Logitek vGuest
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
Set Display ('SD')
Switch Take ('ST')
GENERAL NOTES:
Before using the driver, the resources within the Logitek Audio Engine
system that you wish to control must be made available in a 'vGuest'
account within the Logitek 'Supervisor' system. Then, those same
resources must be mapped within the Rivendell driver. For the 'ST'
RML, the Logitek Engine Numbers and Device Numbers are mapped to
logical Rivendell 'Inputs' and 'Outputs' within the 'Configure Inputs'
and 'Configure Outputs' dialogs. For the GPO RMLs, various Logitek
'switches' (by which we mean anything that can be turned on and off,
such as faders feeds, not just GPIO) are mapped to logical Rivendell
GPIO lines by means of their Logitek Engine, Device and Buss numbers.
----------------------------------------------------------------------------
Driver Name: Modbus TCP
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
This driver supports GPI devices that use the industry-standard Modbus TCP
protocol at TCP port 502. The device to be controlled should be configured
to use Modbus ID #1. For more information on Modbus, see http://www.modbus.org/.
----------------------------------------------------------------------------
Quartz Electronics Type 1 Routing Protocol
Driver Name: Quartz Type 1
Supported RML Commands:
Switch Take ('ST')
Fire Salvo ('FS')
GENERAL NOTES:
Control can done either by means of an RS-232C connection or by means of
TCP/IP to TCP port 23.
----------------------------------------------------------------------------
Ross NK Video Switchers (via SCP/A Serial Interface)
Driver Name: Ross NK-SCP/A Interface
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a NK-SCP/A serial
interface. Serial port parameters should be set to 9600 baud rate, no parity,
8 data bits, 1 stop bit, CR termination. The Breakaway to use is defined
by setting the 'Card' parameter in the driver configuration, with
Card 0 = Breakaway 1, Card 1 = Breakaway 2, etc.
----------------------------------------------------------------------------
SERIAL PORT MODEM CONTROL LINES
Driver Name: Serial Port Modem Control Lines
Supported RML Commands:
GPO Set ('GO')
GENERAL NOTES:
This driver enables GPIO via the modem control lines on an RS-232C serial
device. The lines map as follows:
GPI SIGNAL
-------------------------------
1 Data Set Ready (DSR)
2 Clear To Send (CTS)
3 Carrier Detect (CI)
4 Ring Indicator (RI)
GPO SIGNAL
-------------------------------
1 Data Terminal Ready (DTR)
2 Ready To Send (RTS)
----------------------------------------------------------------------------
SIERRA AUTOMATED SYSTEMS 16000(D) AUDIO ROUTER
Driver Name: SAS 16000(D)
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Both analog and AES3 digital (D) variants are supported. Control can done
by means of an RS-232C connection to the 'User Serial Interface' port on
the unit. Serial port parameters should be:
Baud Rate: 9600
Parity: None
Data Bits: 8
Stop Bits: 1
Terminator: None
----------------------------------------------------------------------------
SIERRA AUTOMATED SYSTEMS 32000 AUDIO ROUTER
Driver Name: SAS 32000
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
Switch Level ('SL') [requires appropriate SAS hardware support]
GENERAL NOTES:
Control is done by means of an RS-232C connection to the 'Computer
RS-232' port on the AXC-8 System Controller. Serial port parameters
should be set to 9600 baud rate, no parity, 8 data bits, 1 stop bit
and no terminator. The AXC-8 must be equipped with firmware built to
use the 'conventional' command protocol -- the 'enhanced' version will
not work!
----------------------------------------------------------------------------
SIERRA AUTOMATED SYSTEMS 64000 AUDIO ROUTER
Rivendell contains two drivers that support this switcher, depending
upon how the physical connection is made. If possible, use the 'SAS
64000-GPI' driver, as it is better tested and provides superior
performance.
Driver Name: SAS 64000
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of an RS-232C connection to the 'Computer
RS-232' port on the AXC-8 System Controller. Serial port parameters
should be set to 9600 baud rate, no parity, 8 data bits, 1 stop bit
and no terminator. The AXC-8 must be equipped with firmware built to
use the 'conventional' command protocol -- the 'enhanced' version will
not work!
Driver Name: SAS 64000-GPI
Supported RML Commands:
Switch Take ('ST')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of an RS-232C connection to the 'Computer
RS-232' port on a GPI-1600 GPIO interface. Serial port parameters
should be set to 19200 baud rate, no parity, 8 data bits, 1 stop bit
and no terminator. This driver allows control of the system's GPO
outputs as well as audio crosspoints.
----------------------------------------------------------------------------
SIERRA AUTOMATED SYSTEMS User Serial Interface (USI)
Driver Name: SAS USI
Supported RML Commands:
Switch Take ('ST')
Switch Take With Gain ('SG')
Switch Add ('SA')
Switch Remove ('SR')
Switch Level ('SL')
Switch Crosspoint Gain ('SX')
GPO Set ('GO')
Fire Salvo ('FS')
Console Label ('CL')
GENERAL NOTES:
Control can done either by means of an RS-232C connection to one of
the serial ports on a DRC-16E card or by means of TCP/IP to a PC
running SAS's Server Module software. TCP connections are normally made
to port 1350 on the Server Module system.
----------------------------------------------------------------------------
SINE SYSTEMS ACU-1 (PROPHET VERSION)
Driver Name: Since ACU-1 (Prophet)
Supported RML Commands:
Switch Add ('SA')
Switch Remove ('SR')
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of an RS-232C connection to the RS-232 port on
the unit. Serial port parameters in RDAdmin should be set to 57600 baud
rate, even parity, 8 data bits, 1 stop bit and no terminator.
The ACU-1 should be set to use factory default settings. This can be done
by simultaneously pressing buttons 1 and 8 on the front panel of the unit
for at least one second.
----------------------------------------------------------------------------
SOFTWARE AUTHORITY PROTOCOL
Driver Name: Software Authority Protocol
Supported RML Commands:
Switch Take ('ST')
GPO Set ('GO')
GENERAL NOTES:
Used to control devices (such as the Axia 'PathFinder' system) by means of
the 'Software Authority' protocol. Control is by means of a
TCP/IP connection (typically to port 9500) on the controled system. The 'Card'
parameter should be set to the 'Router Number' of the router to be controlled.
Most parameters, including the number of inputs and outputs as well as the
endpoint names, are autodetected by the driver.
----------------------------------------------------------------------------
STARGUIDE III Satellite Receiver
Driver Name: StarGuide III
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of an RS-232C connection to the
RS-232 port on the unit. The port should be configured on the
receiver to use a speed of 9600. Serial port parameters in RDAdmin
should be set to 9600 baud rate, no parity, 8 data bits, 1 stop bit
and no terminator. Once configured, use RDAdmin to create inputs that
correspond to the StarGuide Provider and Source IDs available on the
selected DVB carrier. Provider and Source ID data is available from
the provider network.
----------------------------------------------------------------------------
WEGENER UNITY4000 DVB SATELLITE RECEIVER
Driver Name: Wegener Unity 4000
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of an RS-232C connection to one of the two
RS-232 ports on the unit. If possible, use serial port number one,
as the reciever uses a larger data buffer with that port. The
selected port should be configured in the reciever to be of type
"Terminal" with a speed of 19200. Serial port parameters should be
set to 19200 baud rate, no parity, 8 data bits, 1 stop bit
and no terminator. Once configured, use RDAdmin to create inputs that
correspond to the DVB stream names available on the selected DVB
carrier.
Caution is needed when scheduling record events from the Unity4000, as
the unit is capable of outputting a given DVB stream to only a single
output at a time. Commanding a stream to an output will cause that
stream to be silently deselected from a previously selected output.
----------------------------------------------------------------------------
WHEATNET BLADE LIO
Driver Name: WheatNet LIO
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of a TCP/IP connection to port 55776 on a blade.
The only required configuration parameters are IP Address and IP Port.
The number of pins is auto-detected at driver startup.
----------------------------------------------------------------------------
WHEATNET BLADE SLIO
Driver Name: WheatNet SLIO
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of a TCP/IP connection to port 55776 on a blade.
The only required configuration parameters are IP Address and IP Port.
The number of soft pins is auto-detected at driver startup.
----------------------------------------------------------------------------

View File

@ -1,25 +0,0 @@
WINDOWS SUPPORT FOR RIVENDELL
A Windows port of Rivendell exists, consisting of just the RDLogEdit,
RDLogManager and RMLSend tools, primarily intended for use on systems
employing Windows-based traffic and music schedulers. Current binary
versions can be found at:
ftp://ftp.salemradiolabs.com/pub/srlabs/rivendell/win32/
If you wish to build the Windows port from source, please see the
'INSTALL' file.
INSTALLING THE BIANRY VERSION
The binary version comes with a standard setup program that will do
most of the work of getting Rivendell installed. After the
installation is complete, you will need to edit the 'rd.ini' file,
located in the Rivendell installation directory (by default,
'C:\ProgramFiles\SalemRadioLabs\Rivendell\') and supply the hostname
and login password to the 'rduser' account on the site's mySQL server.
This file can contain all of the directives and arguments used in
Rivendell's standard '/etc/rd.conf' file (although only a few will
have any real effect in the Windows envrionment). The default
file provided should help get you started.

View File

@ -1,67 +0,0 @@
Usage Notes for the 'wings_filter' Import Script.
Wings_filter is a script designed to be used to import existing audio
and meta-data from an AirForce 'Wings' automation system. It is
invoked as follows:
USAGE
wings_filter -g <default-group> -d <db-file> -A <audio-dir> [-e <audio-ext>]
Where:
<default-group> = The name of the group in which to place carts
belonging to a source tab in Wings for which there
is no corresponding Rivendell Group.
<db-file> = The name of the Wings database file.
<audio-dir> = The name of the directory containing the Wings ATX
audio files.
<audio-ext> = The filetype extension fo the Wings ATX files. By
default, this is 'ATX', but can be changed to
other values here if necessary.
OVERVIEW
In order import audio from an existing Wings system, proceed as
follows:
1) CREATE RIVENDELL GROUPS
In RDAdmin->ManageGroups, create a Group to correspond to each Wings
Tab value that exists in the library to be imported, and an additional
group to catch any Wings entries that may not have a valid Group.
When creating these groups, it is essential that a default cart number
range be configured for each group that is large enough to accomodate
all anticipated imports.
2) LOCATE THE 'WINGS' DATABASE AND AUDIO FILES
These can be mounted from a remote system if needs be. Read-only
access is adequate, as the script does not modify these items in any
way.
3) VERIFY AVAILABLE DISK SPACE
Verify that enough disk space is available in the '/var/snd/'
directory to accomodate the audio to be imported. You should have at
least the amount of space currently occupied by the Wings ATX files,
plus 5 percent additional.
4) INVOKE SCRIPT
Start up the script, as described in the USAGE section above. The
script will print progress reports as it proceeds, or notify you of
error conditions as required.
5) CLEAN UP
If desired, use RDAdmin->ManageGroups to rename the single-letter
import groups to more intuitive names.
NOTE ON AUDIO PROCESSING
Wings_filter does not alter or reencode the audio sample data in any
way, and thus does *not* incurr any generation or transcoding loss of
quality. At the same time, this means that the incoming audio will be
brought into Rivendell *exactly* as it exists in the Wings system,
with all parameters (e.g. sample rate, bit rate, level, etc)
unaltered. If you need to alter one or more of these parameters as
part of the import process, we suggest you use the RDImport script
instead.

64
docs/apis/Makefile.am Normal file
View File

@ -0,0 +1,64 @@
## automake.am
##
## docs/docbook/automake.am for Rivendell
##
## (C) Copyright 2015-2017 Fred Gleason <fredg@paravelsystems.com>
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License version 2 as
## published by the Free Software Foundation.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public
## License along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
## Use automake to process this into a Makefile.in
##
## Build Dependencies
##
%.html: %.xml
xsltproc -o $@ $(DOCBOOK_STYLESHEETS)/xhtml/docbook.xsl $<
%.pdf: %.xml
xsltproc $(DOCBOOK_STYLESHEETS)/fo/docbook.xsl $< | fop - -pdf $@
%.1: %.xml
xsltproc $(DOCBOOK_STYLESHEETS)/manpages/docbook.xsl $<
%.8: %.xml
xsltproc $(DOCBOOK_STYLESHEETS)/manpages/docbook.xsl $<
all-local: cae.html\
cae.pdf\
catchd.html\
catchd.pdf\
ripc.html\
ripc.pdf\
web_api.html\
web_api.pdf
EXTRA_DIST = cae.html\
cae.pdf\
cae.xml\
catchd.html\
catchd.pdf\
catchd.xml\
ripc.html\
ripc.pdf\
ripc.xml\
web_api.html\
web_api.pdf\
web_api.xml
CLEANFILES = *~
MAINTAINERCLEANFILES = *~\
*.1\
*.8\
*.html\
*.pdf\
aclocal.m4\
configure\
Makefile.in

550
docs/apis/catchd.xml Normal file
View File

@ -0,0 +1,550 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<article xmlns="http://docbook.org/ns/docbook" version="5.0">
<info>
<title>Rivendell RDCatch Monitor Protocol</title>
<author>
<personname>
<firstname>Fred</firstname>
<surname>Gleason</surname>
<email>fredg@paravelsystems.com</email>
</personname>
</author>
</info>
<sect1 xml:id="overview">
<title>Overview</title>
<para>
This defines the IP protocol used for communication between different
modules of Rivendell and the
<command>rdcatchd</command><manvolnum>8</manvolnum> daemon.
</para>
<para>
Connection to ripcd is by means of a TCP SOCK_STREAM connection to TCP
port <userinput>6006</userinput>. The format of a message is as follows:
</para>
<para>
<replaceable>cmd-code</replaceable> [<replaceable>arg</replaceable>] [<replaceable>...</replaceable>]!
</para>
<variablelist>
<varlistentry>
<term>
<replaceable>cmd-code</replaceable>
</term>
<listitem>
<para>
A two letter command code, describing the generic action to be
performed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<replaceable>arg</replaceable>
</term>
<listitem>
<para>
Zero or more arguments, delimited by spaces or, if the last
argument, by ! (see below)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
!
</term>
<listitem>
<para>
The ASCII character 33, indicating the end of the command sequence.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 xml:id="sect.unprivileged_commands">
<title>Unprivileged Commands</title>
<para>
No authentication is required to execute these.
</para>
<sect2 xml:id="sect.unprivileged_commands.drop_connection">
<title>Drop Connection</title>
<para>
End the session and drop the TCP connection.
</para>
<para>
<userinput>DC!</userinput>
</para>
</sect2>
<sect2 xml:id="sect.unprivileged_commands.send_password">
<title>Send Password</title>
<para>
Send a password to the server for authentication.
</para>
<para>
<userinput>PW <replaceable>passwd</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term>
<replaceable>passwd</replaceable>
</term>
<listitem>
A password to be supplied before granting the client access.
</listitem>
</varlistentry>
</variablelist>
<para>
<command>rdcatchd</command><manvolnum>8</manvolnum> will respond
with <computeroutput>PW +!</computeroutput> or
<computeroutput>PW -!</computeroutput>, indicating the success or
failure of the authentication.
</para>
</sect2>
</sect1>
<sect1 xml:id="sect.privileged_commands">
<title>Privileged Commands</title>
<para>
A connection must be authenticated before these can be executed.
</para>
<sect2 xml:id="sect.privileged_commands.deck_event_processed">
<title>Deck Event Processed</title>
<para>
Sent by RDCatchd whenever a deck event is processed.
</para>
<para>
<userinput>DE <replaceable>deck-num</replaceable>
<replaceable>event-num</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>deck-num</replaceable></term>
<listitem>
<para>
The number of the deck originating the event. Record decks have
numbers in the range <computeroutput>1</computeroutput> through
<computeroutput>127</computeroutput>, while Play decks have
numbers in the range <computeroutput>128</computeroutput> through
<computeroutput>254</computeroutput>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>event-num</replaceable></term>
<listitem>
<para>
The new event state of the specified deck.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
See <xref linkend="sect.privileged_commands.request_deck_status" /> for
the list of possible deck event states.
</para>
</sect2>
<sect2 xml:id="sect.privileged_commands.reload_deck_list">
<title>Reload Deck List</title>
<para>
Reload the record/play deck configuration.
</para>
<para>
<userinput>RD!</userinput>
</para>
<para>
<command>rdcatchd</command><manvolnum>8</manvolnum> will respond with
<computeroutput>RS +!</computeroutput>.
</para>
</sect2>
<sect2 xml:id="sect.privileged_commands.reload_event_list">
<title>Reload Event List</title>
<para>
Reload the list of scheduled events.
</para>
<para>
<userinput>RS!</userinput>
</para>
<para>
<command>rdcatchd</command><manvolnum>8</manvolnum> will respond with
<computeroutput>RS +!</computeroutput>.
</para>
</sect2>
<sect2 xml:id="sect.privileged_commands.add_event">
<title>Add Event</title>
<para>
Add event to the event list.
</para>
<para>
<userinput>RA <replaceable>event-num</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>event-num</replaceable></term>
<listitem>
<para>
The number of the event to add.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<command>rdcatchd</command><manvolnum>8</manvolnum>
will respond with
<computeroutput>RA <replaceable>event-num</replaceable>+!</computeroutput>.
</para>
</sect2>
<sect2 xml:id="sect.privileged_commands.remove_event">
<title>Remove Event</title>
<para>
Remove event from the event list.
</para>
<para>
<userinput>RR <replaceable>event-num</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>event-num</replaceable></term>
<listitem>
<para>
The number of the event to remove.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<command>rdcatchd</command><manvolnum>8</manvolnum>
will respond with
<computeroutput>RR <replaceable>event-num</replaceable>+!</computeroutput>.
</para>
</sect2>
<sect2 xml:id="sect.privileged_commands.update_event">
<title>Update Event</title>
<para>
Update event from the event list.
</para>
<para>
<userinput>RU <replaceable>event-num</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>event-num</replaceable></term>
<listitem>
<para>
The number of the event to update.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<command>rdcatchd</command><manvolnum>8</manvolnum>
will respond with
<computeroutput>RU <replaceable>event-num</replaceable>+!</computeroutput>.
</para>
</sect2>
<sect2 xml:id="sect.privileged_commands.request_deck_status">
<title>Request Deck Status</title>
<para>
Request the current deck status.
</para>
<para>
<userinput>RE <replaceable>deck-num</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>deck-num</replaceable></term>
<listitem>
<para>
The number of the deck for which to return status.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
If <replaceable>deck-num</replaceable> is greater than zero,
<command>rdcatchd</command><manvolnum>8</manvolnum> will respond with
<computeroutput>RE <replaceable>deck-num</replaceable>
<replaceable>status</replaceable> <replaceable>id</replaceable>
<replaceable>cutname</replaceable>!</computeroutput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>deck-num</replaceable></term>
<listitem>
<para>
Channel number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>status</replaceable></term>
<listitem>
<para>
The current status of the deck. Possible values are:
</para>
<para>
<table frame="all">
<title>Deck Status Codes</title>
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colname="Code" colwidth="1.0*" />
<colspec colname="Meaning" colwidth="10.0*" />
<thead>
<row><entry>Code</entry><entry>Meaning</entry></row>
</thead>
<tbody>
<row><entry>0</entry><entry>Offline</entry></row>
<row><entry>1</entry><entry>Idle</entry></row>
<row><entry>2</entry><entry>Ready</entry></row>
<row><entry>3</entry><entry>Active (playing or recording)</entry></row>
<row><entry>4</entry><entry>Waiting (for a GPI)</entry></row>
</tbody>
</tgroup>
</table>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>event-id</replaceable></term>
<listitem>
<para>
ID number of current event (from RECORDINGS table)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>cutname</replaceable></term>
<listitem>
<para>
The cutname of the event (present only for
<replaceable>status</replaceable>==<computeroutput>3</computeroutput>).
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
If <replaceable>channel</replaceable> is zero,
<command>rdcatchd</command><manvolnum>8</manvolnum> will respond for
every event whose status is non-idle.
</para>
<para>
An <computeroutput>RE</computeroutput> packet will also be sent
automatically to all active connections upon any change of deck status.
</para>
</sect2>
<sect2 xml:id="sect.privileged_commands.enable_metering">
<title>Enable Metering</title>
<para>
Enable/Disable Audio Metering
</para>
<para>
<userinput>RM <replaceable>state</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>state</replaceable></term>
<listitem>
<para>
<computeroutput>1</computeroutput> = Enabled,
<computeroutput>0</computeroutput> = Disabled.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
When metering is active, meter data packets will be periodically sent,
as follows:
</para>
<para>
<computeroutput>RM <replaceable>deck</replaceable>
<replaceable>chan</replaceable>
<replaceable>level</replaceable>!</computeroutput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>deck</replaceable></term>
<listitem>
<para>
Deck number
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>chan</replaceable></term>
<listitem>
<para>
Channel, <computeroutput>0</computeroutput> = Left,
<computeroutput>1</computeroutput> = Right
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>level</replaceable></term>
<listitem>
<para>
Left audio level, in 1/100 of dbFS
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="sect.privileged_commands.stop_deck">
<title>Stop Deck</title>
<para>
Stop active event.
</para>
<para>
<userinput>SR <replaceable>deck-num</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>deck-num</replaceable></term>
<listitem>
<para>
The number of the deck to stop.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="sect.privileged_commands.purge_event">
<title>Purge Event</title>
<para>
Report purging of one-shot event.
</para>
<para>
<userinput>PE <replaceable>event-num</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>event-num</replaceable></term>
<listitem>
<para>
The number of the purged event.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Received upon completion of a one-shot event by
<command>rdcatchd</command><manvolnum>8</manvolnum> to indicate that
the event has been purged.
</para>
</sect2>
<sect2 xml:id="sect.privileged_commands.reload_time_offset">
<title>Reload Time Offset</title>
<para>
Reload the time offset value from the database.
</para>
<para>
<userinput>RO!</userinput>
</para>
</sect2>
<sect2 xml:id="sect.privileged_commands.reload_heartbeat_configuration">
<title>Reload Heartbeat Configuration</title>
<para>
Reload the heartbeat configuration from the database.
</para>
<para>
<userinput>RH!</userinput>
</para>
</sect2>
<sect2 xml:id="sect.privileged_commands.heartbeat_pulse">
<title>Heartbeat Pulse</title>
<para>
Heartbeat Pulse, for connection keep-alive.
</para>
<para>
<userinput>HB!</userinput>
</para>
</sect2>
<sect2 xml:id="sect.privileged_commands.restart_dropbox_instances">
<title>Restart Dropbox Instances</title>
<para>
Restart all <command>rdimport</command><manvolnum>1</manvolnum>
instances for running dropboxes.
</para>
<para>
<userinput>RX!</userinput>
</para>
</sect2>
<sect2 xml:id="sect.privileged_commands.input_monitor_state">
<title>Input Monitor State</title>
<para>
Turn the input monitor on or off.
</para>
<para>
<userinput>MN <replaceable>deck-num</replaceable>
<replaceable>state</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>deck-num</replaceable></term>
<listitem>
<para>
The number of the deck.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>state</replaceable></term>
<listitem>
<para>
<computeroutput>1</computeroutput> = Enabled,
<computeroutput>0</computeroutput> = Disabled.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="sect.privileged_commands.set_exit_code">
<title>Set Exit Code</title>
<para>
Set the exit code of an event.
</para>
<para>
<userinput>SC <replaceable>event-num</replaceable>
<replaceable>code</replaceable>
<replaceable>msg</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>event-num</replaceable></term>
<listitem>
<para>
The number of the event.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>code</replaceable></term>
<listitem>
<para>
The numeric code to set.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>msg</replaceable></term>
<listitem>
<para>
The text message to set.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
</article>

613
docs/apis/ripc.xml Normal file
View File

@ -0,0 +1,613 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<article xmlns="http://docbook.org/ns/docbook" version="5.0">
<info>
<title>Rivendell Interprocess Communication Protocol</title>
<author>
<personname>
<firstname>Fred</firstname>
<surname>Gleason</surname>
<email>fredg@paravelsystems.com</email>
</personname>
</author>
</info>
<sect1 xml:id="overview">
<title>Overview</title>
<para>
This defines the IP protocol used for communication between different
modules of Rivendell and the
<command>ripcd</command><manvolnum>8</manvolnum> daemon.
</para>
<para>
Connection to ripcd is by means of a TCP SOCK_STREAM connection to TCP
port <userinput>5006</userinput>. The format of a message is as follows:
</para>
<para>
<replaceable>cmd-code</replaceable> [<replaceable>arg</replaceable>] [<replaceable>...</replaceable>]!
</para>
<variablelist>
<varlistentry>
<term>
<replaceable>cmd-code</replaceable>
</term>
<listitem>
<para>
A two letter command code, describing the generic action to be
performed
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<replaceable>arg</replaceable>
</term>
<listitem>
<para>
Zero or more arguments, delimited by spaces or, if the last
argument, by ! (see below)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
!
</term>
<listitem>
<para>
The ASCII character 33, indicating the end of the command sequence.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 xml:id="sect.unprivileged_commands">
<title>Unprivileged Commands</title>
<para>
No authentication is required to execute these.
</para>
<sect2 xml:id="sect.unprivileged_commands.drop_connection">
<title>Drop Connection</title>
<para>
End the session and drop the TCP connection.
</para>
<para>
<userinput>DC!</userinput>
</para>
</sect2>
<sect2 xml:id="sect.unprivileged_commands.send_password">
<title>Send Password</title>
<para>
Send a password to the server for authentication.
</para>
<para>
<userinput>PW <replaceable>passwd</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term>
<replaceable>passwd</replaceable>
</term>
<listitem>
A password to be supplied before granting the client access.
</listitem>
</varlistentry>
</variablelist>
<para>
<command>ripcd</command><manvolnum>8</manvolnum> will respond
with <computeroutput>PW +!</computeroutput> or
<computeroutput>PW -!</computeroutput>, indicating the success or
failure of the authentication.
</para>
</sect2>
</sect1>
<sect1 xml:id="sect.privileged_commands">
<title>Privileged Commands</title>
<para>
A connection must be authenticated before these can be executed.
</para>
<sect2 xml:id="privileged_commands.request_user">
<title>Request User</title>
<para>
Request the LOGIN_NAME of the user currently logged in.
</para>
<para>
<userinput>RU!</userinput>
</para>
<para>
<command>ripcd</command><manvolnum>8</manvolnum> will respond with
<computeroutput>RU <replaceable>user-name</replaceable>!</computeroutput>.
</para>
<variablelist>
<varlistentry>
<term><replaceable>user-name</replaceable></term>
<listitem>
<para>
The LOGIN_NAME of the user currently logged in.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="privileged_commands.set_user">
<title>Set User</title>
<para>
Login in a user.
</para>
<para>
<userinput>SU <replaceable>user-name</replaceable>!</userinput>
</para>
<para>
<command>ripcd</command><manvolnum>8</manvolnum> will respond with
<computeroutput>RU <replaceable>user-name</replaceable>!</computeroutput>.
</para>
<variablelist>
<varlistentry>
<term><replaceable>user-name</replaceable></term>
<listitem>
<para>
The LOGIN_NAME of the user to log in.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="privileged_commands.rml_send">
<title>RML Send</title>
<para>
Send an RML command to a specified host.
</para>
<para>
<userinput>MS <replaceable>ip-addr</replaceable>
<replaceable>echo</replaceable>
<replaceable>rml</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>ip-addr</replaceable></term>
<listitem>
<para>
IPv4 address of the destination, indotted-quad notation.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>echo</replaceable></term>
<listitem>
<para>
<userinput>1</userinput> = Request echo,
<userinput>0</userinput> = Request no echo.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>rml</replaceable></term>
<listitem>
<para>
The RML command to send.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="privileged_commands.rml_echo">
<title>RML Echo</title>
<para>
Echo an RML command to a specified host.
</para>
<para>
<userinput>ME <replaceable>ip-addr</replaceable>
<replaceable>echo</replaceable>
<replaceable>rml</replaceable>!</userinput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>ip-addr</replaceable></term>
<listitem>
<para>
IPv4 address of the destination, indotted-quad notation.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>echo</replaceable></term>
<listitem>
<para>
<userinput>1</userinput> = Request echo,
<userinput>0</userinput> = Request no echo.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>rml</replaceable></term>
<listitem>
<para>
The RML command to send.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="privileged_commands.get_gpi_carts">
<title>Get GPI Carts</title>
<para>
Return current GPI line cart numbers.
</para>
<para>
<userinput>GC <replaceable>matrix</replaceable>!</userinput>
</para>
<para>
Request the list of macro carts currently assigned for
<replaceable>matrix</replaceable>. The following record will
be returned for each line in the matrix:
</para>
<para>
<computeroutput>GC
<replaceable>matrix</replaceable>
<replaceable>gpi-line</replaceable>
<replaceable>off-cart-num</replaceable>
<replaceable>on-cart-num</replaceable>!</computeroutput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>matrix</replaceable></term>
<listitem>
<para>
The specified matrix number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>gpi-line</replaceable></term>
<listitem>
<para>
The GPI line number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>off-cart-num</replaceable></term>
<listitem>
<para>
The number for the cart to be activated when
<replaceable>gpi-line</replaceable> transitions to an OFF
state. <computeroutput>0</computeroutput> indicates that no
cart is currently set.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>on-cart-num</replaceable></term>
<listitem>
<para>
The number for the cart to be activated when
<replaceable>gpi-line</replaceable> transitions to an ON
state. <computeroutput>0</computeroutput> indicates that no
cart is currently set.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="privileged_commands.get_gpo_carts">
<title>Get GPO Carts</title>
<para>
Return current GPO line cart numbers.
</para>
<para>
<userinput>GD <replaceable>matrix</replaceable>!</userinput>
</para>
<para>
Request the list of macro carts currently assigned for
<replaceable>matrix</replaceable>. The following record will
be returned for each line in the matrix:
</para>
<para>
<computeroutput>GC
<replaceable>matrix</replaceable>
<replaceable>gpo-line</replaceable>
<replaceable>off-cart-num</replaceable>
<replaceable>on-cart-num</replaceable>!</computeroutput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>matrix</replaceable></term>
<listitem>
<para>
The specified matrix number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>gpo-line</replaceable></term>
<listitem>
<para>
The GPO line number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>off-cart-num</replaceable></term>
<listitem>
<para>
The number for the cart to be activated when
<replaceable>gpo-line</replaceable> transitions to an OFF
state. <computeroutput>0</computeroutput> indicates that no
cart is currently set.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>on-cart-num</replaceable></term>
<listitem>
<para>
The number for the cart to be activated when
<replaceable>gpo-line</replaceable> transitions to an ON
state. <computeroutput>0</computeroutput> indicates that no
cart is currently set.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="privileged_commands.get_gpi_states">
<title>Get GPI States</title>
<para>
Return current GPI states.
</para>
<para>
<userinput>GI <replaceable>matrix</replaceable>!</userinput>
</para>
<para>
Request the list of current GPI states for
<replaceable>matrix</replaceable>. The following record will
be returned for each line in the matrix:
</para>
<para>
<computeroutput>GI
<replaceable>matrix</replaceable>
<replaceable>gpi-line</replaceable>
<replaceable>state</replaceable>
<replaceable>mask</replaceable>!</computeroutput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>matrix</replaceable></term>
<listitem>
<para>
The specified matrix number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>gpi-line</replaceable></term>
<listitem>
<para>
The GPI line number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>state</replaceable></term>
<listitem>
<para>
<computeroutput>1</computeroutput> = GPI is ON,
<computeroutput>0</computeroutput> = GPI is OFF.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>mask</replaceable></term>
<listitem>
<para>
<computeroutput>1</computeroutput> = GPI is ENABLED,
<computeroutput>0</computeroutput> = GPI is DISABLED.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="privileged_commands.get_gpo_states">
<title>Get GPO States</title>
<para>
Return current GPO states.
</para>
<para>
<userinput>GO <replaceable>matrix</replaceable>!</userinput>
</para>
<para>
Request the list of current GPO states for
<replaceable>matrix</replaceable>. The following record will
be returned for each line in the matrix:
</para>
<para>
<computeroutput>GI
<replaceable>matrix</replaceable>
<replaceable>gpo-line</replaceable>
<replaceable>state</replaceable>
<replaceable>mask</replaceable>!</computeroutput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>matrix</replaceable></term>
<listitem>
<para>
The specified matrix number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>gpo-line</replaceable></term>
<listitem>
<para>
The GPO line number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>state</replaceable></term>
<listitem>
<para>
<computeroutput>1</computeroutput> = GPO is ON,
<computeroutput>0</computeroutput> = GPO is OFF.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>mask</replaceable></term>
<listitem>
<para>
<computeroutput>1</computeroutput> = GPO is ENABLED,
<computeroutput>0</computeroutput> = GPO is DISABLED.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="privileged_commands.get_gpi_mask_states">
<title>Get GPI Mask States</title>
<para>
Return current GPI mask states.
</para>
<para>
<userinput>GM <replaceable>matrix</replaceable>!</userinput>
</para>
<para>
Request the list of current GPI mask states for
<replaceable>matrix</replaceable>. The following record will
be returned for each line in the matrix:
</para>
<para>
<computeroutput>GI
<replaceable>matrix</replaceable>
<replaceable>gpi-line</replaceable>
<replaceable>mask</replaceable>!</computeroutput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>matrix</replaceable></term>
<listitem>
<para>
The specified matrix number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>gpi-line</replaceable></term>
<listitem>
<para>
The GPI line number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>mask</replaceable></term>
<listitem>
<para>
<computeroutput>1</computeroutput> = GPI is ENABLED,
<computeroutput>0</computeroutput> = GPI is DISABLED.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="privileged_commands.get_gpo_mask_states">
<title>Get GPO Mask States</title>
<para>
Return current GPO mask states.
</para>
<para>
<userinput>GM <replaceable>matrix</replaceable>!</userinput>
</para>
<para>
Request the list of current GPO mask states for
<replaceable>matrix</replaceable>. The following record will
be returned for each line in the matrix:
</para>
<para>
<computeroutput>GN
<replaceable>matrix</replaceable>
<replaceable>gpo-line</replaceable>
<replaceable>mask</replaceable>!</computeroutput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>matrix</replaceable></term>
<listitem>
<para>
The specified matrix number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>gpo-line</replaceable></term>
<listitem>
<para>
The GPO line number.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>mask</replaceable></term>
<listitem>
<para>
<computeroutput>1</computeroutput> = GPO is ENABLED,
<computeroutput>0</computeroutput> = GPO is DISABLED.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 xml:id="privileged_commands.reload_gpi_table">
<title>Reload GPI Table</title>
<para>
Reload the GPI table in <command>ripcd</command><manvolnum>8</manvolnum>.
</para>
<para>
<userinput>RG!</userinput>
</para>
</sect2>
<sect2 xml:id="privileged_commands.get_onair_flag">
<title>Get OnAir Flag</title>
<para>
Request the state of the OnAir flag.
</para>
<para>
<userinput>TA!</userinput>
</para>
<para>
The following record will be returned:
</para>
<para>
<computeroutput>TA<replaceable>state</replaceable>!</computeroutput>
</para>
<variablelist>
<varlistentry>
<term><replaceable>state</replaceable></term>
<listitem>
<para>
<computeroutput>1</computeroutput> = Active,
<computeroutput>0</computeroutput> = Disabled.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
</article>

View File

@ -1,120 +0,0 @@
Rivendell Netcatcher Communication Protocol
This defines the IP protocol used for communication between different
modules of Rivendell and the 'rdcatchd' daemon.
Connection to ripcd is by means of a TCP SOCK_STREAM connection to TCP
port 6006. The format of a message is as follows:
<cmd>[<arg>][...]!
where:
<cmd> is a two-letter code indicating the nature of the message.
<arg> is zero or more arguments.
! is an ASCII character 0x21.
UNPRIVILEDGED COMMANDS -- no authentication is required to execute these.
DC! -- DROP CONNECTION
End the session and drop the TCP connection.
PW <passwd>! -- SEND PASSWORD
Send a password to authenticate the connection. Ripcd will respond
with 'PW +!' or 'PW -!', indicating the success or failure of the
authentication.
PRIVILEDGED - a connection must be authenticated before these can be
executed.
DE <deck> <number>! -- Deck Event Processed
Sent by RDCatchd whenever a deck event is processed.
RD! -- Reload Deck List
Reload the record/play deck configuration. Rdcatchd will respond with RD
+!.
RS! -- Reload Event List
Reload the list of scheduled events. Rdcatchd will respond with
RS +!.
RA <id>! -- Add Event
Add event number <id> to the event list. Rdcatchd will respond with
RA <id> +!
RR <id>! -- Remove Event
Remove event number <id> from the event list. Rdcatchd will respond with
RR <id> +!
RU <id>! -- Update Event
Refresh event number <id> in the event list. Rdcatchd will respond with
RU <id> +!
RE <channel>! -- Request Status
<channel> = Channel number
If <channel> is greater than zero, rdcatchd will respond with
RE <channel> <status> <id> <cutname>!
<channel> = Channel number
<status> = 0 - Deck is offline
1 - Deck is Idle
2 - Deck is Ready
3 - Deck is active (playing or recording)
4 - Deck is waiting for GPI
<id> = ID number of current event (from RECORDINGS table)
<cutname> = The cutname of the event (present only for <status>==3).
If <channel> is zero, rdcatchd will respond for every event whose
status is non-idle.
An RE packet will also be sent automatically to all active connections
upon any change of deck status.
RM <state>! -- Enable/Disable Metering
<state> = 0 - Turn metering off
1 - Turn metering on
When metering is active, meter data packets will be periodically sent,
as follows:
RM <deck> <chan> <level>!
<deck> = Deck number
<chan> = Channel, 0 = Left, 1 = Right
<level> = Left audio level, in 1/100 of dbFS
SR <deck>! -- Stop
<deck> = Deck Number
PE <id>! -- Purge Event
Received from the daemon upon completion of an event with the ONE_SHOT
flag set, meaning that the event has been removed from the database.
RO! -- Reload Time Offset
RH! -- Reload Heartbeat Configuration
HB! -- Heartbeat Pulse
MN <deck> <state>! -- Monitor State
Turn the input monitor for deck <deck> on or off.
RX! -- Restart dropbox instances
SC <id> <code> <msg>!
Set exit code of event <id> to <code>.

Binary file not shown.

View File

@ -1,122 +0,0 @@
Rivendell Date/Time Wildcards
A date/time wildcard in Rivendell has the following form:
%<meta-char><fmt-char>
where:
% -- A literal '%'
<meta-char> -- Optional. One of the following meta-characters:
^ -- Convert value indicated by <fmt-char> to all uppercase.
$ -- Convert the initial character of the value indicated by <fmt-char>
to uppercase.
<fmt-char> -- One of the following letters:
a -- Abbreviated weekday name --e.g. 'mon', 'tue'
A -- Full weekday name --e.g. 'monday', 'tuesday'
b -- Abbreviated month name --e.g. 'jan', 'feb'
B -- Full month name --e.g. 'january', 'february'
c -- [unassigned]
C -- Century
d -- Day of the month, zero padded (01 - 31)
D -- Date (mm/dd/yy)
e -- Day of the month, space padded ( 1 - 12)
E -- Day of the month, unpadded (1 - 12)
f -- [unassigned]
F -- Date (yyyy-mm-dd)
g -- Two digit year, as per ISO 8601
G -- Four digit year, as per ISO 8601
h -- Abbreviated month name --e.g. 'jan', 'feb'
H -- Hour, 24 hour, zero padded (00 - 23)
i -- Hour, 12 hour, space padded ( 0 - 12)
I -- Hour, 12 hour, zero padded (00 - 12)
j -- Day of year, zero padded (000 - 355)
J -- Hour, 12 hour, unpadded (1 - 12)
k -- Hour, 24 hour, space padded ( 0 - 23)
K -- [unassigned]
l -- [unassigned]
L -- [unassigned]
m -- Month, zero padded (01 - 12)
M -- Minute, zero padded (00 - 59)
n -- [unassigned]
N -- [unassigned]
o -- [unassigned]
O -- [unassigned]
p -- AM/PM string
P -- [unassigned]
q -- [unassigned]
Q -- [unassigned]
r -- Rivendell Host Name [not FQDN]
R -- Rivendell Host Short Name
s -- Service Name
S -- Seconds, zero padded (00 - 60)
t -- [unassigned]
T -- [unassigned]
u -- Day of the week, numeric, 1=Monday, 7=Sunday
U -- [unassigned]
v -- [unassigned]
V -- Week number, as per ISO 8601
w -- Day of the week, numeric, 0=Sunday,6=Saturday
W -- Week number, as per ISO 8601
x -- [unassigned]
X -- [unassigned]
y -- Two digit year
Y -- Four digit year
z -- [unassigned]
Z -- [unassigned]
% -- A literal '%'.

View File

@ -1,48 +0,0 @@
The following RMLs are currently implemented:
Binary Serial Out [BO]
Clear Serial Trap [SC]
Console Label [CL]
Database Backup [DB]
Execute [EX]
Fire Salvo [FS]
GPI Enable [GE]
GPI Set [GI]
GPO Set [GO]
Insert Next [PX]
Insert Serial Trap [SI]
Load Log [LL]
Load Panel [PE]
Login [LO]
Macro Timer [MT]
Make Next [MN]
Pause Panel [PU]
Play Panel [PP]
Push Button [PB]
Record Start [RS]
Record Stop [RR]
Refresh Log [RL]
Run Shell Command [RN]
Select Widget [PW]
Send Command [CC]
Serial Output [SO]
Set Label [LB]
Set Color Label [LC]
Set Default Now & Next Cart [SN]
Set Mode [PM]
Sleep [SP]
Start [PL]
Start Next [PN]
Stop [PS]
Stop Panel [PT]
Switch Add [SA]
Switch Add With Gain [SG]
Switch Crosspoint Gain [SX]
Switch Level [SL]
Switch Reload [SZ]
Switch Remove [SR]
Switch Take [ST]
UDP Out [UO]
For a full description of Rivendell Macro Langauge commands, see the
file 'rml.sxw'.

View File

@ -1,6 +1,6 @@
## automake.am
## Makefile.am
##
## docs/docbook/automake.am for Rivendell
## docs/manpages/automake.am for Rivendell
##
## (C) Copyright 2015-2017 Fred Gleason <fredg@paravelsystems.com>
##
@ -31,9 +31,7 @@
%.8: %.xml
xsltproc $(DOCBOOK_STYLESHEETS)/manpages/docbook.xsl $<
all-local: cae.html\
cae.pdf\
rdclilogedit.1\
all-local: rdclilogedit.1\
rdconvert.1\
rddbcheck.8\
rdmarkerset.8\
@ -41,10 +39,7 @@ all-local: cae.html\
rdrevert.8\
rdexport.1\
rdimport.1\
rml.html\
rml.pdf\
web_api.html\
web_api.pdf
rmlsend.1
man_MANS = rdclilogedit.1\
rdconvert.1\
@ -53,12 +48,10 @@ man_MANS = rdclilogedit.1\
rdimport.1\
rdmarkerset.8\
rdrender.1\
rdrevert.8
rdrevert.8\
rmlsend.1
EXTRA_DIST = cae.html\
cae.pdf\
cae.xml\
rdclilogedit.1\
EXTRA_DIST = rdclilogedit.1\
rdclilogedit.xml\
rdconvert.1\
rdconvert.xml\
@ -74,12 +67,8 @@ EXTRA_DIST = cae.html\
rdexport.xml\
rdimport.1\
rdimport.xml\
rml.html\
rml.pdf\
rml.xml\
web_api.html\
web_api.pdf\
web_api.xml
rmlsend.1\
rmlsend.xml
CLEANFILES = *~
MAINTAINERCLEANFILES = *~\

101
docs/manpages/rmlsend.xml Normal file
View File

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<refentry id="stdin" xmlns="http://docbook.org/ns/docbook" version="5.0">
<!--
Header
-->
<refmeta>
<refentrytitle>rmlsend</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='source'>November 2017</refmiscinfo>
<refmiscinfo class='manual'>Linux Audio Manual</refmiscinfo>
</refmeta>
<refnamediv>
<refname>rmlsend</refname>
<refpurpose>Send Rivendell Macro Language (RML) commands</refpurpose>
</refnamediv>
<info>
<author>
<personname>
<firstname>Fred</firstname>
<surname>Gleason</surname>
<email>fredg@paravelsystems.com</email>
</personname>
<contrib>Application Author</contrib>
</author>
</info>
<!--
Body
-->
<refsynopsisdiv id='synopsis'>
<cmdsynopsis>
<command>rmlsend</command>
<arg choice='opt'><userinput>--from-file=</userinput><replaceable>filename</replaceable></arg>
<arg choice='opt'><userinput>--to-host=</userinput><replaceable>hostname</replaceable></arg>
<arg choice='opt'><userinput>--to-port=</userinput><replaceable>port</replaceable></arg>
<arg choice='opt'><replaceable>rml</replaceable></arg>
<sbr/>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id='description'><title>Description</title>
<para>
<command>rmlsend</command><manvolnum>1</manvolnum> is a small
utility that can be used to send RML commands to a
local or remote Rivendell host. It can operate in two modes: GUI or
a command line interface (CLI).
</para>
<para>
If started with no arguments,
<command>rmlsend</command><manvolnum>1</manvolnum> will come up in GUI
mode, otherwise it will attempt to perform the specified operation and
then exit.
</para>
</refsect1>
<refsect1 id='options'><title>Options</title>
<variablelist remap='TP'>
<varlistentry>
<term>
<option>--from-file=</option><replaceable>filename</replaceable>
</term>
<listitem>
<para>
Take the command(s) to send from <replaceable>filename</replaceable>,
rather than specifying them on the command-line. If
<userinput>-</userinput> is specified as
<replaceable>filename</replaceable>, the commands will be read
from standard input.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--to-host=</option><replaceable>host</replaceable>
</term>
<listitem>
<para>
Send the specified command(s) to <replaceable>host</replaceable>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--set-port=</option><replaceable>port</replaceable>
</term>
<listitem>
<para>
Send the specified command(s) to UDP port
<replaceable>port</replaceable>. Default value is
<userinput>5858</userinput>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
</refentry>

View File

@ -1,65 +0,0 @@
RIVENDELL METADATA WILDCARDS
These codes are used in Rivendell to indicate when a substitution of the
indicated cart metadata field should be performed --e.g. in the
'--metadata-pattern' switch of rdimport(1) or the RLMResolveNowNext*()
functions in the Rivendell Loadable Module API.
Now Next Field
--------------------------------------------------------------------------
%a %A Artist
%b %B Record Label
%c %C Client
%d %D Date/Time (see below)
%e %E Agency
%f %F [Unassigned]
%g %G The Rivendell group name
%h %H Event length (in milliseconds)
%i %I Cut Description
%j %J Cut Number
%k %K Start [%k]/end [%K] time for rdimport(1) [HH:MM:SS]
%l %L Album
%m %M Composer
%n %N The Rivendell cart number
%o %O Outcue
%p %P Publisher
%q %Q Start [%q]/end [%Q] date for rdimport(1) [YYYY-MM-DD]
%r %R Conductor
%s %S Song ID
%t %T Title
%u %U User Definied
%v %V [Unassigned]
%y %Y Release Year
%z %Z [Unassigned]
\r \r Carriage Return (ASCII 13)
\n \n Linefeed (ASCII 10)
DATE/TIME SPECIFICATION
%d(<dt>) %D(<dt>) The start date/time, formatted according to <dt>. The
following wildcards are available for <dt>:
d - The day as a number without a leading zero (1 to 31).
dd - The day as a number with a leading zero (01 to 31).
ddd - The abbreviated localized day name ('Mon' or 'Sun').
dddd - The long localized day name ('Monday' or 'Sunday').
M - The month as a number without a leading zero
(1 to 12).
MM - The month as a number with a leading zero (01 to 12).
MMM - The abbreviated localized month name ('Jan' or 'Dec').
MMMM - The long localized month name ("January' or
'December').
yy - The last two digits of the year.
yyyy - The full four digits of the year.
h - The hour without a leading zero (0 - 23, or 1 - 12
if using AM/PM display).
hh - The hour with a leading zero (00 - 23, or 01 -12 if
using AM/PM display).
m - The minute without a leading zero (0 - 59).
mm - The minute with a leading zero (00 - 59).
s - The second without a leading zero (00 - 60).
ss - The second with a leading zero (00 - 60).
z - The milliseconds without a leading zero (0 - 999).
zzz - The milliseconds with leading zeros (000 - 999).
AP - Use AM/PM display. The 'AP' will be replaced by
'AM' or 'PM' as appropriate.
ap - Use AM/PM display. The 'ap' will be replaced by
'am' or 'pm' as appropriate.

36
docs/misc/Makefile.am Normal file
View File

@ -0,0 +1,36 @@
## Makefile.am
##
## docs/misc/Makefile.am for Rivendell
##
## (C) Copyright 2017 Fred Gleason <fredg@paravelsystems.com>
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License version 2 as
## published by the Free Software Foundation.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public
## License along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
## Use automake to process this into a Makefile.in
EXTRA_DIST = ALSA.txt\
ando_interface.odt\
colors\
pam_rd.txt\
PODCASTING.txt\
RDMONITOR.txt\
reports.txt\
SAGE_ENDEC.txt\
scheduler_formats.ods
CLEANFILES = *~
MAINTAINERCLEANFILES = *~\
aclocal.m4\
configure\
Makefile.in

240
docs/opsguide/Makefile.am Normal file
View File

@ -0,0 +1,240 @@
## automake.am
##
## docs/opsguide/automake.am for Rivendell
##
## (C) Copyright 2017 Fred Gleason <fredg@paravelsystems.com>
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License version 2 as
## published by the Free Software Foundation.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public
## License along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
## Use automake to process this into a Makefile.in
OPSGUIDE_HTML = appendix.filepath_wildcards.html\
appendix.gpio_switcher_devices.html\
appendix.gplv2.html\
appendix.metadata_wildcards.html\
appendix.rivendell_filter.html\
appendix.wings_filter.html\
chapter.overview.html\
chapter.rdairplay.html\
chapter.rdcatch.html\
chapter.rdlibrary.html\
chapter.rdlogedit.html\
chapter.rdlogin.html\
chapter.rdlogmanager.html\
chapter.rml.html\
chapter.utilities.html\
chapter.voicetracking.html\
index.html\
sect.filepath_wildcards.examples.html\
sect.gpio_switcher_devices.8x2.html\
sect.gpio_switcher_devices.acu1p.html\
sect.gpio_switcher_devices.bt10x1.html\
sect.gpio_switcher_devices.bt16x1.html\
sect.gpio_switcher_devices.bt16x2.html\
sect.gpio_switcher_devices.btacs82.html\
sect.gpio_switcher_devices.btadms4422.html\
sect.gpio_switcher_devices.btgpi16.html\
sect.gpio_switcher_devices.btsentinel4web.html\
sect.gpio_switcher_devices.btsrc16.html\
sect.gpio_switcher_devices.btss124.html\
sect.gpio_switcher_devices.btss164.html\
sect.gpio_switcher_devices.btss41mlr.html\
sect.gpio_switcher_devices.btss42.html\
sect.gpio_switcher_devices.btss44.html\
sect.gpio_switcher_devices.btss82.html\
sect.gpio_switcher_devices.btu41mlrweb.html\
sect.gpio_switcher_devices.harlond.html\
sect.gpio_switcher_devices.kernelgpio.html\
sect.gpio_switcher_devices.livewire_lwrpaudio.html\
sect.gpio_switcher_devices.livewire_lwrpgpio.html\
sect.gpio_switcher_devices.livewire_mcastgpio.html\
sect.gpio_switcher_devices.local_audio.html\
sect.gpio_switcher_devices.local_gpio.html\
sect.gpio_switcher_devices.modbus.html\
sect.gpio_switcher_devices.modemlines.html\
sect.gpio_switcher_devices.quartz1.html\
sect.gpio_switcher_devices.rossnkscp.html\
sect.gpio_switcher_devices.sas16000.html\
sect.gpio_switcher_devices.sas32000.html\
sect.gpio_switcher_devices.sas64000gpi.html\
sect.gpio_switcher_devices.sas64000.html\
sect.gpio_switcher_devices.sasusi.html\
sect.gpio_switcher_devices.starguide3.html\
sect.gpio_switcher_devices.swauthority.html\
sect.gpio_switcher_devices.unity4000.html\
sect.gpio_switcher_devices.vguest.html\
sect.gpio_switcher_devices.wheatnet_lio.html\
sect.gpio_switcher_devices.wheatnet_slio.html\
sect.gplv2.how_to_apply_these_terms_to_your_new_programs.html\
sect.rdairplay.editing_a_log.html\
sect.rdairplay.layout.html\
sect.rdairplay.log_machines.html\
sect.rdcatch.adding_new_events.html\
sect.rdcatch_automating_macro_execution.html\
sect.rdcatch.automating_playouts.html\
sect.rdcatch.automating_recordings.html\
sect.rdcatch.automating_switcher_operations.html\
sect.rdcatch.automating_uploads_downloads.html\
sect.rdcatch.the_rdcatch_main_window.html\
sect.rdlibrary.alternative_methods_of_audio_ingestion.html\
sect.rdlibrary.generating_library_reports.html\
sect.rdlibrary.library_maintenance.html\
sect.rdlibrary.macro_carts.html\
sect.rdlibrary.navigating_the_audio_library.html\
sect.rdlogedit.auditioning_audio.html\
sect.rdlogedit.editing_log_event_parameters.html\
sect.rdlogedit.event_transitions.html\
sect.rdlogedit.generating_log_reports.html\
sect.rdlogedit.time_and_time_types.html\
sect.rdlogmanager.clocks.html\
sect.rdlogmanager.events.html\
sect.rdlogmanager.generating_logs.html\
sect.rdlogmanager.generating_reports.html\
sect.rdlogmanager.grids.html\
sect.rml.binary_data.html\
sect.rml.command_delivery.html\
sect.rml.command_reply.html\
sect.rml.commands.html\
sect.rml.protocol.html\
sect.rml.specifying_color.html\
sect.utilities.mlsend_1_.html\
sect.utilities.rdconvert.html\
sect.utilities.rddbcheck.html\
sect.utilities.rdexport.html\
sect.utilities.rdimport.html\
sect.utilities.rdmarkerset.html\
sect.utilities.rdrevert.html\
sect.voicetracking.using_the_voicetracker_dialog.html
OPSGUIDE_IMAGES = rdairplay.audio_meter.png\
rdairplay.button_log_widget.png\
rdairplay.delete_from.png\
rdairplay.edit_button_dialog.png\
rdairplay.edit_buttons.png\
rdairplay.edit_event_dialog.png\
rdairplay.full_log_widget.png\
rdairplay.label_widget.png\
rdairplay.mode_widget.png\
rdairplay.next_stop_widget.png\
rdairplay.piewedge_widget.png\
rdairplay.postpoint_early_widget.png\
rdairplay.postpoint_late_widget.png\
rdairplay.postpoint_ontime_widget.png\
rdairplay.rdairplay_screenshot.png\
rdairplay.select_a_log_dialog.png\
rdairplay.soundpanel_widget.png\
rdairplay.wallclock_widget.png\
rdairplay.where_to.png\
rdcatch.add_event_dialog.png\
rdcatch.edit_cart_event_dialog.png\
rdcatch.edit_download_dialog.png\
rdcatch.edit_playout_dialog.png\
rdcatch.edit_recording_dialog.png\
rdcatch.edit_switcher_event_dialog.png\
rdcatch.edit_upload_dialog.png\
rdcatch.rdcatch_screenshot.png\
rdlibrary.cd_ripper_dialog.png\
rdlibrary.edit_cart_dialog.png\
rdlibrary.edit_cut_info_dialog.png\
rdlibrary.edit_macro_cart_dialog.png\
rdlibrary.edit_marker_dialog.png\
rdlibrary.import_export_dialog.png\
rdlibrary.rdlibrary_screenshot.png\
rdlibrary.rip_disk_dialog.png\
rdlibrary.set_cart_cut_dialog.png\
rdlogedit.edit_log_chain_dialog.png\
rdlogedit.edit_log_dialog.png\
rdlogedit.edit_log_entry_dialog.png\
rdlogedit.edit_log_marker_dialog.png\
rdlogedit.edit_voice_track_marker_dialog.png\
rdlogedit.rdlogedit_screenshot.png\
rdlogedit.select_cart_dialog.png\
rdlogin.rdlogin_screenshot.png\
rdlogmanager.edit_clock_dialog.png\
rdlogmanager.edit_event_assignment_dialog.png\
rdlogmanager.edit_grid_dialog.png\
rdlogmanager.editing_event.png\
rdlogmanager.generate_log_dialog.png\
rdlogmanager.generate_log_dialog_fully_merged.png\
rdlogmanager.generate_log_dialog_music_merge_required.png\
rdlogmanager.generate_log_dialog_traffic_merge_required.png\
rdlogmanager.log_clock_list.png\
rdlogmanager.log_clocks.png\
rdlogmanager.log_events_dialog.png\
rdlogmanager.log_grids_dialog.png\
rdlogmanager.rdlogmanager_screenshot.png\
rdlogmanager.rivendell_services_dialog.png\
rdlogmanager.select_date_dialog.png\
rdlogmanager.select_report_dates_dialog.png\
rdlogmanager.service_association_dialog.png\
voicetracking.voice_tracker_dialog.png\
voicetracking.voice_tracker_dialog_recording.png\
voicetracking.voice_tracker_dialog_track_1_playing.png\
voicetracking.voice_tracker_dialog_track_2_playing.png\
voicetracking.voice_tracker_dialog_track_completed.png\
voicetracking.voice_tracker_dialog_track_selected.png
OPSGUIDE_DEPS = $(OPSGUIDE_IMAGES) \
filepath_wildcards.xml\
gpio_switcher_devices.xml\
gplv2.xml\
opsguide.xml\
overview.xml\
metadata_wildcards.xml\
rdairplay.xml\
rdcatch.xml\
rdlibrary.xml\
rdlogedit.xml\
rdlogin.xml\
rdlogmanager.xml\
rivendell_filter.xml\
wings_filter.xml\
rml.xml\
utilities.rmlsend_screenshot.png\
utilities.xml\
voicetracking.xml
%.html: $(OPSGUIDE_DEPS)\
../../PACKAGE_VERSION
xsltproc ../stylesheets/book-xhtml.xml opsguide.xml
opsguide.pdf: $(OPSGUIDE_DEPS) ../../PACKAGE_VERSION\
../stylesheets/book-fo.xml\
../stylesheets/book-fo-titlepages.xsl
xsltproc ../stylesheets/book-fo.xml opsguide.xml | fop - -pdf opsguide.pdf
all-local: $(OPSGUIDE_HTML) \
$(OPSGUIDE_IMAGES) \
opsguide.pdf
EXTRA_DIST = $(OPSGUIDE_DEPS)\
$(OPSGUIDE_HTML)\
frontspiece.xml\
frontspiece.xml.in\
opsguide.pdf
CLEANFILES = *~\
*.html\
*.pdf
MAINTAINERCLEANFILES = *~\
*.1\
*.8\
*.html\
*.pdf\
aclocal.m4\
configure\
frontspiece.xml\
Makefile.in

View File

@ -0,0 +1,587 @@
<appendix xmlns="http://docbook.org/ns/docbook" xml:id="appendix.filepath_wildcards">
<title>Filepath Wildcards</title>
<para>
Filepath wildcards can be used in most places in RDAdmin where a filename
is required.
</para>
<sect1 xml:id="sect.filepath_wildcards.definition">
<title>Definition</title>
<para>
A date/time wildcard in Rivendell has the following form:
</para>
<para>
<userinput>%<replaceable>&lt;meta-char&gt;</replaceable><replaceable>&lt;fmt-char&gt;</replaceable></userinput>
</para>
<para>
where:
</para>
<variablelist>
<varlistentry>
<term><userinput>%</userinput></term>
<listitem>
<para>
A literal percent.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput><replaceable>&lt;meta-char&gt;</replaceable></userinput></term>
<listitem>
<para>
Optional. One of the following meta-characters:
</para>
<variablelist>
<varlistentry>
<term><userinput>^</userinput></term>
<listitem>
<para>
Convert value indicated by <userinput><replaceable>&lt;fmt-char&gt;</replaceable></userinput>
to all uppercase.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>$</userinput></term>
<listitem>
<para>
Convert the initial character of the value indicated by
<userinput><replaceable>&lt;fmt-char&gt;</replaceable></userinput> to uppercase.
</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput><replaceable>&lt;fmt-char&gt;</replaceable></userinput></term>
<listitem>
<para>
One of the following letters:
</para>
<variablelist>
<varlistentry>
<term><userinput>a</userinput></term>
<listitem>
<para>
Abbreviated weekday name --e.g. 'mon', 'tue'
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>A</userinput></term>
<listitem>
<para>
Full weekday name --e.g. 'monday', 'tuesday'
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>b</userinput></term>
<listitem>
<para>
Abbreviated month name --e.g. 'jan', 'feb'
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>B</userinput></term>
<listitem>
<para>
Full month name --e.g. 'january', 'february'
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>c</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>C</userinput></term>
<listitem>
<para>
Century
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>d</userinput></term>
<listitem>
<para>
Day of the month, zero padded (01 - 31)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>D</userinput></term>
<listitem>
<para>
Date (mm/dd/yy)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>e</userinput></term>
<listitem>
<para>
Day of the month, space padded ( 1 - 12)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>E</userinput></term>
<listitem>
<para>
Day of the month, unpadded (1 - 12)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>f</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>F</userinput></term>
<listitem>
<para>
Date (yyyy-mm-dd)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>g</userinput></term>
<listitem>
<para>
Two digit year, as per ISO 8601
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>G</userinput></term>
<listitem>
<para>
Four digit year, as per ISO 8601
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>h</userinput></term>
<listitem>
<para>
Abbreviated month name --e.g. 'jan', 'feb'
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>H</userinput></term>
<listitem>
<para>
Hour, 24 hour, zero padded (00 - 23)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>i</userinput></term>
<listitem>
<para>
Hour, 12 hour, space padded ( 0 - 12)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>I</userinput></term>
<listitem>
<para>
Hour, 12 hour, zero padded (00 - 12)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>j</userinput></term>
<listitem>
<para>
Day of year, zero padded (000 - 355)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>J</userinput></term>
<listitem>
<para>
Hour, 12 hour, unpadded (1 - 12)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>k</userinput></term>
<listitem>
<para>
Hour, 24 hour, space padded ( 0 - 23)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>K</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>l</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>L</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>m</userinput></term>
<listitem>
<para>
Month, zero padded (01 - 12)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>M</userinput></term>
<listitem>
<para>
Minute, zero padded (00 - 59)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>n</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>N</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>o</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>O</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>p</userinput></term>
<listitem>
<para>
AM/PM string
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>P</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>q</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>Q</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>r</userinput></term>
<listitem>
<para>
Rivendell Host Name [not FQDN]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>R</userinput></term>
<listitem>
<para>
Rivendell Host Short Name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>s</userinput></term>
<listitem>
<para>
Service Name
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>S</userinput></term>
<listitem>
<para>
Seconds, zero padded (00 - 60)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>t</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>T</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>u</userinput></term>
<listitem>
<para>
Day of the week, numeric, 1=Monday, 7=Sunday
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>U</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>v</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>V</userinput></term>
<listitem>
<para>
Week number, as per ISO 8601
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>w</userinput></term>
<listitem>
<para>
Day of the week, numeric, 0=Sunday,6=Saturday
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>W</userinput></term>
<listitem>
<para>
Week number, as per ISO 8601
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>x</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>X</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>y</userinput></term>
<listitem>
<para>
Two digit year
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>Y</userinput></term>
<listitem>
<para>
Four digit year
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>z</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>Z</userinput></term>
<listitem>
<para>
[unassigned]
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>%</userinput></term>
<listitem>
<para>
A literal '%'
</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 xml:id="sect.filepath_wildcards.examples">
<title>Examples</title>
<para>
For the date time of February 3rd, 2017 at 2:34:26 PM:
</para>
<variablelist>
<varlistentry>
<term><userinput>%b</userinput></term>
<listitem>
<para>
<code>feb</code>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>%B</userinput></term>
<listitem>
<para>
<code>february</code>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>%^B</userinput></term>
<listitem>
<para>
<code>FEBRUARY</code>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>%$B</userinput></term>
<listitem>
<para>
<code>February</code>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>%A</userinput></term>
<listitem>
<para>
<code>friday</code>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>%a</userinput></term>
<listitem>
<para>
<code>fri</code>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>%u</userinput></term>
<listitem>
<para>
<code>5</code>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>%D</userinput></term>
<listitem>
<para>
<code>02/03/17</code>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>%j</userinput></term>
<listitem>
<para>
<code>034</code>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>%m/%d/%Y - %H:%M:%S</userinput></term>
<listitem>
<para>
<code>02/03/2017 - 14:34:26</code>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><userinput>%m/%d/%Y - %I:%M:%S %p</userinput></term>
<listitem>
<para>
<code>02/03/2017 - 02:34:26 PM</code>
</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
</appendix>

View File

@ -0,0 +1,18 @@
<info xmlns="http://docbook.org/ns/docbook">
<title>Rivendell Radio Automation System</title>
<subtitle>Operations Guide</subtitle>
<author>
<personname>
<firstname>Fred</firstname><surname>Gleason</surname>
</personname>
</author>
<edition>
@VERSION@
</edition>
<copyright><year>-2003-2017</year><holder>Fred Gleason</holder></copyright>
<mediaobject>
<imageobject>
<imagedata fileref="../../icons/rivendell-512x512.png" scale="80"/>
</imageobject>
</mediaobject>
</info>

File diff suppressed because it is too large Load Diff

483
docs/opsguide/gplv2.xml Normal file
View File

@ -0,0 +1,483 @@
<appendix xmlns="http://docbook.org/ns/docbook" xml:id="appendix.gplv2">
<title>The GNU General Public License, Version Two</title>
<sect1 xml:id="sect.gplv2.the_gnu_general_public_license__version_two">
<title>GNU GENERAL PUBLIC LICENSE</title>
<subtitle>Version 2, June 1991</subtitle>
<para>
Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA.
</para>
<para>
Everyone is permitted to copy and distribute verbatim copies of
this license document, but changing it is not allowed.
</para>
<sect2 xml:id="sect.gplv2.preamble">
<title>Preamble</title>
<para>
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit
to using it. (Some other Free Software Foundation software is
covered by the GNU Library General Public License instead.)
You can apply it to your programs, too.
</para>
<para>
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and
charge for this service if you wish), that you receive source code
or can get it if you want it, that you can change the software or
use pieces of it in new free programs; and that you know you can do
these things.
</para>
<para>
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the
rights. These restrictions translate to certain responsibilities
for you if you distribute copies of the software, or if you modify
it.
</para>
<para>
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights
that you have. You must make sure that they, too, receive or can
get the source code. And you must show them these terms so they
know their rights.
</para>
<para>
We protect your rights with two steps: (1) copyright the software,
and (2) offer you this license which gives you legal permission to
copy, distribute and/or modify the software.
</para>
<para>
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed
on, we want its recipients to know that what they have is not the
original, so that any problems introduced by others will not reflect
on the original authors' reputations.
</para>
<para>
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making
the program proprietary. To prevent this, we have made it clear
that any patent must be licensed for everyone's free use or not
licensed at all.
</para>
<para>
The precise terms and conditions for copying, distribution and
modification follow.
</para>
</sect2>
<sect2 xml:id="sect.gplv2.gnu_general_public_license">
<title>GNU GENERAL PUBLIC LICENSE</title>
<subtitle>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
MODIFICATION</subtitle>
<orderedlist startingnumber="0" numeration="arabic">
<listitem>
<para>
This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be
distributed under the terms of this General Public License. The
&quot;Program&quot;, below, refers to any such program or work,
and a &quot;work based on the Program&quot; means either the
Program or any derivative work under copyright law: that is to
say, a work containing the Program or a portion of it, either
verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without
limitation in the term &quot;modification&quot;.) Each licensee
is addressed as &quot;you&quot;.
</para>
<para>
Activities other than copying, distribution and modification are
not covered by this License; they are outside its scope. The act
of running the Program is not restricted, and the output from
the Program is covered only if its contents constitute a work
based on the Program (independent of having been made by running
the Program). Whether that is true depends on what the Program
does.
</para>
</listitem>
<listitem>
<para>
You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep
intact all the notices that refer to this License and to the
absence of any warranty; and give any other recipients of the
Program a copy of this License along with the Program.
</para>
<para>
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange
for a fee.
</para>
</listitem>
<listitem>
<para>
You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section
1 above, provided that you also meet all of these conditions:
</para>
<orderedlist startingnumber="1" numeration="loweralpha">
<listitem>
<para>
You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
</para>
</listitem>
<listitem>
<para>
You must cause any work that you distribute or publish, that
in whole or in part contains or is derived from the Program
or any part thereof, to be licensed as a whole at no charge
to all third parties under the terms of this License.
</para>
</listitem>
<listitem>
<para>
If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display
an announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you
provide a warranty) and that users may redistribute the
program under these conditions, and telling the user how to
view a copy of this License. (Exception: if the Program
itself is interactive but does not normally print such an
announcement, your work based on the Program is not required
to print an announcement.)
</para>
<para>
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the
Program, and can be reasonably considered independent and
separate works in themselves, then this License, and its
terms, do not apply to those sections when you distribute
them as separate works. But when you distribute the same
sections as part of a whole which is a work based on the
Program, the distribution of the whole must be on the terms
of this License, whose permissions for other licensees extend
to the entire whole, and thus to each and every part
regardless of who wrote it.
</para>
<para>
Thus, it is not the intent of this section to claim rights
or contest your rights to work written entirely by you;
rather, the intent is to exercise the right to control the
distribution of derivative or collective works based on the
Program.
</para>
<para>
In addition, mere aggregation of another work not based on
the Program with the Program (or with a work based on the
Program) on a volume of a storage or distribution medium
does not bring the other work under the scope of this License.
</para>
</listitem>
</orderedlist>
</listitem>
<listitem>
<para>
You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the
terms of Sections 1 and 2 above provided that you also do one
of the following:
</para>
<orderedlist startingnumber="1" numeration="loweralpha">
<listitem>
<para>
Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of
Sections 1 and 2 above on a medium customarily used for
software interchange; or,
</para>
</listitem>
<listitem>
<para>
Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange; or,
</para>
</listitem>
<listitem>
<para>
Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
</para>
</listitem>
</orderedlist>
<para>
The source code for a work means the preferred form of the work
for making modifications to it. For an executable work, complete
source code means all the source code for all modules it
contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable.
However, as a special exception, the source code distributed
need not include anything that is normally distributed (in
either source or binary form) with the major components
(compiler, kernel, and so on) of the operating system on which
the executable runs, unless that component itself accompanies
the executable.
</para>
<para>
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
</para>
</listitem>
<listitem>
<para>
You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program
is void, and will automatically terminate your rights under this
License. However, parties who have received copies, or rights,
from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
</para>
</listitem>
<listitem>
<para>
You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to
modify or distribute the Program or its derivative works. These
actions are prohibited by law if you do not accept this License.
Therefore, by modifying or distributing the Program (or any work
based on the Program), you indicate your acceptance of this
License to do so, and all its terms and conditions for copying,
distributing or modifying the Program or works based on it.
</para>
</listitem>
<listitem>
<para>
Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from
the original licensor to copy, distribute or modify the Program
subject to these terms and conditions. You may not impose any
further restrictions on the recipients' exercise of the rights
granted herein. You are not responsible for enforcing compliance
by third parties to this License.
</para>
</listitem>
<listitem>
<para>
If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent
issues), conditions are imposed on you (whether by court order,
agreement or otherwise) that contradict the conditions of this
License, they do not excuse you from the conditions of this
License. If you cannot distribute so as to satisfy
simultaneously your obligations under this License and any other
pertinent obligations, then as a consequence you may not
distribute the Program at all. For example, if a patent license
would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you,
then the only way you could satisfy both it and this License
would be to refrain entirely from distribution of the Program.
</para>
<para>
If any portion of this section is held invalid or unenforceable
under any particular circumstance, the balance of the section is
intended to apply and the section as a whole is intended to
apply in other circumstances.
</para>
<para>
It is not the purpose of this section to induce you to infringe
any patents or other property right claims or to contest
validity of any such claims; this section has the sole purpose
of protecting the integrity of the free software distribution
system, which is implemented by public license practices. Many
people have made generous contributions to the wide range of
software distributed through that system in reliance on
consistent application of that system; it is up to the
author/donor to decide if he or she is willing to distribute
software through any other system and a licensee cannot impose
that choice.
</para>
<para>
This section is intended to make thoroughly clear what is
believed to be a consequence of the rest of this License.
</para>
</listitem>
<listitem>
<para>
If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces,
the original copyright holder who places the Program under this
License may add an explicit geographical distribution limitation
excluding those countries, so that distribution is permitted only
in or among countries not thus excluded. In such case, this
License incorporates the limitation as if written in the body of
this License.
</para>
</listitem>
<listitem>
<para>
The Free Software Foundation may publish revised and/or new
versions of the General Public License from time to time.
Such new versions will be similar in spirit to the present
version, but may differ in detail to address new problems or
concerns.
</para>
<para>
Each version is given a distinguishing version number. If the
Program specifies a version number of this License which applies
to it and "any later version", you have the option of following
the terms and conditions either of that version or of any later
version published by the Free Software Foundation. If the
Program does not specify a version number of this License, you
may choose any version ever published by the Free Software
Foundation.
</para>
</listitem>
<listitem>
<para>
If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to
the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free
status of all derivatives of our free software and of promoting
the sharing and reuse of software generally.
</para>
</listitem>
</orderedlist>
</sect2>
<sect2 xml:id="sect.gplv2.no_warranty">
<title>NO WARRANTY</title>
<orderedlist startingnumber="11" numeration="arabic">
<listitem>
<para>
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM &quot;AS IS&quot;
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE
RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.
SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
NECESSARY SERVICING, REPAIR OR CORRECTION.
</para>
</listitem>
<listitem>
<para>
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS
OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH
ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
</para>
</listitem>
</orderedlist>
</sect2>
<sect2 xml:id="sect.gplv2.end_of_terms_and_conditions">
<title>END OF TERMS AND CONDITIONS</title>
</sect2>
</sect1>
<sect1 xml:id="sect.gplv2.how_to_apply_these_terms_to_your_new_programs">
<title>How to Apply These Terms to Your New Programs</title>
<para>
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make
it free software which everyone can redistribute and change under
these terms.
</para>
<para>
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
</para>
<sect2 xml:id="sect.gplv2.example">
<para>
<literallayout>
&lt;one line to give the program's name and a brief idea of what it does.&gt;
Copyright (C) &lt;year&gt; &lt;name of author&gt;
</literallayout>
</para>
<para>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
</para>
<para>
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
</para>
<para>
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
USA
</para>
</sect2>
<para>
Also add information on how to contact you by electronic and paper mail.
</para>
<para>
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
</para>
<para>
<literallayout>
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
</literallayout>
</para>
<para>
The hypothetical commands `show w' and `show c' should show the
appropriate parts of the General Public License. Of course, the
commands you use may be called something other than `show w' and
`show c'; they could even be mouse-clicks or menu items --whatever
suits your program.
</para>
<para>
You should also get your employer (if you work as a programmer) or
your school, if any, to sign a "copyright disclaimer" for the program,
if necessary. Here is a sample; alter the names:
</para>
<sect2 xml:id="sect.gplv2.example2">
<para>
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
</para>
<literallayout>
&lt;signature of Ty Coon&gt;, 1 April 1989
Ty Coon, President of Vice
</literallayout>
</sect2>
<para>
This General Public License does not permit incorporating your
program into proprietary programs. If your program is a subroutine
library, you may consider it more useful to permit linking proprietary
applications with the library. If this is what you want to do, use
the GNU Library General Public License instead of this License.
</para>
</sect1>
</appendix>

View File

@ -0,0 +1,80 @@
<appendix xmlns="http://docbook.org/ns/docbook" xml:id="appendix.metadata_wildcards">
<title>Metadata Wildcards</title>
<para>
These codes are used in Rivendell to indicate when a substitution of the
indicated cart metadata field should be performed --e.g. in the
'--metadata-pattern' switch of rdimport(1) or the RLMResolveNowNext*()
functions in the Rivendell Loadable Module API.
</para>
<table xml:id="table.metadata_wildcards" frame="all" pgwide="0">
<title>Metadata Wildcards</title>
<tgroup cols="3" align="left" colsep="1" rowsep="1">
<colspec colname="Now" colwidth="2.0*"/>
<colspec colname="Next" colwidth="2.0*"/>
<colspec colname="Field" colwidth="10.0*"/>
<tbody>
<row><entry>Now</entry><entry>Next</entry><entry>Field</entry></row>
<row><entry><userinput>%a</userinput></entry><entry><userinput>%A</userinput></entry><entry>Artist</entry></row>
<row><entry><userinput>%b</userinput></entry><entry><userinput>%B</userinput></entry><entry>Record Label</entry></row>
<row><entry><userinput>%c</userinput></entry><entry><userinput>%C</userinput></entry><entry>Client</entry></row>
<row><entry><userinput>%d(<replaceable>&lt;dt&gt;</replaceable>)</userinput></entry><entry><userinput>%D(<replaceable>&lt;dt&gt;</replaceable>)</userinput></entry><entry>Date/Time (see the <link linkend="table.metadata_wildcards.datetimes">Metadata DateTime Specification</link> for values of <userinput><replaceable>&lt;dt&gt;</replaceable></userinput>)</entry></row>
<row><entry><userinput>%e</userinput></entry><entry><userinput>%E</userinput></entry><entry>Agency</entry></row>
<row><entry><userinput>%f</userinput></entry><entry><userinput>%F</userinput></entry><entry>[unassigned]</entry></row>
<row><entry><userinput>%g</userinput></entry><entry><userinput>%G</userinput></entry><entry>Rivendell group name</entry></row>
<row><entry><userinput>%h</userinput></entry><entry><userinput>%H</userinput></entry><entry>Event length (milliseconds)</entry></row>
<row><entry><userinput>%i</userinput></entry><entry><userinput>%I</userinput></entry><entry>Cut Description</entry></row>
<row><entry><userinput>%j</userinput></entry><entry><userinput>%J</userinput></entry><entry>Cut Number</entry></row>
<row><entry><userinput>%k</userinput></entry><entry><userinput>%K</userinput></entry><entry>Start [<userinput>%k</userinput>]/end [<userinput>%K</userinput>] time for <command>rdimport</command><manvolnum>1</manvolnum> [HH:MM:SS]</entry></row>
<row><entry><userinput>%l</userinput></entry><entry><userinput>%L</userinput></entry><entry>Album</entry></row>
<row><entry><userinput>%m</userinput></entry><entry><userinput>%M</userinput></entry><entry>Composer</entry></row>
<row><entry><userinput>%n</userinput></entry><entry><userinput>%N</userinput></entry><entry>Rivendell cart number</entry></row>
<row><entry><userinput>%o</userinput></entry><entry><userinput>%O</userinput></entry><entry>Outcue</entry></row>
<row><entry><userinput>%p</userinput></entry><entry><userinput>%P</userinput></entry><entry>Publisher</entry></row>
<row><entry><userinput>%q</userinput></entry><entry><userinput>%Q</userinput></entry><entry>Start [<userinput>%q</userinput>]/end [<userinput>%Q</userinput>] date for <command>rdimport</command><manvolnum>1</manvolnum> [YYYY-MM-DD]</entry></row>
<row><entry><userinput>%r</userinput></entry><entry><userinput>%R</userinput></entry><entry>Conductor</entry></row>
<row><entry><userinput>%s</userinput></entry><entry><userinput>%S</userinput></entry><entry>Song ID</entry></row>
<row><entry><userinput>%t</userinput></entry><entry><userinput>%T</userinput></entry><entry>Title</entry></row>
<row><entry><userinput>%u</userinput></entry><entry><userinput>%U</userinput></entry><entry>User Definied</entry></row>
<row><entry><userinput>%v</userinput></entry><entry><userinput>%V</userinput></entry><entry>[Unassigned]</entry></row>
<row><entry><userinput>%w</userinput></entry><entry><userinput>%W</userinput></entry><entry>[Unassigned]</entry></row>
<row><entry><userinput>%x</userinput></entry><entry><userinput>%X</userinput></entry><entry>[Unassigned]</entry></row>
<row><entry><userinput>%y</userinput></entry><entry><userinput>%Y</userinput></entry><entry>Release Year</entry></row>
<row><entry><userinput>%z</userinput></entry><entry><userinput>%Z</userinput></entry><entry>[Unassigned]</entry></row>
<row><entry><userinput>\r</userinput></entry><entry><userinput>\r</userinput></entry><entry>Literal Carriage Return (ASCII 13)</entry></row>
<row><entry><userinput>\n</userinput></entry><entry><userinput>\n</userinput></entry><entry>Literal Linefeed (ASCII 10)</entry></row>
</tbody>
</tgroup>
</table>
<table xml:id="table.metadata_wildcards.datetimes" frame="all" pgwide="0">
<title>Metadata DateTime Specification</title>
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colname="Wildcard" colwidth="2.0*"/>
<colspec colname="Meaning" colwidth="10.0*"/>
<tbody>
<row><entry>Wildcard</entry><entry>Meaning</entry></row>
<row><entry><userinput>d</userinput></entry><entry>The day as a number without a leading zero (1 to 31)</entry></row>
<row><entry><userinput>dd</userinput></entry><entry>The day as a number with a leading zero (01 to 31)</entry></row>
<row><entry><userinput>ddd</userinput></entry><entry>The abbreviated localized day name ('Mon' or 'Sun')</entry></row>
<row><entry><userinput>dddd</userinput></entry><entry>The long localized day name ('Monday' or 'Sunday')</entry></row>
<row><entry><userinput>M</userinput></entry><entry>The month as a number without a leading zero (1 to 12)</entry></row>
<row><entry><userinput>MM</userinput></entry><entry>The month as a number with a leading zero (01 to 12)</entry></row>
<row><entry><userinput>MMM</userinput></entry><entry>The abbreviated localized month name ('Jan' or 'Dec')</entry></row>
<row><entry><userinput>MMMM</userinput></entry><entry> The long localized month name ('January' or 'December')</entry></row>
<row><entry><userinput>yy</userinput></entry><entry>The last two digits of the year</entry></row>
<row><entry><userinput>yyyy</userinput></entry><entry>The full four digits of the year</entry></row>
<row><entry><userinput>h</userinput></entry><entry>The hour without a leading zero (0 - 23, or 1 - 12 if using AM/PM display)</entry></row>
<row><entry><userinput>hh</userinput></entry><entry>The hour with a leading zero (00 - 23, or 01 -12 if using AM/PM display)</entry></row>
<row><entry><userinput>m</userinput></entry><entry>The minute without a leading zero (0 - 59)</entry></row>
<row><entry><userinput>mm</userinput></entry><entry>The minute with a leading zero (00 - 59)</entry></row>
<row><entry><userinput>s</userinput></entry><entry>The second without a leading zero (00 - 60)</entry></row>
<row><entry><userinput>ss</userinput></entry><entry>The second with a leading zero (00 - 60)</entry></row>
<row><entry><userinput>z</userinput></entry><entry>The milliseconds without a leading zero (0 - 999)</entry></row>
<row><entry><userinput>zzz</userinput></entry><entry>The milliseconds with leading zeros (000 - 999)</entry></row>
<row><entry><userinput>AP</userinput></entry><entry>Use AM/PM display. The 'AP' will be replaced by 'AM' or 'PM' as appropriate</entry></row>
<row><entry><userinput>ap</userinput></entry><entry>Use AM/PM display. The 'ap' will be replaced by 'am' or 'pm' as appropriate</entry></row>
</tbody>
</tgroup>
</table>
</appendix>

View File

@ -0,0 +1,47 @@
<?xml version='1.0'?>
<!DOCTYPE book [
<!ENTITY frontspiece SYSTEM "frontspiece.xml">
<!ENTITY overview SYSTEM "overview.xml">
<!ENTITY rdlogin SYSTEM "rdlogin.xml">
<!ENTITY rdlibrary SYSTEM "rdlibrary.xml">
<!ENTITY rdcatch SYSTEM "rdcatch.xml">
<!ENTITY rdlogedit SYSTEM "rdlogedit.xml">
<!ENTITY rdairplay SYSTEM "rdairplay.xml">
<!ENTITY rdlogmanager SYSTEM "rdlogmanager.xml">
<!ENTITY voicetracking SYSTEM "voicetracking.xml">
<!ENTITY rml SYSTEM "rml.xml">
<!ENTITY utilities SYSTEM "utilities.xml">
<!ENTITY gplv2 SYSTEM "gplv2.xml">
<!ENTITY gpio_switcher_devices SYSTEM "gpio_switcher_devices.xml">
<!ENTITY filepath_wildcards SYSTEM "filepath_wildcards.xml">
<!ENTITY metadata_wildcards SYSTEM "metadata_wildcards.xml">
<!ENTITY rivendell_filter SYSTEM "rivendell_filter.xml">
<!ENTITY wings_filter SYSTEM "wings_filter.xml">
]>
<book xmlns="http://docbook.org/ns/docbook" version="5.0">
&frontspiece;
&overview;
&rdlogin;
&rdlibrary;
&rdcatch;
&rdlogedit;
&rdairplay;
&rdlogmanager;
&voicetracking;
&rml;
&utilities;
&gplv2;
&gpio_switcher_devices;
&filepath_wildcards;
&metadata_wildcards;
&rivendell_filter;
&wings_filter;
</book>
<!--
<structure xml:id="manual">
<output renderas="book"/>
</structure>
-->

327
docs/opsguide/overview.xml Normal file
View File

@ -0,0 +1,327 @@
<chapter xmlns="http://docbook.org/ns/docbook" xml:id="chapter.overview">
<title>System Overview</title>
<!--
<mediaobject>
<imageobject>
<imagedata fileref="manual-outputdefault.png" scale="30"/>
</imageobject>
</mediaobject>
-->
<sect1 xml:id="sect.overview.introducting_rivendell">
<title>Introducing Rivendell</title>
<para>
Rivendell is a digital audio content management and delivery system
that is targeted for use in professional radio broadcast environments.
It includes robust tools for the acquisition, organization, management
and play out of audio material from and to a diverse array of sources
and destinations. Support for a wide variety of external third party
hardware devices and software packages commonly used in the radio
industry is featured, including interfaces for:
</para>
<para>
<itemizedlist>
<listitem>Audio Routing Switchers</listitem>
<listitem>Satellite Downlink Receivers</listitem>
<listitem>Audio Mixing Consoles</listitem>
<listitem>Commercial Traffic and Music Scheduling Systems</listitem>
</itemizedlist>
</para>
<para>
Rivendell is made available under the terms of the
<link linkend="appendix.gplv2">GNU General Public License,
version 2</link>.
As such, it comes with <emphasis>absolutely no warranty</emphasis>,
not even the implied
warranties of merchantability or fitness for a particular purpose.
See the full text of the GPLv2 for details.
</para>
<para>
Rivendell has been designed and developed from the ground up to run
on the popular and highly stable <trademark>GNU/Linux</trademark>
operating system.
Selected tools (mostly having to do with log generation) have also
been ported to run in the Microsoft <trademark>Windows</trademark>
environment as well.
Full source code as well as binary installation packages for Windows
and select Linux distributions are available on line.
</para>
<para>
Rivendell has been designed to be able to operate in a wide variety
of roles, ranging from single, self-contained workstations to large,
multi-station clusters consisting of multiple workstations and
centralized servers. Also included are redundancy and hot-standby
capabilities to allow for reliable operation even in the presence of
hardware faults.
</para>
<para>
Rivendell is implemented as a set of interactive tools or 'modules'
that collectively provide the complete functionality of the system.
Briefly, these modules and their functions are:
</para>
<para>
<variablelist>
<varlistentry>
<term>RDAdmin</term>
<listitem>
System wide configuration
</listitem>
</varlistentry>
<varlistentry>
<term><link linkend="chapter.rdlibrary">RDLibrary</link></term>
<listitem>
Library content management
</listitem>
</varlistentry>
<varlistentry>
<term><link linkend="chapter.rdcatch">RDCatch</link></term>
<listitem>
Automatic event scheduler
</listitem>
</varlistentry>
<varlistentry>
<term><link linkend="chapter.rdairplay">RDAirPlay</link></term>
<listitem>
On-air play out application
</listitem>
</varlistentry>
<varlistentry>
<term><link linkend="chapter.rdlogedit">RDLogEdit</link></term>
<listitem>
Log editing and voicetracking tool
</listitem>
</varlistentry>
<varlistentry>
<term><link linkend="chapter.rdlogmanager">RDLogManager</link></term>
<listitem>
Automated log generation and interface utility
</listitem>
</varlistentry>
<varlistentry>
<term><link linkend="chapter.rdlogin">RDLogin</link></term>
<listitem>
Set the current user on a Rivendell host
</listitem>
</varlistentry>
<varlistentry>
<term>RDCartSlots</term>
<listitem>
Emulate a traditional broadcast cart machine
</listitem>
</varlistentry>
<varlistentry>
<term>RDPanel</term>
<listitem>
Large &quot;cart wall&quot; application
</listitem>
</varlistentry>
<varlistentry>
<term>RDCastManager</term>
<listitem>
Podcast feed manager
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
The operation of each of these modules is explained in detail in the
chapters that follow. However, we first need to cover some basic
concepts common to all Rivendell modules.
</para>
<sect2 xml:id="sect.overview.the_rivendell_object_paradigm">
<title>The Rivendell Object Paradigm</title>
<para>
All Rivendell modules make use of the following four classes of
system resources:
</para>
<para>
<itemizedlist>
<listitem>
<link linkend="sect.overview.hosts">Hosts</link>
</listitem>
<listitem>
<link linkend="sect.overview.users">Users</link>
</listitem>
<listitem>
<link linkend="sect.overview.groups">Groups</link>
</listitem>
<listitem>
<link linkend="sect.overview.services">Services</link>
</listitem>
</itemizedlist>
</para>
<para>
We'll cover each of these concepts in turn.
</para>
<sect3 xml:id="sect.overview.hosts">
<title>Hosts</title>
<para>
Every physical computer within a given network that is running
Rivendell software is referred to as a <emphasis>host</emphasis>.
Any host in a
Rivendell network can be individually configured and controlled
from any other host (provided the system administrator has enabled
this capability). Hosts can be used for a wide variety of
applications, including content ingestion and management,
automatic recording (sometimes referred to as netcatching),
on-air play out or log (sometimes also referred to as playlist)
generation. It is also possible for a single host to perform all
of these functions.
</para>
</sect3>
<sect3 xml:id="sect.overview.users">
<title>Users</title>
<para>
Every host on a Rivendell network has one or more
<emphasis>users</emphasis> available
to it. In this context, a 'user' is merely a set of access
policies established by the system administrator that defines what
tasks a given host is or is not allowed to perform. Every host
has at least one user, called the <emphasis>default user</emphasis>.
As the name
suggests, this is the set of user policies that are loaded by
default when the system starts up. It is also possible to change
the user currently in use on a given host by running the RDLogin
module.
</para>
</sect3>
<sect3 xml:id="sect.overview.groups">
<title>Groups</title>
<para>
A Rivendell <emphasis>group</emphasis> is a system of categories
that is used by the
audio library to classify and organize the audio within the library.
Groups are a very powerful capability, and many operations within
Rivendell can be specified on the basis of group membership.
The actual classification scheme, including the number of available
groups and their names, is completely arbitrary so as to allow each
facility to tailor a schema that best fits its own operational
requirements. Designing and implementing the group schema is one
of the most important tasks facing the Rivendell system
administrator, as a well-designed schema can make long-term
maintenance and management of the system substantially easier
vis-a-vis a poorly thought out one. We will cover groups in
detail in the chapters devoted to the RDLibrary and RDAdmin modules.
</para>
</sect3>
<sect3 xml:id="sect.overview.services">
<title>Services</title>
<para>
Every facility at which Rivendell is deployed is presumed to have
one or more ultimate destinations for which audio is intended.
These could be radio stations (e.g. WAVA), satellite uplink
channels, live Internet audio streams, or any mix of the above.
Each of these sorts of destinations is referred to in Rivendell
as a <emphasis>service</emphasis>, and certain parameters,
particularly as regards
audio play out and log (playlist) creation, can be configured on
the basis of what particular service is being referenced.
</para>
</sect3>
</sect2>
<sect2 xml:id="sect.overview.the_rivendell_hardware_paradigm">
<title>The Rivendell Hardware Paradigm</title>
<para>
In addition to the core computer hardware (CPU, motherboard, etc),
each Rivendell host typically interacts with specialized hardware
required to accomplish the task at hand. Three main categories of
such 'special' hardware are of interest to us here, the three being
audio adapters, serial ports and GPIO/switcher devices. We'll
cover each below.
</para>
<sect3 xml:id="sect.overview.audio_adapters">
<title>Audio Adapters</title>
<para>
An <emphasis>audio adapter</emphasis> in Rivendell is simply a
device or facility for
getting audio into and/or out of a host on a realtime basis.
Most commonly this will be a sound card, although other, more
exotic possibilities (using TCP/IP networking or direct routing
to other audio applications) also exist. The three main classes
of audio adapters supported by Rivendell are:
</para>
<para>
<variablelist>
<varlistentry>
<term>Advanced Linux Sound Architecture (ALSA)</term>
<listitem>
<para>
The standard Linux sound card driver starting with the 2.6.x
kernel series, ALSA supports a huge array of commercially
available sound cards, ranging from entry level 'game' cards
to high-end cards aimed at professional audio uses.
More information, including a current list of supported
cards, is available at the ALSA web site,
http://www.alsa-project.org/.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>HPI Adapters</term>
<listitem>
<para>
These are high-performance sound cards manufactured by
AudioScience Corporation. Designed and built specifically
for broadcast automation applications, many feature advanced
capabilities (such as on-board MPEG codecs and AES3 i/o)
specially aimed for use in that setting. They are so-called
because Rivendell uses AudioScience's special 'HPI' driver
to access and control them. More information is available
at AudioScience's web site, http://www.audioscience.com/.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>JACK Audio Interconnect Kit</term>
<listitem>
<para>
JACK is not a particular set of hardware devices, but rather
an audio 'framework' that allows compliant applications to
share audio resources and route audio in realtime amongst
themselves. JACK is different from similar efforts within
the Linux realm in that it was designed from the ground up
for professional audio work, with particular focus upon
low-latency operation and synchronous execution of all
clients. More information can be found at the JACK web
site, http://jackit.sourceforge.net/.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect3>
<sect3 xml:id="sect.overview.serial_ports">
<title>Serial Ports</title>
<para>
Commonly known in the DOS/Windows world as 'COM ports',
<emphasis>serial ports</emphasis> are often used to communicate
with outboard gear, such as
satellite receivers and audio switchers. Up to eight serial ports
can be accessed simultaneously by each Rivendell host.
</para>
</sect3>
<sect3 xml:id="sect.overview.gpio_switcher_devices">
<title>GPIO/Switcher Devices</title>
<para>
Because these capabilities are often (although not always)
bundled together in the same device, Rivendell lumps GPIO and
switcher devices together within the same class.
<emphasis>GPIO</emphasis> stands
for 'General Purpose Input Output'. As the name implies, these
devices can be used to interface to a huge variety of outboard
equipment by means of control lines. <emphasis>GPI</emphasis>
(General Purpose Input)
lines can be used to sense changes in an outboard system's state
(and Rivendell programmed to take various actions on the basis of
that), while <emphasis>GPO</emphasis> (General Purpose Output)
lines can be used to
send commands to an outboard system. The actual physical
interfacing of GPIO devices is complex and generally beyond
the scope of this document. Readers are encouraged to consult
a good handbook on radio engineering for more information.
A current list of GPIO/Switcher devices supported by Rivendell
can be found in 'docs/GPIO.txt' file in the Rivendell sources.
</para>
</sect3>
</sect2>
</sect1>
</chapter>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

568
docs/opsguide/rdairplay.xml Normal file
View File

@ -0,0 +1,568 @@
<chapter xmlns="http://docbook.org/ns/docbook" xml:id="chapter.rdairplay">
<title>Running Logs with RDAirPlay</title>
<sect1 xml:id="sect.rdairplay.overview">
<title>Overview</title>
<para>
RDAirPlay is the Rivendell module used to run logs generated by the
RDLogEdit or RDLogManager (for an overview of Rivendell logs, see
<xref linkend="chapter.rdlogedit"/>).
It contains a wide array of features for enabling
playout of audio content in live assist as well as fully automated
environments.
</para>
<para>
<mediaobject>
<imageobject>
<imagedata align="center" fileref="rdairplay.rdairplay_screenshot.png" scale="45"/>
</imageobject>
<caption>
<para>The RDAirPlay Main Window</para>
</caption>
</mediaobject>
</para>
</sect1>
<sect1 xml:id="sect.rdairplay.log_machines">
<title>Log Machines</title>
<para>
Fundamental to the operation of RDAirPlay is the concept of a
<emphasis>log machine</emphasis>.
A log machine is a virtual “device” into which a Rivendell
log may be loaded and executed. RDAirPlay has three such log machines,
called <computeroutput>Main Log</computeroutput>,
<computeroutput>Aux 1 Log</computeroutput> and
<computeroutput>Aux 2 Log</computeroutput>. Each of these log machines
is completely independent of the others in the sense that different
logs can be loaded and executed simultaneously in the respective
machines.
</para>
</sect1>
<sect1 xml:id="sect.rdairplay.layout">
<title>Layout</title>
<para>
The RDAirPlay main screen consists of
four primary areas: the top area, which contains a variety of
indicators for use in live assist situations as well as a set of
audio meters; the button widget, which occupies the bulk of the
left-hand side of the screen; the right-hand side, which displays
either a SoundPanel array or a full log width; and the edit buttons
in the lower left-hand corner of the screen.
</para>
<para>
The top area contains the following indicators:
</para>
<sect2 xml:id="sect.rdairplay.the_wall_clock">
<title>The Wall Clock</title>
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="rdairplay.wallclock_widget.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<para>
In the upper left-hand corner is the wall clock indicator, which
indicates
the current system date and time. The style used for displaying times
throughout RDAirPlay can be toggled between 24 hour “military” format
and the traditional “AM/PM” presentation by clicking once on this
display. If the system administrator has enabled it, this display
will also flash RED to indicate possible clock inaccuracy due to loss
of master clock synchronization.
</para>
</sect2>
<sect2 xml:id="sect.rdairplay.the_post_point_counter">
<title>The Post Point Counter</title>
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="rdairplay.postpoint_ontime_widget.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<para>
Immediately to the right of the wall clock is the Post Point Counter.
A post point is an attribute applied to a log event with a hard time
type. The post point counter uses this information to display
countdown and timing information.
</para>
<para>
The counter can be in one of four possible states:
<computeroutput>Idle</computeroutput>,
<computeroutput>On Time</computeroutput>,
<computeroutput>Under Time</computeroutput> or
<computeroutput>Over Time</computeroutput>.
The counter will provide an estimate of how “on-time” the log currently
is, on the basis of the current time and events still scheduled to be
played.
</para>
<para>
If the playout is such that the next hard time will be reached within one
second of its programmed time, then the counter will be in
<computeroutput>On Time</computeroutput> mode. The value shown in
the square brackets is the
scheduled time of the hard-timed event.
</para>
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="rdairplay.postpoint_early_widget.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<para>
If the playout is such that the next hard time will be reached
one second
or more before its programmed time, then the counter will be in
<computeroutput>Early</computeroutput>
mode. It will also give an indication of how
much more material would need to be added to make the join on time.
</para>
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="rdairplay.postpoint_late_widget.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<para>
If the playout is such that the next hard time will be reached one
second or more after its programmed time, then the counter will be in
<computeroutput>Late</computeroutput>
mode. It will also give an indication of how
much material would need to be removed to make the join on time.
</para>
</sect2>
<sect2 xml:id="sect.rdairplay.the_audio_meter">
<title>The Audio Meter</title>
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="rdairplay.audio_meter.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<para>
Immediately beneath the wall clock and post point counter is the audio
meter. The meter shows the current peak levels of audio being played
out of RDAirPlay, with '0' level referenced to -16 dBFS.
</para>
</sect2>
<sect2 xml:id="sect.rdairplay.the_pie_wedge_widget">
<title>The Pie Wedge Widget</title>
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="rdairplay.piewedge_widget.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<para>
In the top center of the top area is the pie wedge widget. This
widget counts down the final few seconds of each event. The length
of time it counts down, along with whether it counts to the start
of the next transition or the absolute end of the event are both
configurable in RDADmin. The color of the band that grows as the
countdown progresses (shown in GREEN in the illustration) will
change color
to indicate if the currently playing event is the last event before
a log stopdown. If it is the last, it will be RED, if not, GREEN.
A BLUE band and countdown will also appear to indicate the event's
talk time (if talk time markers have been set in the underlying cart).
</para>
</sect2>
<sect2 xml:id="sect.rdairplay.the_next_stop_counter">
<title>The Next Stop Counter</title>
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="rdairplay.next_stop_widget.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<para>
Immediately to the right of the pie wedge widget is the next stop
counter. The large numerals indicate the predicted interval of time
before the next stopdown of the
<computeroutput>Main Log</computeroutput> machine, with the actual
predicted time in the square brackets. If the
<computeroutput>Main Log</computeroutput> is already
stopped, then the counter simply displays
<computeroutput>Stopped</computeroutput>.
</para>
</sect2>
<sect2 xml:id="sect.rdairplay.the_mode_indicator">
<title>The Mode Indicator</title>
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="rdairplay.mode_widget.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<para>
In the upper right-hand corner of the top area is the mode indicator,
showing the current automation mode of the log machines. Three
different modes are possible:
<computeroutput>Automatic</computeroutput>, in which all log features,
including <computeroutput>PLAY</computeroutput> and
<computeroutput>SEGUE</computeroutput> transitions and hard times
are fully
enabled; <computeroutput>LiveAssist</computeroutput>, in which no
automatic transitions or hard start
times are executed but automatic crossfades are done between
elements; and <computeroutput>Manual</computeroutput>, which is
very similar to LiveAssist except
that not even automatic crossfades are enabled (thus permitting
fully manual crossfade control by means of an external console).
To change RDAirPlay to a different mode, simply touch the mode
indicator until the desired mode is indicated.
</para>
</sect2>
<sect2 xml:id="sect.rdairplay.the_label_area">
<title>The Label Area</title>
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="rdairplay.label_widget.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<para>
Immediately below the next stop counter and mode indicator is the
label area. Text messages can be made to appear here (by means of
RML commands) to signal the operator concerning the state of the
system or need to take some kind of action.
</para>
</sect2>
<sect2 xml:id="sect.rdairplay.the_right_hand_side">
<title>The Right-Hand Side</title>
<para>
Directly below the label area is the right-hand side. The right-hand
side can display either a SoundPanel array or a full log widget for
each of the three log machines, selected by clicking the appropriate
button in the lower right-hand corner of the screen. (NOTE:
depending upon how the system administrator has configured the
system, not all of the log machine buttons may be visible on your
system).
</para>
</sect2>
<sect2 xml:id="sect.rdairplay.the_full_log_widget">
<title>The Full Log Widget</title>
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="rdairplay.full_log_widget.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<para>
As the name implies, the full log widget can be used to view the
contents of a log over its entire length. To load a log, touch the
<computeroutput>Select Log</computeroutput> button to bring up the
Select Log dialog, select the
desired log from the list and then touch
<computeroutput>Load</computeroutput>. The currently loaded
log can also be saved by touching the
<computeroutput>Save</computeroutput> or
<computeroutput>Save As</computeroutput> buttons, or
the current log unloaded by touching
<computeroutput>Unload</computeroutput>.
</para>
<para>
<mediaobject>
<imageobject>
<imagedata align="center" fileref="rdairplay.select_a_log_dialog.png" scale="60"/>
</imageobject>
<caption><para>The Select Log Dialog</para></caption>
</mediaobject>
</para>
<para>
Once a log is loaded, it can be started at any point by touching an
event and then pressing the <computeroutput>Play</computeroutput>
button. Any playing event can
likewise be stopped by touching in the event and then pressing the
<computeroutput>Stop</computeroutput> button.
To cue-up an event so that it is the next to play
(indicated by the event being the first with a light green
background), touch the event and then press the
<computeroutput>Make Next</computeroutput> button.
The play parameters of an event can be modified by touching the event,
then pressing the Modify button, bringing up the Edit Event dialog.
</para>
<para>
In addition to having the ability to modify the event's time and
transition parameters, the Edit Event dialog can be used to audition
the event's audio in Cue or set the start position of the audio for
on-air playback (so as to allow a program to be joined
&quot;in progress&quot;, for example). To audition the audio,
simply press the <computeroutput>Play</computeroutput> button.
The slider can be moved to adjust
where in the audio to audition from. To set the start position,
press the <computeroutput>Start</computeroutput> button and then
position the slider where you wish
the start to be. The red line on the progress display indicates the
current start position. Pressing the
<computeroutput>Start</computeroutput> button again returns
the dialog to Audition mode.
</para>
<para>
<mediaobject>
<imageobject>
<imagedata align="center" fileref="rdairplay.edit_event_dialog.png" scale="60"/>
</imageobject>
<caption><para>The Edit Event Dialog</para></caption>
</mediaobject>
</para>
<para>
When running a log, it is often desirable to have the currently
playing event always in sight. To do this, toggle the
<computeroutput>Scroll</computeroutput>
button &quot;ON&quot; (blue background).
</para>
</sect2>
<sect2 xml:id="sect.rdairplay.the_button_log_widget">
<title>The Button Log Widget</title>
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="rdairplay.button_log_widget.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<para>
To the left of the full log widget is the button log widget,
consisting of a column of seven large buttons adjacent to cart labels.
This widget provides another, specialized “view” of the
<computeroutput>Main Log</computeroutput> log
machine. Specifically, the first seven currently playing and/or
next events in that log machine will always be visible here. Events
visible in the button log will be shown in the full log widget as
having a green background. Unlike the full log widget, the button
log is always visible, regardless of which display has been selected
for the right-hand side.
</para>
<para>
To start an event from the button log, simply touch an event's
corresponding <computeroutput>Start</computeroutput> button.
Touching the button of a running event
will either (depending upon how the system administrator has
configured RDAirPlay) stop or pause it. To modify an event's
parameters (via the Edit Event dialog), simply double-click the
event's cart label.
</para>
</sect2>
</sect1>
<sect1 xml:id="sect.rdairplay.editing_a_log">
<title>Editing a Log</title>
<sect2 xml:id="sect.rdairplay.drag_and_drop">
<title>Drag and Drop</title>
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="../../icons/trashcan-32x32.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<para>
If the System Administrator has enabled Drag and Drop operation, any
event can be copied by clicking and holding the right mouse button and
then dragging it to the desired location of the copy. An event can
also be deleted from a log by dragging the trash can icon and dropping
it onto the event to be deleted.
</para>
</sect2>
<sect2 xml:id="sect.rdairplay.the_editing_buttons">
<title>The Editing Buttons</title>
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="rdairplay.edit_buttons.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<para>
It is possible to edit the log loaded into any of the three log
machines by means of the log edit buttons in the lower left-hand corner
of the screen.
</para>
<sect3 xml:id="sect.rdairplay_adding_an_event">
<title>Adding an Event</title>
<para>
To add an event, touch the <computeroutput>ADD</computeroutput>
button to open the Select Cart dialog,
pick the desired cart and then touch
<computeroutput>OK</computeroutput>. To place the selected cart
using the button log widget, simply touch one of the yellow
<computeroutput>WHERE?</computeroutput>
buttons. To place it using the full log widget, click the event
where you wish it to go and then touch the yellow
<computeroutput>WHERE?</computeroutput> button.
If, after selecting a cart from the Select Cart dialog, you decide
you don't want to add it after all, simply touch the
<computeroutput>ADD</computeroutput> button again
to cancel the operation.
</para>
<para>
<mediaobject>
<imageobject>
<imagedata align="center" fileref="rdairplay.where_to.png" scale="45"/>
</imageobject>
<caption><para>RDAirPlay Prompting for a Location</para></caption>
</mediaobject>
</para>
<para>
Alternatively, if the System Administrator has enabled Drag and Drop
functionality, carts can be dragged directly from an instance of
RDLibrary and dropped into the desired location on RDAirPlay.
</para>
</sect3>
<sect3 xml:id="sect.rdairplay_deleting_an_event">
<title>Deleting an Event</title>
<para>
To delete an event, touch the <computeroutput>DEL</computeroutput>
button, then touch one of the
violet <computeroutput>DELETE</computeroutput> buttons in the button
log widget, or select an event
and then touch the violet <computeroutput>DELETE</computeroutput>
button. To cancel the operation,
simply touch the <computeroutput>DEL</computeroutput> button again.
</para>
<para>
If the System Administrator has enabled Drag and Drop
functionality, carts can also be deleted by dragging the icon
of the trash can and dropping it onto the appropriate event.
</para>
</sect3>
<sect3 xml:id="sect.rdairplay.moving_an_event">
<title>Moving an Event</title>
<para>
To move an event, touch the <computeroutput>MOVE</computeroutput>
button, then touch one of the violet
<computeroutput>MOVE</computeroutput> buttons in the button log
widget, or select an event and then
touch the violet <computeroutput>MOVE</computeroutput> button,
then touch one of the yellow <computeroutput>TO</computeroutput>
buttons
in the button log widget, or select an event and then touch the
yellow <computeroutput>TO</computeroutput> button.
To cancel the operation at any stage, simply touch
the <computeroutput>MOVE</computeroutput> button again.
It is perfectly permissible to move an event
between two different log machines.
</para>
</sect3>
<sect3 xml:id="sect.rdairplay.copying_an_event">
<title>Copying an Event</title>
<para>
To copy an event, touch the <computeroutput>COPY</computeroutput>
button, then touch one of the
violet <computeroutput>COPY</computeroutput> buttons in the button
log widget, or select an event
and then touch the violet <computeroutput>COPY</computeroutput>
button, then touch one of the yellow
<computeroutput>TO</computeroutput> buttons in the button log
widget, or select an event and then
touch the yellow <computeroutput>TO</computeroutput> button.
To cancel the operation at any stage,
simply touch the <computeroutput>COPY</computeroutput> button again.
It is perfectly permissible to
copy an event between two different log machines.
</para>
<para>
<mediaobject>
<imageobject>
<imagedata align="center" fileref="rdairplay.delete_from.png" scale="45"/>
</imageobject>
<caption><para>RDAirPlay Prompting for a Cart to Copy</para></caption>
</mediaobject>
</para>
<para>
If the System Administrator has enabled Drag and Drop
functionality, carts can also be copied by simply dragging them
from where they are to the new location where they are wanted.
</para>
</sect3>
</sect2>
<sect2 xml:id="sect.rdairplay.the_soundpanel">
<para>
<mediaobject>
<imageobject>
<imagedata align="left" fileref="rdairplay.soundpanel_widget.png" scale="60"/>
</imageobject>
</mediaobject>
</para>
<title>The SoundPanel</title>
<para>
The SoundPanel is an array of buttons that appears in the right-hand
side of RDAirPlay when the <computeroutput>Sound Panel</computeroutput>
button is selected. Each button can be associated with
a particular
cart in the Library (either Audio or Macro carts), which is then
played each time the button is clicked. The soundpanel is
particularly useful in live assist situations where it is desired to
drop in some piece of audio on a live, improvised basis.
</para>
</sect2>
<sect2 xml:id="sect.rdairplay.panel_types">
<title>Panel Types</title>
<para>
The SoundPanel has multiple panels or “panes” that can scrolled
through by touching the double-left or double-right arrow buttons.
Each panel has a designator, (displayed just to the right of the
arrow keys), consisting of the letter <computeroutput>U</computeroutput>
or <computeroutput>S</computeroutput> followed by a
number. An <computeroutput>S</computeroutput> indicates that the
panel is a 'system' panel,
meaning that its button assignments will show up only on this
particular host system; while a <computeroutput>U</computeroutput>
indicates a 'user' panel,
one which is associated with a particular user and that will
&quot;follow around&quot; that user whereever he logs in in the
site. (Depending upon how the system administrator has configured
RDAirPlay, you may not have both of these panel types available to
you).
</para>
</sect2>
<sect2 xml:id="sect.rdairplay.programming_a_soundpanel_button">
<title>Programming a SoundPanel Button</title>
<para>
To associate a cart with a panel button, first touch the
<computeroutput>Setup</computeroutput>
button, which will begin to flash. (Depending upon how the system
administrator has configured RDAirPlay, the
<computeroutput>Setup</computeroutput> button may be
disabled). Next, touch the button you wish to program, opening the
Edit Button dialog.
</para>
<para>
<mediaobject>
<imageobject>
<imagedata align="center" fileref="rdairplay.edit_button_dialog.png" scale="45"/>
</imageobject>
<caption><para>The Edit Button Dialog</para></caption>
</mediaobject>
</para>
<para>
Touch the <computeroutput>Set Cart</computeroutput> button to open
the Select Cart dialog and pick a
cart. To clear the button i.e. have no cart associated with it
touch the <computeroutput>Clear</computeroutput> button. To assign
a custom background color to the
button, touch the <computeroutput>Set Color</computeroutput> button.
A custom label can be entered
in the <computeroutput>Label</computeroutput> field, or the name of
the cart will be used by default.
Touch the <computeroutput>OK</computeroutput> button when done.
When done programming all the
desired buttons, touch the <computeroutput>Setup</computeroutput>
button again to toggle off <computeroutput>Setup</computeroutput> mode.
</para>
<para>
If the System Administrator has enabled Drag and Drop
functionality, buttons can also be programmed by simply dragging and
dropping a cart (from RDLibrary or from elsewhere in RDAirPlay) onto
the desired button.
</para>
</sect2>
</sect1>
</chapter>

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

747
docs/opsguide/rdcatch.xml Normal file
View File

@ -0,0 +1,747 @@
<chapter xmlns="http://docbook.org/ns/docbook" xml:id="chapter.rdcatch">
<title>Automating Tasks with RDCatch</title>
<sect1 xml:id="sect.rdcatch.automating_tasks_with_rdcatch">
<title>Choosing the Correct Automation Tool</title>
<para>
Rivendell includes two modules specially optimized for performing
automatic operations: the RDCatch and RDAirPlay modules. However,
these two
modules take radically different approaches in how they go about
organizing and controlling operations, so a few words regarding
each may be in order here.
</para>
<para>
RDCatch is aimed at executing actions on the basis of a strict
time-based schedule, referred to as an event list. Each action
(which can be a <emphasis>recording</emphasis>, a
<emphasis>play out</emphasis>, an
<emphasis>upload</emphasis> or <emphasis>download</emphasis>,
a <emphasis>macro</emphasis> execution or an operation on an audio
<emphasis>switcher</emphasis> device) executes on
the basis of its scheduled time in the event list, independently of
all other actions. As such, RDCatch is often best suited for use in
settings such as network head end operations or 'auxiliary' roles at
broadcast stations, where the transitions between events are
generally not an important part of the presentation.
</para>
<para>
RDAirPlay takes a very different approach, in that most events are
organized into one or more playlists or logs. A Rivendell log is a
list of one or more carts, organized in chronological order. As the
name implies, RDAirPlay is optimized for use in situations where the
transitions between the various program elements are a key part of
the delivery and presentation of the content, such as in live air
play environments.
</para>
<para>
Of course, it's entirely possible to use both modules, even together
on the same machine at the same time the Linux OS makes for a very
robust and capable multitasking system. In this chapter, we will
take a look at the capabilities of RDCatch.
</para>
</sect1>
<sect1 xml:id="sect.rdcatch.the_rdcatch_main_window">
<title>The RDCatch Main Window</title>
<para>
After starting up RDCatch, you will see the
<xref endterm="para.rdcatch.the_rdcatch_main_window" endlink="mediaobject.rdcatch.rdcatch_screenshot"/>. The window consists of four
areas: the record / play out decks at the top, the filter areas just
below the decks, the events list and the audition buttons and other
buttons at the bottom. We'll cover each of these in turn.
</para>
<sect2 xml:id="sect.rdcatch.the_record___play_out_deck_area">
<title>The Record / Play Out Deck Area</title>
<para>
If the system administrator has configured one or more RDCatch
record or play out decks, they will be visible at the top of the
RDCatch main window. A record deck is a virtual 'recorder' that
can be used to make automated recordings, while a play out deck
can be used to automatically play out audio. It does not matter
on which particular host a particular deck resides all
Rivendell decks throughout the system are visible in RDCatch,
regardless of which host it is run upon.
</para>
<para>
Starting at the left-hand edge of each deck, there is the deck's
name, consisting of the name of the deck's host machine followed
by a number and a letter, an <computeroutput>R</computeroutput>
to indicate a record deck and a
<computeroutput>P</computeroutput> to indicate a play out deck.
Next, for record decks, there is
a <computeroutput>MON</computeroutput> button, used to monitor the
audio present at the deck input,
followed by an <computeroutput>ABORT</computeroutput> button, used
to manually stop an event
running in the deck. A description of the currently running event
next appears (this area will be blank if no event is currently
active), followed by the deck's status, which could be any of the
values in <xref linkend="table.rdcatch.rdcatch_event_states"/>.
</para>
<table xml:id="table.rdcatch.rdcatch_event_states" frame="all">
<title>RDCatch Event States</title>
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colname="Status" />
<colspec colname="Meaning" />
<thead>
<row>
<entry>
Status
</entry>
<entry>
Meaning
</entry>
</row>
</thead>
<tbody>
<row>
<entry>
IDLE
</entry>
<entry>
The deck is available for events
</entry>
</row>
<row>
<entry>
READY
</entry>
<entry>
The deck has started monitoring audio but the transport is
not yet rolling (record decks only).
</entry>
</row>
<row>
<entry>
WAITING
</entry>
<entry>
The deck is waiting for a GPI event (record decks only)
</entry>
</row>
<row>
<entry>
RECORDING
</entry>
<entry>
The deck is recording (record decks only)
</entry>
</row>
<row>
<entry>
PLAYING
</entry>
<entry>
The deck is playing out (play out decks only)
</entry>
</row>
<row>
<entry>
OFFLINE
</entry>
<entry>
The deck is configured but not available
</entry>
</row>
</tbody>
</tgroup>
</table>
<para>
<mediaobject xml:id="mediaobject.rdcatch.rdcatch_screenshot">
<imageobject>
<imagedata align="center" fileref="rdcatch.rdcatch_screenshot.png" scale="45"/>
</imageobject>
<caption>
<para xml:id="para.rdcatch.the_rdcatch_main_window">The RDCatch Main Window</para>
</caption>
</mediaobject>
</para>
<para>
Finally, each deck has an audio meter on its right-hand end, used
to verify audio levels in realtime.
</para>
</sect2>
<sect2 xml:id="sect.rdcatch.the_filter_area">
<title>The Filter Area</title>
<para>
Immediately below the decks is the filter area, consisting of the
<computeroutput>Show Only Active Events</computeroutput>,
<computeroutput>Show Only Today's Events</computeroutput>
<computeroutput>Show DayOfWeek</computeroutput> and
<computeroutput>Show Event Type</computeroutput>
controls, which are used to select which events will be
visible in the events list area immediately below.
</para>
</sect2>
<sect2 xml:id="sect.rdcatch.the_event_list">
<title>The Event List</title>
<para>
The event list is a system wide list of all events to be executed
by RDCatch on all of the various hosts on the Rivendell network,
with each event occupying a single line. The status of each event
is indicated by its background color, as shown in
<xref linkend="table.rdcatch.rdcatch_event_state_colors"/>
</para>
<table xml:id="table.rdcatch.rdcatch_event_state_colors" frame="all">
<title>RDCatch Event State Colors</title>
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colname="Color" />
<colspec colname="Meaning" />
<thead>
<row>
<entry>
Color
</entry>
<entry>
Meaning
</entry>
</row>
</thead>
<tbody>
<row>
<entry>
YELLOW
</entry>
<entry>
The event is next to be executed.
</entry>
</row>
<row>
<entry>
GREEN
</entry>
<entry>
The event is active.
</entry>
</row>
<row>
<entry>
CYAN
</entry>
<entry>
The event is in the READY state.
</entry>
</row>
<row>
<entry>
VIOLET
</entry>
<entry>
The event is in the WAITING state.
</entry>
</row>
<row>
<entry>
RED/PINK
</entry>
<entry>
The event is reporting an error.
</entry>
</row>
</tbody>
</tgroup>
</table>
<para>
Each entry in the event list starts with an icon that indicates
the type of the event, as shown in
<xref linkend="table.rdcatch.rdcatch_event_icons"/>
</para>
<table xml:id="table.rdcatch.rdcatch_event_icons" frame="all">
<title>RDCatch Event Icons</title>
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colname="Color" />
<colspec colname="Meaning" />
<tbody>
<row>
<entry>
[RECORD_ICON]
</entry>
<entry>
Record Event
</entry>
</row>
<row>
<entry>
[PLAYOUT ICON]
</entry>
<entry>
Play Out Event
</entry>
</row>
<row>
<entry>
[SWITCH ICON]
</entry>
<entry>
Switch Event
</entry>
</row>
<row>
<entry>
[MACRO ICON]
</entry>
<entry>
Macro Event
</entry>
</row>
<row>
<entry>
[UPLOAD ICON]
</entry>
<entry>
Upload Event
</entry>
</row>
<row>
<entry>
[DOWNLOAD ICON]
</entry>
<entry>
Download Event
</entry>
</row>
</tbody>
</tgroup>
</table>
<para>
Next on each line comes the
<computeroutput>Description</computeroutput> (settable by the user) and
<computeroutput>Location</computeroutput> for the event, the
location being the name of the host/deck
where the event will run. Then comes the
<computeroutput>Start</computeroutput> and
<computeroutput>End</computeroutput> parameters.
These time-based parameters come in one of three different forms:
a hard time, which is simply an absolute time (in twenty-four hour
'military' format), a length (in HH:MM format, relative to an
earlier start time), or a GPI start. The GPI parameters can be
somewhat involved. They are specified in the following format:
</para>
<para>
Gpi: &lt;start-time&gt;,&lt;end-time&gt;,&lt;gpi-num&gt;,&lt;wait-time&gt;
</para>
<para>
Where:
</para>
<para>
<variablelist>
<varlistentry>
<term>&lt;start-time&gt;</term>
<listitem>
<para>
The time, in HH:MM:SS format, when RDCatch will start looking
for a GPI event (also sometimes referred to as the window
start time).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&lt;end-time&gt;</term>
<listitem>
<para>
The time, in HH:MM:SS format, when RDCatch will stop looking
for a GPI event (also sometime referred to as the window end
time).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&lt;gpi-num&gt;</term>
<listitem>
<para>
The number of the GPI event to wait for, in the format
MATRIX:LINE. We will deal with GPI matrix and line numbers
in detail when we cover RDAdmin.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>&lt;wait-time&gt;</term>
<listitem>
<para>
The amount of time to wait, in MM:SS format, between the
reception of the GPI event and the actual start of the event
(used only for Start parameters).
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
For example, the start parameter 'Gpi: 14:00:00,14:05:59,0:1,01:00'
has a window start time of 14:00:00 [2:00:00 PM], a window end time
of 14:05:59, looks for a GPI event on line 0:1 and will wait one
minute [01:00] after receiving the GPI before starting the event.
</para>
<para>
Next come the <computeroutput>Source</computeroutput> and
<computeroutput>Destination</computeroutput> fields.
The uses of these will
vary depending upon what type of event is being listed, but should
normally be fairly self-evident. For example, for a record event,
the source field indicates the audio source from which the recording
is to be made, while the destination indicates the cat/cut combo to
which the recording should be made. Some events may leave one or the
other of these fields blank.
</para>
<para>
Now come the day of the week fields. These indicate on which days
of the week the listed event should be executed, followed by the
<computeroutput>Origin</computeroutput> field, which is simply a
readout of the Origin data of the
events underlying cut. There are a number of other fields which
follow, but these are less important for understanding the
operation of RDCatch.
</para>
</sect2>
<sect2 xml:id="sect.rdcatch_the_button_area">
<title>The Button Area</title>
<para>
At the bottom of the main window are various buttons. On the
left-hand side, the <computeroutput>Add</computeroutput>,
<computeroutput>Edit</computeroutput> and
<computeroutput>Delete</computeroutput> buttons are used to manage
events in the event list. Clicking the
<computeroutput>Scroll</computeroutput> button toggles
RDCatch into and out of 'scroll mode'. In this mode, the event
list display will be advanced automatically so as to keep the first
actively running event centered within the event list area.
</para>
<para>
On the right hand side, in addition to
<computeroutput>Close</computeroutput>, are three audition
buttons. These buttons can be used to audition the head and tail
of each cut referenced by an event, thus making it possible to
quickly verify that a set of automatic recordings were properly
executed.
</para>
</sect2>
</sect1>
<sect1 xml:id="sect.rdcatch.adding_new_events">
<title>Adding New Events</title>
<para>
A new event can be added to the event list by simply clicking the
<computeroutput>Add</computeroutput> button to bring up the Add
Event Dialog (see <xref endterm="para.the_add_event_dialog" endlinl="mediaobject.rdcatch.add_event_dialog"/>).
Simply clicking the button that correspond to the desired type of
event will create it.
</para>
<para>
<mediaobject xml:id="mediaobject.rdcatch.add_event_dialog">
<imageobject>
<imagedata align="center" fileref="rdcatch.add_event_dialog.png" scale="50"/>
</imageobject>
<caption>
<para xml:id="para.the_add_event_dialog">The Add Event Dialog</para>
</caption>
</mediaobject>
</para>
</sect1>
<sect1 xml:id="sect.rdcatch.automating_recordings">
<title>Automating Recordings</title>
<para>
Automated recordings are configured by means of the Edit Recording
dialog (see <xref endterm="the_edit_recording_dialog" endlink="mediaobject.rdcatch.edit_recording_dialog"/>), which can be accessed either by clicking
the <computeroutput>Recording</computeroutput> button in the Add Event
dialog to create a new record
event or by touching the <computeroutput>Edit</computeroutput> button
to modify an existing event.
</para>
<sect2 xml:id="sect.rdcatch.the__start_parameters__section">
<title>The 'Start Parameters' Section</title>
<para>
The start parameters of each recording are configured in the
'Start Parameters' section. A recording can be programmed to start
on the basis of the wall clock time, referred to the hard start
time, or upon reception of a general-purpose input, or GPI event
originated by a satellite receiver, tone decoder or other external
device. Programming a hard start time is merely a matter of
entering the desired start time, in 24 hour 'military' format.
Programming a GPI start involves, in addition to entry of the GPI
parameters themselves (matrix and GPI line numbers) that
<computeroutput>Window Start</computeroutput> and
<computeroutput>Windows End</computeroutput> times be entered,
that define the 'window'
during which reception of the appropriate GPI event will be
'recognized' by RDCatch. It is also optionally possible to specify
a <computeroutput>Start Delay</computeroutput> between reception of
the GPI event and the actual start of the recording.
</para>
<para>
<mediaobject xml:id="mediaobject.rdcatch.edit_recording_dialog">
<imageobject>
<imagedata align="center" fileref="rdcatch.edit_recording_dialog.png" scale="50"/>
</imageobject>
<caption>
<para xml:id="the_edit_recording_dialog">The Edit Recording Dialog</para>
</caption>
</mediaobject>
</para>
</sect2>
<sect2 xml:id="sect.rdcatch_the__end_parameters__section">
<title>The 'End Parameters' Section</title>
<para>
The end parameters of each recording are configured in the
'End Parameters' section. A recording can be programmed to end on
the basis of a hard time, its absolute length or in response to a
GPI event. Programming of the
<computeroutput>Hard Time</computeroutput> and
<computeroutput>Length</computeroutput> parameters
should be fairly self-explanatory, while the parameters needed to
program a GPI event are similar to those used for the start
parameters, with the exception of the
<computeroutput>Max Record Length</computeroutput> setting,
which limits the maximum length of the recording in the event that
the expected GPI event is never received.
</para>
</sect2>
<sect2 xml:id="sect.rdcatch.programming_multiple_recordings_in_a_single_event">
<title>Programming Multiple Recordings in a Single Event</title>
<para>
If a record event is configured to use GPI for its start and Length
or GPI for its end parameter, then it is possible to configure the
event to make repeated, multiple recordings within a single event
by checking the
<computeroutput>Allow Multiple Recordings Within This Window</computeroutput>
box in the 'Start Parameters' section. This can significantly reduce
the amount of required record events when capturing material with
high on-air turnover, such as newscasts or traffic reports.
</para>
</sect2>
<sect2 xml:id="sect.rdcatch.selecting_a_record_source">
<title>Selecting a Record Source</title>
<para>
If the selected record deck (chosen in the
<computeroutput>Location</computeroutput> drop-down menu
at the top of the dialog) as been configured to operate with an
audio switcher device, the appropriate audio input can be chosen
from the <computeroutput>Source</computeroutput> drop-down menu.
</para>
</sect2>
<sect2 xml:id="sect.rdcatch.selecting_a_record_destination">
<title>Selecting a Record Destination</title>
<para>
Each programmed recording must have a 'destination', a designated
Cart/Cut which will hold the audio. The currently programmed
destination is shown in the Destination field, and can be changed
by clicking the <computeroutput>Select</computeroutput> button.
</para>
</sect2>
<sect2 xml:id="sect.rdcatch.setting_the_active_days_for_a_recording">
<title>Setting the Active Days for a Recording</title>
<para>
A check should be placed next to each day of the week for which a
recording should be made in the
<computeroutput>Active Days</computeroutput> box. If no days are
checked, then no recordings at all will be made.
</para>
</sect2>
<sect2 xml:id="sect.rdcatch.record_list_management_with_event_active_and_make_oneshot">
<title>Record List Management with Event Active and Make OneShot</title>
<para>
The record event will be actually executed only if
<computeroutput>Event Active</computeroutput> check box
(in the upper left corner of the dialog box) is ticked. By
clearing this box, it's possible to 'bank' a record event without
actually having it run, useful for events that are only used
sporadically.
</para>
<para>
For events that need to be executed only once, the
<computeroutput>Make OneShot</computeroutput>
box can be ticked. Such an event will execute just once, and
then automatically delete itself from the event list.
</para>
</sect2>
</sect1>
<sect1 xml:id="sect.rdcatch.automating_playouts">
<title>Automating Playouts</title>
<para>
Automated playouts are configured by means of the Edit Playout
dialog (see <xref endterm="the_edit_playout_dialog" endlink="mediaobject.rdcatch.edit_playout_dialog"/>), which can be accessed either by
clicking the <computeroutput>Playout</computeroutput> button in
the Add Event dialog to create a new
record event or by touching the
<computeroutput>Edit</computeroutput> button to modify an existing
event. The process of configuring a playout is very similar to that
for configuring a recording see the
<xref linkend="sect.rdcatch.automating_recordings"/>
above for details.
</para>
<para>
<mediaobject xml:id="mediaobject.rdcatch.edit_playout_dialog">
<imageobject>
<imagedata align="center" fileref="rdcatch.edit_playout_dialog.png" scale="50"/>
</imageobject>
<caption>
<para xml:id="the_edit_playout_dialog">The Edit Playout Dialog</para>
</caption>
</mediaobject>
</para>
</sect1>
<sect1 xml:id="sect.rdcatch.automating_uploads_downloads">
<title>Automating Uploads/Downloads</title>
<para>
It's possible to use RDCatch to automatically upload and download
material from both local and Internet-based servers. Automated
downloads are configured by means of the Edit Download dialog, which
can be accessed either by clicking the
<computeroutput>Download</computeroutput> button in the Add
Event dialog (see <xref endterm="para.rdcatch.the_edit_download_dialog" endlink="mediaobject.rdcatch.edit_download_dialog"/>) to create a new record event or
by touching the <computeroutput>Edit</computeroutput> button to
modify an existing event.
</para>
<para>
<mediaobject xml:id="mediaobject.rdcatch.edit_download_dialog">
<imageobject>
<imagedata align="center" fileref="rdcatch.edit_download_dialog.png" scale="50"/>
</imageobject>
<caption>
<para xml:id="para.rdcatch.the_edit_download_dialog">The Edit Download Dialog</para>
</caption>
</mediaobject>
</para>
<para>
With the exception of the <computeroutput>Url</computeroutput>,
<computeroutput>Username</computeroutput> and
<computeroutput>Password</computeroutput> controls,
the process of configuring a download is very similar to that for
configuring a recording see the
<xref linkend="sect.rdcatch.automating_recordings"/> above for
details.
</para>
<para>
The <computeroutput>Url</computeroutput> control is used to specify
the Uniform Resource Locater for
the material to be downloaded. The following download types are
supported: <userinput>http:</userinput>,
<userinput>ftp:</userinput>, <userinput>sftp:</userinput> and
<userinput>file:</userinput>. The <computeroutput>Url</computeroutput>
field can also include
wildcard characters that can be used to construct date-based URLs.
</para>
<para>
The <computeroutput>Username</computeroutput> and
<computeroutput>Password</computeroutput> fields are used to
indicate the username
and password required for access to the server referenced in the
<computeroutput>Url</computeroutput>.
For public web pages and anonymous FTP servers, these fields can be
left blank.
</para>
<para>
Automated uploads are configured by means of the Edit Upload dialog
(see <xref endterm="para.rdcatch.the_edit_upload_dialog" endlink="metaobject.rdcatch.edit_upload_dialog"/>), which can be accessed either by clicking the
<computeroutput>Upload</computeroutput> button in the Add Event
dialog to create a new record event or
by touching the <computeroutput>Edit</computeroutput> button to
modify an existing event. The
following upload types are supported: <userinput>ftp:</userinput>,
<userinput>sftp:</userinput> and <userinput>file:</userinput>. As with
downloads, the <computeroutput>Url</computeroutput> field can also
include wildcard characters that
can be used to construct date-based URLs.
</para>
<para>
<mediaobject xml:id="metaobject.rdcatch.edit_upload_dialog">
<imageobject>
<imagedata align="center" fileref="rdcatch.edit_upload_dialog.png" scale="50"/>
</imageobject>
<caption>
<para xml:id="para.rdcatch.the_edit_upload_dialog">The Edit Upload Dialog</para>
</caption>
</mediaobject>
</para>
<para>
Configuration of an upload event is very similar to that of a download,
with the addition of the
<computeroutput>Export Format</computeroutput> control.
This is used to set
what file format should be used for the upload. Depending upon what
software encoders have been installed by the system administrator,
the following export types may be available:
</para>
<para>
<itemizedlist>
<listitem>
PCM16 Linear (*.wav)
</listitem>
<listitem>
Free Lossless Audio Codec [FLAC] (*.flac)
</listitem>
<listitem>
MPEG Layer 2 (*.mp2)
</listitem>
<listitem>
MPEG Layer 3 (*.mp3)
</listitem>
<listitem>
OggVorbis (*.ogg)
</listitem>
</itemizedlist>
</para>
<para>
The desired upload format and parameters are set by clicking the
<computeroutput>Set</computeroutput> button.
</para>
</sect1>
<sect1 xml:id="sect.rdcatch_automating_macro_execution">
<title>Automating Macro Execution</title>
<para>
It's possible to configure the automatic execution of a Macro Cart
by means of the Edit Cart Event dialog (see <xref endterm="para.rdcatch.the_edit_cart_event_dialog" endlink="mediaobject.dcatch.edit_cart_event_dialog"/>), which
can be accessed either by clicking the
<computeroutput>Macro Cart</computeroutput> button in the Add
Event dialog to create a new Macro Cart event or by touching the
<computeroutput>Edit</computeroutput> button to modify an existing
event. The process of configuring
a macro cart event is very similar to that for configuring a
recording see <xref linkend="sect.rdcatch.automating_recordings"/>
above for details.
</para>
<para>
<mediaobject xml:id="mediaobject.dcatch.edit_cart_event_dialog">
<imageobject>
<imagedata align="center" fileref="rdcatch.edit_cart_event_dialog.png" scale="50"/>
</imageobject>
<caption>
<para xml:id="para.rdcatch.the_edit_cart_event_dialog">The Edit Cart Event Dialog</para>
</caption>
</mediaobject>
</para>
</sect1>
<sect1 xml:id="sect.rdcatch.automating_switcher_operations">
<title>Automating Switcher Operations</title>
<para>
It's possible to configure an automatic operation on a switcher
device by means of the Edit Switcher Event dialog (see
<xref endterm="para.rdcatch.the_edit_switcher_event_dialog" endlink="mediaobject.rdcatch.edit_switcher_event_dialog"/>), which can be accessed either by clicking the
<computeroutput>Switch Event</computeroutput> button
in the Add Event dialog to create a new switch event or by touching
the <computeroutput>Edit</computeroutput> button to modify an
existing event.
</para>
<para>
<mediaobject xml:id="mediaobject.rdcatch.edit_switcher_event_dialog">
<imageobject>
<imagedata align="center" fileref="rdcatch.edit_switcher_event_dialog.png" scale="50"/>
</imageobject>
<caption>
<para xml:id="para.rdcatch.the_edit_switcher_event_dialog">The Edit Switcher Event Dialog</para>
</caption>
</mediaobject>
</para>
<para>
In addition to the usual fields, a switch event has
<computeroutput>Switch Matrix</computeroutput>
(the name of one of the switch matrices associated with the selected
<computeroutput>Location</computeroutput>),
<computeroutput>Switch Input</computeroutput> and
<computeroutput>Switch Output</computeroutput> controls.
When executed, a
switch events causes a take operation to be performed on the specified
switcher device between the specified input and output. It is
possible to specify the input and output either by their alphanumeric
names (assigned in RDAdmin) or by their absolute numbers.
</para>
</sect1>
</chapter>

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

1043
docs/opsguide/rdlibrary.xml Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Some files were not shown because too many files have changed in this diff Show More