# Configuring Rivendell with RDAdmin

## Overview

RDAdmin is the Rivendell module designed for the comprehensive configuration of the Rivendell system.

The RDAdmin Main Window

When starting up RDAdmin, you will be prompted to login in. For a freshly created Rivendell database, the default login parameters are a `User Name:` of `admin` with no `Password:`.

The Login Dialog

## Managing Users

To manage users in RDAdmin, touch the `Manage Users` to open the Rivendell User List dialog.

The Rivendell User List Dialog

Two different types of user exist within Rivendell: administrator users (those which have the `Administer System` right set), who are allowed to log into RDAdmin, and operational users, who are configured to have rights to operate specific portions of the Rivendell system but do not have access to RDAdmin. It is not possible for a single user to act in both roles.

A newly created Rivendell database will have one user of each type populated automatically, called "admin" and "user" respectively. To see the attributes of an existing user, select its entry on the `Users` list and touch the `Edit` button to open the User Dialog.

The Rivendell User Dialog

The upper third of the the dialog provides fields for basic information regarding the user as well as authentication settings. If the `Authenticate This User Locally` box is ticked, then the login password for this user can be set by touching the `Change Password` button. If unticked, then authentication is delegated to the Pluggable Authentication Module (PAM) specified in the `PAM Service:` field.

The `WebAPI Timeout:` field sets the timeout (in seconds) when connecting to Rivendell's WebAPI component, while the `Allow Web Logins` box, if ticked, permits this user to use the web component of RDCastManager.

The middle section of the dialog is where individual user rights are assigned for this user. The `Administer System` box, if ticked, will make this user an administrative user while disallowing the selection of any other rights. The other listed rights should be self-explanatory.

The bottom of the dialog contains three large buttons. The `Assign Group Permissions` button allows assignment of the specific groups which this user will be allowed to access in RDLibrary, the `Service Permissions` allows assignment of the services which this user will be allowed to access in RDLogEdit and the `Assign Podcast Feed Permissions` allows the assignment of the podcast feeds which this user will be allowed to manage in RDCastManager.

Touch the `OK` button to commit any changes made, or `Cancel` to abandon them.

## Managing Groups

To manage groups in RDAdmin, touch the `Manage Groups` button to open the Rivendell Group List dialog.

The Rivendell Group List Dialog

### Editing Group Information

To examine and modify an existing group, touch its entry in the `Groups` list and then touch the `Edit` button to open the Group Dialog.

The Rivendell Group Dialog

The `Default Import Title` is the title string that will be assigned to carts created by dropboxes or `rdimport` 1 when no file-specific title metadata is found. This field recognizes the following wildcards:

#### Default Import Title Wildcards

%f | Body part of the filename
%e | Extension part of the filename

The `Default Cart Type:` controls which type of cart (`Audio` or `Macro` RDLibrary will default to when creating a new cart in this group.

The `Default Cart Number:` fields define a range of cart numbers to use by default for this group --i.e. by RDLibrary or `rdimport` 1. If the `Enforce Cart Range` box is ticked, Rivendell will not permit carts to be created in or moved to this group whose cart number does not fall within this range.

If the `Include this group in Traffic reports` or `Include this group in Music reports` box is ticked, play-outs of carts belonging to this group in a log will be included in traffic or music reports, respectively.

If this `Set End Date/Time` box is ticked, then new cuts that belong to this group will have their end date/time automatically set to the specified number of days after the date of creation.

If the `Purge expired cuts` box is ticked, then cuts in the group will be purged --i.e. deleted -- the specified number of days after they expire. If `Delete cart if empty` is also ticked, then the cart containing the deleted cut will also be deleted if it contains no other cuts.

If the `Transmit Now ' Next` box is ticked, then carts in this group will generate an RLM event when played in a log.

Carts in this group will be allowed to play only on those services that are shown in the `Active Services` list.

To set a color for the group (used when the group name is displayed elsewhere in Rivendell, touch the `Color` button.

Touch the `OK` button to commit any changes made, or `Cancel` to abandon them.

### Renaming Groups

A group can be renamed by touching the `Rename` button. If the `New Group Name:` given already exists, then the carts in this group will be moved into that group.

The Rename Group Dialog

### Group Report

A printable report listing the defined groups and their attributes can be generated by touching the `Generate Report` button.

## Managing Services

To manage services in RDAdmin, touch the `Manage Services` button to open the Rivendell Services dialog.

The Rivendell Services Dialog

To examine and modify an existing service, touch its entry in the `Services` list and then touch the `Edit` button to open the Edit Service Dialog.

The Edit Service Dialog

### The `General` Section

The `Service Name` field contains the name of the service (read-only). This value is available in filepath wildcards as `%s`.

The `Service Description` field is for a free-form string that describes the service.

The `Program Code` is a string that is sent to RLM plug-ins as part of every Now & Next update.

The `Log Name Template` field is a string that defines how logs will be named when generated by RDLogManager. This field can take filepath wildcards.

The `Log Description Template` field is a string that defines how the `Description` for each log will be formatted for logs generated by RDLogManager. This field can take filepath wildcards.

The `Voicetrack Group` dropdown specifies the Rivendell group to be used for storing voicetracks for this service.

The `AutoSpot Group` dropdown specifies the Rivendell group to be used for storing carts used for the AutoSpot functionality.

The `Insert CHAIN TO at log end`, if ticked, will cause a CHAIN-TO event to the following day's log to be appended to the log when generated by RDLogManager.

The `Enable AutoRefresh By Default` box, if ticked, will cause the log's `Enable AutoRefresh` attribute to be set to `Yes` when generated by RDLogManager.

The `Purge Logs after` box, if ticked, will set the deletion date for logs to be the specified number of days after being created by RDLogManager.

The `Purge ELR Data after` box, if ticked, will cause Electronic Log Reconiliation (ELR) as-played data to be purged from the database the specified number of days after being generated.

#### Configuring Autofill Carts

The `Configure Autofill Carts` button will bring up the Autofill Carts dialog>

The Autofill Carts Dialog

Carts listed in this dialog will be considered for inclusion in an event by RDLogManager when the event's `Use Autofill` box is ticked. When filling a gap, RDLogManager will recursively scan the list of available carts, working from the longest to to shortest, and insert the longest cart that will fit. The process will stop when either the available gap has been completely filled or no cart short enough to fit has been found.

#### Enabling Hosts for Service Playout

The `Enable Hosts` button will bring up the Hosts dialog, where the hosts for which this service is allowed to be played can be defined

The Hosts Dialog

### Traffic/Music Data Importation Settings

With the exception of one field (`Insert Traffic Break String`), the `Traffic Data Import` and `Music Data Import` sections are identical. Thus, only the `Music Data Import` section will be described here.

The upper part of the section consists of string fields and a dropdown box.

Log Importation String Fields

The `Linux Import Path` field takes the fully-qualified path to the file to be used for import events by RDLogManager when run on Linux. This field can take filepath wildcards.

The `Linux Preimport Command` field takes the fully-qualified path to the command to be run before attempting to import the file specified in `Linux Import Path`. This field can take filepath wildcards.

The `Windows Import Path` field takes the fully-qualified path to the file to be used for import events by RDLogManager when run on Windows. This field can take filepath wildcards.

The `Windows Preimport Command` field takes the fully-qualified path to the command to be run before attempting to import the file specified in `Windows Import Path`. This field can take filepath wildcards.

The `Note Cart String` field can be used to configure placement of a marker event in the generated log. When the string set here is found in the 'cart' field in a line of the specified import file, RDLogManager will insert a marker event, the text of which will be the 'title' field from that same line.

The `Insert Voice Track String` field can be used to configure placement of a voice track marker in the generated log. When the string set here is found in the 'cart' field in a line of the specified import file, RDLogManager will insert a voice track event, the text of which will be the 'title' field from that same line.

The `Insert Traffic Break String` field can be used to configuration placement of a traffic break from an entry in the music import log. When the string set here is found in the cart field. RDLogManager will insert a traffic import event, using the event specified in the `Import inline traffic` dropdown box in the relevant music event.

This field is available only in the `Music Data Import` section!

### Traffic/Music Import Parser Settings

The Log Parser Settings

Rivendell includes the ability to import log schedule files from a variety of third-party scheduling utilities. To configure an import from one of these systems, all that is necessary is to select the appropriate system in the `Import Template` dropdown. If the target scheduler system is not on this list, a custom parser can be defined by selecting `[custom]` from the dropdown.

Log schedule files for Rivendell are assumed to be in so-called "column-aligned" format --i.e. each record occupies a single line in a text file that is terminated by a single linefeed or a carriage return, with each field occupying a fixed column position on the line. Each field takes two values: `Offset:`, which is the starting position of the field (starting from 0) on the line and `Length:`, which is the number of characters reserved for the field. Setting the `Length:` value for field to `0` disables the use of that field.

Most of the fields should be self-explanatory, but a few call for some comment:

`Globally Unique ID`

  Many schedulers provide an opaque string with each scheduling record which they expect to be returned as part of the corresponding Electronic Log Reconciliation (ELR) feed back to the system. This field indicates where this "GUID" string should be found.

`Event ID:` / `Annc. Type`

  Additional fields for GUID data. As of this writing, only scheduler products from Marketron require the use of these fields.

### Testing Data Importation

Once the parameters have been configured, they can be tested with a sample import file by touching the `Test Music` or `Test Music` buttons to bring up the Test Import dialog.

The Test Import Dialog

Select the date for the import to test, either by entering it in the `Test Date:` control or by touching the `Select` button. Then, touch the `Import` button. The import events for the day should appear in the `Imported Events` list.

## Managing Hosts

To manage hosts in RDAdmin, touch the `Manage Hosts` button to open the Rivendell Host List dialog.

The Rivendell Host List Dialog

To examine and modify an existing host, touch its entry in the `Hosts` list and then touch the `Edit` button to open the Host Dialog.

The Host Dialog

After changing the configuration of a Rivendell module, it is generally necessary to restart that module for the changes to take effect!

The dialog is divided into roughly two parts: the upper half, which contains settings that pertain to the selected host overall, and the lower half, which contains buttons that access settings specific to a particular Rivendell module or subsystem.

The `Host Name:` (read-only), `Short Name:` and `Description:` fields are for text strings. The value of these fields is accessible using filepath wildcards.

The `Default User` sets the value of the Rivendell user that will be logged in by default --i.e. when the system is restarted or the `Default User` button is touch in rdlogin(1).

The `IP Address:` field should contain the IPv4 address of the host. For multi-homed systems, an address that is reachable from all other Rivendell hosts should be specified. If this host is the sole host in the Rivendell database, then it is acceptable to specify the loopback address (`127.0.0.1`) here.

The `Editor Command:` can be used to specify an external audio editor for use by rdlibrary(1). If desired, the value should consist of the command invocation needed to start the edit, with a `%f` wildcard to indicate the name of the file to open.

The `Time Offset:` field can be used to specify a static time offset in milliseconds to by applied to events in rdcatch(1).

The `Startup Cart:` field takes the number of a macro cart to be executed each time the Rivendell system is restarted. This can be useful for initializing state --e.g. JACK routes, etc.

The `Cue Output` controls specify the audio output to be used for off-line "audition" uses. The `Start Cart:` and `Stop Cart:` fields take the number of a macro cart that will be executed each time a cut play starts or stops, respectively (useful for things such as dimming control room audio monitors).

If the `Enable Heartbeat` box is ticked, then the macro cart specified in the `Cart:` will be executed at the specified interval as a means to provide a system watchdog heartbeat.

If the `Use Realtime Filtering` box is ticked, then the filter parameters when searching for carts will be applied after each keystroke or parameter change. If unticked, then the `Search` must be touched before altered filter parameters will be applied.

If the `Include in System Maintenance Pool` box is ticked, than this host will be included in the pool of systems eligible to run automatic system maintenance routines in the background.

This setting should normally be left ticked unless the host in question has a limited bandwidth connection to the Rivendell database or audio store --e.g. is remotely located from the Rivendell server.

If the `Enable Drag & Drop` box is unticked, then Rivendell's drag and drop system will be disabled. If ticked, then dropping carts on SoundPanels can be disabled by unticking the `Allow Drops on Panels not in Setup Mode` box.

The `System Services` can be used to allow this host to use the `HTTP Xport:` or `Core Audio Engine` services of another host in the Rivendell network.

### Configuring RDLibrary

To configure the rdlibrary(1) module, touch the `RDLibrary` button to open the Configure RDLibrary dialog.

The Configure RDLibrary Dialog

The `INPUT` and `OUTPUT` are used to specify the audio input and output to be used.

The `Max Record Time` field sets the maximum time that rdlibrary(1)'s Record widget will run in record mode; when this time is reached, it will be automatically stopped. To allow an unlimited record duration, set this to `00:00:00`.

The `VOX Threshold` control sets audio level at which to automatically begin recording when the `Record Mode` control is set to `VOX` in the Record dialog.

The `AutoTrim Threshold` control sets audio level at which to trim the ends of the recorded audio when the `AutoTrim` control is set to `On` in the Record dialog.

The `Tail Preroll` control sets how far before an end marker the audio cursor will be positioned when auditioning a marker edit.

The `Ripper Device` field specifies the CD-ROM device to be used for ripping audio CDs.

The `Paranoia Level` dropdown specifies the amount of error checking/recovery to be applied when ripping CDs, with `Normal` being the maximum amount. With modern CD-ROM hardware, it is often possible to obtain significantly faster ripper performance by setting this control to `Low` or even `None`.

For further information on the `Low` and `None` options, see the '-Y' and '-Z' options in the cdparanoia(1) man page or https://linux.die.net/man/1/cdparanoia.

The `Read ISRC from CD:` dropdown controls whether the ripper will attempt to read International Standard Recording Code data from audio tracks when loading the disc. Setting this to `Yes` can cause CD-ROM drives to take signficantly longer to read the table of contents of newly inserted discs when the disc does not contain ISRC data.

The `FreeDB Server:` field takes the URL of the server to be used for doing FreeDB lookups for CDs by the CD ripper.

The `Format:` dropdown indicates the audio encoding format to be used in Rivendell's audio store for ingested material.

The `Bitrate:` dropdown indicates the bitrate to be used when encoding ingested material to `MPEG Layer 2`.

If set to `Yes`, the `Allow External Editing` dropdown will cause an `Edit Audio` button to be displayed when editing audio carts.

The `Sample Rate Converter:` dropdown controls which algorithm will be used when resampling ingested audio to a different sample rate. For more information regarding the various algorithms available, see http://mega-nerd.com/SRC/api_misc.html#Converters.

When ticked, the `Limit Searchs at Startup` box will cause the `Show Only First 100 Matches` box to be ticked when starting a new instance of rdlibrary(1).

The `Channels:` dropdown sets the default value of the `Channels:` dropdowns in rdlibrary(1).

The`Record Mode` and `AutoTrim` dropdowns set the default value of the respective dropdowns in the Record dialog.

The `Normalization Level:` control sets the default value of the `Normalization Level:` controls in rdlibrary(1).

### Configuring RDCatch

To configure the rdcatch(1) module, touch the `RDCatch` button to open the Configure RDCatch dialog.

The Configure RDCatch Dialog

The RDCatch Dialog consists of four sections: Record Deck, Play Deck, Defaults and Host-Wide Settings.

#### Record Decks

The `Record Deck` dropdown selects the record deck to be configured.

The `Card:` and `Port:` controls select which audio input will feed the deck, while `Monitor Port:` allows an audio output to be configured for monitoring audio during recording.

The `Format:` and `Bit Rate:` dropdowns are used to specify the audio encoding format used in the Rivendell audio store with recordings from this deck. `Bit Rate:` is used only for a `Format:` setting of `MPEG Layer 2`.

The `Switcher Host:`, `Switcher Matrix:` and `Switcher Output:` controls can be used to configure a switcher device for routing multiple audio signals into this record deck. The specified switcher output should be connected to the input specified by the `Card:` and `Port:` controls.

The `Channels:` control sets the default value of the same control in rdcatch(1), while the `Trim Threshold` sets the default value of the autotrim `Level:` control.

#### Play Decks

The `Play Deck` dropdown selects the play deck to be configured.

The `Card:` and `Port:` controls select which audio output will be used by the deck.

The `Event Cart` take the number of the macro cart that will be executed each time the corresponding event marker (originally placed during recording by the Cut Event ['CE'] RML) is encountered during playback.

#### Host-Wide Settings

The `Error RML:` field takes RML code that will be executed whenever rdcatch(1) encounters an error in operations --e.g. a file download failure.

### Configuring RDAirPlay

To configure the rdairplay(1) module, touch the `RDAirPlay` button to open the Configure RDAirPlay dialog.

The Configure RDAirPlay Dialog

#### Channel Assignments

The `Channel Assignments` section contains controls for configuring the audio outputs, along with associated fader metadata and automation.

Channel Assignments Section

Audio outputs for the Main Log, both Aux Logs and the Sound Panel are configured by means of the `Card:` and `Port:` controls. For the Main Log, if both `Output 1` and `Output 2` are set to different card and/or port values, rdairplay(1)'s output will alternate between the two outputs.

Each of the corresponding `Start RML:` and `Stop RML:` fields can take RML code that will be executed each time the associated channel is started or stopped. Metadata wildcards can be used in these fields, which will reflect the values of the cart being started or stopped.

To configure fader automation for a given channel, touch its `Edit GPIOs` button to open the Edit Channel GPIOs dialog.

Edit Channel GPIOs Dialog

The `GPI` fields specify a general input event coming into Rivendell (typically mapped from the fader ON or OFF status signal on the associated mixer desk). Reception of this signal will cause the corresponding RDAirPlay channel to be started or stopped. The `GPO` fields specify a general output event emitted by Rivendell each time the corresponding channel is started or stopped (typically mapped to the fader ON or OFF remote control on the associated mixer desk).

#### Start/Stop Settings

The `Start/Stop Settings` section controls the behavior of rdairplay(1) when the module is first opened and finally closed.

Start/Stop Section

The `Exit Password:` field can be used to specify a password that must be entered when exiting rdairplay(1) (useful for preventing inadvertent shutdowns).

For each of the log machines (Main Log, Aux 1 Log and Aux 2 Log), it is possible to specify the action to take at startup by selecting the appropriate value in the `At Startup:` dropdown. If the `Restart Log After Unclean Shutdown` box is ticked, then rdairplay(1) will attempt to restart the log from the event which was playing when the unclean shutdown occurred.

#### Display Settings

The `Display Settings` section controls the contents and formatting of the label areas of the button widget as well as the "skin" used for the overall rdairplay(1) window.

Display Settings

The `Background Image:` field takes the full path to a bitmap file to use as the background "skin" for rdairplay(1)'s main window. The file should be 1024x738 resolution and be of type JPG or PNG.

Each of the `Template:` fields define the formatting of one of the lines of the label areas in the button widget. Metadata wildcards are used to define the contents to be displayed.

#### Log Mode Control

The `Log Mode Control` section configures the behavior of rdairplay(1) mode controls.

Log Mode Control

The `Mode Control Style` dropdown is used to specify whether operating mode of the log machines are always the same (`Unified` mode) or can be separately set (`Indepdendent` mode).

The startup states of the log machines can be set by means of the `Start Mode:` dropdowns.

#### Log Settings

The `Log Settings` section configures the behavior of log operations.

Log Settings

The `Manual Segue:` field specifies the duration of the segue overlap to apply when manually starting a log event while one or more other events are currently playing.

The `Forced Segue:` field specifies the duration of the segue overlap to apply when a hard time event starts while one or more other events are currently playing.

The `Pie Counts Last:` field specifies when the pie widget begins its countdown, relative to the setting of the `Pie Counts To:` dropdown. If set to `Cart End`, countdown will always be relative to the end marker of the cut, whereas a setting of `Transition` will count down relative to the start of the transition to the following event.

The `Default Trans. Type` dropdown determines what transition type will be applied by default when adding a new event to a log.

The `Default Service:` dropdown determins what service will be associated with a newly created log.

#### Sound Panel Settings

The `Sound Panel Settings` section configures the behavior of Sound Panel operations.

Sound Panel Settings

The total number of system and User panels are set with the `System Panels:` and `User Panels:` fields respectively.

If the `Flash Active Buttons` box is ticked, then the buttons in the button widget that correspond to playing events will flash.

If the `Enable Button Pausing` box is ticked, then touching the button of an playing event will cause it to pause rather than stopping. A paused event can be restarted by pressing its button again.

The `Label Template` control determines the default button legend for newly created Sound Panel buttons. Metadata wildcards can be used in this field.

#### Miscellaneous Settings

Miscellaneous Settings

If the `Check Time Sync` box is ticked, the status of the kernel's time synchronization PLL lock will be check periodically. If not locked, the wall clock will flash red.

Ticking `Show Auxlog 1` or `Show Auxlog 2` boxes will cause selector buttons for the respective log machines to be displayed.

If the `Clear Cart Search Filter` box is ticked, the cart search dialog's filter will be cleared each time the dialog is redisplayed.

If the `Enable Paused Events` box is ticked, touch the button for a playing event will cause that event to be paused rather than stopped. A stopped event can be restarted by touching it again, dismissed by deleting the event.

Ticking the `Show Extra Buttons/Counters` box will cause `Audition Head`, `Audition Tail` buttons and the `Run Length` to be displayed as part of the List Log widget.

Ticking the `Show Hour Selector` will cause the Hour Selector to be displ;ayed as part of the List Log widget.

The `Audition Preroll` sets how far before the current play position an audition playout will begin.

The `Space Bar Action` sets what action will taken when the space bar is pressed.

#### Configuring Hotkeys

Keyboard shortcuts (also known as "hotkeys") can be configured by touch the `Configure Hotkeys` button, bringing up the Hot Key Configuration dialog.

The Hotkey Configuration Dialog

A hotkey can be assigned to a particular function by selecting that function off of the `Host Hot Key Configuration` list, pressing and releasing the desired key, and then touching the `Set` button. To remove a hotkey assignment, select the desired function and then touch the `Clear` button. Touching the `Clear All Hotkeys` button will clear all hotkey assignments for this host. Hotkey assignments from a different host can be copied to this one by selecting the desired source host in the `Set From Host:` dropdown and then touching `Save`.

Not all keys may be mappable as a hotkey, as certain window managers "steal" keys for their own use!

#### Configuring Now & Next Parameters

Transmission of program associated data (PAD) (also known as Now & Next in Rivendell) can be configured by touching the `Configure Now & Next Parameters` button, bringing up the Edit Now & Next Data Dialog.

The Edit Now & Next Data Dialog

Now & Next data for Rivendell was originally transmitted by means of an integrated UDP packet transmitter. While currently still supported, this method has been deprecated in favor of the Rivendell Loadable Modules (RLMs), a far more powerful method that involves the use of plug-in code modules. RLM is the only method that is documented here.

RLMs can be added by touching the `Add` button to bring up the Edit Plugin Dialog.

The Edit Plugin Dialog

The `Plugin Path:` field should contain the full path to the RLM plug-in binary. For all RLMs provided as part of stock Rivendell, the `Argument:` field should contain the full path to the configuration file for the plug-in, samples of which can be found in the Rivendell docuementation directory.

When configuring a new plug-in, be sure to make a copy of the configuration file to the `/etc` directory and use it, rather than pointing to the original. Otherwise, any changes made to the file may be overwritten next time Rivendell is upgraded on the system!

### Configuring RDPanel

To configure the rdpanel(1) module, touch the `RDPanel` button to open the Configure RDPanel dialog.

The Configure RDPanel Dialog

The rdpanel(1) application is merely a larger version of the Sound Panel portion of rdairplay(1). As such, its configuration closely mirrors that of the RDAirPlay configuration. Please see that section for details.

### Configuring RDLogEdit

To configure the rdlogedit(1) module, touch the `RDLogEdit` button to open the Configure RDLogEdit dialog.

The Configure RDLogEdit Dialog

The `INPUT` and `OUTPUT` are used to specify the audio input and output to be used.

The `Max Record Time` field sets the maximum time that rdlogedit(1)'s voice tracker will run in record mode; when this time is reached, it will be automatically stopped. To allow an unlimited record duration, set this to `00:00:00`.

The `AutoTrim Threshold` control sets audio level at which to trim the ends of the recorded audio in the voice tracker.

The `Normalization Level` control sets audio level at which to peak normalize the recorded audio in the voice tracker.

The `Format:` and `Bit Rate:` dropdowns are used to specify the audio encoding format used in the Rivendell audio store with the voice tracker. `Bit Rate:` is used only for a `Format:` setting of `MPEG Layer 2`.

If the `Enable 2nd Start Button:` dropdown is set to `No`, then the voice tracker will not display the second `Start` button (and hence, not run the event that follows the recorded track), but wait for the `Save` button to be touched after starting the track recording.

The `Play Start Cart:`, `Play End Cart:`, The `Record Start Cart:` and The `Record End Cart:` fields each take the number of a macro cart to be executed when the respective audio signal starts or ends. (Useful for automated external audio paths changes to support voicetracking operations).

The `Channels:` dropdown indicates the number of channels to use when recording voicetracks.

The `Default Transition` indicates the transition type to use by default when adding a new log event.

### Configuring RDCartSlots

To configure the rdcartslots(1) module, touch the `RDCartSlots` button to open the Configure RDCartSlots dialog.

The Configure RDCartSlots Dialog

The `Global Settings` section is used to configure the number and arrangment of cart slots. The number of supported slots is limited only by the available resolution of the display monitor.

The `Slot Settings` is used to configure each individual slot. `Channel Assignments` settings are used to specify the audio input and output to be used. (The `Input Port` value is used only when the slot is in `Breakaway` mode.)

The `Default Settings` settings are used to configure the detailed behavior of the specified cart slot. `Service:` defines the slot's default service when in `Breakaway` mode. `Slot Mode:` sets the mode of the slot and `Play Mode` sets the default state of the `Full` or `Hook` play mode. The contents of the slot at startup can be set using the `At Startup:` dropdown, and the action when play-out finishes set in the `At Playout End:` control.

### Configuring Dropboxes

#### Overview

A dropbox is a Rivendell process that runs in the background and performs automatic file importation. At its most basic level, each dropbox is configured to have a specific group (within whose carts audio is saved) and a path (a location in the filesystem whence the dropbox will obtain audio to import). When one or more audio files that match the path specification are copied to the path location, the dropbox will automatically import the file(s). There are a number of additional parameters which can be set to influence the way in which a particular dropbox will process audio, which will be covered below.

The number of dropboxes capable of being configured on a given host is limited only by that host's hardware capabilities.

#### Configuration

To see the list of dropboxes currently configured on the system, touch the `Dropboxes` button to open the Rivendell Dropbox Configurations Dialog.

The Rivendell Dropbox Configurations Dialog

A new dropbox can be created by touching the `Add` button, opening the Dropbox Configuration dialog.

The Dropbox Configuration Dialog

The group of the new dropbox is set with the `Default Group:` dropdown and the path with the `Path Spec:` field.

The `Path Spec:` field must match the full file path of the files to be processed, not just the sub-directory that contains those files.

For example: say we have a directory called '/home/rd/dropbox', which contains the following files:

- `mysong.mp3`
- `mysong.wav`
- `yoursong.mp3`

Table 10.2 shows the results using various example `PathSpec:` values.

##### Dropbox PathSpec Examples

PathSpec | Matches | Comments
--- | --- | ---

`/home/rd/dropbox/*`

- `mysong.mp3`
- `mysong.wav`
- `yoursong.mp3`

Matches all files in `/home/rd/dropbox`

`/home/rd/dropbox/*.mp3`

- `mysong.mp3`
- `yoursong.mp3`

Matches every file in `/home/rd/dropbox` that ends with `.mp3`

`/home/rd/dropbox/mysong.*`

- `mysong.mp3`
- `mysong.wav`

Matches every file in `/home/rd/dropbox` that begins with `mysong.`

`/home/rd/dropbox` |  | Matches nothing. [No file part of the PathSpec].
`/home/rd/dropbox/` |  | Matches nothing. [No file part of the PathSpec].

A new dropbox created with just the `Default Group:` and `PathSpec:` fields set and no other parameters changed will detect any file that matches the `PathSpec:`, create a new cart in the `Default Group:` and then attempt to import the file into a new cut in the cart.

For this process to work, the specified group must also have its `Default Cart Number:` fields in the Group Dialog set to a valid range, and there must be a free number within that range available. If either of these conditions are not met, the dropbox will throw an error.

The importation will only happen once for each file matched. To get a dropbox to re-process files that have already been imported, touch the `Reset` button.

The following controls can be utilized to influence how a dropbox will process a matched file:

`To Cart:`

  Add a new cut to the specified cart and import into that, rather than creating a new cart. If the `Delete cuts before importing` box is also ticked, then any existing cuts in the specified cart will be deleted before adding the new cut.

`Metadata Pattern:`

  Attempt to discern the title to give to the new cart from the name of the matched file, using metadata wildcards as a template.

`User Defined:`

  Set the value of this field as the user defined field of the new cart.

`Log File:`

  The full path to a file to which to write a log of dropbox operations. Useful for troubleshooting problems.

`Delete source files after import`

  Delete the source file after successful importation.

`Force to Monaural`

  Import the matched file to a single channel (mixing multiple channels together if necessary).

`Normalize Levels`

  Peak-normalize the matched file to the specified `Level:` in dBFS.

`Autotrim Cuts`

  Autotrim the matched file, using a threshold of `Level:` dBFS.

`Insert Segue Markers`

  If no segue marker information is found in the metadata of the matched file, create segue markers, starting at the last instance of `Segue Level:` and lasting for `Segue Length:` milliseconds.

`Get cart number from CartChunk CutID`

  Determine the number of the destination cart from the matched file's CartChunk CutID field. If the cart does not exist, it will be created. The destination cart must lie within the valid range for the specified group.

`Get cart title from CartChunk CutID`

  Determine the title of the destination cart from the matched file's CartChunk CutID field.

`Offset start date`

  If a start date is found in the matched file's metadata, add the specified `days` to it.

`Offset end date`

  If an end date is found in the matched file's metadata, add the specified `days` to it.

`Create Dates when no Dates Exist`

  If no start or end date is found in the matched file's metadata, add such, adding the specified number of days to the current date.

Carts created by this dropbox can be assigned one or more existing scheduler codes by touching the `Scheduler Codes` button to open the Select Scheduler Codes dialog.

The Select Scheduler Codes Dialog

### Configuring Switcher/GPIO Devices

To configure the Switcher/GPIO devices, touch the `Switchers/GPIO` button to open the Rivendell Switcher List dialog.

The Rivendell Switcher List Dialog

To add a new Switcher/GPIO device, touch the `Add` button to open the Edit Switcher dialog.

The Edit Switcher Dialog

Rivendell supports a huge diversity of third-party switcher and GPIO devices, every one of which has its own unique operating requirements. The description which follows provides a broad overview of how these devices are configured, but be sure to consult the device-specific notes for the unit question in as well!.

#### Connections

If the target device is controlled via some sort of connection (TCP/IP or serial), that connection is configured in the `Primary Connection` section of the dialog. (Certain devices support multiple, redundant connections, in which case the `Backup Connection` section will be available as well).

The `Type:` dropdown is used to indicate if the connection is via `TCP/IP` or `serial`. If `serial` is selected, then the serial device to use can be selected by means of the `Serial Port:` dropdown.

If using a serial port, be sure that the selected port has also been configured! See .

If `TCP/IP` is selected, then the `IP Address:` and `IP Port:` fields must be populated. Certain devices also require that the `Username:` and `Password:` fields be populated as well.

The `Startup Cart:` and `Shutdown Cart:` fields take the number of a macro cart that will be run after the connection established or dropped, respectively.

#### Miscellaneous Settings

Below the Connection settings are various miscellaneous controls and buttons. Not all of these are used for all supported devices.

Use of the `Card:`, `Device:` and `Layer:` fields are specific to the type of device. See that device's entry in for more information.

The `Inputs:`, `Outputs:`, `GPIs:`, `GPOs:` and `Displays:` controls should be set to the number of those resources the target device contains. In many cases, these fields will be auto-detected by Rivendell's driver.

The `Configure Inputs` and `Configure Outputs` buttons can be used to assign names to each switcher input and output on the target device. These names will appear in rdcatch(1) when configuring record events.

The `Configure GPIs` and `Configure GPOs` buttons can be used to configure the default action to be taken in response to reception of a GPIO event. Touching one of these buttons brings up the List GPIs Dialog.

The List GPIs Dialog

To edit a particular GPIO line, select its entry on the list and touch the `Edit` button to bring up the Edit GPI Dialog.

The Edit GPI Dialog

Two macro carts may be associated with each event: one for the leading edge [`ON Transition`] and one for the trailing edge [`OFF Transition`].

The macro cart associations configured here are merely defaults, set when the Rivendell service is [re]started. They can subsequently be altered dynamically through use of the GPI Set ['GI'] command. (See ).

### Configuring Host Variables

#### Overview

Host variables are alphanumeric tags bracketed by '%' characters --e.g. `%HOST_VAR%` -- that can be assigned string values on a per host basis. When used in the command list in a macro cart, the assigned string is automatically substituted for the variable name.

#### Editing Host Variables

To add, edit or delete host variables, touch the `Host Variables` button to open the Host Variables dialog.

The Host Variables Dialog

To edit the value of an host variable, select its entry on the `Host Variables` list and then touch the `Edit` button to bring up the Edit Host Variable dialog.

The Edit Host Variable Dialog

### Configuring Audio Ports

To configure audio ports, touch the `Audio Ports` button to open the Edit Audio Ports dialog.

The Edit Audio Ports Dialog

As of this writing, settings made in this dialog will have effect only on audio devices using the AudioScience HPI driver.

The `Card:` dropdown is used to select the audio card to which to apply settings. `Clock Source:` is used to select the source of the sample clock.

Each input and output port on a card can be set to be of a certain type (`Analog`, `AES/EBU` or `SP/DIFF`). The `Mode:` dropdown controls the routing of left/right signals (see table below), while the reference level of the signal at each port can be set with the `Ref. Level:` control.

#### Audio Port Mode Switch Settings

Channels | Mode | Effect
--- | --- | ---
1 | Normal | Left+Right sum to mono
1 | Swap | Left+Right sum to mono
1 | Left Only | Left only to mono
1 | Right Only | Right only to mono
2 | Normal | Stereo
2 | Swap | Stereo, Left swapped with Right
2 | Left Only | Left only, Right muted
2 | Right Only | Right only, Left muted

### Configuring Serial Ports

To configure serial (COM) ports, touch the `Serial Ports` button to open the Edit Serial Ports dialog.

The Edit Serial Ports Dialog

Select the desired Rivendell serial port to configure in the `Port ID:` dropdown. The `Enabled` box must be ticked before parameters can be set.

### Viewing Audio Resources

Touching the `Audio Resources` button will bring up the Audio Resource Information dialog, a read-only report detailing the current audio configuration and capabilities of Rivendell.

The Audio Resource Information Dialog

### JACK Integration

The JACK Audio Connection Kit is an audio integration system that allows audio to be shared in real-time between multiple programs. More information can be found at http://jackaudio.org.

Rivendell's JACK connectivity is handed by the caed(8) daemon, and so both jackd(1) and caed(8) must operate under the same Linux user in order to be able to communicate. Under stock Rivendell, caed(8) is run as user 'root' [UID 0].

To configure Rivendell's integration with JACK, touch the `JACK Settings` button to bring up the JACK Configuration dialog.

The JACK Configuration Dialog

To have jackd(1) automatically [re]started whenever the Rivendell service is [re]started, tick the `Start JACK Server` box and enter the appropriate command-line invocation in the `JACK Command Line:` field. The name of the JACK instance to connect to [the "--name" option as provided to jackd(1)] can be entered in the `JACK Server Name:` field.

Rivendell can also be configured to [re]start JACK clients automatically each time the Rivendell service is [re]started by adding the appropriate command-line invocation to the `JACK Clients to Start` list. Filepath wildcards can used in the command-line field. The clients will be run under the same user as that of the caed(8) daemon (user 'root' [UID 0] with sstock Rivendell). Port connections between JACK clients can be managed by use of the Jack Connect ['JC'] and Jack Disconnect ['JD'] RMLs. See and .

## Managing System Settings

To manage system-wide settings --i.e. those settings that apply to all Rivendell hosts -- in RDAdmin, touch the `System Settings` button to open the System-Wide Settings dialog.

The System-Wide Settings Dialog

The `System Sample Rate:` dropdown sets the global sample rate to be used for Rivendell's audio store. This control should be set before ingesting any audio into a new Rivendell system and not altered thereafter.

Changing this setting on a system with existing audio in the audio store may result in incorrect play-out of that audio!

The `Allow Duplicate Cart Titles` box, if not ticked, will force all carts to have a unique title. If unticked, then ticking the `Auto-Correct Duplicate Cart Titles` box will cause duplicate cart titles to be automatically made unique when imported. The unique name is constructed by appending "`[n]`", (where `n` is an integer) to the end of the title string.

The `ISCI Cross Reference Path:` field takes the full path to the ISCI cross reference file used by the rdrepld(8) daemon (used only in conjunction with X-Digital copysplit replication).

The `Maximum Reemote Post Length:` field sets the maximum length POST submission that will be processed by the RDXport service. It should seldom be necessary to change this value.

The `Temporary Cart Group:` dropdown sets the Rivendell group to be used for storing temporary carts --e.g. carts used for processing direct file play-outs in rdcartslots(1).

If the `Show User List in RDLogin` box is ticked, rdlogin(1) will require users to enter their user name as well as their password when logging in (instead of providing all possible user names in a dropdown).

## Managing Scheduler Codes

To manage scheduler codes, touch the `Scheduler Codes` button to bring up the Rivendell Scheduler Code dialog.

The Rivendell Scheduler Codes List Dialog

A new scheduler code can be added by touching the `Add` button to bring up the Scheduler Code dialog.

The Scheduler Code Dialog

## Managing Replicators

A replicator is a Rivendell service that provides the ability to move content automatically to different system on the basis of predefined rules. At present, Rivendell includes one such replicator, which can move audio material to an X-Digital satelite head-end system.

To manage replicators, touch the `Manage Replicators` button to bring up the Rivendell Replicators dialog.

The Rivendell Replicators Dialog

To add a new replicator, touch the `Add` button to bring up the Replicator dialog.

The Replicator Dialog

The `Name:` is a read-only field giving the name of the replicator.

The `Description` is a free-form text string providing a description of the replicator.

The `Type:` dropdown should set to the type of replicator. At present, only one type is supported, `Citidel X-Digital Portal`.

The `Host System:` dropdown should be set to the name of the Rivendell Host upon which the rdrepld(8) daemon is run.

The `Audio Upload URL:` should be set to the URL of the upload location for audio to be sent to the remote system. It may also be necessary to set the `Username:` and `Password:` fields if that remote system requires it.

The `Upload Format:` should be set to provide the file and encoding format of the replicator uploads as required by the remote system. This can be done by touching the `Set` button. If the `Normalize` box is ticked, then audio will be peak-normalized to the level set by the `Level:` control before being uploaded.

The `Active Groups` list should be populated with the names of the Rivendell Groups from which audio to be replicated should be taken.

## Backing Up and Restoring the Database

To make a backup copy of the database, touch the `Backup Database` button. You will be prompted with a dialog to allow you to choose a location to save the resulting backup.

To restore a previous backup, touch the `Restore Database` button. You will be prompted with a dialog to allow you to choose a location whence to load the back file.

Restoring a previous database will COMPLETELY OVERWRITE whatever database is currently loaded!