diff --git a/.gitignore b/.gitignore index 32b2f469..c0396654 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/ChangeLog b/ChangeLog index bc9aab2c..1ce2c0a3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -16174,6 +16174,28 @@ * Updated 'NEWS'. 2017-10-17 Fred Gleason * Incremented the package version to 2.17.0int00. +2017-10-17 Fred Gleason + * Moved the man pages to 'docs/manpages/'. + * Stubbed out a Rivendell Operations Guide in 'docs/opsguide/'. +2017-10-17 Fred Gleason + * Added the text of the 'Generating and Maintaining Logs with + RDLogEdit' chapter to the Ops Guide. +2017-10-18 Fred Gleason + * Finished transcribing previous text into the Ops Guide. +2017-10-19 Fred Gleason + * Applied structural markup to the first three chapters of the + Operations Guide. +2017-10-19 Fred Gleason + * Added sectionalized id tags to the Ops Guide. +2017-10-19 Fred Gleason + * Applied structural markup to the first 'rdcatch' chapter of the + Operations Guide. +2017-10-19 Fred Gleason + * Applied structural markup to the 'rdlogedit' chapter of the + Operations Guide. +2017-10-19 Fred Gleason + * Applied structural markup to the 'rdairplay' chapter of the + Operations Guide. 2017-10-19 Fred Gleason * Added a 'Show Event Type' filter to rdcatch(1). 2017-10-19 Fred Gleason @@ -16198,6 +16220,11 @@ 2017-10-19 Fred Gleason * Updated 'NEWS'. * Incremented the package version to 2.17.0int02. +2017-10-23 Fred Gleason + * 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 * 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 * Updated 'NEWS'. * Incremented the package version to 2.17.0int03. +2017-11-01 Fred Gleason + * 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 + * Cleaned up title formatting in the Operations Guide. +2017-11-01 Fred Gleason + * 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 + * Added screenshots for the 'Generating Logs with RDLogManager' + chapter of the Operations Guide. +2017-11-02 Fred Gleason + * Added screenshots for the 'VoiceTracking' chapter of the + Operations Guide. +2017-11-02 Fred Gleason + * Removed FIXME clauses from the Operations Guide. + * Added a screenshot for RMLSend to the Operations Guide. +2017-11-02 Fred Gleason + * Moved the contents of 'docs/SWITCHERS.txt' to the Operations Guide. +2017-11-03 Fred Gleason + * Moved the contents of 'docs/GPIO.txt' to the Operations Guide. +2017-11-03 Fred Gleason + * Removed 'docs/ENCODERS.txt'. + * Removed 'docs/implemented_macros.txt'. + * Removed 'docs/JACK.txt'. +2017-11-03 Fred Gleason + * Renamed 'docs/docbook/' to 'docs/apis/'. + * Qualified all 'id=' tag attributes as 'xml:id=' in the Operations + Guide. +2017-11-03 Fred Gleason + * Moved the contents of 'docs/datetime_wildcards.txt' to an + appendix in the Operations Guide. +2017-11-03 Fred Gleason + * Moved the contents of 'docs/metadata_wildcards.txt' to an + appendix in the Operations Guide. +2017-11-03 Fred Gleason + * Refactored the XML source for the Operations Guide up into + per-chapter files. +2017-11-03 Fred Gleason + * Fixed a typo in 'docs/opsguide/filepath_wildcards.xml'. +2017-11-05 Fred Gleason + * Added DocBook stylesheets for books in 'docs/stylesheets/'. +2017-11-05 Fred Gleason + * Removed the 'Genmeral Notes' section titles from the + 'Supported GPIO/Switcher Devices' appendix in the Operations Guide. +2017-11-06 Fred Gleason + * Added a logo to the title page of the Operations Guide. +2017-11-06 Fred Gleason + * Added the Operations Guide to 'rivendell.spec.in'. +2017-11-06 Fred Gleason + * Moved the contents of 'docs/catchd.txt' to 'docs/apis/catchd.xml.' +2017-11-06 Fred Gleason + * Moved the contents of 'docs/MESSAGE_BOX.txt' to the + Operation Guide. +2017-11-06 Fred Gleason + * Moved the contents of 'docs/ripc.txt' to 'docs/apis/ripc.xml.' +2017-11-06 Fred Gleason + * Removed 'docs/NEXGEN_FILTER.txt'. +2017-11-06 Fred Gleason + * Moved the contents of 'docs/RIVENDELL_FILTER.txt' to the + Operation Guide. +2017-11-06 Fred Gleason + * Moved the contents of 'docs/WINGS_FILTER.txt' to the + Operation Guide. +2017-11-07 Fred Gleason + * Removed 'docs/NOW+NEXT.txt'. + * Removed 'docs/WIN32.txt'. + * Removed 'docs/copy_split_format.odt'. + * Moved remaining unformatted notes to 'docs/misc/. diff --git a/conf/Makefile.am b/conf/Makefile.am index 358171e2..9ef5488a 100644 --- a/conf/Makefile.am +++ b/conf/Makefile.am @@ -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\ diff --git a/docs/asound.conf-sample b/conf/asound.conf-sample similarity index 100% rename from docs/asound.conf-sample rename to conf/asound.conf-sample diff --git a/configure.ac b/configure.ac index e3caff2b..b2cfe01e 100644 --- a/configure.ac +++ b/configure.ac @@ -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 \ diff --git a/docs/ENCODERS.txt b/docs/ENCODERS.txt deleted file mode 100644 index e9a5e128..00000000 --- a/docs/ENCODERS.txt +++ /dev/null @@ -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. diff --git a/docs/GPIO.txt b/docs/GPIO.txt deleted file mode 100644 index e6af2134..00000000 --- a/docs/GPIO.txt +++ /dev/null @@ -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 -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! - ------------------------------------------------------------------------------ diff --git a/docs/JACK.txt b/docs/JACK.txt deleted file mode 100644 index 7d20fe05..00000000 --- a/docs/JACK.txt +++ /dev/null @@ -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_:capture_L - rivendell_:capture_R - ... - rivendell_:playout_L - rivendell_:playout_R - ... - -where is the number of the virtual 'card' Rivendell will use to -access JACK, and 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= -Destination= - -where: - = Arbitrary connection number, must start at '1' and go up - consecutively. - - = The name of the source JACK port to connect, in - standard CLIENTNAME:PORTNAME format. - - = 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. diff --git a/docs/MESSAGE_BOX.txt b/docs/MESSAGE_BOX.txt deleted file mode 100644 index ef9495be..00000000 --- a/docs/MESSAGE_BOX.txt +++ /dev/null @@ -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. diff --git a/docs/Makefile.am b/docs/Makefile.am index f1ff9227..8c8685e8 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -2,7 +2,7 @@ ## ## docs/automake.am for Rivendell ## -## (C) Copyright 2002-2016 Fred Gleason +## (C) Copyright 2002-2017 Fred Gleason ## ## 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\ diff --git a/docs/NEXGEN_FILTER.txt b/docs/NEXGEN_FILTER.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/NOW+NEXT.txt b/docs/NOW+NEXT.txt deleted file mode 100644 index 627b5aa2..00000000 --- a/docs/NOW+NEXT.txt +++ /dev/null @@ -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. diff --git a/docs/RIVENDELL_FILTER.txt b/docs/RIVENDELL_FILTER.txt deleted file mode 100644 index e0bfe3c9..00000000 --- a/docs/RIVENDELL_FILTER.txt +++ /dev/null @@ -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 -u -p -A --g -s -e -Where: - = The MySQL hostname of the source Rivendell database. - - = The MySQL username of the source Rivendell database. - - = The MySQL password of the source Rivendell database. - - = The name of the directory containing the source - Rivendell audio files. - - = The name of the group in which to place carts - belonging to a source Group for which there - is no corresponding destination Group. - - = The first cart in the range of those to be transferred. - - = 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. diff --git a/docs/SWITCHERS.txt b/docs/SWITCHERS.txt deleted file mode 100644 index b76f2fd7..00000000 --- a/docs/SWITCHERS.txt +++ /dev/null @@ -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 -parameter and the the base output number+the slot number-1 for the -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. - - ----------------------------------------------------------------------------- diff --git a/docs/WIN32.txt b/docs/WIN32.txt deleted file mode 100644 index 83c5fbf4..00000000 --- a/docs/WIN32.txt +++ /dev/null @@ -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. - diff --git a/docs/WINGS_FILTER.txt b/docs/WINGS_FILTER.txt deleted file mode 100644 index b67257c1..00000000 --- a/docs/WINGS_FILTER.txt +++ /dev/null @@ -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 -d -A [-e ] - -Where: - = 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. - - = The name of the Wings database file. - - = The name of the directory containing the Wings ATX - audio files. - - = 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. diff --git a/docs/apis/Makefile.am b/docs/apis/Makefile.am new file mode 100644 index 00000000..6bf6073c --- /dev/null +++ b/docs/apis/Makefile.am @@ -0,0 +1,64 @@ +## automake.am +## +## docs/docbook/automake.am for Rivendell +## +## (C) Copyright 2015-2017 Fred Gleason +## +## 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 diff --git a/docs/docbook/cae.xml b/docs/apis/cae.xml similarity index 100% rename from docs/docbook/cae.xml rename to docs/apis/cae.xml diff --git a/docs/apis/catchd.xml b/docs/apis/catchd.xml new file mode 100644 index 00000000..fc376855 --- /dev/null +++ b/docs/apis/catchd.xml @@ -0,0 +1,550 @@ + +
+ + Rivendell RDCatch Monitor Protocol + + + Fred + Gleason + fredg@paravelsystems.com + + + + + + Overview + + This defines the IP protocol used for communication between different + modules of Rivendell and the + rdcatchd8 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-code [arg] [...]! + + + + + cmd-code + + + + A two letter command code, describing the generic action to be + performed + + + + + + arg + + + + Zero or more arguments, delimited by spaces or, if the last + argument, by ! (see below) + + + + + + ! + + + + The ASCII character 33, indicating the end of the command sequence. + + + + + + + + Unprivileged Commands + + No authentication is required to execute these. + + + Drop Connection + + End the session and drop the TCP connection. + + + DC! + + + + + Send Password + + Send a password to the server for authentication. + + + PW passwd! + + + + + passwd + + + A password to be supplied before granting the client access. + + + + + rdcatchd8 will respond + with PW +! or + PW -!, indicating the success or + failure of the authentication. + + + + + + Privileged Commands + + A connection must be authenticated before these can be executed. + + + + Deck Event Processed + + Sent by RDCatchd whenever a deck event is processed. + + + DE deck-num + event-num! + + + + deck-num + + + The number of the deck originating the event. Record decks have + numbers in the range 1 through + 127, while Play decks have + numbers in the range 128 through + 254. + + + + + event-num + + + The new event state of the specified deck. + + + + + + See for + the list of possible deck event states. + + + + Reload Deck List + + Reload the record/play deck configuration. + + + RD! + + + rdcatchd8 will respond with + RS +!. + + + + Reload Event List + + Reload the list of scheduled events. + + + RS! + + + rdcatchd8 will respond with + RS +!. + + + + Add Event + + Add event to the event list. + + + RA event-num! + + + + event-num + + + The number of the event to add. + + + + + + rdcatchd8 + will respond with + RA event-num+!. + + + + Remove Event + + Remove event from the event list. + + + RR event-num! + + + + event-num + + + The number of the event to remove. + + + + + + rdcatchd8 + will respond with + RR event-num+!. + + + + Update Event + + Update event from the event list. + + + RU event-num! + + + + event-num + + + The number of the event to update. + + + + + + rdcatchd8 + will respond with + RU event-num+!. + + + + Request Deck Status + + Request the current deck status. + + + RE deck-num! + + + + deck-num + + + The number of the deck for which to return status. + + + + + + If deck-num is greater than zero, + rdcatchd8 will respond with + RE deck-num + status id + cutname! + + + + deck-num + + + Channel number + + + + + status + + + The current status of the deck. Possible values are: + + + + Deck Status Codes + + + + + CodeMeaning + + + 0Offline + 1Idle + 2Ready + 3Active (playing or recording) + 4Waiting (for a GPI) + + +
+
+
+
+ + event-id + + + ID number of current event (from RECORDINGS table) + + + + + cutname + + + The cutname of the event (present only for + status==3). + + + +
+ + If channel is zero, + rdcatchd8 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. + +
+ + Enable Metering + + Enable/Disable Audio Metering + + + RM state! + + + + state + + + 1 = Enabled, + 0 = Disabled. + + + + + + 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 + + + + + + + + Stop Deck + + Stop active event. + + + SR deck-num! + + + + deck-num + + + The number of the deck to stop. + + + + + + + + Purge Event + + Report purging of one-shot event. + + + PE event-num! + + + + event-num + + + The number of the purged event. + + + + + + Received upon completion of a one-shot event by + rdcatchd8 to indicate that + the event has been purged. + + + + + Reload Time Offset + + Reload the time offset value from the database. + + + RO! + + + + + Reload Heartbeat Configuration + + Reload the heartbeat configuration from the database. + + + RH! + + + + + Heartbeat Pulse + + Heartbeat Pulse, for connection keep-alive. + + + HB! + + + + + Restart Dropbox Instances + + Restart all rdimport1 + instances for running dropboxes. + + + RX! + + + + + Input Monitor State + + Turn the input monitor on or off. + + + MN deck-num + state! + + + + deck-num + + + The number of the deck. + + + + + state + + + 1 = Enabled, + 0 = Disabled. + + + + + + + + Set Exit Code + + Set the exit code of an event. + + + SC event-num + code + msg! + + + + event-num + + + The number of the event. + + + + + code + + + The numeric code to set. + + + + + msg + + + The text message to set. + + + + + + + + +
+ +
diff --git a/docs/apis/ripc.xml b/docs/apis/ripc.xml new file mode 100644 index 00000000..01822440 --- /dev/null +++ b/docs/apis/ripc.xml @@ -0,0 +1,613 @@ + +
+ + Rivendell Interprocess Communication Protocol + + + Fred + Gleason + fredg@paravelsystems.com + + + + + + Overview + + This defines the IP protocol used for communication between different + modules of Rivendell and the + ripcd8 daemon. + + + Connection to ripcd is by means of a TCP SOCK_STREAM connection to TCP + port 5006. The format of a message is as follows: + + + cmd-code [arg] [...]! + + + + + cmd-code + + + + A two letter command code, describing the generic action to be + performed + + + + + + arg + + + + Zero or more arguments, delimited by spaces or, if the last + argument, by ! (see below) + + + + + + ! + + + + The ASCII character 33, indicating the end of the command sequence. + + + + + + + + Unprivileged Commands + + No authentication is required to execute these. + + + Drop Connection + + End the session and drop the TCP connection. + + + DC! + + + + + Send Password + + Send a password to the server for authentication. + + + PW passwd! + + + + + passwd + + + A password to be supplied before granting the client access. + + + + + ripcd8 will respond + with PW +! or + PW -!, indicating the success or + failure of the authentication. + + + + + + Privileged Commands + + A connection must be authenticated before these can be executed. + + + + Request User + + Request the LOGIN_NAME of the user currently logged in. + + + RU! + + + ripcd8 will respond with + RU user-name!. + + + + user-name + + + The LOGIN_NAME of the user currently logged in. + + + + + + + + Set User + + Login in a user. + + + SU user-name! + + + ripcd8 will respond with + RU user-name!. + + + + user-name + + + The LOGIN_NAME of the user to log in. + + + + + + + + RML Send + + Send an RML command to a specified host. + + + MS ip-addr + echo + rml! + + + + ip-addr + + + IPv4 address of the destination, indotted-quad notation. + + + + + echo + + + 1 = Request echo, + 0 = Request no echo. + + + + + rml + + + The RML command to send. + + + + + + + + RML Echo + + Echo an RML command to a specified host. + + + ME ip-addr + echo + rml! + + + + ip-addr + + + IPv4 address of the destination, indotted-quad notation. + + + + + echo + + + 1 = Request echo, + 0 = Request no echo. + + + + + rml + + + The RML command to send. + + + + + + + + Get GPI Carts + + Return current GPI line cart numbers. + + + GC matrix! + + + Request the list of macro carts currently assigned for + matrix. The following record will + be returned for each line in the matrix: + + + GC + matrix + gpi-line + off-cart-num + on-cart-num! + + + + matrix + + + The specified matrix number. + + + + + gpi-line + + + The GPI line number. + + + + + off-cart-num + + + The number for the cart to be activated when + gpi-line transitions to an OFF + state. 0 indicates that no + cart is currently set. + + + + + on-cart-num + + + The number for the cart to be activated when + gpi-line transitions to an ON + state. 0 indicates that no + cart is currently set. + + + + + + + + Get GPO Carts + + Return current GPO line cart numbers. + + + GD matrix! + + + Request the list of macro carts currently assigned for + matrix. The following record will + be returned for each line in the matrix: + + + GC + matrix + gpo-line + off-cart-num + on-cart-num! + + + + matrix + + + The specified matrix number. + + + + + gpo-line + + + The GPO line number. + + + + + off-cart-num + + + The number for the cart to be activated when + gpo-line transitions to an OFF + state. 0 indicates that no + cart is currently set. + + + + + on-cart-num + + + The number for the cart to be activated when + gpo-line transitions to an ON + state. 0 indicates that no + cart is currently set. + + + + + + + + Get GPI States + + Return current GPI states. + + + GI matrix! + + + Request the list of current GPI states for + matrix. The following record will + be returned for each line in the matrix: + + + GI + matrix + gpi-line + state + mask! + + + + matrix + + + The specified matrix number. + + + + + gpi-line + + + The GPI line number. + + + + + state + + + 1 = GPI is ON, + 0 = GPI is OFF. + + + + + mask + + + 1 = GPI is ENABLED, + 0 = GPI is DISABLED. + + + + + + + + Get GPO States + + Return current GPO states. + + + GO matrix! + + + Request the list of current GPO states for + matrix. The following record will + be returned for each line in the matrix: + + + GI + matrix + gpo-line + state + mask! + + + + matrix + + + The specified matrix number. + + + + + gpo-line + + + The GPO line number. + + + + + state + + + 1 = GPO is ON, + 0 = GPO is OFF. + + + + + mask + + + 1 = GPO is ENABLED, + 0 = GPO is DISABLED. + + + + + + + + Get GPI Mask States + + Return current GPI mask states. + + + GM matrix! + + + Request the list of current GPI mask states for + matrix. The following record will + be returned for each line in the matrix: + + + GI + matrix + gpi-line + mask! + + + + matrix + + + The specified matrix number. + + + + + gpi-line + + + The GPI line number. + + + + + mask + + + 1 = GPI is ENABLED, + 0 = GPI is DISABLED. + + + + + + + + Get GPO Mask States + + Return current GPO mask states. + + + GM matrix! + + + Request the list of current GPO mask states for + matrix. The following record will + be returned for each line in the matrix: + + + GN + matrix + gpo-line + mask! + + + + matrix + + + The specified matrix number. + + + + + gpo-line + + + The GPO line number. + + + + + mask + + + 1 = GPO is ENABLED, + 0 = GPO is DISABLED. + + + + + + + + Reload GPI Table + + Reload the GPI table in ripcd8. + + + RG! + + + + + Get OnAir Flag + + Request the state of the OnAir flag. + + + TA! + + + The following record will be returned: + + + TAstate! + + + + state + + + 1 = Active, + 0 = Disabled. + + + + + + + + +
diff --git a/docs/docbook/web_api.xml b/docs/apis/web_api.xml similarity index 100% rename from docs/docbook/web_api.xml rename to docs/apis/web_api.xml diff --git a/docs/catchd.txt b/docs/catchd.txt deleted file mode 100644 index 1ce27004..00000000 --- a/docs/catchd.txt +++ /dev/null @@ -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: - - [][...]! - -where: - - is a two-letter code indicating the nature of the message. - 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 ! -- 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 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 ! -- Add Event -Add event number to the event list. Rdcatchd will respond with -RA +! - -RR ! -- Remove Event -Remove event number from the event list. Rdcatchd will respond with -RR +! - -RU ! -- Update Event -Refresh event number in the event list. Rdcatchd will respond with -RU +! - -RE ! -- Request Status - = Channel number - -If is greater than zero, rdcatchd will respond with -RE ! - = Channel number - - = 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 number of current event (from RECORDINGS table) - - = The cutname of the event (present only for ==3). - -If 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 ! -- Enable/Disable Metering - = 0 - Turn metering off - 1 - Turn metering on - -When metering is active, meter data packets will be periodically sent, -as follows: - -RM ! - = Deck number - - = Channel, 0 = Left, 1 = Right - - = Left audio level, in 1/100 of dbFS - - -SR ! -- Stop - = Deck Number - - -PE ! -- 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 ! -- Monitor State -Turn the input monitor for deck on or off. - - -RX! -- Restart dropbox instances - - -SC ! -Set exit code of event to . diff --git a/docs/copy_split_format.odt b/docs/copy_split_format.odt deleted file mode 100644 index 4228db07..00000000 Binary files a/docs/copy_split_format.odt and /dev/null differ diff --git a/docs/datetime_wildcards.txt b/docs/datetime_wildcards.txt deleted file mode 100644 index d145a84c..00000000 --- a/docs/datetime_wildcards.txt +++ /dev/null @@ -1,122 +0,0 @@ - Rivendell Date/Time Wildcards - -A date/time wildcard in Rivendell has the following form: - - % - -where: - - % -- A literal '%' - - -- Optional. One of the following meta-characters: - ^ -- Convert value indicated by to all uppercase. - $ -- Convert the initial character of the value indicated by - to uppercase. - - -- 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 '%'. diff --git a/docs/implemented_macros.txt b/docs/implemented_macros.txt deleted file mode 100644 index 434682ae..00000000 --- a/docs/implemented_macros.txt +++ /dev/null @@ -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'. diff --git a/docs/docbook/Makefile.am b/docs/manpages/Makefile.am similarity index 80% rename from docs/docbook/Makefile.am rename to docs/manpages/Makefile.am index 7cdc2847..21123aa6 100644 --- a/docs/docbook/Makefile.am +++ b/docs/manpages/Makefile.am @@ -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 ## @@ -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 = *~\ diff --git a/docs/docbook/rdclilogedit.xml b/docs/manpages/rdclilogedit.xml similarity index 100% rename from docs/docbook/rdclilogedit.xml rename to docs/manpages/rdclilogedit.xml diff --git a/docs/docbook/rdconvert.xml b/docs/manpages/rdconvert.xml similarity index 100% rename from docs/docbook/rdconvert.xml rename to docs/manpages/rdconvert.xml diff --git a/docs/docbook/rddbcheck.xml b/docs/manpages/rddbcheck.xml similarity index 100% rename from docs/docbook/rddbcheck.xml rename to docs/manpages/rddbcheck.xml diff --git a/docs/docbook/rdexport.xml b/docs/manpages/rdexport.xml similarity index 100% rename from docs/docbook/rdexport.xml rename to docs/manpages/rdexport.xml diff --git a/docs/docbook/rdimport.xml b/docs/manpages/rdimport.xml similarity index 100% rename from docs/docbook/rdimport.xml rename to docs/manpages/rdimport.xml diff --git a/docs/docbook/rdmarkerset.xml b/docs/manpages/rdmarkerset.xml similarity index 100% rename from docs/docbook/rdmarkerset.xml rename to docs/manpages/rdmarkerset.xml diff --git a/docs/docbook/rdrender.xml b/docs/manpages/rdrender.xml similarity index 100% rename from docs/docbook/rdrender.xml rename to docs/manpages/rdrender.xml diff --git a/docs/docbook/rdrevert.xml b/docs/manpages/rdrevert.xml similarity index 100% rename from docs/docbook/rdrevert.xml rename to docs/manpages/rdrevert.xml diff --git a/docs/manpages/rmlsend.xml b/docs/manpages/rmlsend.xml new file mode 100644 index 00000000..e1625288 --- /dev/null +++ b/docs/manpages/rmlsend.xml @@ -0,0 +1,101 @@ + + + + + rmlsend + 1 + November 2017 + Linux Audio Manual + + + rmlsend + Send Rivendell Macro Language (RML) commands + + + + + Fred + Gleason + fredg@paravelsystems.com + + Application Author + + + + + + + rmlsend + --from-file=filename + --to-host=hostname + --to-port=port + rml + + + + + Description + + rmlsend1 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). + + + If started with no arguments, + rmlsend1 will come up in GUI + mode, otherwise it will attempt to perform the specified operation and + then exit. + + + + Options + + + + filename + + + + Take the command(s) to send from filename, + rather than specifying them on the command-line. If + - is specified as + filename, the commands will be read + from standard input. + + + + + + + host + + + + Send the specified command(s) to host. + + + + + + + port + + + + Send the specified command(s) to UDP port + port. Default value is + 5858. + + + + + + + + + diff --git a/docs/metadata_wildcards.txt b/docs/metadata_wildcards.txt deleted file mode 100644 index 2dd5246b..00000000 --- a/docs/metadata_wildcards.txt +++ /dev/null @@ -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(
) %D(
) The start date/time, formatted according to
. The - following wildcards are available for
: - 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. diff --git a/docs/ALSA.txt b/docs/misc/ALSA.txt similarity index 100% rename from docs/ALSA.txt rename to docs/misc/ALSA.txt diff --git a/docs/misc/Makefile.am b/docs/misc/Makefile.am new file mode 100644 index 00000000..35f8d588 --- /dev/null +++ b/docs/misc/Makefile.am @@ -0,0 +1,36 @@ +## Makefile.am +## +## docs/misc/Makefile.am for Rivendell +## +## (C) Copyright 2017 Fred Gleason +## +## 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 diff --git a/docs/PODCASTING.txt b/docs/misc/PODCASTING.txt similarity index 100% rename from docs/PODCASTING.txt rename to docs/misc/PODCASTING.txt diff --git a/docs/RDMONITOR.txt b/docs/misc/RDMONITOR.txt similarity index 100% rename from docs/RDMONITOR.txt rename to docs/misc/RDMONITOR.txt diff --git a/docs/SAGE_ENDEC.txt b/docs/misc/SAGE_ENDEC.txt similarity index 100% rename from docs/SAGE_ENDEC.txt rename to docs/misc/SAGE_ENDEC.txt diff --git a/docs/ando_interface.odt b/docs/misc/ando_interface.odt similarity index 100% rename from docs/ando_interface.odt rename to docs/misc/ando_interface.odt diff --git a/docs/colors b/docs/misc/colors similarity index 100% rename from docs/colors rename to docs/misc/colors diff --git a/docs/pam_rd.txt b/docs/misc/pam_rd.txt similarity index 100% rename from docs/pam_rd.txt rename to docs/misc/pam_rd.txt diff --git a/docs/reports.txt b/docs/misc/reports.txt similarity index 100% rename from docs/reports.txt rename to docs/misc/reports.txt diff --git a/docs/scheduler_formats.ods b/docs/misc/scheduler_formats.ods similarity index 100% rename from docs/scheduler_formats.ods rename to docs/misc/scheduler_formats.ods diff --git a/docs/opsguide/Makefile.am b/docs/opsguide/Makefile.am new file mode 100644 index 00000000..6f9475a3 --- /dev/null +++ b/docs/opsguide/Makefile.am @@ -0,0 +1,240 @@ +## automake.am +## +## docs/opsguide/automake.am for Rivendell +## +## (C) Copyright 2017 Fred Gleason +## +## 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 diff --git a/docs/opsguide/filepath_wildcards.xml b/docs/opsguide/filepath_wildcards.xml new file mode 100644 index 00000000..38d550bc --- /dev/null +++ b/docs/opsguide/filepath_wildcards.xml @@ -0,0 +1,587 @@ + + Filepath Wildcards + + Filepath wildcards can be used in most places in RDAdmin where a filename + is required. + + + Definition + + A date/time wildcard in Rivendell has the following form: + + + %<meta-char><fmt-char> + + + where: + + + + % + + + A literal percent. + + + + + <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 '%' + + + + + + + + + + Examples + + For the date time of February 3rd, 2017 at 2:34:26 PM: + + + + %b + + + feb + + + + + %B + + + february + + + + + %^B + + + FEBRUARY + + + + + %$B + + + February + + + + + %A + + + friday + + + + + %a + + + fri + + + + + %u + + + 5 + + + + + %D + + + 02/03/17 + + + + + %j + + + 034 + + + + + %m/%d/%Y - %H:%M:%S + + + 02/03/2017 - 14:34:26 + + + + + %m/%d/%Y - %I:%M:%S %p + + + 02/03/2017 - 02:34:26 PM + + + + + + diff --git a/docs/opsguide/frontspiece.xml.in b/docs/opsguide/frontspiece.xml.in new file mode 100644 index 00000000..84463ab6 --- /dev/null +++ b/docs/opsguide/frontspiece.xml.in @@ -0,0 +1,18 @@ + + Rivendell Radio Automation System + Operations Guide + + + FredGleason + + + + @VERSION@ + + -2003-2017Fred Gleason + + + + + + diff --git a/docs/opsguide/gpio_switcher_devices.xml b/docs/opsguide/gpio_switcher_devices.xml new file mode 100644 index 00000000..a71b83da --- /dev/null +++ b/docs/opsguide/gpio_switcher_devices.xml @@ -0,0 +1,1819 @@ + + Supported GPIO/Switcher Devices + + The following GPIO/switcher devices are supported under Rivendell: + + + 360 Systems AM-16/B Audio Crosspoint Switcher + + + Driver Name: + + + 360 Systems AM-16/B + + + + + Supported RML Commands: + + + + Switch Take ['ST'] + + + + + + + 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 + + + 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! + + + + + BroadcastTools 10x1 + + + Driver Name: + + + BroadcastTools 10x1 + + + + + Supported RML Commands: + + + + Switch Take ['ST'] + + + + + + + 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. + + + + + BroadcastTools 16x1 + + + Driver Name: + + + BroadcastTools 16x1 + + + + + Supported RML Commands: + + + + Switch Take ['ST'] + + + + + + + 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. + + + + + BroadcastTools 16x2 + + + Driver Name: + + + BroadcastTools 16x2 + + + + + Supported RML Commands: + + + + GPO Set ['GO'] + Switch Take ['ST'] + + + + + + + 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. + + + + + BroadcastTools 8x2 + + + Driver Name: + + + BroadcastTools 8x2 + + + + + Supported RML Commands: + + + + Switch Add ['SA'] + Switch Remove ['SR'] + Switch Take ['ST'] + + + + + + + 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. + + + + + BroadcastTools ACS8.2 + + + Driver Name: + + + BroadcastTools ACS8.2 + + + + + Supported RML Commands: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + GPO Set ['GO'] + Switch Add ['SA'] + Switch Level ['SL'] + [output #1 only] + Switch Remove ['SR'] + Switch Take ['ST'] + + + + + + + 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. + + + + + BroadcastTools ADMS 44.22 Analog/AES Digital Matrix Switcher + + + Driver Name: + + + BroadcastTools ADMS 44.22 + + + + + Supported RML Commands: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + GPO Set ['GO'] + Switch Add ['SA'] + Switch Level ['SL'] + Switch Remove ['SR'] + Switch Take ['ST'] + + + + + + + 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. + + + + + BroadcastTools GPI-16 General Purpose Input Module + + + Driver Name: + + + BroadcastTools GPI-16 + + + + + Supported RML Commands: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + + + + + + + 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. + + + + + BroadcastTools Sentinel 4 Web AES Switcher + + + Driver Name: + + + BroadcastTools Sentinel 4 Web + + + + + Supported RML Commands: + + + + Switch Take ['ST'] + + + + + + + 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). + + + + + BroadcastTools SRC-16 + + + Driver Name: + + + BroadcastTools SRC-16 + + + + + Supported RML Commands: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + + + + + + + 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. + + + + + BroadcastTools SS 12.4 + + + Driver Name: + + + BroadcastTools SS 12.4 + + + + + Supported RML Commands: + + + + Switch Add ['SA'] + Switch Remove ['SR'] + Switch Take ['ST'] + + + + + + + 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. + + + + + BroadcastTools SS 16.4 + + + Driver Name: + + + BroadcastTools SS 16.4 + + + + + Supported RML Commands: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + GPO Set ['GO'] + Switch Add ['SA'] + Switch Remove ['SR'] + Switch Take ['ST'] + + + + + + + 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. + + + + + BroadcastTools SS 4.1 MLR Switcher/Router + + + Driver Name: + + + BroadcastTools SS4.1 MLR + + + + + Supported RML Commands: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + Switch Take ['ST'] + + + + + + + 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. + + + + + BroadcastTools SS4.2 + + + Driver Name: + + + BroadcastTools SS4.2 + + + + + Supported RML Commands: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + GPO Set ['GO'] + Switch Add ['SA'] + Switch Remove ['SR'] + Switch Take ['ST'] + + + + + + + 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. + + + + + BroadcastTools SS4.4 + + + Driver Name: + + + BroadcastTools SS4.4 + + + + + Supported RML Commands: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + GPO Set ['GO'] + Switch Add ['SA'] + Switch Remove ['SR'] + Switch Take ['ST'] + + + + + + + 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'. + + + + + BroadcastTools SS8.2 + + + Driver Name: + + + BroadcastTools SS8.2 + + + + + Supported RML Commands: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + GPO Set ['GO'] + Switch Add ['SA'] + Switch Remove ['SR'] + Switch Take ['ST'] + + + + + + + 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. + + + + + BroadcastTools 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 5002. + + + + + 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'] + + + + + + + Control is by means of a TCP/IP connection to port 5002. Output + busses are mapped as follows: + + + Harlond Output Buss Mappings + + + + + OutputBuss + + + 1PGM + 2AUD + 3UTL + 4CUE + + +
+ + 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'] + + + + + + + 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'] + + + + + + + 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->LivewireNodes. + 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'] + + + + + + + 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'] + + + + + + + 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. + + + + + Local Audio Adapter + + + Driver Name: + + + Local Audio Adapter + + + + + Supported RML Commands: + + + + Switch Add ['SA'] + Switch Add With Gain ['SX'] + Switch Remove ['SR'] + Switch Take ['ST'] + + + + + + + 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. + + + To configure it, set Card: to the + number of the audio adapter to use and the + Inputs: and + Outputs: fields to the + number of inputs and outputs on the card (as found in + RDADmin->ManageHosts->AudioResources. + + + + + Local GPIO + + + Driver Name: + + + Local GPIO + + + + + Supported RML Commands: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + GPO Set ['GO'] + + + + + + + This driver supports a variety of GPIO devices, including: + + 15 Pin Joystick Port + USB HID Devices + MeasurementComputing GPIO Cards + + + + 15 Pin Joystick Port + + Joystick support utilizes the Linux Input Device subsystem. Inputs + are active-low, and should be wired as follows: + + + 15 Pin Joystick Port Wiring + + + + + PinSignal + + + 2Input 1 + 4Ground + + 7Input 2 + 5Ground + + 10Input 3 + 12Ground + + 14Input 4 + 12Ground + + +
+ + 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/eventn + 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. + +
+ + MeasurementComputing GPIO Cards + + The following MeasurementComputing cards are supported: + + + PCI-PDIS08 + PCI-PDIS16 + PCI-DIO24 + + + The device name for the card should be + /dev/gpion. + + + PCI-PDIS08 and PCI-PDIS16 + + 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. + + + PCI-PDIS08 and PCI-PDIS16 Connector Pinout (DB37F) + + + + + PinSignal + + + 1Input 8/16 + 20Input 8/16 + + 2Input 7/15 + 21Input 7/15 + + 3Input 6/14 + 22Input 6/14 + + 4Input 5/13 + 23Input 5/13 + + 5Input 4/12 + 24Input 4/12 + + 6Input 3/11 + 25Input 3/11 + + 7Input 2/10 + 26Input 2/10 + + 8Input 1/9 + 27Input 1/9 + + 9Output 8/16 C + 28Output 8/16 N/O + + 10Output 7/15 C + 29Output 7/15 N/O + + 11Output 6/14 C + 30Output 6/14 N/O + + 12Output 5/13 N/C + 13Output 5/13 N/O + 31Output 5/13 C + + 14Output 4/12 N/C + 32Output 4/12 N/O + 33Output 4/12 C + + 15Output 3/11 N/C + 16Output 3/11 N/O + 34Output 3/11 C + + 17Output 2/10 N/C + 35Output 2/10 N/O + 36Output 2/10 C + + 18Output 1/9 N/C + 19Output 1/9 N/O + 37Output 1/9 C + + +
+
+ + PCI-DIO24 + + The Measurement Computing PCI-DIO24 board features 24 + bi-directional, TTL level signal lines, referenced to a + common ground. The driver can be + configured to use all of the lines as inputs or outputs + (mixing inputs and outputs on the same board is not supported). + When used as inputs, termination resistor packs should be + installed. + + + PCI-DIO24 Connector Pinout (DB37F) + + + + + PinSignal + + + 37Input 1 + 36Input 2 + 35Input 3 + 34Input 4 + 33Input 5 + 32Input 6 + 31Input 7 + 30Input 8 + 10Input 9 + 9Input 10 + 8Input 11 + 7Input 12 + 6Input 13 + 5Input 14 + 4Input 15 + 3Input 16 + 29Input 17 + 28Input 18 + 27Input 19 + 26Input 20 + 25Input 21 + 24Input 22 + 23Input 23 + 22Input 24 + 11Ground + 13Ground + 15Ground + 17Ground + 19Ground + 21Ground + 18+5 vdc + 20+5 vdc + 16+12 vdc + 14+-12 vdc + + +
+
+
+
+ + + Logitek vGuest + + + Driver Name: + + + Logitek vGuest + + + + + Supported RML Commands: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + GPO Set ['GO'] + Set Display ['SD'] + Switch Take ['ST'] + + + + + + + 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. + + + + + Modbus TCP + + + Driver Name: + + + Modbus TCP + + + + + Supported RML Commands: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + GPO Set ['GO'] + + + + + + + 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: + + + + Fire Salvo ['FS'] + Switch Take ['ST'] + + + + + + + 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'] + + + + + + + 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: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + GPO Set ['GO'] + + + + + + + This driver enables GPIO via the modem control lines on an RS-232C + serial device. The lines map as follows: + + + Modem Serial Lines GPI Signal Mapping + + + + + OutputBuss + + + 1Data Set Ready (DSR) + 2Clear To Send (CTS) + 3Carrier Detect (CI) + 4Ring Indicator (RI) + + +
+ + Modem Serial Lines GPO Signal Mapping + + + + + OutputBuss + + + 1Data Terminal Ready (DTR) + 2Ready To Send (RTS) + + +
+
+ + + Sierra Automated Systems 16000(D) Audio Router + + + Driver Name: + + + SAS 16000(D) + + + + + Supported RML Commands: + + + + Switch Take ['ST'] + + + + + + + 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: + 9600,N,8,1. + + + + + Sierra Automated Systems 32000 Audio Router + + + Driver Name: + + + SAS 32000 + + + + + Supported RML Commands: + + + + Switch Add ['SA'] + Switch Level ['SL'] (requires appropriate SAS hardware support) + Switch Remove ['SR'] + Switch Take ['ST'] + + + + + + + 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 + + + Driver Name: + + + SAS 64000 + + + + + Supported RML Commands: + + + + Switch Take ['ST'] + + + + + + + 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 + + + Driver Name: + + + SAS 64000-GPI + + + + + Supported RML Commands: + + + + GPO Set ['GO'] + Switch Take ['ST'] + + + + + + + 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: + + + + Console Label ['CL'] + Fire Salvo ['FS'] + GPO Set ['GO'] + Switch Add ['SA'] + Switch Crosspoint Gain ['SX'] + Switch Level ['SL'] + Switch Remove ['SR'] + Switch Take ['ST'] + Switch Take With Gain ['SG'] + + + + + + + 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: + + + Sine ACU-1 (Prophet) + + + + + Supported RML Commands: + + + + Switch Add ['SA'] + Switch Remove ['SR'] + Switch Take ['ST'] + + + + + + + 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: + + + + GPI Enable ['GE'] + GPI Set ['GI'] + GPO Set ['GO'] + Switch Take ['ST'] + + + + + + + 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'] + + + + + + + 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'] + + + + + + + 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'] + + + + + + + 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'] + + + + + + + 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. + + +
diff --git a/docs/opsguide/gplv2.xml b/docs/opsguide/gplv2.xml new file mode 100644 index 00000000..31098205 --- /dev/null +++ b/docs/opsguide/gplv2.xml @@ -0,0 +1,483 @@ + + The GNU General Public License, Version Two + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple + Place, Suite 330, Boston, MA 02111-1307 USA. + + + Everyone is permitted to copy and distribute verbatim copies of + this license document, but changing it is not allowed. + + + Preamble + + 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. + + + 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. + + + 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. + + + 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. + + + 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. + + + 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. + + + 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. + + + The precise terms and conditions for copying, distribution and + modification follow. + + + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND + MODIFICATION + + + + 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 + "Program", below, refers to any such program or work, + and a "work based on the Program" 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 "modification".) Each licensee + is addressed as "you". + + + 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. + + + + + 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. + + + 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. + + + + + 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: + + + + + You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + + + + 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. + + + + + 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.) + + + 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. + + + 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. + + + 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. + + + + + + + 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: + + + + + 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, + + + + + 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, + + + + + 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.) + + + + + 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. + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + 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. + + + 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. + + + This section is intended to make thoroughly clear what is + believed to be a consequence of the rest of this License. + + + + + 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. + + + + + 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. + + + 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. + + + + + 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. + + + + + + NO WARRANTY + + + + 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 "AS IS" + 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. + + + + + 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. + + + + + + END OF TERMS AND CONDITIONS + + + + How to Apply These Terms to Your New Programs + + 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. + + + 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. + + + + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + + + 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. + + + 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA + + + + Also add information on how to contact you by electronic and paper mail. + + + If the program is interactive, make it output a short notice like this + when it starts in an interactive mode: + + + + 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. + + + + 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. + + + 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: + + + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + + + + 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. + + + diff --git a/docs/opsguide/metadata_wildcards.xml b/docs/opsguide/metadata_wildcards.xml new file mode 100644 index 00000000..79442cd8 --- /dev/null +++ b/docs/opsguide/metadata_wildcards.xml @@ -0,0 +1,80 @@ + + 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. + + + Metadata Wildcards + + + + + + NowNextField + %a%AArtist + %b%BRecord Label + %c%CClient + %d(<dt>)%D(<dt>)Date/Time (see the Metadata DateTime Specification for values of <dt>) + %e%EAgency + %f%F[unassigned] + %g%GRivendell group name + %h%HEvent length (milliseconds) + %i%ICut Description + %j%JCut Number + %k%KStart [%k]/end [%K] time for rdimport1 [HH:MM:SS] + %l%LAlbum + %m%MComposer + %n%NRivendell cart number + %o%OOutcue + %p%PPublisher + %q%QStart [%q]/end [%Q] date for rdimport1 [YYYY-MM-DD] + %r%RConductor + %s%SSong ID + %t%TTitle + %u%UUser Definied + %v%V[Unassigned] + %w%W[Unassigned] + %x%X[Unassigned] + %y%YRelease Year + %z%Z[Unassigned] + \r\rLiteral Carriage Return (ASCII 13) + \n\nLiteral Linefeed (ASCII 10) + + +
+ + + Metadata DateTime Specification + + + + + WildcardMeaning + dThe day as a number without a leading zero (1 to 31) + ddThe day as a number with a leading zero (01 to 31) + dddThe abbreviated localized day name ('Mon' or 'Sun') + ddddThe long localized day name ('Monday' or 'Sunday') + MThe month as a number without a leading zero (1 to 12) + MMThe month as a number with a leading zero (01 to 12) + MMMThe abbreviated localized month name ('Jan' or 'Dec') + MMMM The long localized month name ('January' or 'December') + yyThe last two digits of the year + yyyyThe full four digits of the year + hThe hour without a leading zero (0 - 23, or 1 - 12 if using AM/PM display) + hhThe hour with a leading zero (00 - 23, or 01 -12 if using AM/PM display) + mThe minute without a leading zero (0 - 59) + mmThe minute with a leading zero (00 - 59) + sThe second without a leading zero (00 - 60) + ssThe second with a leading zero (00 - 60) + zThe milliseconds without a leading zero (0 - 999) + zzzThe milliseconds with leading zeros (000 - 999) + APUse AM/PM display. The 'AP' will be replaced by 'AM' or 'PM' as appropriate + apUse AM/PM display. The 'ap' will be replaced by 'am' or 'pm' as appropriate + + +
+ +
diff --git a/docs/opsguide/opsguide.xml b/docs/opsguide/opsguide.xml new file mode 100644 index 00000000..edb84bd4 --- /dev/null +++ b/docs/opsguide/opsguide.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + +]> + + + &frontspiece; + &overview; + &rdlogin; + &rdlibrary; + &rdcatch; + &rdlogedit; + &rdairplay; + &rdlogmanager; + &voicetracking; + &rml; + &utilities; + &gplv2; + &gpio_switcher_devices; + &filepath_wildcards; + &metadata_wildcards; + &rivendell_filter; + &wings_filter; + + + diff --git a/docs/opsguide/overview.xml b/docs/opsguide/overview.xml new file mode 100644 index 00000000..f09eb4e8 --- /dev/null +++ b/docs/opsguide/overview.xml @@ -0,0 +1,327 @@ + + System Overview + + + Introducing Rivendell + + 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: + + + + Audio Routing Switchers + Satellite Downlink Receivers + Audio Mixing Consoles + Commercial Traffic and Music Scheduling Systems + + + + Rivendell is made available under the terms of the + GNU General Public License, + version 2. + As such, it comes with absolutely no warranty, + not even the implied + warranties of merchantability or fitness for a particular purpose. + See the full text of the GPLv2 for details. + + + Rivendell has been designed and developed from the ground up to run + on the popular and highly stable GNU/Linux + operating system. + Selected tools (mostly having to do with log generation) have also + been ported to run in the Microsoft Windows + environment as well. + Full source code as well as binary installation packages for Windows + and select Linux distributions are available on line. + + + 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. + + + 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: + + + + + RDAdmin + + System wide configuration + + + + RDLibrary + + Library content management + + + + RDCatch + + Automatic event scheduler + + + + RDAirPlay + + On-air play out application + + + + RDLogEdit + + Log editing and voicetracking tool + + + + RDLogManager + + Automated log generation and interface utility + + + + RDLogin + + Set the current user on a Rivendell host + + + + RDCartSlots + + Emulate a traditional broadcast cart machine + + + + RDPanel + + Large "cart wall" application + + + + RDCastManager + + Podcast feed manager + + + + + + 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. + + + The Rivendell Object Paradigm + + All Rivendell modules make use of the following four classes of + system resources: + + + + + Hosts + + + Users + + + Groups + + + Services + + + + + We'll cover each of these concepts in turn. + + + Hosts + + Every physical computer within a given network that is running + Rivendell software is referred to as a host. + 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. + + + + Users + + Every host on a Rivendell network has one or more + users 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 default user. + 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. + + + + Groups + + A Rivendell group 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. + + + + Services + + 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 service, 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. + + + + + The Rivendell Hardware Paradigm + + 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. + + + Audio Adapters + + An audio adapter 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: + + + + + Advanced Linux Sound Architecture (ALSA) + + + 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/. + + + + + HPI Adapters + + + 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/. + + + + + JACK Audio Interconnect Kit + + + 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/. + + + + + + + + Serial Ports + + Commonly known in the DOS/Windows world as 'COM ports', + serial ports 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. + + + + GPIO/Switcher Devices + + 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. + GPIO 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. GPI + (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 GPO (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. + + + + + diff --git a/docs/opsguide/rdairplay.audio_meter.png b/docs/opsguide/rdairplay.audio_meter.png new file mode 100644 index 00000000..b9a78bf0 Binary files /dev/null and b/docs/opsguide/rdairplay.audio_meter.png differ diff --git a/docs/opsguide/rdairplay.button_log_widget.png b/docs/opsguide/rdairplay.button_log_widget.png new file mode 100644 index 00000000..2349df04 Binary files /dev/null and b/docs/opsguide/rdairplay.button_log_widget.png differ diff --git a/docs/opsguide/rdairplay.delete_from.png b/docs/opsguide/rdairplay.delete_from.png new file mode 100644 index 00000000..8b025adc Binary files /dev/null and b/docs/opsguide/rdairplay.delete_from.png differ diff --git a/docs/opsguide/rdairplay.edit_button_dialog.png b/docs/opsguide/rdairplay.edit_button_dialog.png new file mode 100644 index 00000000..0717de44 Binary files /dev/null and b/docs/opsguide/rdairplay.edit_button_dialog.png differ diff --git a/docs/opsguide/rdairplay.edit_buttons.png b/docs/opsguide/rdairplay.edit_buttons.png new file mode 100644 index 00000000..76ca9085 Binary files /dev/null and b/docs/opsguide/rdairplay.edit_buttons.png differ diff --git a/docs/opsguide/rdairplay.edit_event_dialog.png b/docs/opsguide/rdairplay.edit_event_dialog.png new file mode 100644 index 00000000..b4b78b84 Binary files /dev/null and b/docs/opsguide/rdairplay.edit_event_dialog.png differ diff --git a/docs/opsguide/rdairplay.full_log_widget.png b/docs/opsguide/rdairplay.full_log_widget.png new file mode 100644 index 00000000..c7837dac Binary files /dev/null and b/docs/opsguide/rdairplay.full_log_widget.png differ diff --git a/docs/opsguide/rdairplay.label_widget.png b/docs/opsguide/rdairplay.label_widget.png new file mode 100644 index 00000000..0c700937 Binary files /dev/null and b/docs/opsguide/rdairplay.label_widget.png differ diff --git a/docs/opsguide/rdairplay.mode_widget.png b/docs/opsguide/rdairplay.mode_widget.png new file mode 100644 index 00000000..849a19a9 Binary files /dev/null and b/docs/opsguide/rdairplay.mode_widget.png differ diff --git a/docs/opsguide/rdairplay.next_stop_widget.png b/docs/opsguide/rdairplay.next_stop_widget.png new file mode 100644 index 00000000..1eaf06fe Binary files /dev/null and b/docs/opsguide/rdairplay.next_stop_widget.png differ diff --git a/docs/opsguide/rdairplay.piewedge_widget.png b/docs/opsguide/rdairplay.piewedge_widget.png new file mode 100644 index 00000000..8d692cd5 Binary files /dev/null and b/docs/opsguide/rdairplay.piewedge_widget.png differ diff --git a/docs/opsguide/rdairplay.postpoint_early_widget.png b/docs/opsguide/rdairplay.postpoint_early_widget.png new file mode 100644 index 00000000..1691abb8 Binary files /dev/null and b/docs/opsguide/rdairplay.postpoint_early_widget.png differ diff --git a/docs/opsguide/rdairplay.postpoint_late_widget.png b/docs/opsguide/rdairplay.postpoint_late_widget.png new file mode 100644 index 00000000..8ae41880 Binary files /dev/null and b/docs/opsguide/rdairplay.postpoint_late_widget.png differ diff --git a/docs/opsguide/rdairplay.postpoint_ontime_widget.png b/docs/opsguide/rdairplay.postpoint_ontime_widget.png new file mode 100644 index 00000000..28c08d8c Binary files /dev/null and b/docs/opsguide/rdairplay.postpoint_ontime_widget.png differ diff --git a/docs/opsguide/rdairplay.rdairplay_screenshot.png b/docs/opsguide/rdairplay.rdairplay_screenshot.png new file mode 100644 index 00000000..3b6de07d Binary files /dev/null and b/docs/opsguide/rdairplay.rdairplay_screenshot.png differ diff --git a/docs/opsguide/rdairplay.select_a_log_dialog.png b/docs/opsguide/rdairplay.select_a_log_dialog.png new file mode 100644 index 00000000..d3024abc Binary files /dev/null and b/docs/opsguide/rdairplay.select_a_log_dialog.png differ diff --git a/docs/opsguide/rdairplay.soundpanel_widget.png b/docs/opsguide/rdairplay.soundpanel_widget.png new file mode 100644 index 00000000..cf403abd Binary files /dev/null and b/docs/opsguide/rdairplay.soundpanel_widget.png differ diff --git a/docs/opsguide/rdairplay.wallclock_widget.png b/docs/opsguide/rdairplay.wallclock_widget.png new file mode 100644 index 00000000..65023530 Binary files /dev/null and b/docs/opsguide/rdairplay.wallclock_widget.png differ diff --git a/docs/opsguide/rdairplay.where_to.png b/docs/opsguide/rdairplay.where_to.png new file mode 100644 index 00000000..29296dd2 Binary files /dev/null and b/docs/opsguide/rdairplay.where_to.png differ diff --git a/docs/opsguide/rdairplay.xml b/docs/opsguide/rdairplay.xml new file mode 100644 index 00000000..e3ed1e09 --- /dev/null +++ b/docs/opsguide/rdairplay.xml @@ -0,0 +1,568 @@ + + Running Logs with RDAirPlay + + Overview + + RDAirPlay is the Rivendell module used to run logs generated by the + RDLogEdit or RDLogManager (for an overview of Rivendell logs, see + ). + It contains a wide array of features for enabling + playout of audio content in live assist as well as fully automated + environments. + + + + + + + + The RDAirPlay Main Window + + + + + + Log Machines + + Fundamental to the operation of RDAirPlay is the concept of a + log machine. + A log machine is a virtual “device” into which a Rivendell + log may be loaded and executed. RDAirPlay has three such log machines, + called Main Log, + Aux 1 Log and + Aux 2 Log. 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. + + + + Layout + + 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. + + + The top area contains the following indicators: + + + The Wall Clock + + + + + + + + + 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. + + + + The Post Point Counter + + + + + + + + + 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. + + + The counter can be in one of four possible states: + Idle, + On Time, + Under Time or + Over Time. + 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. + + + 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 + On Time mode. The value shown in + the square brackets is the + scheduled time of the hard-timed event. + + + + + + + + + + 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 + Early + mode. It will also give an indication of how + much more material would need to be added to make the join on time. + + + + + + + + + + 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 + Late + mode. It will also give an indication of how + much material would need to be removed to make the join on time. + + + + The Audio Meter + + + + + + + + + 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. + + + + The Pie Wedge Widget + + + + + + + + + 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). + + + + The Next Stop Counter + + + + + + + + + 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 + Main Log machine, with the actual + predicted time in the square brackets. If the + Main Log is already + stopped, then the counter simply displays + Stopped. + + + + The Mode Indicator + + + + + + + + + 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: + Automatic, in which all log features, + including PLAY and + SEGUE transitions and hard times + are fully + enabled; LiveAssist, in which no + automatic transitions or hard start + times are executed but automatic crossfades are done between + elements; and Manual, 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. + + + + The Label Area + + + + + + + + + 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. + + + + The Right-Hand Side + + 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). + + + + The Full Log Widget + + + + + + + + + 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 + Select Log button to bring up the + Select Log dialog, select the + desired log from the list and then touch + Load. The currently loaded + log can also be saved by touching the + Save or + Save As buttons, or + the current log unloaded by touching + Unload. + + + + + + + The Select Log Dialog + + + + Once a log is loaded, it can be started at any point by touching an + event and then pressing the Play + button. Any playing event can + likewise be stopped by touching in the event and then pressing the + Stop 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 + Make Next 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. + + + 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 + "in progress", for example). To audition the audio, + simply press the Play button. + The slider can be moved to adjust + where in the audio to audition from. To set the start position, + press the Start 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 + Start button again returns + the dialog to Audition mode. + + + + + + + The Edit Event Dialog + + + + When running a log, it is often desirable to have the currently + playing event always in sight. To do this, toggle the + Scroll + button "ON" (blue background). + + + + The Button Log Widget + + + + + + + + + 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 + Main Log 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. + + + To start an event from the button log, simply touch an event's + corresponding Start 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. + + + + + Editing a Log + + Drag and Drop + + + + + + + + + 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. + + + + The Editing Buttons + + + + + + + + + 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. + + + Adding an Event + + To add an event, touch the ADD + button to open the Select Cart dialog, + pick the desired cart and then touch + OK. To place the selected cart + using the button log widget, simply touch one of the yellow + WHERE? + buttons. To place it using the full log widget, click the event + where you wish it to go and then touch the yellow + WHERE? 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 + ADD button again + to cancel the operation. + + + + + + + RDAirPlay Prompting for a Location + + + + 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. + + + + Deleting an Event + + To delete an event, touch the DEL + button, then touch one of the + violet DELETE buttons in the button + log widget, or select an event + and then touch the violet DELETE + button. To cancel the operation, + simply touch the DEL button again. + + + 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. + + + + Moving an Event + + To move an event, touch the MOVE + button, then touch one of the violet + MOVE buttons in the button log + widget, or select an event and then + touch the violet MOVE button, + then touch one of the yellow TO + buttons + in the button log widget, or select an event and then touch the + yellow TO button. + To cancel the operation at any stage, simply touch + the MOVE button again. + It is perfectly permissible to move an event + between two different log machines. + + + + Copying an Event + + To copy an event, touch the COPY + button, then touch one of the + violet COPY buttons in the button + log widget, or select an event + and then touch the violet COPY + button, then touch one of the yellow + TO buttons in the button log + widget, or select an event and then + touch the yellow TO button. + To cancel the operation at any stage, + simply touch the COPY button again. + It is perfectly permissible to + copy an event between two different log machines. + + + + + + + RDAirPlay Prompting for a Cart to Copy + + + + 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. + + + + + + + + + + + + The SoundPanel + + The SoundPanel is an array of buttons that appears in the right-hand + side of RDAirPlay when the Sound Panel + 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. + + + + Panel Types + + 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 U + or S followed by a + number. An S indicates that the + panel is a 'system' panel, + meaning that its button assignments will show up only on this + particular host system; while a U + indicates a 'user' panel, + one which is associated with a particular user and that will + "follow around" 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). + + + + Programming a SoundPanel Button + + To associate a cart with a panel button, first touch the + Setup + button, which will begin to flash. (Depending upon how the system + administrator has configured RDAirPlay, the + Setup button may be + disabled). Next, touch the button you wish to program, opening the + Edit Button dialog. + + + + + + + The Edit Button Dialog + + + + Touch the Set Cart 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 Clear button. To assign + a custom background color to the + button, touch the Set Color button. + A custom label can be entered + in the Label field, or the name of + the cart will be used by default. + Touch the OK button when done. + When done programming all the + desired buttons, touch the Setup + button again to toggle off Setup mode. + + + 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. + + + + diff --git a/docs/opsguide/rdcatch.add_event_dialog.png b/docs/opsguide/rdcatch.add_event_dialog.png new file mode 100644 index 00000000..6f5ed8d8 Binary files /dev/null and b/docs/opsguide/rdcatch.add_event_dialog.png differ diff --git a/docs/opsguide/rdcatch.edit_cart_event_dialog.png b/docs/opsguide/rdcatch.edit_cart_event_dialog.png new file mode 100644 index 00000000..c7128657 Binary files /dev/null and b/docs/opsguide/rdcatch.edit_cart_event_dialog.png differ diff --git a/docs/opsguide/rdcatch.edit_download_dialog.png b/docs/opsguide/rdcatch.edit_download_dialog.png new file mode 100644 index 00000000..3bfa2f8d Binary files /dev/null and b/docs/opsguide/rdcatch.edit_download_dialog.png differ diff --git a/docs/opsguide/rdcatch.edit_playout_dialog.png b/docs/opsguide/rdcatch.edit_playout_dialog.png new file mode 100644 index 00000000..c32a662d Binary files /dev/null and b/docs/opsguide/rdcatch.edit_playout_dialog.png differ diff --git a/docs/opsguide/rdcatch.edit_recording_dialog.png b/docs/opsguide/rdcatch.edit_recording_dialog.png new file mode 100644 index 00000000..2893082a Binary files /dev/null and b/docs/opsguide/rdcatch.edit_recording_dialog.png differ diff --git a/docs/opsguide/rdcatch.edit_switcher_event_dialog.png b/docs/opsguide/rdcatch.edit_switcher_event_dialog.png new file mode 100644 index 00000000..4a654558 Binary files /dev/null and b/docs/opsguide/rdcatch.edit_switcher_event_dialog.png differ diff --git a/docs/opsguide/rdcatch.edit_upload_dialog.png b/docs/opsguide/rdcatch.edit_upload_dialog.png new file mode 100644 index 00000000..f9bb8899 Binary files /dev/null and b/docs/opsguide/rdcatch.edit_upload_dialog.png differ diff --git a/docs/opsguide/rdcatch.rdcatch_screenshot.png b/docs/opsguide/rdcatch.rdcatch_screenshot.png new file mode 100644 index 00000000..2741a9af Binary files /dev/null and b/docs/opsguide/rdcatch.rdcatch_screenshot.png differ diff --git a/docs/opsguide/rdcatch.xml b/docs/opsguide/rdcatch.xml new file mode 100644 index 00000000..072ad660 --- /dev/null +++ b/docs/opsguide/rdcatch.xml @@ -0,0 +1,747 @@ + + Automating Tasks with RDCatch + + Choosing the Correct Automation Tool + + 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. + + + 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 recording, a + play out, an + upload or download, + a macro execution or an operation on an audio + switcher 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. + + + 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. + + + 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. + + + + The RDCatch Main Window + + After starting up RDCatch, you will see the + . 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. + + + The Record / Play Out Deck Area + + 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. + + + 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 R + to indicate a record deck and a + P to indicate a play out deck. + Next, for record decks, there is + a MON button, used to monitor the + audio present at the deck input, + followed by an ABORT 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 . + + + RDCatch Event States + + + + + + + Status + + + Meaning + + + + + + + IDLE + + + The deck is available for events + + + + + READY + + + The deck has started monitoring audio but the transport is + not yet rolling (record decks only). + + + + + WAITING + + + The deck is waiting for a GPI event (record decks only) + + + + + RECORDING + + + The deck is recording (record decks only) + + + + + PLAYING + + + The deck is playing out (play out decks only) + + + + + OFFLINE + + + The deck is configured but not available + + + + +
+ + + + + + + The RDCatch Main Window + + + + + Finally, each deck has an audio meter on its right-hand end, used + to verify audio levels in realtime. + +
+ + The Filter Area + + Immediately below the decks is the filter area, consisting of the + Show Only Active Events, + Show Only Today's Events + Show DayOfWeek and + Show Event Type + controls, which are used to select which events will be + visible in the events list area immediately below. + + + + The Event List + + 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 + + + + RDCatch Event State Colors + + + + + + + Color + + + Meaning + + + + + + + YELLOW + + + The event is next to be executed. + + + + + GREEN + + + The event is active. + + + + + CYAN + + + The event is in the READY state. + + + + + VIOLET + + + The event is in the WAITING state. + + + + + RED/PINK + + + The event is reporting an error. + + + + +
+ + Each entry in the event list starts with an icon that indicates + the type of the event, as shown in + + + + RDCatch Event Icons + + + + + + + [RECORD_ICON] + + + Record Event + + + + + [PLAYOUT ICON] + + + Play Out Event + + + + + [SWITCH ICON] + + + Switch Event + + + + + [MACRO ICON] + + + Macro Event + + + + + [UPLOAD ICON] + + + Upload Event + + + + + [DOWNLOAD ICON] + + + Download Event + + + + +
+ + Next on each line comes the + Description (settable by the user) and + Location for the event, the + location being the name of the host/deck + where the event will run. Then comes the + Start and + End 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: + + + Gpi: <start-time>,<end-time>,<gpi-num>,<wait-time> + + + Where: + + + + + <start-time> + + + 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). + + + + + <end-time> + + + 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). + + + + + <gpi-num> + + + 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. + + + + + <wait-time> + + + 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). + + + + + + + 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. + + + Next come the Source and + Destination 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. + + + 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 + Origin 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. + +
+ + The Button Area + + At the bottom of the main window are various buttons. On the + left-hand side, the Add, + Edit and + Delete buttons are used to manage + events in the event list. Clicking the + Scroll 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. + + + On the right hand side, in addition to + Close, 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. + + +
+ + Adding New Events + + A new event can be added to the event list by simply clicking the + Add button to bring up the Add + Event Dialog (see ). + Simply clicking the button that correspond to the desired type of + event will create it. + + + + + + + + The Add Event Dialog + + + + + + Automating Recordings + + Automated recordings are configured by means of the Edit Recording + dialog (see ), which can be accessed either by clicking + the Recording button in the Add Event + dialog to create a new record + event or by touching the Edit button + to modify an existing event. + + + The 'Start Parameters' Section + + 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 + Window Start and + Windows End 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 Start Delay between reception of + the GPI event and the actual start of the recording. + + + + + + + + The Edit Recording Dialog + + + + + + The 'End Parameters' Section + + 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 + Hard Time and + Length 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 + Max Record Length setting, + which limits the maximum length of the recording in the event that + the expected GPI event is never received. + + + + Programming Multiple Recordings in a Single Event + + 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 + Allow Multiple Recordings Within This Window + 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. + + + + Selecting a Record Source + + If the selected record deck (chosen in the + Location 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 Source drop-down menu. + + + + Selecting a Record Destination + + 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 Select button. + + + + Setting the Active Days for a Recording + + A check should be placed next to each day of the week for which a + recording should be made in the + Active Days box. If no days are + checked, then no recordings at all will be made. + + + + Record List Management with Event Active and Make OneShot + + The record event will be actually executed only if + Event Active 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. + + + For events that need to be executed only once, the + Make OneShot + box can be ticked. Such an event will execute just once, and + then automatically delete itself from the event list. + + + + + Automating Playouts + + Automated playouts are configured by means of the Edit Playout + dialog (see ), which can be accessed either by + clicking the Playout button in + the Add Event dialog to create a new + record event or by touching the + Edit button to modify an existing + event. The process of configuring a playout is very similar to that + for configuring a recording – see the + + above for details. + + + + + + + + The Edit Playout Dialog + + + + + + Automating Uploads/Downloads + + 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 + Download button in the Add + Event dialog (see ) to create a new record event or + by touching the Edit button to + modify an existing event. + + + + + + + + The Edit Download Dialog + + + + + With the exception of the Url, + Username and + Password controls, + the process of configuring a download is very similar to that for + configuring a recording – see the + above for + details. + + + The Url control is used to specify + the Uniform Resource Locater for + the material to be downloaded. The following download types are + supported: http:, + ftp:, sftp: and + file:. The Url + field can also include + wildcard characters that can be used to construct date-based URLs. + + + The Username and + Password fields are used to + indicate the username + and password required for access to the server referenced in the + Url. + For public web pages and anonymous FTP servers, these fields can be + left blank. + + + Automated uploads are configured by means of the Edit Upload dialog + (see ), which can be accessed either by clicking the + Upload button in the Add Event + dialog to create a new record event or + by touching the Edit button to + modify an existing event. The + following upload types are supported: ftp:, + sftp: and file:. As with + downloads, the Url field can also + include wildcard characters that + can be used to construct date-based URLs. + + + + + + + + The Edit Upload Dialog + + + + + Configuration of an upload event is very similar to that of a download, + with the addition of the + Export Format 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: + + + + + PCM16 Linear (*.wav) + + + Free Lossless Audio Codec [FLAC] (*.flac) + + + MPEG Layer 2 (*.mp2) + + + MPEG Layer 3 (*.mp3) + + + OggVorbis (*.ogg) + + + + + The desired upload format and parameters are set by clicking the + Set button. + + + + Automating Macro Execution + + It's possible to configure the automatic execution of a Macro Cart + by means of the Edit Cart Event dialog (see ), which + can be accessed either by clicking the + Macro Cart button in the Add + Event dialog to create a new Macro Cart event or by touching the + Edit button to modify an existing + event. The process of configuring + a macro cart event is very similar to that for configuring a + recording – see + above for details. + + + + + + + + The Edit Cart Event Dialog + + + + + + Automating Switcher Operations + + It's possible to configure an automatic operation on a switcher + device by means of the Edit Switcher Event dialog (see + ), which can be accessed either by clicking the + Switch Event button + in the Add Event dialog to create a new switch event or by touching + the Edit button to modify an + existing event. + + + + + + + + The Edit Switcher Event Dialog + + + + + In addition to the usual fields, a switch event has + Switch Matrix + (the name of one of the switch matrices associated with the selected + Location), + Switch Input and + Switch Output 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. + + +
diff --git a/docs/opsguide/rdlibrary.cd_ripper_dialog.png b/docs/opsguide/rdlibrary.cd_ripper_dialog.png new file mode 100644 index 00000000..5d6a1f1b Binary files /dev/null and b/docs/opsguide/rdlibrary.cd_ripper_dialog.png differ diff --git a/docs/opsguide/rdlibrary.edit_cart_dialog.png b/docs/opsguide/rdlibrary.edit_cart_dialog.png new file mode 100644 index 00000000..304c4be2 Binary files /dev/null and b/docs/opsguide/rdlibrary.edit_cart_dialog.png differ diff --git a/docs/opsguide/rdlibrary.edit_cut_info_dialog.png b/docs/opsguide/rdlibrary.edit_cut_info_dialog.png new file mode 100644 index 00000000..84d1bf75 Binary files /dev/null and b/docs/opsguide/rdlibrary.edit_cut_info_dialog.png differ diff --git a/docs/opsguide/rdlibrary.edit_macro_cart_dialog.png b/docs/opsguide/rdlibrary.edit_macro_cart_dialog.png new file mode 100644 index 00000000..1075d823 Binary files /dev/null and b/docs/opsguide/rdlibrary.edit_macro_cart_dialog.png differ diff --git a/docs/opsguide/rdlibrary.edit_marker_dialog.png b/docs/opsguide/rdlibrary.edit_marker_dialog.png new file mode 100644 index 00000000..b16adcf1 Binary files /dev/null and b/docs/opsguide/rdlibrary.edit_marker_dialog.png differ diff --git a/docs/opsguide/rdlibrary.import_export_dialog.png b/docs/opsguide/rdlibrary.import_export_dialog.png new file mode 100644 index 00000000..eff2a5ff Binary files /dev/null and b/docs/opsguide/rdlibrary.import_export_dialog.png differ diff --git a/docs/opsguide/rdlibrary.rdlibrary_screenshot.png b/docs/opsguide/rdlibrary.rdlibrary_screenshot.png new file mode 100644 index 00000000..14efd571 Binary files /dev/null and b/docs/opsguide/rdlibrary.rdlibrary_screenshot.png differ diff --git a/docs/opsguide/rdlibrary.rip_disk_dialog.png b/docs/opsguide/rdlibrary.rip_disk_dialog.png new file mode 100644 index 00000000..77938df8 Binary files /dev/null and b/docs/opsguide/rdlibrary.rip_disk_dialog.png differ diff --git a/docs/opsguide/rdlibrary.set_cart_cut_dialog.png b/docs/opsguide/rdlibrary.set_cart_cut_dialog.png new file mode 100644 index 00000000..c6f5a89a Binary files /dev/null and b/docs/opsguide/rdlibrary.set_cart_cut_dialog.png differ diff --git a/docs/opsguide/rdlibrary.xml b/docs/opsguide/rdlibrary.xml new file mode 100644 index 00000000..5da30418 --- /dev/null +++ b/docs/opsguide/rdlibrary.xml @@ -0,0 +1,1043 @@ + + Content Management with RDLibrary + + The Rivendell Library Structure and RDLibrary + + Carts + + The Rivendell Library consists of a set of objects called + carts. + A cart is a data container that holds either one or more pieces + of audio (called an audio cart), or macro + commands to the system + (called a macro cart). The cart is the + fundamental schedule + building block in Rivendell, in that it is the smallest object or + 'atom' that the outside world (like a traffic or music scheduler) + can see. + + + RDLibrary, upon startup, will show the current list of all carts + on the system (see below). + + + + + + + + RDLibrary Main Window + + + + + A number of important attributes of carts can be seen from this + illustration. First is the cart's number. Each cart in the Library + gets assigned a unique number when it is created. This number can + range between 000001 and 999999, and is the primary 'handle' by which + both Rivendell and external systems (like traffic or music schedulers) + refer to the cart. Very often, sites have specific rules concerning + which types of audio (commercials, promos, music, etc) and macros get + assigned which numbers. We'll cover this area in some detail when + we discuss groups. + + + Immediately to the left of the cart number is an icon indicating + the type of cart. Just to the right of the cart number is the + average length of the cart. Except in the case of where + timescaling is in use (in which case it will be indicated in + blue numerals), this value is calculated automatically by the system. + + + Next comes various columns showing information from the cart + label – Title, Artist, Client and Agency data, etc. This + information can be edited by opening RDLibrary's Edit Cart dialog, + either by double-clicking on the desired cart + entry in the list, or by touching the desired cart entry and then + touching the Edit button. In either case, you should get a dialog + similar to that shown in the illustration. + + + + + + + + The Edit Cart Dialog + + + + + Near the center of the dialog will be a dropdown box labeled + Schedule Cuts. When set to + By Weight (the default), this will + allow cut rotation to be managed by means of daypart settings (see + ). When set to + By Specified Order, the precise + rotation of the cuts within the cart can be set manually. + + + This is how an audio cart looks when loaded into the Edit Cart dialog. + The upper half of the dialog is the cart label data. The meaning + of most of these fields should be fairly self-evident, but a few + call for special comment: + + + + + Enforce Length + + + When checked, this indicates that timescaling should be + applied to this cart when it is played in RDAirPlay, + meaning that the cart will air at the length indicated by + the Forced Length field, rather than the native length of + the audio. Care is needed when implementing timescaling + within a facility, as there are limits to how much the + length can be altered, while only certain types of audio + adapters support it at all. See the Rivendell Technical + Guide for more information. + + + + + Group + + + This is a pull down menu by which the group ownership for + the cart can be set. The system administrator configures + the list of available groups for each user in RDAdmin. + + + + + User Defined + + + As the name implies, this field has no dedicated meaning + to Rivendell itself, but is provided for each site to use + as is seen fit. + + + + + + + The example in the illustration above shows an audio cart. As such, + the bottom half of the dialog displays the lists of cuts contained + within the cart. + + + + Cuts + + Each audio cart can contain one or more cuts. + A Rivendell cut is + an actual piece of audio, somewhat analogous to a 'track' on a CD. + Up to 999 such cuts can exist within a single cart. Each line in + the cut list contains information about the cut, including: + + + + WT + + + The weighting value for the cut. see + for discussion. + + + + + ORDER + + + The order value for the cut. see + for discussion. + + + + + DESCRIPTION + + + n arbitrary name, assignable by the user as an aid in keeping + track of the content, it is roughly analogous to the 'Title' + field in the cart label. + + + + + LENGTH + + + The actual, measured play out length of the cut audio. + This field is calculated automatically by the system. + + + + + LAST PLAYED + + + he last date and time that the cut was aired by one of the + on-air modules. Useful for keeping track of stale inventory. + + + + + # OF PLAYS + + + The total number of times the cut has been aired by the + one of the on-air modules. + + + + + ORIGIN + + + The name of the host upon which the audio in the cut was last + recorded, along with the date and time. + + + + + OUTCUE + + + A user settable field. This line shows up in the RDAirPlay + log when the cut is played. + + + + + START DATE + + + The effective start date/time of the cut. + + + + + END DATE + + + The effective end date/time of the cut. + + + + + START DAYPART + + + The start time of the cut's daypart. + + + + + END DAYPART + + + The start time of the cut's daypart. + + + + + NAME + + + The internal CUTNAME of the cut as used in Rivendell's + database. + + + + + SHA1 + + + The SHA-1 hash value of the cut's file in Rivendell's audio + store. + + + + + + Multiple Cuts in a Cart + + What happens when more than one cut is placed into a cart? The + answer, in a word, is rotation. Rotation is + the ability to + schedule a single cart in a log, but to have that cart play out + different material at different times. This capability has a + myriad of uses. One of the simplest, common in commercial radio + facilities, is to allow multiple versions of a spot to be placed + into the system, while still allowing the traffic department to + have to track and schedule only one cart number. A more + sophisticated use involves use of the cut's + dayparting settings, + forcing different cuts to play based upon certain date/time + criteria, such as day of the week or time of day. Cut dayparting + is a very powerful feature in Rivendell, and is something we + will discuss shortly. + + + To edit the properties of a cut, either double-click its entry + in the cut list, or touch it once to highlight and then touch + the Cut Info/Record button. + The Record Dialog will now open up. + + + + + + + + The Record Dialog + + + + + Roughly the upper third of the dialog is for editing the various + cut parameters, the middle section is for configuring the cut's + daypart settings, and the bottom third is a record machine that + can be used both to record new audio into the system and to + audition any recording already made. + + + + Cut Dayparting + + For carts for which Schedule Cuts + is set to By Weight,each cut in + can be dayparted on the basis of these parameters: + + + + + Weight + + + Absolute Start and End Date-Time + + + Relative Start and End Time + + + Day of the Week + + + + + While not strictly a dayparting parameter, the + WEIGHT setting of a cut can + strongly influence + the order (and hence placement) of when a particular cut will play. + The weight value of each cut in a cart consistutes the numerator + of a fraction, the denominator of which is the sum of the weight + values of every cut in the cart. Rivendell's cut selection + algorithm will seek to play each cut in like proportion. If it is + important in some cases to be able to specify the precise order + of each cut play-out, consider changing the + Schedule Cuts dropdown to + By Specified Order. + + + By default, each newly created cut in a + By Weight cart starts out with + dayparting + disabled, meaning that it will be 'eligible to play' at all times. + By clicking the Enabled radio + button in the Air Date/Time box, an + absolute start and end date for the cut can be entered, meaning + that the cut will be prevented from airing in the on-air modules + at any time outside the range of those date-times. Likewise, by + selecting the Enabled radio button + in the Daypart box, start and end + times (relative to the day the cut is to air) can be entered. + Cuts designated in this way will be allowed to air only within + the specified range of times. Finally, by ticking or clearing + the appropriate boxes in the + Day of the Week box, a cut can be + constrained to air only on certain days of the week. + + + All of the dayparting parameters can be used either singly or in + combination with each other. When combined, the resulting + 'eligibility' is calculated as the logical AND of the applied + dayparting limits. For example, a cut with the 'Monday' box + cleared will refuse to air on Mondays, regardless of whether + any of the other daypart rules match. + + + It's important to remember that dayparting rules affect audio + play out only within the on-air modules. You will still be + able to audition and play the audio without limitation in the + other Rivendell modules. + + + + Cart and Cut Color Coding + + Each cart or cut in RDLibrary is assigned a color to indicate + it's 'playability' for air, as follows: + + + + + NO COLOR + + + Event will play normally + + + + + CYAN + + + Event will not play (cut datetime is in the future) + + + + + RED + + + Event will not play (outside of dayparting limits or audio + is not available) + + + + + GREEN + + + Event will play an Evergreen + + + + + + + It's important to remember that the color displayed for each + event indicates playability at the instant that the event + is being viewed. + + + + Recording and Auditioning a Cut in the Record Dialog + + The lower third of the Record Dialog is used both to audition and + record audio. To audition the cut, simply press the play button + (the one with the triangular symbol). The button will + illuminate, audio will show on the bar meter and start playing + immediately. The audio will play to completion, unless either + the stop button (square symbol) is pressed, or the Record Dialog + is closed. + + + To record new material into a cut, first ensure that the + Channels + drop-down menu is set to record the appropriate number of channels, + then touch the Record button + (round symbol). If the cut contains + audio that was recorded previously, a warning box will pop up at + this point to inform you of this and to give you a chance to abort + the recording without erasing what was previously recorded. If + Yes is selected here, the + previous recording will be overwritten + and no longer accessible. + The Record button will now be + illuminated steadily, while the + Play button will be flashing, + indicating that the record machine is in 'ready' mode. The bar + meter will also be active to indicate input levels, and this is + the point where you want to verify that your levels are correct, + with peaks just into the yellow area being optimal. Nothing is + actually being recorded just yet. + + + We have two options for actually starting the record machine. + We can start it manually by pressing the + Play button, at which + point the machine will immediately begin recording, or we can set + the Record Mode drop-down menu + to the VOX (short for voice + activated) setting. When in VOX + mode, the record machine will + start automatically as soon as it senses the presence of audio + at the input. + + + Once started, recording will continue until either the + Stop button + is pushed, or the maximum allowed length for a manual recording + (set by the system administrator) has been reached. Once stopped, + if the AutoTrim drop-down menu + has been set to On, the Start and + End markers will be automatically set to the beginning and end of + detected audio within the cut. (We will discuss Markers in detail + when we get to the section on the Edit Markers dialog). + + + + + + Alternative Methods of Audio Ingestion + + In addition to manually recording material in realtime, RDLibrary + supports two alternative methods for audio ingestion: + + + + + Importing from a File + + + Ripping from a CD + + + + + Importing Audio from a File + + To import audio from a file directly into a cut, we start by + opening the cut's parent cart in the Edit Cart Dialog. Next, + touch the cut's entry in the cut list and then touch the + Import/Export button to open the + Import/Export Audio Dialog. + + + + + + + + The Import/Export Audio Dialog + + + + + Select the file you wish to import, either by entering the path + and filename to it in the Filename + field or by clicking the Select + button to open a file browsing dialog. Rivendell is capable of + importing the following types of audio files: + + + + + Microsoft WAV (*.wav) – PCM16, PCM24 and MPEG are supported + + + MPEG (*.mp1, *.mp2, *.mp3) + + + OggVorbis (*.ogg) + + + Free Lossless Audio Codec [FLAC] (*.flac) + + + + + Next, set the Channels drop-down + menu to the appropriate number of + channels. You may also wish to adjust the + Normalize or + Autotrim + controls, although these will normally be set to reasonable default + values by the system administrator and should seldom have to be + altered. If Normalize is selected, + then the imported audio will + be peak normalized to the level indicated. The + Autotrim does the + same thing as in the Record Dialog (see section 2.0.1.2, 'Recording + and Auditioning a Cut in the Record Dialog' above for details). + + + Finally, touch the Import button. + A progress bar will indicate + percentage completion of the import, followed by a popup box to + announce completion. The Import Audio Dialog will automatically + close after acknowledging completion. The audio is now imported, + and can now be auditioned and otherwise processed in the usual way. + + + + Ripping Audio from a CD Track + + To rip audio directly off of a CD into a cut, we again start by + opening the cut's parent cart in the Edit Cart Dialog. Next, + select the cut's by touching the cut's entry in the cut list, + and then touch the Rip button + to open the Rip CD Dialog. + + + + + + + + The Rip CD Dialog + + + + + Load a CD into the CD drive. After a few seconds, list of tracks + should appear in the Tracks area. If the system administrator has + enabled the FreeDB CD Lookup Service, the names of the various + tracks may appear as well. + + + Set the Channels, + Normalize and + Autotrim controls appropriately (see + section 2.1.0 for more details on using the + Normalize and + Autotrim + controls). Next, touch the track you wish to rip and then press + the Rip Track button. The track will + now be ripped into the cut, + with a progress bar keeping you informed of progress. When the + rip is complete, a message box will pop up to inform you of this. + + + If FreeDB data was found for the CD, you can have the FreeDB track, + artist and album names be automatically placed on the cart label + for the cart by checking + Apply FreeDB Values to Cart before + closing the Dialog. + + + + Ripping Multiple CD Tracks at a Time + + Sometimes, when transferring multiple audio tracks from CD, + it's more convenient to be able to set up the entire transfer at + once and then let the rip run in a 'batch' mode. RDLibrary is + capable of ripping audio in this manner as well. To do this, click + the Rip CD button near the bottom of + the main RDLibrary screen, bringing up the Rip Disk Dialog. + + + + + + + + The Rip Disk Dialog + + + + + This dialog is similar in many ways to the Rip CD Dialog described + above, except that each track can be assigned to transfer to a + different cut by double clicking on its listing, or by touching + the listing and then the Set Cut button, bringing up the Select + Cart/Cut Dialog. + + + + + + + + The Set Cart/Cut Dialog + + + + + The destination cut is selected by first choosing the cart from the + left-hand pane, followed by the desired cut within that cart on the + right-hand pane. The complete set of library filtering tools are + available to you here – see section 2.2, 'Navigating the Audio + Library' for details on their function, just as in the main + RDLibrary screen. + + + Once all of the desired tracks have been assigned to cuts, be sure + that the Normalize, + Autotrim, + Channels and + Apply FreeDB Values to Cart + controls have been set as desired, then click the + Rip Disk + button. A set of progress bars will keep you informed of the + progress of each track, as well as overall progress. When, the + rip is finished, a message box will let you know. + + + + + Macro Carts + + A macro cart is a cart that contains one or more commands written in + Rivendell Macro Language (or 'RML' for short). The Edit Cart dialog + for a macro cart is similar in many ways to that for an audio cart + with the exception of the lower half, which contains a list of RML + commands to be executed rather than a list of cuts. (NOTE: for a + complete description of Rivendell Macro Language, + including a breakdown of available commands, see + ). + + + To add a new line of RML, select the desired location in the list + and touch the Add button. + Similarly, a line can be deleted by + selecting it and then touching the + Delete button, or modified by + touching the Edit button. The RML + can be tested, eight line-by-line + or as a whole by touching the Run Line + or Run Cart button + respectively. It is also possible to + Copy and + Paste individual + lines both within a given cart or between carts. + + + + + + + + The Edit Macro Cart Dialog + + + + + + Navigating the Audio Library + + The uppermost section of RDLibrary's main window contains tools + designed to allow for fast searching of the entire audio library, + making locating a particular piece of audio easy even in a library + containing thousands of carts. It's possible to control what carts + are listed, as well as how they are sorted. + + + Changing the Cart Sort Order + + The order in which carts are displayed in the cart list can be + changed by simply clicking on the header of the column by which + you want them sorted by. By default, the carts are sorted by Cart + Number. To instead sort them alphabetically by Title, simply click + the TITLE header once. + To sort them by Title in reverse –i.e. + from 'Z' to 'A' – click the TITLE + header once again. Clicking the + TITLE header a third time restores + the sort to normal 'A' to 'Z' again. And so on for all of the columns + in the cart list – it's + possible to sort the Library by + ARTIST, + LENGTH, or any other + parameter shown in the cart list. + + + + Selecting Carts by the Filter Field + + Very often, one will want to find a cart or set of carts whose + label(s) contains a particular word or phrase. It's possible to + narrow the list of displayed carts to this set by simply entering + the desired word or phrase into the + Filter field at the top of the + main RDLibrary screen. The full list can be restored by clearing + the Filter field or by clicking + the Clear button. + + + + Selecting Carts by Group + + It's possible to limit the list of carts to only those in a + particular group by setting the Group + drop-down menu to the + desired group name. + + + + Selecting Carts by Type + + You can tell RDLibrary what type of carts to list by checking the + Show Audio Carts and + Show Macro Carts boxes. Clearing + both boxes + obviously results in no carts at all being displayed. + + + It's also possible to combine all four of the above search and + sorting methods. + + + + Selecting and Opening Carts + + Once the desired cart has been located on the cart list, load it + into the Edit Cart Dialog by either double + clicking its list entry, or by touching its list entry and then + touching the Edit button. + + + + + Library Maintenance + + Editing Markers + + Rivendell uses a system of cue points within audio cuts, referred + to as markers. Markers can be used to specify + a number of + parameters for a piece of audio. + Consult to see what + markers are available, their purpose and their corresponding color. + + + Markers are set in the Edit Markers Dialog. + To access the Dialog, open an audio cart, select the cut to open + on the cut list and then touch the + Edit button. + + + The Dialog is divided into three areas: the waveform area in the + upper half, consisting of the waveform display and + Amplitude and + Time buttons; the transport + controls area in the center, consisting + of Start, + Pause, + Stop and + Loop buttons along with an + audio meter; + and the marker button area in the lower third of the window, + consisting of controls for selecting and positioning markers. + + + + + + + + The Edit Marker Dialog + + + + + It's possible to 'zoom-in' on the waveform in various ways by + clicking the Amplitude + and Time buttons. + By default, the waveform + is displayed fully 'zoomed-out', thus showing the entire length of + the audio cut. The GoTo buttons + can be used to jump directly to + the current play out cursor position, start or end of the waveform. + + + Audio can be played one of two ways: either by clicking on the + waveform to indicate where play out should start and then clicking + the left-hand Play button, + causing play out to start from the + selected position, or by clicking the right-hand + Play button, which + will cause play out to start from the Start Marker (just as it + would in RDAirPlay). Clicking the + Pause button while playing will + cause audio to stop and the play out cursor (a thin vertical black + line in the waveform area) to freeze at its current position, while + pressing the Stop button will stop + the audio while resetting the + play out cursor to the position it was in when + Play was started. + Clicking the Loop button will + cause the audio to play out + continuously, looping from end back to start, until either the + Stop, + Pause, + Save or + Cancel buttons are clicked. + + + To set a marker, click on the corresponding marker button and then + left-click on the waveform area to indicate where on the audio + the marker should be placed. (NOTE: With the exception of the + FadeUp and FadeDown markers, all markers in Rivendell are assigned + in pairs. For example, placing a TalkStart marker will also cause + a TalkEnd marker to be placed.) Markers that have already been + placed can be moved by selecting the appropriate marker button and + then dragging the marker to the desired location. It's also possible + to specify the position of a marker in the form of hh:mm:ss.s + (relative to time after the Start marker) by entering the desired + value next to a selected marker button. It is also possible to + remove a set of markers that have already been placed, either by + accessing the marker menu by doing a right-click on the waveform + display, or by touching the + Remove Marker button and then touch + the marker button corresponding to the marker to be removed. + (NOTE: the exceptions to this are the Start / End markers, which + are always present and hence cannot be removed.) + + + Rivendell Marker Types + + + + + + + + Marker Type + + + Function + + + Color + + + + + + + Start / Stop + + + Indicates start and end points of audio. + + + RED + + + + + TalkStart / Talk Stop + + + Indicates point to start and stop the Talk Counter in RDAirPlay. + + + BLUE + + + + + SegueStart / SegueEnd + + + Indicates the start and end of the audio overlap during + Segue transitions in RDAirPlay. + + + CYAN + + + + + HookStart / HookEnd + + + Indicates "highlighted" audio, used by button + panels and RDCartSlots when placed in Hook Mode. + + + VIOLET + + + + + FadeUp + + + Indicates the point at which audio should be faded up to + full level after starting in RDAirPlay. + + + YELLOW + + + + + FadeDown + + + Indicates the point at which audio should start fading + down to off before ending in RDAirPlay. + + + YELLOW + + + + +
+ + As an aid for accurately setting the Start and End markers, it's + possible to use the Trim Start + and Trim End buttons to automatically + set the markers to the first and last instances of the level + specified by the Threshold field, + respectively. + +
+ + Copying and Pasting Audio from Cut to Cut + + It's possible to make copies of existing an audio cut on the system + by opening up the cut's parent cart in the Edit Cart Dialog, + selecting it on the cut list and clicking the + Copy button. To + paste the copied audio, simply select the desired destination + cut (within the same cart or a different one) and press + Paste. + + +
+ + Generating Library Reports + + Various Library reports can be generated by touching the + Reports + button on the main RDLibrary screen and then selecting the desired + report and touching the Generate + button. The following reports are available: + + + The Cart Report + + The cart report consists of a list of all selected carts on the + system, with their attributes. + + + + The Cut Report + + The cut report consists of a list of all cuts contained by the + selected carts on the system, with their attributes. + + + + The Cart Data Dump (fixed width) + + The fixed-width cart data dump is a special type of report that + consists of column-aligned data elements, one line per cut for the + selected + carts on the system. It is intended for use where a 'dump' of + available carts in the system is desired for import into an + external system (such as a music scheduling system). + + + + The Cart Data Dump (CSV) + + The CSV cart data dump is a special type of report that + consists of CSV formatted data elements, one line per cut for the + selected + carts on the system. It is intended for use where a 'dump' of + available carts in the system is desired for import into an + external system (such as a music scheduling system). + + + +
diff --git a/docs/opsguide/rdlogedit.edit_log_chain_dialog.png b/docs/opsguide/rdlogedit.edit_log_chain_dialog.png new file mode 100644 index 00000000..92f61de7 Binary files /dev/null and b/docs/opsguide/rdlogedit.edit_log_chain_dialog.png differ diff --git a/docs/opsguide/rdlogedit.edit_log_dialog.png b/docs/opsguide/rdlogedit.edit_log_dialog.png new file mode 100644 index 00000000..0994ebab Binary files /dev/null and b/docs/opsguide/rdlogedit.edit_log_dialog.png differ diff --git a/docs/opsguide/rdlogedit.edit_log_entry_dialog.png b/docs/opsguide/rdlogedit.edit_log_entry_dialog.png new file mode 100644 index 00000000..98717f47 Binary files /dev/null and b/docs/opsguide/rdlogedit.edit_log_entry_dialog.png differ diff --git a/docs/opsguide/rdlogedit.edit_log_marker_dialog.png b/docs/opsguide/rdlogedit.edit_log_marker_dialog.png new file mode 100644 index 00000000..0ff361ba Binary files /dev/null and b/docs/opsguide/rdlogedit.edit_log_marker_dialog.png differ diff --git a/docs/opsguide/rdlogedit.edit_voice_track_marker_dialog.png b/docs/opsguide/rdlogedit.edit_voice_track_marker_dialog.png new file mode 100644 index 00000000..d6b1c0ca Binary files /dev/null and b/docs/opsguide/rdlogedit.edit_voice_track_marker_dialog.png differ diff --git a/docs/opsguide/rdlogedit.rdlogedit_screenshot.png b/docs/opsguide/rdlogedit.rdlogedit_screenshot.png new file mode 100644 index 00000000..f22c01ef Binary files /dev/null and b/docs/opsguide/rdlogedit.rdlogedit_screenshot.png differ diff --git a/docs/opsguide/rdlogedit.select_cart_dialog.png b/docs/opsguide/rdlogedit.select_cart_dialog.png new file mode 100644 index 00000000..1e62a7b8 Binary files /dev/null and b/docs/opsguide/rdlogedit.select_cart_dialog.png differ diff --git a/docs/opsguide/rdlogedit.xml b/docs/opsguide/rdlogedit.xml new file mode 100644 index 00000000..6a0d5dbc --- /dev/null +++ b/docs/opsguide/rdlogedit.xml @@ -0,0 +1,594 @@ + + Generating and Maintaining Logs with RDLogEdit + + Logs and Log Events + + A Rivendell log is a sequence of one or more events to be executed by + the system, arranged in chronological order. (This functionality is + sometimes referred to as a playlist in other automation systems). + Several different types of events can be included in a log, along + with parameters governing how and under what circumstances they will + be executed. + + + Upon startup, RDLogEdit will show the current list of all logs on the + system. A number of important attributes of + logs can be seen from , the first being the log + name, with a summary status indicator next to it. The name is an + alpha-numeric label that is used as a unique “handle” by the system + to reference each log, and can be up to a maximum of 64 characters + long. The status indicator is intended as a quick visual guide as + to whether a particular log is ready for air (green check mark) or + not (red ex). + + + + + + + + The RDLogEdit Main Window + + + + + Next comes the log's unique Name, + assigned at the time the log was created, followed by it's + Description. + This is a free-form alpha-numeric + label that can be used to record any information that might be useful + to have appear on the log list (e.g. “This log for Sunday's show, don't + modify!”). + + + Next comes a column showing the owning + Service. Each log is owned + by exactly one service, which determines under what circumstances + the log can be played and where electronic log reconciliation (ELR) + data resulting from log playouts is sent (for an overview of + Rivendell services, see ). + + + Next comes three “status indicator” columns + (Music, + Traffic and + Tracks) indicating the log's + degree of readiness for air. A red indicator indicates that the + particular data element is required but currently missing, a green + indicator indicates an element is required and present, while a + white indicator indicates that an element is not required. + Additionally, the TRACKS column + contains a pair of numbers + indicating how many completed voice tracks exist in the log versus + how many total track markers exist (the subject of voice tracks and + track markers will be covered in more detail below). When all three + of these status indicators show either green or white, the summary + status indicator (at the beginning of the log's entry in the list) + will show as a green check mark, while a red indicator in any of + these three fields will show a red ex. (NOTE: because a log sports + a red ex does not indicate that the respective log cannot be played. + It is merely a visual indicator to allow logs to be quickly + "eyeballed" for completeness). + + + Next comes a pair of columns indicating the valid start date and end + date for the log. + + + Next comes an Auto Refresh column + that indicates whether the log has auto refresh enabled. (For a + discussion of auto refresh, see FIXME). + + + Finally, there are "datestamp" columns, indicating + date/time of the log's Origin, + Last Linked and + Last Modified operation. + + + A report that lists the available logs on the system can be generated + by touching the Log Report button. + + + A new log can be created by touching the + Add button and entering a + name, or an existing log inspected and modified by touching its entry + on the log list and then touching the + Edit button, resulting in the + log being opened in the Edit Log dialog. + The Edit Log dialog consists of three parts: the top section, where + much of the information shown on the log list can be inspected and + modified; the middle section, which shows the list of events + comprising the log, and the bottom section, where buttons for + modifying and saving the log are located. Each event in a log can + be one of several different types, indicated by the icon displayed + at the start of the line (see + for a + breakdown of the various icons). + + + + + + + + The Edit Log Dialog + + + + + The following types of events can be incorporated into a + Rivendell log: + + + Log Event Type Icons + + + + + + + + + + + + + + Audio Cart + + + + + + + + + + + + Voice Track Audio Cart + + + + + + + + + + + + Macro Cart + + + + + + + + + + + + Note Marker + + + + + + + + + + + + Track Marker + + + + + + + + + + + + Chain Event + + + + + + + + + + + + Music Import Link + + + + + + + + + + + + Traffic Import Link + + + + +
+ + Audio Carts + + The first, and usually most common type of log event is an audio cart. + As the name implies, audio carts are Library entries that contain + audio material intended for playout. Audio carts were covered in + detail in . + + + + Macro Carts + + A macro cart is a cart from the Library that contains one or more + system commands that can be used to cause the system to take various + actions. They were touched upon in + , and will be discussed in detail + in . + + + + Note Markers + + A note marker is an entry in the log that contains text intended to + be seen by operators and used as a guide or reminder (program coders + sometimes refer to this sort of functionality as a + remark or comment, + as seen in the REM command used by BASIC programmers). + Note markers + belong to a class of log events known as meta events because (unlike + carts, which exist in the Library independently of whether they are + placed in a log or not), they have no independent existence outside + of the specific log where they are placed. A note marker has + absolutely no effect on the execution of a log other than to simply + display some text at a specified point in a log, and as such can be + useful as a mechanism for making notes or reminders to oneself or + to others who may be executing the log. + + + + Track Markers + + A track marker is another meta event that is very similar in operation + to note markers, with one key addition: track markers designate or + "bookmark" a place in the log where a voice track is to be + recorded. (The entire topic of voice tracks and tracking will be + covered in detail in ). + As with note markers, track + markers have absolutely no effect on the execution of a log. + + + + Chain Events + + Each event in a log has a transition type, shown in the + Trans + column of the Edit Log dialog. The transition type determines what + happens when one event in a log ends and the next starts. Three basic + transition types can exist in a Rivendell log: + PLAY, + SEGUE and + STOP. + + + + Import Links + + An import link is a placeholder event that shows where events imported + from the external music or traffic scheduling system will eventually + go. They will be covered in detail in + . + + + Each event in a Rivendell log can have its parameters modified by + touching its entry in the Edit Log dialog and then clicking the + Edit + button, thus opening up the Edit Log Entry dialog, shown below. + + + + + + + + The Edit Log Entry Dialog + + + + + + + + + + The Edit Log Marker Dialog + + + + + + + + + + The Edit Voice Track Marker Dialog + + + + + + + + + + The Edit Log Chain Dialog + + + + +
+ + Event Transitions + + Each event in a log has a transition type, shown in the + Trans + column of the Edit Log dialog. The transition type determines what + happens when one event in a log ends and the next starts. Three basic + transition types can exist in a Rivendell log: + PLAY, + SEGUE and + STOP. + + + The PLAY Transition + + If an event has a PLAY transition, + then it will begin playing when + the previous event has finished. + PLAY transitions are used when + automatic event sequencing is desired with no audio overlap (such + as when playing two voice-only announcements back-to-back). + + + + The SEGUE Transition + + SEGUE transitions are similar to + PLAY transitions, with one key + difference: if the finishing event contains segue data (either from + the Library or from a custom transition programmed in the voice + tracker), then the event will start before the prior event is + finished, causing the two pieces of audio to overlap and mix together. + SEGUE transitions can be a very + powerful tool for creating a variety + of special effects, particularly when used in conjunction with + musical material. + + + + The STOP Transition + + As the name implies, STOP + transitions cause execution of the log to + be suspended prior to execution of the event. This is often the + desired behavior in situations where the log playout needs to be + synchronized to one or more external audio sources (such as remote + satellite feeds), and is commonly used in conjunction with Hard + Timed events (see ). + + + + + Time and Time Types + + All Rivendell log events have an associated time type, which controls + what effect (if any) the passage of time will have on the event. + There are two basic time types: relative and + hard. Additionally, + the hard time type has several additional options that further modify + its behavior. + + + The Relative Time Type + + The default time type for log events, a relative time type simply + means that the event is assumed to have a start time of whenever + the previous event ends (if it has a + PLAY or + SEGUE transition) + or whenever it is started (if it has a + STOP transition). + + + + The Hard Time Type + + A hard time type causes the event to be executed or otherwise acted + upon when the wall clock equals the time associated with the event. + Hard times are a powerful feature that can be used to synchronize + the log to various external events. An event can be assigned a + hard time by clicking the Start at + check box in the Edit Log Entry + and filling in the desired time, and will show up with the letter + T appearing at the beginning of + its listed time in the + Time column of the Edit Log dialog. + + + The specific action that is performed when the time matches is + determined by the option parameters supplied as part of the event. + Three basic actions are possible: + + + + + Start the event immediately + + + Cue to the event ("Make Next") + 1 + + Wait up to some period of time, then start the event + + + + + Start Immediately + + As implied by the name, if the event is set to start immediately, + it will be started as soon as the hard time is reached. Any + currently playing events in the log will be simultaneously + stopped down. + + + + Cue to the Event ("Make Next") + + If set to 'Make Next', the event will be cued up to become the + next event to be executed in the log, bypassing any intervening + events in the log between the currently playing event and the + hard timed one. Any currently playing events are unaffected. + + + + Wait up to some period of time, then start the event + + Very similar to "start immediately", with the + difference that, if one or more events are currently playing, + the log will wait up to the specified amount of time + before stopping them and starting the new event. If the currently + playing event(s) finish before the specified time period has elapsed, + then the event is started immediately. + + + + + + Editing Log Event Parameters + + Specifying a Cart + + The cart number to use for an event can be specified by touching + the Select Cart button in the + Edit Log Entry dialog, which will + open up the Select Cart dialog. + Alternatively, it is possible to simply enter the cart number in + the Cart field if the number is + already known. The Title and + Artist information will be + supplied automatically by the system + from the cart's label. + + + + + + + + The Select Cart Dialog + + + + + + Specifying Meta Event Parameters + + Note marker and track marker events each take only a single + parameter: a Comment text that + will show up on the log entry. + In the case of a chain event, the name of the log to chain to must + be supplied in the Log Name field, + or the Select button can be + touched to bring up the Select Log dialog to allow a name to picked + from a list of all those available. Note that meta events are + assigned transition and time types just the same as cart events. + + + + Rearranging Log Events + + Existing events in a log can be cut, copied, pasted or rearranged + by touching the appropriate buttons in the Edit Log dialog. + In addition, touch the Delete + button will cause the selected + log event(s) to be removed from the log. + + + + Saving or Abandoning Changes to a Log + + Any changes made to a log can be saved by touching either the + Save + or OK buttons in the Edit Log + dialog. The current log can be saved + under a different name by touching the + Save As button, while + touching Cancel will abandon + any changes made since the last save. + + + + Missing/Invalid Cart Events + + If a given event has a problem (such as referencing a cart that + does not exist in the Library, or that is not enabled for play on + the log's owning service) its entry will be highlighted either + RED (indicating a missing/invalid cart) or MAGENTA (indicating a + cart without permission to run on the owning service). It's also + possible to generate an exception report summarizing problem cart + entries by touching the + Check Log button. + + + + + Generating Log Reports + + Various Log reports can be generated by touching the + Reports button + on the Edit Log dialog and then selecting the desired report and + touching the Generate button. + The following reports are available: + + + Log Listing + + A chronological listing of all events in the log. + + + + Log Exception Report + + A list of missing/unplayable carts referenced in the log. + + + + + Auditioning Audio + + The audio referenced by an audio event can be sampled in the Edit + Audio dialog by highlighting the desired event and then touching the + Play button. No attempt to evaluate + the rotation logic of the event + is made – the audio played is intended solely as a 'sample' to help + identify the type of material. + + +
diff --git a/docs/opsguide/rdlogin.rdlogin_screenshot.png b/docs/opsguide/rdlogin.rdlogin_screenshot.png new file mode 100644 index 00000000..90030ae5 Binary files /dev/null and b/docs/opsguide/rdlogin.rdlogin_screenshot.png differ diff --git a/docs/opsguide/rdlogin.xml b/docs/opsguide/rdlogin.xml new file mode 100644 index 00000000..53b254c4 --- /dev/null +++ b/docs/opsguide/rdlogin.xml @@ -0,0 +1,54 @@ + + Managing the Current User with RDLogin + + RDLogin + + Rivendell uses a sophisticated system of user privileges to keep track + of which users have permission to perform what operations. + These privileges are tracked by the system on the basis of + user accounts. + Creating user accounts and administering their permissions + are done in the RDAdmin module and are covered in the Rivendell + Technical and Administration Guide. + + + It's important to note that these user accounts are not the same + thing as the “Login Name” that is used to log into the computer system + itself. Rather, they exist and have meaning only within the Rivendell + system. For the rest of this discussion, when we talk about “users”, + it is these “Rivendell users” that we are referring to. + + + Each Rivendell host has a default user. As the name implies, this is + the user that is automatically logged in after the system is booted. + By default, the name of this user is “user”, but the system + administrator may have changed this to some other name. + + + For many sites, a single default user is all that is ever required. + For some sites however, particularly larger ones, it is desirable + to have multiple user accounts, each tailored to a particular person + or “role”, with privileges assigned appropriately. Such sites + require a means to log different users in and out of the system, + without interfering with any playout operations that may be ongoing + at the time. RDLogin is the module for doing this. + + + RDLogin will display a small window after being started, showing the + currently logged-in user. To change to a + different user, select the desired user name from the Username: + control, enter the correct password, and then touch the Set User + button. To “log out” of the system (in reality, just return to the + default user), simply touch the Default User button (no password is + required to set the default user). To exit RDLogin and do nothing, + simply touch the Cancel button. + + + + + + + + + + diff --git a/docs/opsguide/rdlogmanager.edit_clock_dialog.png b/docs/opsguide/rdlogmanager.edit_clock_dialog.png new file mode 100644 index 00000000..d61d6278 Binary files /dev/null and b/docs/opsguide/rdlogmanager.edit_clock_dialog.png differ diff --git a/docs/opsguide/rdlogmanager.edit_event_assignment_dialog.png b/docs/opsguide/rdlogmanager.edit_event_assignment_dialog.png new file mode 100644 index 00000000..891877bb Binary files /dev/null and b/docs/opsguide/rdlogmanager.edit_event_assignment_dialog.png differ diff --git a/docs/opsguide/rdlogmanager.edit_grid_dialog.png b/docs/opsguide/rdlogmanager.edit_grid_dialog.png new file mode 100644 index 00000000..88cf3847 Binary files /dev/null and b/docs/opsguide/rdlogmanager.edit_grid_dialog.png differ diff --git a/docs/opsguide/rdlogmanager.editing_event.png b/docs/opsguide/rdlogmanager.editing_event.png new file mode 100644 index 00000000..48bfb730 Binary files /dev/null and b/docs/opsguide/rdlogmanager.editing_event.png differ diff --git a/docs/opsguide/rdlogmanager.generate_log_dialog.png b/docs/opsguide/rdlogmanager.generate_log_dialog.png new file mode 100644 index 00000000..5cf1cd11 Binary files /dev/null and b/docs/opsguide/rdlogmanager.generate_log_dialog.png differ diff --git a/docs/opsguide/rdlogmanager.generate_log_dialog_fully_merged.png b/docs/opsguide/rdlogmanager.generate_log_dialog_fully_merged.png new file mode 100644 index 00000000..b3eb48e4 Binary files /dev/null and b/docs/opsguide/rdlogmanager.generate_log_dialog_fully_merged.png differ diff --git a/docs/opsguide/rdlogmanager.generate_log_dialog_music_merge_required.png b/docs/opsguide/rdlogmanager.generate_log_dialog_music_merge_required.png new file mode 100644 index 00000000..475d9ac2 Binary files /dev/null and b/docs/opsguide/rdlogmanager.generate_log_dialog_music_merge_required.png differ diff --git a/docs/opsguide/rdlogmanager.generate_log_dialog_traffic_merge_required.png b/docs/opsguide/rdlogmanager.generate_log_dialog_traffic_merge_required.png new file mode 100644 index 00000000..b9045823 Binary files /dev/null and b/docs/opsguide/rdlogmanager.generate_log_dialog_traffic_merge_required.png differ diff --git a/docs/opsguide/rdlogmanager.log_clock_list.png b/docs/opsguide/rdlogmanager.log_clock_list.png new file mode 100644 index 00000000..e6b9c22c Binary files /dev/null and b/docs/opsguide/rdlogmanager.log_clock_list.png differ diff --git a/docs/opsguide/rdlogmanager.log_clocks.png b/docs/opsguide/rdlogmanager.log_clocks.png new file mode 100644 index 00000000..f3bc3cc7 Binary files /dev/null and b/docs/opsguide/rdlogmanager.log_clocks.png differ diff --git a/docs/opsguide/rdlogmanager.log_events_dialog.png b/docs/opsguide/rdlogmanager.log_events_dialog.png new file mode 100644 index 00000000..8908b7a4 Binary files /dev/null and b/docs/opsguide/rdlogmanager.log_events_dialog.png differ diff --git a/docs/opsguide/rdlogmanager.log_grids_dialog.png b/docs/opsguide/rdlogmanager.log_grids_dialog.png new file mode 100644 index 00000000..20533e95 Binary files /dev/null and b/docs/opsguide/rdlogmanager.log_grids_dialog.png differ diff --git a/docs/opsguide/rdlogmanager.rdlogmanager_screenshot.png b/docs/opsguide/rdlogmanager.rdlogmanager_screenshot.png new file mode 100644 index 00000000..25c933fc Binary files /dev/null and b/docs/opsguide/rdlogmanager.rdlogmanager_screenshot.png differ diff --git a/docs/opsguide/rdlogmanager.rivendell_services_dialog.png b/docs/opsguide/rdlogmanager.rivendell_services_dialog.png new file mode 100644 index 00000000..d2cce0b9 Binary files /dev/null and b/docs/opsguide/rdlogmanager.rivendell_services_dialog.png differ diff --git a/docs/opsguide/rdlogmanager.select_date_dialog.png b/docs/opsguide/rdlogmanager.select_date_dialog.png new file mode 100644 index 00000000..9d1d09d2 Binary files /dev/null and b/docs/opsguide/rdlogmanager.select_date_dialog.png differ diff --git a/docs/opsguide/rdlogmanager.select_report_dates_dialog.png b/docs/opsguide/rdlogmanager.select_report_dates_dialog.png new file mode 100644 index 00000000..15f4abc8 Binary files /dev/null and b/docs/opsguide/rdlogmanager.select_report_dates_dialog.png differ diff --git a/docs/opsguide/rdlogmanager.service_association_dialog.png b/docs/opsguide/rdlogmanager.service_association_dialog.png new file mode 100644 index 00000000..2cae7c95 Binary files /dev/null and b/docs/opsguide/rdlogmanager.service_association_dialog.png differ diff --git a/docs/opsguide/rdlogmanager.xml b/docs/opsguide/rdlogmanager.xml new file mode 100644 index 00000000..b9fe3d96 --- /dev/null +++ b/docs/opsguide/rdlogmanager.xml @@ -0,0 +1,547 @@ + + Generating Logs with RDLogManager + + Overview + + RDLogManager is a tool for generating Rivendell logs. It is different + from RDLogEdit in that, instead of building logs line-by-line, + it allows log structures to be defined by a series of rules (called + events and clocks) that + are then plugged into a time framework + (called a grid). This grid is then used to + generate logs automatically + on an as-needed basis. Each Rivendell service has its own, + separately defined grid, thus allowing for separate log generation + rules for each service. This system of rules allows for very + powerful, modular features, including the ability to import and use + scheduling data from various external third party systems, such as + music schedulers and traffic and billing systems. + + + RDLogManager also includes facilities for generating + reports. Reports + are data outputs that detail whether certain events aired as + scheduled, and under what circumstances. Reports are available in + various formats. Some are intended to be read by humans, while + others are intended for use by other, external software systems as a + means of reconciling exported schedules. + + + When RDLogManager is started, it displays its main menu. + + + + + + + The Log Grids Dialog + + + + + Grids + + Each Rivendell service has an RDLogManager grid. To see the list of + available grids, touch the Edit Grids + button to open the Log Grids dialog. + + + + + + + The Log Grids Dialog + + + + To open a particular grid, select its service name and touch the + Edit + button. + + + + + + + The Edit Grid Dialog + + + + Each grid has slots for every hour of every day of the broadcast week + – 168 slots in all. By specifying a particular clock to go into each + of these slots, a set of rules that RDLogManager can use to generate + a log for any given day of the week is built up. To specify a clock, + simply touch the particular hour of interest to open up the + Select Log Clock dialog. + + + + + + + The Log Clocks Dialog + + + + Click the desired clock, then touch the + OK button. To clear the + assignment of any clock to the selected hour, touch the + Clear button, + then OK. + + + It is possible to 'drill down' directly to the underlying + configuration of a clock (to be covered shortly) by right-clicking on + the relevant hour in a grid and selecting + Edit Clock. + + + + Clocks + + An RDLogManager clock is a collection of RDLogManager events, + arranged in terms of their start time (relative to the beginning of + the hour) and length. It basically can be thought of as the + "schedule" of an hour – any hour. + Once defined, a clock + can be plugged into any hour of a grid of any service, thus making + for easy modularization and changes to a service's schedule. + + + To see the list of available clocks, touch the + Edit Clocks button in + RDLogManager's Main Menu to open the Log Clocks dialog. + Each RDLogManager clock can be assigned a + three-letter code and color, as an aid in identifying it when + assigned to grids. To add a new clock, touch the + Add button, or to + edit a clock's parameters, click on it and touch the + Edit button. + In each case, the Edit Clock dialog will open. + Clocks can also be deleted by touching the + Delete button or renamed + by touching the Rename button. + + + + + + + The Log Clock List Dialog + + + + + + + + The Edit Clock Dialog + + + + The Edit Clock dialog consists of three main sections: a tabular + list of events in chronological order, a graphical depiction of the + clock in the traditional “broadcast clock” format, and a series of + action buttons across the bottom. The clock's three-letter code is + set by means of the Code field + in the upper right-hand corner of the + table area. Its color can be set by touching the + Color button. To + save the clock without exiting the dialog, touch the + Save + or Save As + buttons. To add a new event to the clock, touch the + Add button, or + to edit an existing entry touch the + Edit button. In either case, + the Edit Event Assignment dialog will open. To + delete an entry, touch the Delete + button. As in the case of grids, + it is possible to 'drill down' into the underlying RDLogManager + event by right-clicking on the respective entry in the clock event + table and selecting Edit Event. + + + + + + + The Edit Event Assignment Dialog + + + + The Edit Event Assignment dialog simply consists of an + Event field + for the name of the RDLogManager event and + Start Time and + End Time + fields for the start and end times relative to the start of the + hour. A list of available events can be brought up by touching the + Select button to bring up the + Log Events dialog. + + + Each clock can be designated as being associated with one or more + services. This can make finding the correct clock for a given + service much faster, as the + Filter control on the List Clocks dialog + can then be used. To program these associations, touch the + Services List button in the Edit + Clock dialog to bring up the Service + Associations dialog. + + + + + + + The Service Association Dialog + + + + To designate a service as being valid for this clock, select the + services name in the Available Services + list and then touch the Add >> + button. Likewise, to deselect a service, select its name in the + Enabled Services list and then touch + the << Remove button. + + + + Events + + An RDLogManager event is a set of rules that define a series of log + elements (audio carts, macro carts, markers, etc) that should be + inserted into a log, along with the appropriate log event parameters + (transition type, time type, etc) that should be associated with them. + The actual elements to be inserted can be specified directly within + the event itself, or imported from a data file generated by an + external scheduling system. Up to two such external scheduling + sources can be defined for each service. While for convenience sake + these are designated as 'Traffic' and 'Music' within RDLogManager, + they can each be used anywhere a means of importing external + scheduling data into the system is needed, regardless of whether such + data actually references commercial or musical material or not. + + + To see the list of available RDLogManager events, touch the + Edit Events button on the + RDLogManager Main Menu to open the Log Events + dialog. It is possible to filter the list of + available events to only those used for a particular service by + selecting the service in the Filter + control. To add a new event, + touch the Add button, or to edit + an event's parameters, click on it + and touch the Edit button. + In each case, the Edit Event dialog will open. + Events can also be deleted by touching + the Delete button or renamed by + touching the Rename button. + + + + + + + The Log Events Dialog + + + + + + + + The Editing Event Dialog + + + + The Edit Event dialog consists of two main parts: a Library cart + picker widget on the left side, and an area showing the various event + parameters on the right. Audio contained within audio carts can be + sampled by selecting the desired cart and then touching the + Play + button. Programming an event basically consists of specifying four + things: its log parameters (transition and time types), the list of + Pre-Import events, the event import + (if any) and the list of + Post-Import events. + The first matter to be decided is if the event + should have a hard start time: if so, then the + Use hard start time + check box in the TIMED START section should be ticked. Ticking this box + will enable all of the usual hard start parameters to be specified. + If an automatic timed start is not desired, then it is possible to + check the Cue to this event checkbox + in the PREPOSITION LOG section. + This will cause RDLogManager to place a hard time with a 'Make Next' + attribute on the first item of the event – effectively, causing the + event to be automatically “cued up” at the scheduled time – something + that can be particularly handy for keeping spot breaks in sync when + "overscheduling" music. + + + Next, if it is desired to have RDLogManager try to insert + material automatically from the Autofill List to ensure that the event + has the length indicated by its parent clock, the + Use Autofill box in + the ENFORCING LENGTH section + should be checked. (Configuring the + Autofill List is covered in detail in the Rivendell Technical and + Administration Guide). If Autofill is enabled, it is also possible + to tick the + Warn if fill is under or over checkbox + to have RDLogManager + generate a warning if it was unable to properly fill the event when + the log was generated. + + + Next, the list of log events (if any) to be inserted before the data + import should be placed in the + PRE-IMPORT CARTS list. For audio or + macro carts, these can be simply dragged and dropped from the Library + cart list on the left-hand side of the dialog. Meta events can be + inserted by right-clicking on the list and selecting the desired + element. It is also possible to edit or delete elements and set the + transition type of each element through the right-click menu. + + + The IMPORT section then defines + which (if any) source will be used + for importing external scheduling events into the log. Either + Music, + Traffic or + None can be selected. If + Music or + Traffic is selected, + then RDLogManager will import any events from those sources that fall + within the start and end times of the event (as supplied by the + parent clock). These start and end times can be further broadened by + means of 'slop factors' entered into the Import carts scheduled + controls (this is sometimes necessary to get the import to work + properly with certain external scheduler systems). The transition + types to be used for the first and subsequent imported elements can + be specified with the First cart has a + and Imported carts have a + controls. If Music has been selected + as the import source, it is + also possible to specify the event to use to import traffic breaks + embedded in the music log with the + Import inline traffic with the + control. (Configuration of the actual parser parameters for data + importation is covered in the Rivendell Technical and Administration + Guide). + + + Finally, the list of log events (if any) to be inserted after the + data import should be placed in the + POST-IMPORT CARTS list. + Configuration of the events works very similarly to that of the + PRE-IMPORT CARTS list. + + + The color of the event (as seen in the Edit Clock dialog) can be set + by touching the Color button. + The list of services for which this + event is valid can be edited by touching the + Services List button. + To save the event without exiting the dialog, touch the + Save or + Save As buttons. + + + + Generating Logs + + After all of the appropriate hours have been populated in a service's + grid, it's time to start generating logs. To do this, touch the + Generate Logs button in + RDLogManager's Main Menu to open the Generate Log dialog. + + + Depending upon how many external scheduling sources are involved, + generating a log involves one, two or three steps. Before performing + any of the steps, it is first necessary to select the relevant + service for which to generate the log (using the + Service control) + and the log date (either by entering the date in the + Date control + or by touching the Select button + and picking it off of the calendar). + + + + + + + The Generate Log Dialog + + + + In all cases, a new log is initially generated by touching the + Create New Log button. + If the log for the selected date and service does not + already exist, it will be created at this point (becoming visible in + RDLogEdit). It the log already exists, it will be overwritten. + (NOTE: if completed voicetracks exist in the old log, they will be + deleted when the log is overwritten!) + + + When generating a log, RDLogManager will look for possible problems + (such as scheduled carts that are missing in the Library) and + generate an exception report if it finds any. + + + Once generated, the status lights in the Generate Log dialog indicate + which (if any) additional import data are needed to complete the log. + Two types of status light exist: + Available, which indicates if the + required data file is available to RDLogManager, and + Merged, + indicating whether the data has been merged into the log as yet. + Each light can show one of three different colors: GREEN, meaning + "yes", RED, meaning "no" and WHITE, meaning + "not required". + + + + + + + The Generate Log Dialog (music merge required) + + + + For an example, see the figure above. This is showing a log that has + been generated and has music data available but not yet merged. To + perform the merge, touch the + Merge Music button. The dialog now + changes to that shown below, indicating that Music data + has been merged but that traffic data is still needed. + + + + + + + The Generate Log Dialog (traffic merge required) + + + + Once a log + has reached this state – that of having any necessary music data + merged – it can be voicetracked without having to wait for traffic + data to become available. Traffic data can be merged at any time + before, during or after the generation of voicetracks. The actual + traffic merge is performed by touching the + Merge Traffic button, + resulting in a dialog as illustrated. (NOTE: + the configuration of the various data file names and parser parameters + needed for data import is done in the RDAdmin module and is covered + in the Rivendell Technical and Administration Guide). + + + It is important to note that the sequence of operations from the + example above is typical, but may vary depending upon how the system + administrator has configured RDLogManager at each site. Some services, + for example, will have no music data, only traffic, so the music + indicator lights will be "whited out" accordingly. + + + + + + + The Generate Log Dialog (fully merged) + + + + + Generating Reports + + A Rivendell report is a data output that details whether certain + events aired as scheduled, and under what circumstances. Reports are + available in various formats. Some are intended to be directly read + by humans, while others are intended for use by other, external + software systems as a means of reconciling exported schedules. + + + Rivendell has the ability to filter the data that go into any + particular report on the basis of the type of material played (traffic + spots, music or all), the playing service(s) and the originating + host(s). The configuration of reports is done in the RDAdmin module + and is covered in the Rivendell Technical and Administration Guide. + Once configured however, reports are actually generated by the + RDLogManager module. + + + To generate a report, touch the + Manage Reports button on the + RDLogManager Main Menu to open the Select Service dialog. + + + + + + + The Rivendell Services Dialog + + + + The dialog will show each service on the system, + along with the date of the oldest data available for generating + reports. Touch the Generate Reports + button to open the Select Report + Dates dialog. + + + + + + + The Select Report Dates Dialog + + + + The desired report can be + selected with the Report control, + and the start and end dates of the + report specified with the + Start Date and + End Date controls, + respectively (NOTE: not all reports are capable of being generated so + as to span more than one day). + + + + + + + The Select Date Dialog + + + + Once the parameters are set, touch the + Generate Report button to write out + the report. + + + Purging Old Report Data + + Rivendell keeps the raw data used to generate reports indefinitely, + until manually purged out of the system. Periodic purging of old + data is a good idea from the standpoint of minimizing the amount of + system resources utilized, and can be done by selecting the desired + service and then touching the + Purge Data button in the Select + Service dialog, opening up a calendar dialog. + Each date that has data eligible for purging will be shown in bold. + To purge a particular day, select it and the touch the + Purge Data + button. (NOTE: once purged, no reports can be generated for that + particular service/date, so be sure that all required reports have + been produced before purging!) + + + + diff --git a/docs/opsguide/rivendell_filter.xml b/docs/opsguide/rivendell_filter.xml new file mode 100644 index 00000000..75a90506 --- /dev/null +++ b/docs/opsguide/rivendell_filter.xml @@ -0,0 +1,157 @@ + + Rivendell Filter + + Overview + + Rivendell_filter is a script designed to be used to import existing audio + and meta-data from another Rivendell system. + + + + + Usage + + rivendell_filter + -h hostname + -u username + -p password + -A audio-dir + -g default-group + -s start-cartnum + -e end-cartnum + + + + + -h hostname + + + The MySQL hostname of the source Rivendell database. + + + + + -u username + + + The MySQL username of the source Rivendell database. + + + + + -p password + + + The MySQL password of the source Rivendell database. + + + + + -A audio-dir + + + The path to the directory containing the source + Rivendell audio files. + + + + + -g 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. + + + + + -s start-cartnum + + + The first cart in the range of those to be transferred. + + + + + -e hostname + + + The last cart in the range of those to be transferred. + + + + + + + + Procedure + + In order transfer carts from an external Rivendell system, proceed as + follows: + + + 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. + + + + 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. + + + + 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. + + + + 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. + + + + Duplicate Cart Numbers + + 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 + + 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. + + + + diff --git a/docs/docbook/rml.xml b/docs/opsguide/rml.xml similarity index 90% rename from docs/docbook/rml.xml rename to docs/opsguide/rml.xml index 0655694a..d82c8ed1 100644 --- a/docs/docbook/rml.xml +++ b/docs/opsguide/rml.xml @@ -1,27 +1,17 @@ - -
- - Rivendell Macro Language - 1.0.0 - - - Fred - Gleason - fredg@paravelsystems.com - - - - - - Scope - - Rivendell Macro Language (RML) is a system of commands formulated to - specify actions to be taken by and within the Rivendell Radio Automation - system. - - - - + + Rivendell Macro Langauge + + Overview + + Rivendell Macro Language (or RML for short) is a set of commands + implemented within Rivendell that can be used to program the system + to take various actions. A wide variety of commands exist, ranging + from control of outboard gear (such as switchers and GPIO devices) + to control of various aspects of log playout in RDAirPlay, to + Rivendell user management. + + + Protocol The Normal form of a command takes the following syntax: @@ -65,7 +55,7 @@ - + Command Delivery To be executed by a Rivendell system, an appropriate command should be @@ -77,7 +67,7 @@ - + Command Reply If delivered to UDP port 5858, each command may receive a reply, @@ -120,7 +110,7 @@ - + Specifying Color In places where a color can be specified as a macro argument, the @@ -147,7 +137,7 @@ - + Binary Data Certain commands (e.g. SO and UO) @@ -179,10 +169,10 @@ - + Commands - - <command>Air Gate [AG]</command> + + Air Gate [AG] @@ -208,8 +198,8 @@ - - <command>Add Next [PX]</command> + + Add Next [PX] @@ -236,8 +226,8 @@ - - <command>Binary Serial Out [BO]</command> + + Binary Serial Out [BO] @@ -266,8 +256,8 @@ - - <command>Clear Serial Trap [SC]</command> + + Clear Serial Trap [SC] @@ -309,8 +299,8 @@ - - <command>Command Send [CC]</command> + + Command Send [CC] @@ -341,8 +331,8 @@ - - <command>Connect Jack Ports [JC]</command> + + Connect Jack Ports [JC] @@ -369,8 +359,8 @@ - - <command>Console Label [CL]</command> + + Console Label [CL] @@ -400,8 +390,8 @@ - - <command>Copy Cut [CP]</command> + + Copy Cut [CP] @@ -434,8 +424,8 @@ - - <command>Cut Event [CE]</command> + + Cut Event [CE] @@ -464,8 +454,8 @@ - - <command>Database Backup [DB]</command> + + Database Backup [DB] @@ -491,8 +481,8 @@ - - <command>Disconnect Jack Ports [JD]</command> + + Disconnect Jack Ports [JD] @@ -519,8 +509,8 @@ - - <command>Duck Panel Button [PD]</command> + + Duck Panel Button [PD] @@ -564,8 +554,8 @@ - - <command>Execute Breakaway [DX]</command> + + Execute Breakaway [DX] @@ -596,8 +586,8 @@ - - <command>Execute Cart [EX]</command> + + Execute Cart [EX] @@ -622,8 +612,8 @@ - - <command>Fire Salvo [FS]</command> + + Fire Salvo [FS] @@ -650,8 +640,8 @@ - - <command>GPI Enable [GE]</command> + + GPI Enable [GE] @@ -693,8 +683,8 @@ - - <command>GPI Enable [GE]</command> (old format, deprecated) + + GPI Enable [GE] (old format, deprecated) @@ -723,8 +713,8 @@ - - <command>GPI Set [GI]</command> + + GPI Set [GI] @@ -769,8 +759,8 @@ - - <command>GPI Set [GI]</command> (old format, deprecated) + + GPI Set [GI] (old format, deprecated) @@ -800,8 +790,8 @@ - - <command>GPO Set [GO]</command> + + GPO Set [GO] @@ -866,8 +856,8 @@ - - <command>GPO Set [GO]</command> (old format, deprecated) + + GPO Set [GO] (old format, deprecated) @@ -898,8 +888,8 @@ - - <command>Insert Serial Trap [SI]</command> + + Insert Serial Trap [SI] @@ -929,8 +919,8 @@ - - <command>Label Panel [PC]</command> + + Label Panel [PC] @@ -966,8 +956,8 @@ - - <command>Load Log [LL]</command> + + Load Log [LL] @@ -1001,8 +991,8 @@ - - <command>Load Panel [PE]</command> + + Load Panel [PE] @@ -1036,8 +1026,8 @@ - - <command>Load Slot [DL]</command> + + Load Slot [DL] @@ -1087,8 +1077,8 @@ - - <command>Login [LO]</command> + + Login [LO] @@ -1116,8 +1106,8 @@ - - <command>Macro Timer [MT]</command> + + Macro Timer [MT] @@ -1149,8 +1139,8 @@ - - <command>Make Next [MN]</command> + + Make Next [MN] @@ -1177,8 +1167,8 @@ - - <command>Message Box [MB]</command> + + Message Box [MB] @@ -1220,10 +1210,23 @@ Critical + + 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 + xhost1 man page. + - - <command>Pause Panel [PU]</command> + + Pause Panel [PU] @@ -1261,8 +1264,8 @@ - - <command>Play Panel [PP]</command> + + Play Panel [PP] @@ -1301,8 +1304,8 @@ - - <command>Play Slot [DP]</command> + + Play Slot [DP] @@ -1329,8 +1332,8 @@ - - <command>Refresh Log [RL]</command> + + Refresh Log [RL] @@ -1356,8 +1359,8 @@ - - <command>Run Shell Command [RN]</command> + + Run Shell Command [RN] @@ -1382,8 +1385,8 @@ - - <command>Select Widget [PW]</command> + + Select Widget [PW] @@ -1409,8 +1412,8 @@ - - <command>Serial Out [SO]</command> + + Serial Out [SO] @@ -1439,8 +1442,8 @@ - - <command>Serial Reload [SY]</command> + + Serial Reload [SY] @@ -1467,8 +1470,8 @@ - - <command>Set Color Label [LC]</command> + + Set Color Label [LC] @@ -1495,8 +1498,8 @@ - - <command>Set Default Now & Next Cart [SN]</command> + + Set Default Now & Next Cart [SN] @@ -1524,8 +1527,8 @@ - - <command>Set Display [SD]</command> + + Set Display [SD] @@ -1635,8 +1638,8 @@ - - <command>Set Duck Level [MD]</command> + + Set Duck Level [MD] @@ -1669,8 +1672,8 @@ - - <command>Set Label [LB]</command> + + Set Label [LB] @@ -1695,8 +1698,8 @@ - - <command>Set Mode [PM]</command> + + Set Mode [PM] @@ -1740,8 +1743,8 @@ - - <command>Sleep [SP]</command> + + Sleep [SP] @@ -1766,8 +1769,8 @@ - - <command>Start [PL]</command> + + Start [PL] @@ -1794,8 +1797,8 @@ - - <command>Start Button [PB]</command> + + Start Button [PB] @@ -1820,8 +1823,8 @@ - - <command>Start Next [PN]</command> + + Start Next [PN] @@ -1854,8 +1857,8 @@ - - <command>Start Record Deck [RS]</command> + + Start Record Deck [RS] @@ -1890,8 +1893,8 @@ - - <command>Stop [PS]</command> + + Stop [PS] @@ -1921,8 +1924,8 @@ - - <command>Stop Panel [PT]</command> + + Stop Panel [PT] @@ -1963,8 +1966,8 @@ - - <command>Stop Record Deck [RR]</command> + + Stop Record Deck [RR] @@ -1989,8 +1992,8 @@ - - <command>Stop Slot [DS]</command> + + Stop Slot [DS] @@ -2017,8 +2020,8 @@ - - <command>Switch Add [SA]</command> + + Switch Add [SA] @@ -2048,8 +2051,8 @@ - - <command>Switch Add With Gain [SG]</command> + + Switch Add With Gain [SG] @@ -2082,8 +2085,8 @@ - - <command>Switch Crosspoint Gain [SX]</command> + + Switch Crosspoint Gain [SX] @@ -2114,8 +2117,8 @@ - - <command>Switch Level [SL]</command> + + Switch Level [SL] @@ -2144,8 +2147,8 @@ - - <command>Switch Reload [SZ]</command> + + Switch Reload [SZ] @@ -2172,8 +2175,8 @@ - - <command>Switch Remove [SR]</command> + + Switch Remove [SR] @@ -2203,8 +2206,8 @@ - - <command>Switch Take [ST]</command> + + Switch Take [ST] @@ -2234,8 +2237,8 @@ - - <command>Toggle On Air Flag [TA]</command> + + Toggle On Air Flag [TA] @@ -2260,8 +2263,8 @@ - - <command>UDP Out [UO]</command> + + UDP Out [UO] @@ -2290,7 +2293,5 @@ well as textual characters (see Binary Data above). - - -
+ diff --git a/docs/opsguide/utilities.rmlsend_screenshot.png b/docs/opsguide/utilities.rmlsend_screenshot.png new file mode 100644 index 00000000..39a10aa9 Binary files /dev/null and b/docs/opsguide/utilities.rmlsend_screenshot.png differ diff --git a/docs/opsguide/utilities.xml b/docs/opsguide/utilities.xml new file mode 100644 index 00000000..629cacac --- /dev/null +++ b/docs/opsguide/utilities.xml @@ -0,0 +1,129 @@ + + Interfacing with the Linux Ecosystem: Command-Line Utilities + + Rivendell includes a number of command-line utilities. Some of these + can be used to perform efficient "bulk" operations --e.g. + import thousands of audio files in one command -- while others are + useful in various aspects of system maintenance. This section provides + a brief overview of the available utilities; full documentation for each + is available via the Linux man page facility. + + + rdclilogedit(1) + + rdclilogedit1 is a + command-line interface (CLI) program that can be used to edit + Rivendell logs. It is loosely modeled after the venerable + ed1 command-line editor + and so is particularly well suited for use in scripting + environments. + + + Full documentation is available by doing + man 1 rdclilogedit. + + + + rdconvert(1) + + rdconvert1 is a command-line + interface (CLI) program that can be used to convert an audio file + into a different format. + + + Full documentation is available by doing + man 1 rdconvert. + + + + rddbcheck(8) + + rddbcheck8 is a + command-line interface (CLI) program that can be used to check a + Rivendell database for consistency and correct errors found. + + + Full documentation is available by doing + man 8 rddbcheck. + + + + rdexport(1) + + rdexport1 is a command-line + interface (CLI) program that can be used to + export audio material from the Rivendell Library. It is particularly + useful in situations where a large number of audio files need to be + exported in an automated fashion, and is capable of exporting + thousands of files with a single command-line invocation. + + + Full documentation is available by doing + man 1 rdexport. + + + + rdimport(1) + + rdimport1 is a command-line + interface (CLI) program that can be used to + import audio material into the Rivendell Library. It is particularly + useful in situations where a large number of audio files need to be + imported in an automated fashion, and is capable of importing + thousands of files with a single command-line invocation. + + + Full documentation is available by doing + man 1 rdimport. + + + + rdmarkerset(8) + + rdmarkerset8 is a + command-line interface (CLI) program that can be used to set or + alter audio cut markers in the Rivendell Radio Automation System. + It is capable of altering multiple cuts in a single operation. + + + Full documentation is available by doing + man 8 rdmarkerset. + + + + rdrevert(8) + + rdrevert8 is a + command-line interface (CLI) program that can be used to revert a + Rivendell database to a previous schema version. + + + Full documentation is available by doing + man 8 rdrevert. + + + + rmlsend(1) + + rmlsend1 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). + + + If started with no arguments, RMLSend will come up in GUI mode. + + + + + + + RMLSend in GUI Mode + + + + Full documentation is available by doing + man 1 rmlsend. + + + diff --git a/docs/opsguide/voicetracking.voice_tracker_dialog.png b/docs/opsguide/voicetracking.voice_tracker_dialog.png new file mode 100644 index 00000000..2aacb540 Binary files /dev/null and b/docs/opsguide/voicetracking.voice_tracker_dialog.png differ diff --git a/docs/opsguide/voicetracking.voice_tracker_dialog_recording.png b/docs/opsguide/voicetracking.voice_tracker_dialog_recording.png new file mode 100644 index 00000000..aa95ff36 Binary files /dev/null and b/docs/opsguide/voicetracking.voice_tracker_dialog_recording.png differ diff --git a/docs/opsguide/voicetracking.voice_tracker_dialog_track_1_playing.png b/docs/opsguide/voicetracking.voice_tracker_dialog_track_1_playing.png new file mode 100644 index 00000000..3fcd5479 Binary files /dev/null and b/docs/opsguide/voicetracking.voice_tracker_dialog_track_1_playing.png differ diff --git a/docs/opsguide/voicetracking.voice_tracker_dialog_track_2_playing.png b/docs/opsguide/voicetracking.voice_tracker_dialog_track_2_playing.png new file mode 100644 index 00000000..034496b7 Binary files /dev/null and b/docs/opsguide/voicetracking.voice_tracker_dialog_track_2_playing.png differ diff --git a/docs/opsguide/voicetracking.voice_tracker_dialog_track_completed.png b/docs/opsguide/voicetracking.voice_tracker_dialog_track_completed.png new file mode 100644 index 00000000..5ad5b7eb Binary files /dev/null and b/docs/opsguide/voicetracking.voice_tracker_dialog_track_completed.png differ diff --git a/docs/opsguide/voicetracking.voice_tracker_dialog_track_selected.png b/docs/opsguide/voicetracking.voice_tracker_dialog_track_selected.png new file mode 100644 index 00000000..5e92fd48 Binary files /dev/null and b/docs/opsguide/voicetracking.voice_tracker_dialog_track_selected.png differ diff --git a/docs/opsguide/voicetracking.xml b/docs/opsguide/voicetracking.xml new file mode 100644 index 00000000..9ca1eb0e --- /dev/null +++ b/docs/opsguide/voicetracking.xml @@ -0,0 +1,225 @@ + + VoiceTracking + + Voicetracking in Rivendell + + Voicetracking is a capability wherein custom "one-off" + content is created and inserted into logs, making it possible to + create programming that sounds very spontaneous and "live". + In Rivendell, such voicetracks are placed into a special type of audio + cart known as a voicetrack cart. These carts are automatically + created, deleted and managed by the voicetracker interface (part of + the RDLogEdit module), with no manual user intervention required. + The voicetracker module also includes extensive capabilities for + allowing customization of the transitions between log elements. + + + + + + + The Voice Tracker Dialog + + + + Prerequisites + + Before beginning voicetracking for a particular service, a + voicetracker group and pool of available cart numbers must be + configured in the RDAdmin module. These procedures are detailed in + the Rivendell Technical and Administration Guide. + + + + VoiceTrack Markers + + A voicetrack marker is a meta event that can be inserted into a log + as a "placeholder" to others to indicate where a voicetrack + is to be recorded. Track markers can be inserted by RDLogEdit, + RDLogManager events or even embedded in data generated by external + schedulers. + + + + + + + The Voice Tracker Dialog (track selected) + + + + + + Using the Voicetrack Interface + + The VoiceTracker Dialog + + To voicetrack a log, start the RDLogEdit module, + highlight the desired log and touch the + VoiceTracker button, opening + the VoiceTracker dialog. This dialog consists + of three major parts: the waveform area, the log list and the control + buttons. + + + The waveform area is in the upper center part of the dialog, and + consists of four "panes". The upper three display waveform + depictions while the fourth contains audition control buttons, an + audio meter and various counters. Directly below this is the log + list, showing a copy of the currently loaded log. The control + buttons occupy the bottom and right-hand edges of the dialog. + + + + + + + The Voice Tracker Dialog (1st track playing) + + + + + Editing Transitions + + When an event is selected in the log list, a graphical depiction of + the transition into that event is loaded into the waveform area. + If the selected event and its prior event in the log is not a + voicetrack or track marker, then the selected event will be + displayed in the third pane of the waveform area and the previous + event displayed in the first pane. If the selected event or its + prior event is a voicetrack or track marker, then voicetrack or + marker will be displayed in the second pane of the waveform area. + + + Once selected, a transition can be auditioned by touching the play + button in the fourth pane of the waveform area. Play will start + from the left-hand edge of the topmost waveform. This start + location can be adjusted by dragging the topmost waveform to the + left or right by means of the mouse or touchscreen. If the + transition type of the selected event is SEGUE, it is also possible + to adjust the degree of audio overlap by dragging the second or + third waveform as well. It's possible to “undo” changes made in + the segue overlap by right-clicking on the waveform and selecting + Undo Segue Changes from the menu. + To make the overlap permanent, + touch the Save button. To restore + the transition to its default + state (calculated on the basis of segue markers from the Library) + touch the Do Over button. + The transition type can be changed by + right-clicking on an event and selecting the desired transition + type from the menu. + + + + + + + The Voice Tracker Dialog (recording) + + + + + Inserting and Deleting Track Markers + + It is possible to insert a new voicetrack marker by selecting the + desired location in the log list and touching the + Insert Track + button. An existing voicetrack marker can likewise by deleted by + selecting it in the log list and touching the + Delete Track button. + + + + Moving Between Track Markers + + It is possible to move directly to the next or previous voicetrack + marker simply by touching the + Next Track or + Previous Track buttons, + respectively. + + + + + + + The Voice Tracker Dialog (2nd track playing) + + + + + Recording a Voicetrack + + Once the desired voicetrack marker has been selected, the process + of recording a voicetrack consists of four steps, each initiated by + one of the four square control buttons in the upper right-hand + corner of the dialog. + + + To begin, touch the topmost + Start button. This will cause the + audio in the topmost pane to begin playing, with a cursor to show + playback position. To begin the actual + recording, touch the Record button. + To start the following event (in the third pane), touch the second + Start + button. Finally, to stop recording, touch + the Save button. + The record process can be + canceled at any time by touching the + Abort button, restoring the + transition to its default state. It is also possible to undo a + completed voicetrack by touching the + Do Over button. + + + Once completed, the segue overlaps into and out of a voicetrack can + be adjusted in the same manner as for simple transitions –i.e. by + dragging the appropriate waveforms with the mouse. + + + + + + + The Voice Tracker Dialog (track completed) + + + + + Adjusting Transition Levels + + It is possible to adjust the audio fade levels applied during + transitions by means of rubber bands on the waveform displays. + These are green lines with small square targets. To adjust a rubber + band, use the mouse to grab one of the targets and drag it to the + desired location. + + + + Importing Voicetracks + + In addition to recording in realtime, it's possible to import a + voicetrack directly from an audio file. To do so, select the + desired voicetrack marker and then touch the + Import button to open + the Import/Export Audio dialog. (For more + information on using the Import/Export Audio dialog, see Section + 3.1.0 Importing Audio from a File). Once imported, the voicetrack + can be manipulated in the same manner as those that were directly + recorded. + + + + Hitting the Post + + If the event following a voicetrack has its Talk Time markers set, + it is possible to set the transition so that the end of the + voicetrack automatically aligns with the end of the Talk Time + (commonly referred to as hitting the post). To do this, simply + touch the Hit Post button. + + + + diff --git a/docs/opsguide/wings_filter.xml b/docs/opsguide/wings_filter.xml new file mode 100644 index 00000000..80e58f41 --- /dev/null +++ b/docs/opsguide/wings_filter.xml @@ -0,0 +1,126 @@ + + Wings Filter + + Overview + + Wings Filter is a script designed to be used to import existing audio + and meta-data from an AirForce 'Wings' automation system. + + + + + Usage + + wings_filter + -g default-group + -d db-file + -A audio-dir + -e audio-ext + + + + + -g 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 destination Group. + + + + + -d db-file + + + The path to the Wings database file. + + + + + -A audio-dir + + + The path to the directory containing the Wings ATX + audio files. + + + + + -s 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. + + + + + + + + Procedure + + In order import audio from an existing Wings system, proceed as + follows: + + + 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. + + + + 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. + + + + 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. + + + + Invoke Script + + Start up the script, as described in + . The script will print progress + reports as it proceeds, or notify you of + error conditions as required. + + + + 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. + + + + diff --git a/docs/ripc.txt b/docs/ripc.txt deleted file mode 100644 index 28e80a0b..00000000 --- a/docs/ripc.txt +++ /dev/null @@ -1,86 +0,0 @@ - Rivendell Interprocess Communication Protocol - -This defines the IP protocol used for communication between different -modules of Rivendell and the 'ripcd' daemon. - -Connection to ripcd is by means of a TCP SOCK_STREAM connection to TCP -port 5006. The format of a message is as follows: - - [][...]! - -where: - - is a two-letter code indicating the nature of the message. - 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 ! -- 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. - -RU! -- Request User -Request the LOGIN_NAME of the user currently logged in. -Ripcd will respond with RU !. - -SU ! -- SET USER -Log in. Ripcd will respond with RU ! - -MS ! -Send an RML command to the specified destination. - -ME ! -Send an RML echo to the specified destination. - -GC ! -Return the current GPI line cart numbers for matrix . -Return for each line: - GC ! - Indicates a change in a GPI line cart number (receive only). - -GD ! -Return the current GPO line cart numbers for matrix . -Return for each line: - GD ! - Indicates a change in a GPO line cart number (receive only). - -GI ! -Return the current GPI line states for matrix . -Return for each line: - GI ! - Indicates a change in a GPI line status (receive only). - -GO ! -Return the current GPO line states for matrix . -Return for each line: - GO ! - Indicates a change in a GPO line status (receive only). - -GM ! -Return the current GPI line mask states for matrix . -Return for each line: - GM ! - Indicates a change in a GPI line mask status (receive only). - -GN ! -Return the current GPO line mask states for matrix . -Return for each line: - GN ! - Indicates a change in a GPO line mask status (receive only). - -RG! -Reload the GPI table. - -TA! -Request the current state of the On Air flag. -Ripcd will respond with TA 0|1!, with 0 = Off and 1 = On. diff --git a/docs/stylesheets/Makefile.am b/docs/stylesheets/Makefile.am new file mode 100644 index 00000000..256f672c --- /dev/null +++ b/docs/stylesheets/Makefile.am @@ -0,0 +1,38 @@ +## Makefile.am +## +## docs/stylesheets/Makefile.am for Rivendell +## +## (C) Copyright 2017 Fred Gleason +## +## 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 + +all-local: book-fo-titlepages.xsl + +book-fo-titlepages.xsl: book-fo-titlepages-spec.xml + xsltproc -o book-fo-titlepages.xsl ../../helpers/docbook/template/titlepage.xsl book-fo-titlepages-spec.xml + +EXTRA_DIST = book-common.xml\ + book-fo-titlepages.xsl\ + book-fo.xml\ + book-fo-titlepages-spec.xml\ + book-xhtml.xml + +CLEANFILES = *~\ + *.xsl +MAINTAINERCLEANFILES = *~\ + aclocal.m4\ + configure\ + Makefile.in diff --git a/docs/stylesheets/book-common.xml b/docs/stylesheets/book-common.xml new file mode 100644 index 00000000..111fb35b --- /dev/null +++ b/docs/stylesheets/book-common.xml @@ -0,0 +1,30 @@ + + + + + + +1 +1 + + diff --git a/docs/stylesheets/book-fo-titlepages-spec.xml b/docs/stylesheets/book-fo-titlepages-spec.xml new file mode 100644 index 00000000..610a52cc --- /dev/null +++ b/docs/stylesheets/book-fo-titlepages-spec.xml @@ -0,0 +1,1588 @@ + + + + + + + + + + + + +]> + + + + + + + + + + + + + <subtitle/> + + <corpauthor space-before="0.5em" + font-size="&hsize2;"/> + <authorgroup space-before="0.5em" + font-size="&hsize2;"/> + <author space-before="0.5em" + font-size="&hsize2;"/> + + <!-- If you add editor, include this t:predicate attribute + because only the first editor generates the list of editors. + <editor t:predicate="[position() = 1]"/> + --> + <othercredit space-before="0.5em"/> + <releaseinfo space-before="0.5em"/> + <copyright space-before="0.5em"/> + <legalnotice text-align="start" + margin-left="0.5in" + margin-right="0.5in" + font-family="{$body.fontset}"/> + <pubdate space-before="0.5em"/> + <revision space-before="0.5em"/> + <revhistory space-before="0.5em"/> + <abstract space-before="0.5em" + text-align="start" + margin-left="0.5in" + margin-right="0.5in" + font-family="{$body.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="set" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:named-template="division.title" + param:node="ancestor-or-self::set[1]" + text-align="center" + font-size="&hsize5;" + space-before="&hsize5space;" + font-weight="bold" + font-family="{$title.fontset}"/> + <subtitle + font-family="{$title.fontset}" + text-align="center"/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="book" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:named-template="division.title" + param:node="ancestor-or-self::book[1]" + text-align="center" + font-size="&hsize5;" + space-before="&hsize5space;" + font-weight="bold" + font-family="{$title.fontset}"/> + <subtitle + text-align="center" + font-size="&hsize4;" + space-before="&hsize4space;" + font-family="{$title.fontset}"/> + <corpauthor font-size="&hsize3;" + keep-with-next.within-column="always" + space-before="2in"/> + <authorgroup space-before="2in"/> + <author font-size="&hsize3;" + space-before="&hsize2space;" + keep-with-next.within-column="always"/> + <mediaobject/> + <edition font-size="&hsize3;" + space-before="&hsize2space;" + keep-with-next.within-column="always"/> + + <!-- If you add editor, include this t:predicate attribute + because only the first editor generates the list of editors. + <editor t:predicate="[position() = 1]"/> + --> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + <title + t:named-template="book.verso.title" + font-size="&hsize2;" + font-weight="bold" + font-family="{$title.fontset}"/> + <corpauthor/> + <authorgroup t:named-template="verso.authorgroup"/> + <author/> + <!-- If you add editor, include this t:predicate attribute + because only the first editor generates the list of editors. + <editor t:predicate="[position() = 1]"/> + --> + <othercredit/> + <releaseinfo space-before="0.5em"/> + <pubdate space-before="1em"/> + <copyright/> + <abstract/> + <legalnotice font-size="8pt"/> + </t:titlepage-content> + + <t:titlepage-separator> + <fo:block break-after="page"/> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + <fo:block break-after="page"/> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="part" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:named-template="division.title" + param:node="ancestor-or-self::part[1]" + text-align="center" + font-size="&hsize5;" + space-before="&hsize5space;" + font-weight="bold" + font-family="{$title.fontset}"/> + <subtitle + text-align="center" + font-size="&hsize4;" + space-before="&hsize4space;" + font-weight='bold' + font-style='italic' + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="partintro" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + text-align="center" + font-size="&hsize5;" + font-weight="bold" + space-before="1em" + font-family="{$title.fontset}"/> + <subtitle + text-align="center" + font-size="&hsize2;" + font-weight="bold" + font-style="italic" + font-family="{$title.fontset}"/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="reference" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:named-template="division.title" + param:node="ancestor-or-self::reference[1]" + text-align="center" + font-size="&hsize5;" + space-before="&hsize5space;" + font-weight="bold" + font-family="{$title.fontset}"/> + <subtitle + font-family="{$title.fontset}" + text-align="center"/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="refsynopsisdiv" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="refsection" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="refsect1" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="refsect2" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="refsect3" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="dedication" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::dedication[1]" + margin-left="{$title.margin.left}" + font-size="&hsize5;" + font-family="{$title.fontset}" + font-weight="bold"/> + <subtitle + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<!-- Same formatting as dedication --> + <t:titlepage t:element="acknowledgements" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::acknowledgements[1]" + margin-left="{$title.margin.left}" + font-size="&hsize5;" + font-family="{$title.fontset}" + font-weight="bold"/> + <subtitle + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + + +<!-- ==================================================================== --> + + <t:titlepage t:element="preface" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::preface[1]" + margin-left="{$title.margin.left}" + font-size="&hsize5;" + font-family="{$title.fontset}" + font-weight="bold"/> + <subtitle + font-family="{$title.fontset}"/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="chapter" t:wrapper="fo:block" + font-family="{$title.fontset}"> + <t:titlepage-content t:side="recto" margin-left="{$title.margin.left}"> + <title t:named-template="component.title" + param:node="ancestor-or-self::chapter[1]" + font-size="&hsize5;" + font-weight="bold"/> + + <subtitle space-before="0.5em" + font-style="italic" + font-size="&hsize2;" + font-weight="bold"/> + + <corpauthor space-before="0.5em" + space-after="0.5em" + font-size="&hsize2;"/> + + <authorgroup space-before="0.5em" + space-after="0.5em" + font-size="&hsize2;"/> + + <author space-before="0.5em" + space-after="0.5em" + font-size="&hsize2;"/> + + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="appendix" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:named-template="component.title" + param:node="ancestor-or-self::appendix[1]" + margin-left="{$title.margin.left}" + font-size="&hsize5;" + font-weight="bold" + font-family="{$title.fontset}"/> + <subtitle + font-family="{$title.fontset}"/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + +<t:titlepage t:element="section" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + margin-left="{$title.margin.left}" + font-family="{$title.fontset}"/> + <subtitle + font-family="{$title.fontset}"/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect1" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + margin-left="{$title.margin.left}" + font-family="{$title.fontset}"/> + <subtitle + font-family="{$title.fontset}"/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect2" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + margin-left="{$title.margin.left}" + font-family="{$title.fontset}"/> + <subtitle + font-family="{$title.fontset}"/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect3" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + margin-left="{$title.margin.left}" + font-family="{$title.fontset}"/> + <subtitle + font-family="{$title.fontset}"/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect4" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + margin-left="{$title.margin.left}" + font-family="{$title.fontset}"/> + <subtitle + font-family="{$title.fontset}"/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="sect5" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + margin-left="{$title.margin.left}" + font-family="{$title.fontset}"/> + <subtitle + font-family="{$title.fontset}"/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="simplesect" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + margin-left="{$title.margin.left}" + font-family="{$title.fontset}"/> + <subtitle + font-family="{$title.fontset}"/> + <corpauthor/> + <authorgroup/> + <author/> + <othercredit/> + <releaseinfo/> + <copyright/> + <legalnotice/> + <pubdate/> + <revision/> + <revhistory/> + <abstract/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<t:titlepage t:element="topic" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + font-weight="bold" + font-size="&hsize3;" + space-before="1em" + space-after="1em" + font-family="{$title.fontset}"/> + <subtitle + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="bibliography" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::bibliography[1]" + margin-left="{$title.margin.left}" + font-size="&hsize5;" + font-family="{$title.fontset}" + font-weight="bold"/> + <subtitle + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="bibliodiv" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title t:named-template="component.title" + param:node="ancestor-or-self::bibliodiv[1]" + margin-left="{$title.margin.left}" + font-size="&hsize4;" + font-family="{$title.fontset}" + font-weight="bold"/> + <subtitle + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="glossary" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::glossary[1]" + margin-left="{$title.margin.left}" + font-size="&hsize5;" + font-family="{$title.fontset}" + font-weight="bold"/> + <subtitle + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="glossdiv" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title t:named-template="component.title" + param:node="ancestor-or-self::glossdiv[1]" + margin-left="{$title.margin.left}" + font-size="&hsize4;" + font-family="{$title.fontset}" + font-weight="bold"/> + <subtitle + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="index" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::index[1]" + param:pagewide="1" + margin-left="0pt" + font-size="&hsize5;" + font-family="{$title.fontset}" + font-weight="bold"/> + <subtitle + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + +<!-- ==================================================================== --> + + <!-- The indexdiv.title template is used so that manual and --> + <!-- automatically generated indexdiv titles get the same --> + <!-- formatting. --> + + <t:titlepage t:element="indexdiv" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title t:force="1" + t:named-template="indexdiv.title" + param:title="title"/> + <subtitle + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="setindex" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::setindex[1]" + param:pagewide="1" + margin-left="0pt" + font-size="&hsize5;" + font-family="{$title.fontset}" + font-weight="bold"/> + <subtitle + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="colophon" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="component.title" + param:node="ancestor-or-self::colophon[1]" + margin-left="{$title.margin.left}" + font-size="&hsize5;" + font-family="{$title.fontset}" + font-weight="bold"/> + <subtitle + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="sidebar" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + font-family="{$title.fontset}" + font-weight="bold"/> + <subtitle + font-family="{$title.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + +<!-- ==================================================================== --> +<t:titlepage t:element="qandaset" t:wrapper="fo:block" + font-family="{$title.fontset}"> + + <t:titlepage-content t:side="recto" + start-indent="0pt" + text-align="center"> + + <title t:named-template="component.title" + param:node="ancestor-or-self::qandaset[1]" + keep-with-next.within-column="always" + font-size="&hsize5;" + font-weight="bold"/> + + <subtitle/> + + <corpauthor space-before="0.5em" + font-size="&hsize2;"/> + <authorgroup space-before="0.5em" + font-size="&hsize2;"/> + <author space-before="0.5em" + font-size="&hsize2;"/> + + <othercredit space-before="0.5em"/> + <releaseinfo space-before="0.5em"/> + <copyright space-before="0.5em"/> + <legalnotice text-align="start" + margin-left="0.5in" + margin-right="0.5in" + font-family="{$body.fontset}"/> + <pubdate space-before="0.5em"/> + <revision space-before="0.5em"/> + <revhistory space-before="0.5em"/> + <abstract space-before="0.5em" + text-align="start" + margin-left="0.5in" + margin-right="0.5in" + font-family="{$body.fontset}"/> + <itermset/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> +</t:titlepage> + +<!-- ==================================================================== --> + + <t:titlepage t:element="table.of.contents" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="gentext" + param:key="'TableofContents'" + space-before.minimum="1em" + space-before.optimum="1.5em" + space-before.maximum="2em" + space-after="0.5em" + start-indent="0pt" + font-size="&hsize3;" + font-weight="bold" + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + + <t:titlepage t:element="list.of.tables" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="gentext" + param:key="'ListofTables'" + space-before.minimum="1em" + space-before.optimum="1.5em" + space-before.maximum="2em" + space-after="0.5em" + start-indent="0pt" + font-size="&hsize3;" + font-weight="bold" + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + + <t:titlepage t:element="list.of.figures" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="gentext" + param:key="'ListofFigures'" + space-before.minimum="1em" + space-before.optimum="1.5em" + space-before.maximum="2em" + space-after="0.5em" + start-indent="0pt" + font-size="&hsize3;" + font-weight="bold" + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + + <t:titlepage t:element="list.of.examples" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="gentext" + param:key="'ListofExamples'" + space-before.minimum="1em" + space-before.optimum="1.5em" + space-before.maximum="2em" + space-after="0.5em" + start-indent="0pt" + font-size="&hsize3;" + font-weight="bold" + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + + <t:titlepage t:element="list.of.equations" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="gentext" + param:key="'ListofEquations'" + space-before.minimum="1em" + space-before.optimum="1.5em" + space-before.maximum="2em" + space-after="0.5em" + start-indent="0pt" + font-size="&hsize3;" + font-weight="bold" + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + + <t:titlepage t:element="list.of.procedures" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="gentext" + param:key="'ListofProcedures'" + space-before.minimum="1em" + space-before.optimum="1.5em" + space-before.maximum="2em" + space-after="0.5em" + start-indent="0pt" + font-size="&hsize3;" + font-weight="bold" + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + + <t:titlepage t:element="list.of.unknowns" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="gentext" + param:key="'ListofUnknown'" + space-before.minimum="1em" + space-before.optimum="1.5em" + space-before.maximum="2em" + space-after="0.5em" + start-indent="0pt" + font-size="&hsize3;" + font-weight="bold" + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + + <t:titlepage t:element="component.list.of.tables" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="gentext" + param:key="'ListofTables'" + space-before.minimum="1em" + space-before.optimum="1em" + space-before.maximum="1em" + space-after="0.5em" + margin-left="{$title.margin.left}" + font-size="&hsize1;" + font-weight="bold" + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + + <t:titlepage t:element="component.list.of.figures" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="gentext" + param:key="'ListofFigures'" + space-before.minimum="1em" + space-before.optimum="1em" + space-before.maximum="1em" + space-after="0.5em" + margin-left="{$title.margin.left}" + font-size="&hsize1;" + font-weight="bold" + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + + <t:titlepage t:element="component.list.of.examples" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="gentext" + param:key="'ListofExamples'" + space-before.minimum="1em" + space-before.optimum="1em" + space-before.maximum="1em" + space-after="0.5em" + margin-left="{$title.margin.left}" + font-size="&hsize1;" + font-weight="bold" + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + + <t:titlepage t:element="component.list.of.equations" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="gentext" + param:key="'ListofEquations'" + space-before.minimum="1em" + space-before.optimum="1em" + space-before.maximum="1em" + space-after="0.5em" + margin-left="{$title.margin.left}" + font-size="&hsize1;" + font-weight="bold" + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + + <t:titlepage t:element="component.list.of.procedures" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="gentext" + param:key="'ListofProcedures'" + space-before.minimum="1em" + space-before.optimum="1em" + space-before.maximum="1em" + space-after="0.5em" + margin-left="{$title.margin.left}" + font-size="&hsize1;" + font-weight="bold" + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + + <t:titlepage t:element="component.list.of.unknowns" t:wrapper="fo:block"> + <t:titlepage-content t:side="recto"> + <title + t:force="1" + t:named-template="gentext" + param:key="'ListofUnknown'" + space-before.minimum="1em" + space-before.optimum="1em" + space-before.maximum="1em" + space-after="0.5em" + margin-left="{$title.margin.left}" + font-size="&hsize1;" + font-weight="bold" + font-family="{$title.fontset}"/> + </t:titlepage-content> + + <t:titlepage-content t:side="verso"> + </t:titlepage-content> + + <t:titlepage-separator> + </t:titlepage-separator> + + <t:titlepage-before t:side="recto"> + </t:titlepage-before> + + <t:titlepage-before t:side="verso"> + </t:titlepage-before> + </t:titlepage> + +<!-- ==================================================================== --> + +</t:templates> diff --git a/docs/stylesheets/book-fo.xml b/docs/stylesheets/book-fo.xml new file mode 100644 index 00000000..0d18eae8 --- /dev/null +++ b/docs/stylesheets/book-fo.xml @@ -0,0 +1,36 @@ +<?xml version='1.0'?> + +<!-- + book-fo.xml + + FO stylesheet customizations for Rivendell books + + (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. +--> + +<xsl:stylesheet + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + +<xsl:import href="../../helpers/docbook/fo/docbook.xsl" /> +<xsl:import href="book-fo-titlepages.xsl" /> +<xsl:include href="book-common.xml" /> + +<!-- +<xsl:param name="use.id.as.filename">1</xsl:param> +--> + +</xsl:stylesheet> + diff --git a/docs/stylesheets/book-xhtml.xml b/docs/stylesheets/book-xhtml.xml new file mode 100644 index 00000000..5d206f87 --- /dev/null +++ b/docs/stylesheets/book-xhtml.xml @@ -0,0 +1,33 @@ +<?xml version='1.0'?> + +<!-- + book-xhtml.xml + + XHTML stylesheet customizations for Rivendell books + + (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. +--> + +<xsl:stylesheet + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + +<xsl:import href="../../helpers/docbook/xhtml/chunk.xsl" /> +<xsl:include href="book-common.xml" /> + +<xsl:param name="use.id.as.filename">1</xsl:param> + +</xsl:stylesheet> + diff --git a/helpers/Makefile.am b/helpers/Makefile.am index f1d2a1cd..326eeb19 100644 --- a/helpers/Makefile.am +++ b/helpers/Makefile.am @@ -44,6 +44,8 @@ CLEANFILES = *~\ *.tar.gz\ moc_* +DISTCLEANFILES = docbook + MAINTAINERCLEANFILES = *~\ *.tar.gz\ aclocal.m4\ diff --git a/icons/Makefile.am b/icons/Makefile.am index aa6a6765..fd82bd65 100644 --- a/icons/Makefile.am +++ b/icons/Makefile.am @@ -265,6 +265,7 @@ uninstall-local: EXTRA_DIST = admin.xpm\ blueball.xpm\ + chain.png\ chain.xpm\ checkmark.xpm\ download.xpm\ @@ -276,12 +277,17 @@ EXTRA_DIST = admin.xpm\ greenball.xpm\ greencheckmark.xpm\ marker.xpm\ + mic16.png\ mic16.xpm\ + music.png\ music.xpm\ note.xpm\ note2.xpm\ + notemarker.png\ notemarker.xpm\ - play.xpm macro.xpm\ + play.png\ + play.xpm\ + macro.xpm\ post.xpm\ post2.xpm\ post3.xpm\ @@ -449,15 +455,19 @@ EXTRA_DIST = admin.xpm\ rml.xpm\ rml2.xpm\ rml3.xpm\ + rml5.png\ rml5.xpm\ split.xpm\ switch.xpm\ switch2.xpm\ switch3.xpm\ track.xpm\ + track_cart.png\ track_cart.xpm\ + traffic.png\ traffic.xpm\ trashcan-16x16.xpm\ + trashcan-32x32.png\ trashcan-32x32.xpm\ upload.xpm\ user.xpm\ diff --git a/icons/chain.png b/icons/chain.png new file mode 100644 index 00000000..39a46293 Binary files /dev/null and b/icons/chain.png differ diff --git a/icons/mic16.png b/icons/mic16.png new file mode 100644 index 00000000..3a128889 Binary files /dev/null and b/icons/mic16.png differ diff --git a/icons/music.png b/icons/music.png new file mode 100644 index 00000000..97321943 Binary files /dev/null and b/icons/music.png differ diff --git a/icons/notemarker.png b/icons/notemarker.png new file mode 100644 index 00000000..28a156de Binary files /dev/null and b/icons/notemarker.png differ diff --git a/icons/play.png b/icons/play.png new file mode 100644 index 00000000..11a40936 Binary files /dev/null and b/icons/play.png differ diff --git a/icons/rml5.png b/icons/rml5.png new file mode 100644 index 00000000..33b65ab4 Binary files /dev/null and b/icons/rml5.png differ diff --git a/icons/track_cart.png b/icons/track_cart.png new file mode 100644 index 00000000..e903b601 Binary files /dev/null and b/icons/track_cart.png differ diff --git a/icons/traffic.png b/icons/traffic.png new file mode 100644 index 00000000..4d163747 Binary files /dev/null and b/icons/traffic.png differ diff --git a/icons/trashcan-32x32.png b/icons/trashcan-32x32.png new file mode 100644 index 00000000..d15d9009 Binary files /dev/null and b/icons/trashcan-32x32.png differ diff --git a/rivendell.spec.in b/rivendell.spec.in index eabecfe1..7e0dbafe 100644 --- a/rivendell.spec.in +++ b/rivendell.spec.in @@ -107,7 +107,12 @@ if test "@WIN32_SOURCE@" ; then mkdir -p $RPM_BUILD_ROOT/var/win32 cp @WIN32_SOURCE@ $RPM_BUILD_ROOT/var/win32/ fi - +mkdir -p $RPM_BUILD_ROOT/%{_datadir}/doc/rivendell-%{version}/opsguide/html +cp docs/opsguide/*.pdf $RPM_BUILD_ROOT/%{_datadir}/doc/rivendell-%{version}/opsguide/ +cp docs/opsguide/*.html $RPM_BUILD_ROOT/%{_datadir}/doc/rivendell-%{version}/opsguide/html/ +cp docs/opsguide/*.png $RPM_BUILD_ROOT/%{_datadir}/doc/rivendell-%{version}/opsguide/html +mkdir -p $RPM_BUILD_ROOT/%{_datadir}/doc/rivendell-%{version}/apis +cp docs/apis/*.pdf $RPM_BUILD_ROOT/%{_datadir}/doc/rivendell-%{version}/apis/ %post ldconfig @@ -359,6 +364,7 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/rdexport.1.gz %{_mandir}/man1/rdimport.1.gz %{_mandir}/man1/rdrender.1.gz +%{_mandir}/man1/rmlsend.1.gz %{_mandir}/man8/rddbcheck.8.gz %{_mandir}/man8/rdmarkerset.8.gz %{_mandir}/man8/rdrevert.8.gz @@ -373,18 +379,6 @@ rm -rf $RPM_BUILD_ROOT %doc conf/rd.conf-sample %doc conf/my.cnf-master %doc conf/my.cnf-standby -%doc docs/catchd.txt -%doc docs/colors -%doc docs/GPIO.txt -%doc docs/ripc.txt -%doc docs/SWITCHERS.txt -%doc docs/JACK.txt -%doc docs/ENCODERS.txt -%doc docs/pam_rd.txt -%doc docs/MESSAGE_BOX.txt -%doc docs/docbook/cae.pdf -%doc docs/docbook/rml.pdf -%doc docs/docbook/web_api.pdf %doc docs/tables/audio_perms.txt %doc docs/tables/audio_ports.txt %doc docs/tables/cart.txt @@ -409,7 +403,7 @@ rm -rf $RPM_BUILD_ROOT %doc docs/tables/ttys.txt %doc docs/tables/users.txt %doc docs/tables/version.txt -%doc docs/asound.conf-sample +%doc conf/asound.conf-sample %doc conf/rlm_walltime.conf %doc conf/rlm_serial.conf %doc conf/rlm_udp.conf @@ -428,23 +422,22 @@ rm -rf $RPM_BUILD_ROOT %doc conf/rlm_urlwrite.conf %doc conf/rlm_spinitron_plus.conf %doc conf/rlm_tagstation.conf -%doc docs/implemented_macros.txt %doc utils/sas_shim/rc.sas_shim -%doc docs/datetime_wildcards.txt -%doc docs/reports.txt -%doc docs/NOW+NEXT.txt -%doc docs/WIN32.txt -%doc docs/ALSA.txt -%doc docs/RDMONITOR.txt -%doc docs/scheduler_formats.ods -%doc docs/copy_split_format.odt -%doc docs/ando_interface.odt -%doc docs/metadata_wildcards.txt +%doc docs/misc/colors +%doc docs/misc/pam_rd.txt +%doc docs/misc/reports.txt +%doc docs/misc/ALSA.txt +%doc docs/misc/RDMONITOR.txt +%doc docs/misc/scheduler_formats.ods +%doc docs/misc/ando_interface.odt %doc scripts/rd_backup %doc scripts/start_traverso.sh %doc scripts/rd_mysql_enable_host.sh %doc scripts/rd_backup_system.sh %doc scripts/rd_restore_system.sh +%{_datadir}/doc/rivendell-%{version}/apis/*.pdf +%{_datadir}/doc/rivendell-%{version}/opsguide/*.pdf +%{_datadir}/doc/rivendell-%{version}/opsguide/html/* %files base @@ -485,9 +478,6 @@ rm -rf $RPM_BUILD_ROOT @LOCAL_PREFIX@/bin/rddiscimport @LOCAL_PREFIX@/share/applications/rivendell-rddgimport.desktop @LOCAL_PREFIX@/share/applications/rivendell-rddiscimport.desktop -%doc docs/WINGS_FILTER.txt -%doc docs/RIVENDELL_FILTER.txt -%doc docs/NEXGEN_FILTER.txt %doc scripts/engine_conv.py