rd.conf
5
October 2019
Linux Audio Manual

# rd.conf

Configuration file for the Rivendell Radio Automation System
Fred
Gleason
fredg@paravelsystems.com
Application Author

The `/etc/rd.conf` file is the primary configuration file for the Rivendell Radio Automation System. In order to support multiple Rivendell configurations by means of the `rdselect` 1 tool, it is customary for this file to be a symbolic link to an actual configuration file located in the `/etc/rivendell.d/` sub-directory.

## Description

The file format consists of sections, each of which contain configuration information in the form of keyword/value pairs. Each section begins with with the name of the section in `[]` brackets, followed by zero or more keyword/value pairs, with the keyword and value separated by an `=` sign. Lines starting with `;` are ignored, as are blank lines.

For example:

        [Section1]
        ; This is a comment.
        Keyword1=value1
        Keyword2=value2
        Keyword3=value3

## Sections/Keywords

Following are the sections and keywords for `rd.conf`

`[Identity]`
  `AudioOwner = user`

    The name of the user that will own the files in the audio store. This should be a "system" account, not an actual user. Default value is `rivendell`.

  `AudioGroup = group`

    The name of the group that will own the files in the audio store. This should be a "system" account, not an actual user. Default value is `rivendell`.

  `PypadOwner = user`

    The name of the user used to execute PyPAD scripts. This should be a "system" account, not an actual user. Default value is `pypad`.

  `PypadGroup = group`

    The name of the group used to execute PyPAD scripts. This should be a "system" account, not an actual user. Default value is `pypad`.

  `RnRmlOwner = user`

    The name of the user used to execute `RN` RMLs. This should be a "system" account, not an actual user. Default value is `rivendell`.

  `RnRmlGroup = group`

    The name of the group used to execute `RN` RMLs. This should be a "system" account, not an actual user. Default value is `rivendell`.

  `SyslogFacility = facility`

    The facility number Rivendell will use when sending messages to the syslog system. The following values are recognized:

    - `1` - USER (the default)
    - `16` - LOCAL0
    - `17` - LOCAL1
    - `18` - LOCAL2
    - `19` - LOCAL3
    - `20` - LOCAL4
    - `21` - LOCAL5
    - `22` - LOCAL6
    - `23` - LOCAL7
  `Password = passwd`

    The password used by Rivendell modules when connecting to Rivendell system services.

  `Label = string`

    The identifier string that will appear in `rdselect` 1 list for this configuration.

  `HttpUserAgent = string`

    Override the default string that would be sent as the value of the `HTTP_USER_AGENT` header with string when making HTTP connections. It should seldom be necessary to change this.

`[mySQL]`

  This section contains access credentials and attributes for the MySQL/MariaDB RDBMS server.

  `Hostname = addr`

    The hostname or IP address of the database server. Default value is `localhost`.

  `Loginname = name`

    The user name to use when connecting to the database server. This parameter has no default value.

  `Password = passwd`

    The password to use when connecting to the database server. This parameter has no default value.

  `Database = name`

    The name of the database to use when connecting to the database server. Default value is `Rivendell`.

  `Driver = plugin-name`

    The name of the Qt SQL driver plug-in to use when connecting to the database server. Consult the Qt documentation for the list of available values. Default value is `QMYSQL3`. It should seldom be necessary to change this.

  `HeartbeatInterval = secs`

    The interval, in seconds, between keep-alive messages to the database server. Default value is `360`.

  `Engine = type`

    The engine type that will be used when creating new tables in the database. Consult the database server documentation for the list of supported types. Default value is `MyISAM`.

`[AudioStore]`

  This section contains information regarding the location of the audio store.

  `MountSource = path`

    The path to the audio store, in the format used by the first field (fs_spec) of `fstab` 5. If the audio store is located in the root filesystem [`/`], this value should be left blank. This parameter has no default value.

  `MountType = type`

    The type of filesystem used by the audio store, as used in the third field (fs_vfstype) of `fstab` 5. If the audio store is located in the root filesystem [`/`], this value should be left blank. This parameter has no default value.

  `MountOptions = opts`

    The options used when mounting filesystem used by the audio store, as used in the fourth field (fs_mntops) of `fstab` 5. Default value is `defaults`.

  `CaeHostname = address`

    The hostname or IP address of the system to which to delegate Core Audio Engine services.

    WARNING: Use of this parameter is deprecated; use the `Core Audio Engine` setting in `rdadmin` 1 instead!

  `XportHostname = address`

    The hostname or IP address of the system to which to delegate HTTP Xport services.

    WARNING: Use of this parameter is deprecated; use the `HTTP Xport` setting in `rdadmin` 1 instead!

`[Fonts]`

  This section contains hints concerning the fonts to be used when drawing the various widgets in Rivendell. The font engine uses these values to calculate various related fonts.

  `Family = name`

    The name of the font family to be used for dialogs. Default value is `System`.

  `ButtonSize = pixels`

    The height, in pixels, of the font used for most pushbuttons. Default value is `12`.

  `LabelSize = pixels`

    The height, in pixels, of the font used for most labels. Default value is `11`.

  `DefaultSize = pixels`

    The height, in pixels, of the font used for most data elements. Default value is `11`.

`[Provisioning]`

  This section can be used to enable the automatic creation of Rivendell Host and Service entries. Useful for automatic provisioning of 'cloud' instances.

  `CreateHost = Yes`|`No`

    If set to `Yes`, a Host entry will be automatically created in the database when the "rivendell" system service is started, using the Host definition specified in `NewHostTemplate =` as the template. The new host entry will be assigned the IP address bound to the network interface specified by `NewHostIpAddress =` ('lo' by default). The new host's Short Name can be populated using the `NewHostShortName =` parameter, which takes a Perl-style regex to capture the required text from the full host name, using the captured group from the regex specified in `NewHostShortNameGroup =`.

  `NewHostTemplate = hostname`

    The name of an existing Host entry in the database to use as a template when provisioning a new Host.

  `NewHostIpAddress = ifc-name`

    The name of an existing network interface from which to extract the IP address of a newly provisioned Host.

  `NewHostShortNameRegex = regex`

    A regular express to use when setting the Short Name of a newly provisioned Host from the system host name.

  `NewHostShortNameGroup = regex`

    The number of the captured regex group value to be used by the `NewHostShortNameRegex =` parameter.

  `CreateService = Yes`|`No`

    If set to `Yes`, a Service entry will be automatically created in the database when the "rivendell" system service is started, using the Service definition specified in `NewServiceTemplate =` as the template. The new service's name is determined by the `NewServiceNameRegex =` parameter, which takes a Perl-style regex to capture the required text from the full host name, using the captured group from the regex specified in `NewServiceNameGroup =`.

  `NewServiceTemplate = svc-name`

    The name of an existing Service entry in the database to use as a template when provisioning a new Service.

  `NewServiceNameRegex = regex`

    A regular expression to use when setting the Service Name of a newly provisioned Host from the system host name.

  `NewServiceNameGroup = regex`

    The number of the captured regex group value to be used by the `NewServiceNameRegex =` parameter.

`[Logs]`

  This section contains directives for activating creation of logs of internal Rivendell state. Mostly useful for debugging!

  `LogXloadDebugData = Yes`|`No`

    Log upload/download debug data in syslog. You generally want to enable this only when debugging a specific upload/download problem, as *lots* of data can be generated. Default value is `No`.

`[Alsa]`

  This section contains directives for tuning Rivendell's interaction with ALSA audio devices. These should seldom need to be changed.

  `PeriodQuantity = period-quan`

    The number of buffer periods to use when interacting with ALSA devices. Default value is `4`.

  `PeriodSize = frames`

    The number of PCM frames to include in each period when interacting with ALSA devices. Default value is `1024`.

  `ChannelsPerPcm = channels`

    Force the ALSA driver to use the specified number of channels. Useful for dealing with certain device types. Default value is `-1`, which disables this feature.

`[Tuning]`

  This section contains miscellaneous directives for tuning various aspects of Rivendell.

  `ServiceTimeout = secs`

    Instruct Rivendell modules to wait for the "rivendell" systemd service at startup to become available for secs seconds before returning an error. Default value is `30`.

  `TranscodingDelay = msec`

    Introduce a delay of msec milliseconds in each iteration of the converter loop when transcoding files. The can be helpful in preventing saturation of network links when transcoding large files, at the cost of slower operation. Default value is `0`.

  `UseRealtime = Yes`|`No`

    Enable realtime priority in `caed` 8. Default value is `No`. Mostly useful for debugging.

  `RealtimePriority = prio`

    Use a realtime priority of prio for `caed` 8. Default value is `9`. Mostly useful for debugging.

`[Hacks]`

  Short term and transient "fixes" to various problems. Use only if you know what you are doing!

  `DisableMaintChecks = Yes`|`No`

    Completely disable maintenance checks on this host. Default value is `No`.

  `LockRdairplayMemory = Yes`|`No`

    Lock memory in RDAirPlay. Default value is `No`.

`[SoftKeys]`

  This section is used for button definitions for `rdsoftkeys` 1. See the `rdsoftkeys` 1 man page for specifics.

## See Also

fstab 5 , syslog 3