Settings
  • 19 Mar 2024
  • 12 Minutes to read
  • Dark
    Light
  • PDF

Settings

  • Dark
    Light
  • PDF

Article Summary

Composer settings consist of system-wide configurations that are independent of projects.

Choose "Edit/Settings..." from the application menu to open Settings.
The Settings contains eight tabs: General, OpsGenie, Web API, Assets finder, Alarms, Metrics, Debug, and GPU and Rendering Options.

The settings file (settings.xml) is stored in the root application path and can be replicated between servers.

Note!
If settings.xml is copied to a Linux server, the URI paths in the settings.xml must be reconfigured to match the Linux directory.

Settings - General

  • Projects directory - Default directory for saving project files (.prj).
  • Media directory - Default directory for media files. Used by the Consolidate Media function.
  • Backup directory - Directory used when backing up a project (and used media files)
  • Load last project file on launch - Check this option to automatically load the last used project the next time the application is started. In most scenarios, this option is active (checked). It is possible to change the last project file to launch manually in the Settings.xml under the property “LastProjectFile”. This could be useful if the application crashes during startup, loading a corrupt project (.prj) file.
  • Automatically create project backups - Every 5 minutes there will be a backup saved of the current running project as projectname.bak in the same folder as the projectname.prj.
  • Show detailed compute times - Enables detailed compute time to be displayed in the GUI. Detailed compute time can be displayed for inputs, operators, and targets. Helpful when tracking down bottlenecks.
  • Require audio device on application startup - Enables an audio device check at application start. There might be a few rare scenarios where this is important. One such scenario might be when accessing the application via an RDP session. Typically this option is inactive/unchecked.
  • Group source media by type - This setting will group all Scenes and Inputs by their type under the Inputs & Scenes tab:
  • Use short names when importing media files - If enabled, only the file name will be used to name the media input. Otherwise, the full path of the file will be used as name.
  • Audio peak meter range - Defines the audiometer peak range.
  • Lock workstation after (sec) - Defines the user inactivity timeout (in seconds). If a timeout is triggered, the application will be locked. To unlock the application, user interaction is required.
    It is possible to manually lock the application by selecting from the Application menu "Misc/Lock application..."
    Description: If a user timeout occurs, the application will be locked. Press the Unlock workstation button to unlock.
  • Encryption Key - A unique private GUID used when encrypting project files. Encryption of project files occurs when using the Export encrypted project feature. Opening an encrypted project is only possible if the local private encryption key matches the key used during the export of the project.
  • Default Scene Width - the default scene width (in pixels) used when creating new scenes. The default value is 1280.
  • Default Scene Height - the default scene height (in pixels) used when creating new scenes. The default value is 720.
  • Max Processing Cue Size - the maximum number of internal video frames that Composer can buffer. The buffer size is zero frames in normal operations, but if the video processing is slow, the buffer might contain several unprocessed frames. If processing stalls or are very slow, the buffer will quickly increase and eventually reach the max size. When the buffer is full, Composer will restart its internal processing, emptying the buffer.
    The default value is 50 frames.
  • Runtime state - optional metadata field used to indicate the runtime state in which the server/workstation operates. This runtime state does not affect the actual performance or state of the server/workstation. It is only a metadata field, and it's used in parts of the logging subsystem and some API functions. For starters, you can leave this field blank or select the Unknown state.
    These are the available runtime states:
    image.png
  • System Label - A string identifier that represents the Composer instance well. Examples: Studio 21, BlackJack22, Table2, Gameshow3. If left blank, the default value will be hostname. SystemLabel may only contain characters, numbers, dash, and underscore. Find more about how System Label can enhance the log files and the /metrics endpoint. 
  • Add System Label, Hostname and Version to Log and Metrics- Add System label, Hostname, and application version as "SystemLabel" in Composer log files and metrics. This can be useful when using a log monitoring tool (Grafana, Kibana, etc).

    .txt files:
    [2024-02-28 08:56:13.680 [Information] [2001] [<SystemLabel>] [1.8.8822] [<HostName>] Application started: VindralComposer R1 2024 "Silverstone", v1.8.8822.27240

    .json files:
    {"Timestamp":"2024-02-28T08:56:13.6805500+01:00","Level":"Information","MessageTemplate":"Application started: VindralComposer R1 2024 \"Silverstone\", v1.8.8822.27240","Properties":{"EventId":2001,"UtcTimestamp":"2024-02-28T07:56:13.6805500Z","SystemLabel":"<SystemLabel>","Version":"1.8.8822","HostName":"<HostName>"}}
Note!
For this feature to be operational, you need the optional Extended Monitoring Plugin. Find more information here.
  • Vindral CDN API Endpoint - API Endpoint for Vindral CDN. If you use the Vindral CDN API, this information will be provided by RealSprint.

Settings - OpsGenie

See OpsGenie integration under Logging and Alarms.

Settings - Web API

  • Enable Web API - Enables the Web API of Composer.
  • Web API listening port - Port for HTTP API (not HTTPS, which is served on 443)
  • Web API Https FQDN - Fully qualified domain name for the workstation/server running Composer. This is required for HTTPS. For more information on HTTPS, see a later chapter dedicated to HTTPS.
  • Disable Web API when the project is not running - If the project is not running, the Web API will be disabled, for example, during startup, auto restart, etc. This is to prevent errors.
Note!
The application needs to be run with elevated permissions (Administrator) for the HTTP(S) API:s to operate. Changing the configuration requires an application restart.

Settings - Assets Finder

When copying or moving a project and the assets used by the project from one server to another, it might be complicated or impossible to replicate the file paths used by the project. The asset search options are flexible to allow searching for matching assets at the target server.

The search options allow the application to alter the actual file paths (during runtime) and use local media that matches the file names used by the project.

The default Media folder is called “Media” and is located at the root of the application folder.
The default “Media” folder contains two folders, “Images” and “Video”.

Note!
The search functions only use the file name when comparing files. If you have several local files with the same name but different content, the search function might give you unexpected results (wrong file, but same file name)

  • Search Application Media Directory - This option applies to relative file paths and enables the application to search for media in the Media folder found in the application root folder. Example below:
    /Application folder/Media/Images/myimage.jpg
    /Application folder/Media/Video/myvideo.mp4
  • Search Project File Media Directory - This option applies to relative file paths. It enables the application to search for media in the Media folder located in the same root folder as the project file. Example below:
    /Projects/myproject.prj
    /Projects/Media/Images/myimage.jpg
    /Projects/Media/Video/myvideo.mp4
  • Search Project File Root Directory - This option applies to relative file paths and enables the application to search for media in the same folder as the project file itself. Example below:
    /Projects/myproject.prj
    /Projects/myimage.jpg
    /Projects/myvideo.mp4
  • Search Parent Directory Media Directory - This option applies to relative file paths and enables the application to search for media in the Media folder found next to the Projects folder. Example below:
    /Projects/myproject.prj
    /Media/Images/myimage.jpg
    /Media/Video/myvideo.mp4
  • Search Absolute File Paths As Relative File Paths - This option applies to absolute file paths. If the file cannot be found at the source location, the application will search for it as it was a relative file path.

Relative paths - example

Below are several examples of how Composer can search for media files. The source media file was located in the Application folder/Media/(Images or Video), thus referenced as a media asset with a relative file path.

The examples are based on a configuration where all Asset search options have been enabled in settings:

  • Search Application Media Directory (default true)
  • Search Project File Media Directory (default true)
  • Search Project File Root Directory (default true)
  • Search Parent Directory Media Directory (default true)

The examples below are also based on a configuration where the Media file is defined as Application Folder/Media

Source Material:
In this example, let´s use these files as our sample files:

Application Folder/Projects/myproject.prj
Application Folder/Media/Images/myimage.jpg

Let's assume those files are needed on a different workstation or in the runtime version of Composer. For this, we need to copy files:

Files copied:
These are the files that we will copy in our example:

Projects/myproject.prj
Media/Images/myimage.jpg

The files are copied into a target folder, in this example c:\demo\

Below is a list of file path combinations that Composer will resolve:

Example 1:
c:\demo\Projects\myproject.prj
c:\demo\Media\Images\myimage.jpg

Example 2:
c:\demo\myproject.prj
c:\demo\Images\myimage.jpg

Example 3:
c:\demo\myproject.prj
c:\demo\Media\Images\myimage.jpg

Example 4::
c:\demo\myproject.prj
(No media file copied to target folder, but found in Application Folder/Images/myimage.jpg

Example 5:
c:\demo\Projects\myproject.prj
c:\demo\Images\myimage.jpg

Example 6:
c:\demo\myproject.prj
c:\demo\myimage.jpg

Absolute file paths

The examples are based on a configuration where all Asset search options have been enabled in settings:

  • Search Absolute File Paths As Relative File Paths (default true)

Source material:

In this example, let´s use these files as our sample files:

Application Folder/Projects/myproject.prj
c:\temp\myimage.jpg

Below is a list of file path combinations that Composer will resolve:

Example 1:
c:\demo\myproject.prj
c:\demo\myimage.jpg

Example 2:
c:\demo\myproject.prj
c:\demo\images\myimage.jpg

Example 3:
c:\demo\myproject.prj
c:\demo\media\images\myimage.jpg

Settings - Alarms

Alarms monitor the frequency of Fatal, Errors, and Warnings. An alarm will be raised if one of the thresholds specified for Fatals, Errors, or Warnings is fulfilled during the specified timespan. There will be a notification inside Composer under the section "Performance". It is also possible to configure the alarm notification to be forwarded to Opsgenie or Slack. See OpsGenie integration under Logging and alarms.

  • Enable alarms - Enables the alarm feature.
  • Alarm watcher timespan (seconds) - Timespan for the threshold for Fatal, Errors, and Warnings must be fulfilled.
  • Fatal counter threshold - Threshold for Fatal Errors.
  • Error counter threshold - Threshold for Errors.
  • Warning counter threshold - Threshold for Warnings.
  • Alarm suppression duration (seconds) - Duration for suppression of alarms. If an alarm is already raised, the next notification of the alarm will be after the specified time (seconds). 
  • Enable clearing of alarms - If enabled, the alarm will be cleared if one or both of the below settings is activated and fulfilled.
  • Require that all inputs are running - Alarmed will be cleared if all inputs are running.
  • Require that all targets are connected - Alarmed will be cleared if all targets are connected.

If an alarm is raised, there will be a notification under the section "Performance". It is possible to clear the alarm manually by clicking the "Alarm Active" button. When clearing the alarm, all timers and counters are reset.

Slack integration:
Composer can be configured to post alarms to your Slack (Slack is a messaging app).

  • Send alarms to Slack - Enable/disable sending notifications to Slack about alarms
  • Slack Channel Name - Your Slack channel name.
  • Slack Channel token - Your Slack channel token. 

Example on Slack message from Composer:

Alarm triggered. The number of fatals, errors or warnings has reached the threshold over the last 30 seconds. Fatal: 0(1) Error: 3(2) Warning: 0(6)
Target statistics:
{
 "MachineName": "DESKTOP-AR53DUE",
 "Project": "alarm_test.prj",
 "DateTimeString": "2023-06-19T13:40:32.8646576Z",
 "RtmpTargets": []
}
Latest top 20 errors:
2023-06-19 15:40:26:: This is a manually triggered error
2023-06-19 15:40:29:: This is a manually triggered error
2023-06-19 15:40:31:: This is a manually triggered error

Settings - Metrics

A Prometheus endpoint is a URL that exposes performance metrics of a service or application, like CPU usage or memory utilization, collected by an external system supporting the Prometheus metrics format. Once the data is exposed via the endpoint, an external tool such as Prometheus can collect and store the data for analysis, visualization, and alarms.

  • Enable Prometheus Endpoint* -  Toggle on/off. After enabling the  "Enable Prometheus Endpoint", it is advised to restart Composer.
  • Prometheus Port* - Network port to use.
  • Allow Grafana Alerts* - If activated, the metric composer_ext_allow_grafana_alerts will be set to 1. This can be useful when configuring Grafana Alerts as the setting can be read by Grafana, making it possible for the Composer user to control whether Grafana Alerts should be activated (for this particular Composer instance).
  • Push logs to Loki* - If enabled, Composer will push log files to Loki endpoint specified.
  • Loki endpoint*  - Url for Composer to push log files
Note*
Any changes require a restart of Composer.

Runtime version:
To enable metrics or push logs in the runtime version, in the settings.xml (root folder of the Composer application) set the following variables:

Prometheus:
"EnablePrometheus": true
"PrometheusPort": 8015 (default setting)

Loki logs:
"EnablePushLogsToLoki": true,
"LokiEndPointAddress": "http://localhost:3100"


To connect to the Prometheus Endpoint, use the server IP or connect to localhost: http://localhost:8015/metrics
Metrics are updated every 4th second.

Composer-specific metrics:

  • FramesProcessed (composer_frames_processed_total) 
  • CongestionsLastSecond (composer_congestions_last_second) 
  • NumCongestiveFramesSinceStart (composer_congestive_frames_since_start) 
  • ProcessingQueueSize (composer_processing_queue_length) 
  • LastProcessingTime (composer_last_frame_processing_time) 
  • MaxProcessingTime (composer_max_processing_time) 
  • AverageProcessingTime (composer_average_processing_time)
  • CpuRamUsage (composer_cpu_ram_usage) 
  • GpuRamUsage (composer_gpu_ram_usage) 
  • FatalCount (composer_fatal_error_count_total) 
  • ErrorCount (composer_error_count_total)
  • WarningCount (composer_warning_count_total)

Additional metrics will be updated if you have licensed the Extended Monitoring Plugin. Find more information here: Extended Prometheus Metrics.

Settings - Live Preview

With Live preview it is possible to share a live stream of the Scene view using the Vindral CDN. When enabled, a section for Live Preview will be visible under the Performance panel. The Live preview is not intended to be used for broadcasting to an audience. Instead, use the RTMP target when broadcasting to your viewers. The Live Preview is a quick way to share internally and has a limit of 10 simultaneous viewers,

  • Enable Live Preview - This will enable the Live Preview functions in the Performance Panel. To start live streaming, go to the Performance panel and click "Start" under the Live Preview section.
  • Video bitrate - Select video bitrate for the live stream.

Settings - Debug

This tab is usually only used for debugging of the application.

  • Enable debug level logging - If activated, the application will log debug messages
  • Enable debug features in GUI - Enable debug buttons in the GUI, under the “Performance” panel.
  • Enable performance debug log - Composer will create a .csv file in the application folder (The file will have a name similar to:
    Performance-Debug-20240130 210123.csv).
    The CSV file will every frame log the following performance properties: DateTime, Frame, CongestionsLastSecond, NumCongestionsSinceStart, ProcessingTime, MaxProcessingTime, AverageProcessingTime, AverageProcessingTimeLong.

Settings - GPU

  • GPU used for CUDA processing - If several Nvidia GPUs are installed, it is possible to select which GPU to use for CUDA processing.
  • Active video renderer - This setting affects how the preview area is drawn. When Composer is being run on a local workstation, it is recommended to run the Direct3d Video renderer. If Composer is accessed over an RDP session, the InteropBitmap Video renderer must be used to see the preview. Otherwise, it will be black. Also, if the host GPU is run in TCC mode (compute mode), the InteropBitmap Video renderer should be used.
  • Use free-running inputs (Experimental) - This option will allow Composer to run each input on a separate CPU thread. This can, in some cases, lead to a reduced processing time, but it can also introduce artefacts. Use this feature with caution.
  • Use free-running scenes (Experimental) -This option will allow Composer to run each scene on a separate CPU thread. This can, in some cases, lead to a reduced processing time, but it can also introduce artefacts. Use this feature with caution.
  • Use free-running targets (Experimental) -This option will allow Composer to run each target on a separate CPU thread. This can, in some cases, lead to a reduced processing time, but it can also introduce artefacts. Use this feature with caution.
  • Launch the application in Performance Mode (Desktop only) - If this option is enabled Composer will start in a Performance mode that will disable the GUI, increasing the performance of Composer slightly. When the GUI is enabled, the performance mode is disabled and Composer needs to be restarted again to enter the Performance Mode.




Was this article helpful?

What's Next