settings.xml reference

Composer reads its configuration from settings.xml, located in the application directory next to the executable. The file is loaded at startup; most properties take effect on the next launch, but those flagged API exposed below can also be changed at runtime via the /api/settings/set HTTP endpoint.

The settings file path can be overridden by a CLI flag at startup. If a layered settings.local.xml lives next to the canonical file, it overrides individual values without modifying the committed default — useful for environment-specific tweaks.

All settings below are defined as public properties on the VindralEngineBaseTypes.Utilities.Settings class. Property names match the XML element names in settings.xml exactly. For the friendlier UI-driven view of the same options, see the per-tab pages under Settings.

126 configurable settings across 31 sections; 4 runtime-mutable via the API. 22 additional persisted-state fields are listed in the appendix below.

Directories & Paths

Setting Type API exposed Description
ProjectsDirectory string Directory where project files (.prj) are stored. Defaults to a "Projects" subfolder in the working directory.
MediaDirectory string Root directory for media assets (images, video, etc.). Defaults to a "Media" subfolder in the working directory.
VideoSourceMediaDirectory string Subdirectory under MediaDirectory for video source files.
ImageSourceMediaDirectory string Subdirectory under MediaDirectory for image source files.
PluginsDirectory string Directory where external plugin assemblies are loaded from.
LogDirectory string Directory where application log files are written.
BackupDirectory string Directory for project backup files. Empty string means backups are disabled.

Project Files & Loading

Setting Type API exposed Description
LastProjectFile string Name or path of the last opened project file. Setting this also updates LastProjectFileFullPath and LastProjectFileShortName.
LoadLastProjectFileOnLaunch bool When true, automatically opens the last used project file on application startup.
AutoSaveProjectBackup bool When true, automatically saves a backup copy of the project file before overwriting.

Default Scene Dimensions

Setting Type API exposed Description
DefaultSceneWidth int Default width in pixels for new scenes. Clamped to 32–8192.
DefaultSceneHeight int Default height in pixels for new scenes. Clamped to 32–8192.

CUDA / GPU

Setting Type API exposed Description
CudaDeviceIndex int Zero-based index of the CUDA GPU device to use for rendering.
LockGPUClocks bool When true, locks GPU clock frequencies to their maximum to reduce frame-time variance.

Performance & Runtime

Setting Type API exposed Description
ShowDetailedComputeTime bool When true, displays per-component compute time in the GUI for performance profiling.
MaxProcessingCueSize int Maximum number of frames allowed in the rendering queue before back-pressure is applied. (Property name retained as Cue for compatibility — this is the processing queue.) Clamped to 25–200.
FlushCueOnCueFull bool When true, drops all queued frames when the rendering queue fills up, preventing unbounded latency. (Property name retained as Cue for compatibility.)
UseHighPerformanceClock bool When true, uses a high-resolution timer for frame scheduling instead of the default system clock.
LaunchInPerformanceMode bool When true, starts the application in performance mode with reduced UI updates to maximize throughput.
EnablePerformanceDebugLog bool When true, writes detailed performance timing data to the debug log.
ReducedStartupLoad bool When true, skips loading non-essential components at startup for faster launch times.
ReducedStartupLoadInputDelayMs int Delay in milliseconds between starting each input when ReducedStartupLoad is enabled. Higher values smooth the startup load over a longer window. Clamped to 20–500.
ReducedStartupLoadTargetDelayMs int Delay in milliseconds between starting each target when ReducedStartupLoad is enabled. Higher values smooth the startup load over a longer window. Clamped to 20–500.
ReduceVideoPreviewFrameRateOnHighLoad bool When true, halves the video preview frame rate when system load exceeds 80% to free GPU/CPU resources.
SkipRenderFrameOnHighComputeTime bool When true, Composer will skip rendering scenes if the AverageProcessingTimePercentage is above 98%.
EnableParallelAudioProcessing bool When true, audio processing (effects chain) for inputs is run in parallel rather than serially.

HTTP API

Setting Type API exposed Description
HttpApiPort int TCP port the HTTP API listens on. Clamped to 1–65536.
HttpApiHostName string Hostname/IP the HTTP API binds to. Defaults to "localhost" in Debug, "*" (all interfaces) in Release.
RuntimeApiHostName string Hostname/IP the Runtime API binds to. Defaults to "+" (all interfaces) to preserve existing behavior.
HttpsFQDN string Fully qualified domain name used for HTTPS certificate binding. Empty disables HTTPS.
EnableHttpApi bool When true, enables the HTTP REST API for external control of the Composer.
EnableBuilderApi bool When true, enables HTTP API endpoints for creating, editing and deleting project entities (inputs, scenes, layers, targets, connectors).
DisableWebApiWhenNotRunning bool When true, the HTTP API rejects requests while the composition engine is not running.
HttpApiMaxUploadBytes long Maximum body size accepted by the upload endpoints (/api/project/upload, /api/project/asset/upload). Enforced by a fast Content-Length reject and a streaming guard. Default 1 GiB. Set to 0 or negative to disable the cap (not recommended outside of trusted environments).

WebSockets

Setting Type API exposed Description
EnableWebSockets bool When true, enables the WebSocket server for real-time event subscriptions.
WebSocketsHostName string Hostname/IP the WebSocket server binds to.
WebSocketsPort int TCP port the WebSocket server listens on.
WebSocketThrottledPropertiesFrequency WebSocketThrottledPropertiesFrequency Controls how often throttled property-change messages are sent over WebSocket connections.
WebSocketsMaxIncomingMessageQueueLength int Maximum number of incoming messages that can be queued per WebSocket connection. Clamped to 1–500.
WebSocketsMaxOutgoingMessageQueueLength int Maximum number of outgoing messages that can be queued before overflow protection clears the queue. Clamped to 2–50000.
WebSocketsMaxConnectedSubscribers int Maximum number of concurrent WebSocket subscriber connections allowed. Clamped to 0–10.
WebSocketMsgAudioDecimals int Number of decimal places for audio level values in WebSocket messages. Clamped to 1–9.
WebSocketMsgAudioRmsDecimals int Number of decimal places for audio RMS level values in WebSocket messages. Clamped to 1–9.

Discovery

Setting Type API exposed Description
EnableDiscoveryService bool When true, enables the UDP network discovery service that broadcasts this instance's presence on the local network.
DiscoveryPort int UDP port used for network discovery broadcasts. All Composer instances must use the same port to discover each other. Clamped to 1–65535.

Audio

Setting Type API exposed Description
EnableInputAudioProcessing bool When true (default), per-input audio processing (effects chain, meters) runs each frame. When false, ProcessAudio() bails early — raw decoded audio still flows to the mixer but no per-input DSP is applied and VU meters go silent.
NumberOfAudioChannels AudioNumberOfChannels Number of audio channels used in the composition pipeline (e.g. stereo, 8 channels).
ShowAudioTab bool When true, shows the Audio tab in the GUI for audio-specific settings.
AudioPeakDbMinLevel AudioPeakDbMinLevel Minimum dB level displayed on audio peak meters (e.g. -48 dB).
RequireAudioDevice bool When true, requires an audio output device to be present at startup.
UseRmsAudioMeters bool When true, audio meters display RMS levels instead of peak levels.
RmsWindowSizeMs RmsWindowSizeMs Window size in milliseconds used for RMS audio level calculation.
StereoPeakLevelMaxAge StereoPeakLevelMaxAge How long a stereo peak level reading is held before decaying, for visual display.
EnableVuMeters bool When true, enables VU meter visualization in the GUI.
WarnOnHighAudioLevel bool When true, displays a warning when audio levels exceed safe thresholds (clipping risk).

Audio Preview

Setting Type API exposed Description
AP_AudioPreviewBackend AudioBackend Audio backend used for local audio preview playback (e.g. WASAPI Shared, WASAPI Exclusive).
AP_AudioPreviewLatencysMs int Target latency in milliseconds for the audio preview output. Clamped to 5–2000.
AP_AudioPreviewBufferSizeMs int Buffer size in milliseconds for the audio preview output. Clamped to 5–2000.

Alarms

Setting Type API exposed Description
AlarmsEnabled bool When true, enables the alarm monitoring system that watches for errors and warnings.
AlarmsWatcherTimeSpanSeconds int Time window in seconds over which errors/warnings are counted to trigger alarms. Clamped to 10–600.
AlarmsFatalThreshold int Number of fatal errors within the watcher time span that triggers an alarm. Clamped to 1–100.
AlarmsErrorThreshold int Number of errors within the watcher time span that triggers an alarm. Clamped to 1–100.
AlarmsWarningThreshold int Number of warnings within the watcher time span that triggers an alarm. Clamped to 1–100.
AlarmsSuppressDurationSeconds int Duration in seconds to suppress repeated alarms after one has been raised. Clamped to 5–3600.
AlarmClearEnabled bool When true, enables automatic clearing of alarms when conditions return to normal.
AlarmClearRequireInputsRunning bool When true, alarm auto-clear requires all inputs to be in a running state.
AlarmClearRequireTargetsConnected bool When true, alarm auto-clear requires all targets to be connected.

OpsGenie

Setting Type API exposed Description
OpsGenieKey string OpsGenie API key for sending alert notifications.
OpsGenieInterval OpsGenieInterval Interval at which heartbeat/status pings are sent to OpsGenie.
OpsGenieApiUrl string OpsGenie REST API endpoint URL for creating alerts.
OpsGenieResponderTeam string OpsGenie responder team name that receives alert notifications.
OpsGenieEnabled bool Master switch to enable or disable OpsGenie integration.
OpsGenieEnabledForFatalAndErrors bool When true, sends OpsGenie alerts for fatal errors and errors.
OpsGenieEnabledAlarms bool When true, sends OpsGenie alerts when the alarm system triggers.

Slack

Setting Type API exposed Description
SlackChannelName string Name of the Slack channel where alarm notifications are posted.
SlackChannelToken string Slack API token (bot or webhook) used to authenticate when posting messages.
SlackAlarms bool When true, posts alarm notifications to the configured Slack channel.

Prometheus & Monitoring

Setting Type API exposed Description
HostName string Machine hostname, defaults to MachineName. Used in monitoring labels.
EnablePrometheus bool When true, exposes a Prometheus metrics endpoint for scraping.
PrometheusPort int TCP port the Prometheus metrics endpoint listens on.
PrometheusHostName string Hostname/IP the Prometheus metrics endpoint binds to. When null, binds to all interfaces ("+").
SystemLabel string Human-readable label identifying this Composer instance in monitoring dashboards and logs.
AddSystemLabelToLogEntries bool When true, prepends the SystemLabel to every log entry for multi-instance identification.
AllowGrafanaAlerts bool When true, allows Grafana to send alert notifications to this Composer instance.

Logging

Setting Type API exposed Description
EnableDebugLogging bool When true, debug-level entries are written to the log files; when false, debug entries are filtered out below the info level. The launch-time -v / --verbose flag overrides this and drops the floor further to verbose / trace. Default: true.
LogRetentionDays int Number of days of daily log files to retain in LogDirectory; older files are removed when new ones roll over at midnight. Default: 30.
FfMpegLogLevel FfMpegLogLevel FFmpeg's internal log verbosity, forwarded through libav to Composer's logger. Higher levels produce more diagnostic output from the encoder/decoder pipeline. Default: None (FFmpeg internals silenced).
ClearErrorAndWarningsAtProjectLoad bool When true, the Desktop's "errors / warnings since project loaded" counter resets each time a project is loaded. When false, the counter accumulates across project switches. Default: false.

Loki

Setting Type API exposed Description
EnablePushLogsToLoki bool When true, every log entry is also pushed to the Loki endpoint at LokiEndPointAddress for centralised aggregation (typically by a Composer Monitor stack). Off by default; an unreachable Loki endpoint can stall shutdown by ~35 s.
LokiEndPointAddress string HTTP endpoint of the Loki instance to push log entries to (e.g. http://loki.internal:3100). Honoured only when EnablePushLogsToLoki is true. Default: http://localhost:3100.

Script Engine

Setting Type API exposed Description
EnableScriptEngine bool Master switch for the JavaScript Script Engine. When false, projects that reference a script log a warning and load without scripting. Default: false.
EnableScriptEngineApiCalls bool When true, the Script Engine is allowed to call out to Composer's HTTP API via CallVindralApiAsync() and similar helpers. Default: false (scripts cannot reach back into the API surface).
EnableScriptEngineAutoReload bool When true, modified script files are auto-reloaded on the fly while the project is running, so script edits take effect without restarting the project. Default: false.
Setting Type API exposed Description
SearchApplicationMediaDirectory bool When true, the assets finder searches the application's configured media directory (MediaDirectory and its Images/ / Video/ subfolders) when resolving project-referenced media. Default: true.
SearchProjectFileMediaDirectory bool When true, the assets finder searches a Media/ subfolder next to the project file. Useful for projects that ship with their own media bundle. Default: true.
SearchProjectFileRootDirectory bool When true, the assets finder searches the project file's own folder when resolving missing media. Default: true.
SearchParentDirectoryMediaDirectory bool When true, the assets finder also searches the parent directory of the project file (and its Media/ subfolder) when resolving missing media. Useful for monorepo-style project layouts. Default: true.
SearchAbsoluteFilePathsAsRelativeFilePaths bool When true, an absolute path that no longer resolves on this host is retried as a relative path against the configured search roots. Helps when a project authored on machine A is opened on machine B with different drive layouts. Default: true.
SearchCustomSubFolders bool When true, the assets finder recurses into subfolders of the configured search roots when resolving missing media. Default: true.

Path Finder

Setting Type API exposed Description
PathFinderActive bool When true, the asset path-finder rewrite pair (PathFinderOriginalPathPathFinderNewPath) is applied at media-load time. Use this to remap a hard-coded path prefix when migrating projects between hosts. Default: false.
PathFinderOriginalPath string Path prefix to match when PathFinderActive is true. References that begin with this prefix are rewritten to start with PathFinderNewPath instead.
PathFinderNewPath string Replacement path prefix substituted in place of PathFinderOriginalPath when PathFinderActive is true.

Media Import

Setting Type API exposed Description
MediaImportUseShortName bool When true, media files imported from disk are stored in the project as a short name (file name only) and resolved via the assets finder at load time. When false, the absolute file path is recorded. Default: true.

Live Preview

Setting Type API exposed Description
LivePreviewVideoBitrate OutputVideoBitrate Video bitrate of the live preview render fed to the Desktop preview window. Higher values give crisper preview quality at the cost of GPU encode bandwidth. Default: 3 Mbps.
LivePreviewFeatureVisible bool When true, the Live Preview feature (and its right-pane panel) is visible in the Desktop UI. Disable to hide the feature entirely on hosts where preview rendering isn't wanted. Default: true.

Scene Preview & Overlays

Setting Type API exposed Description
DimScenePreviewAreaWhenDisabled bool When true, the scene preview area in Composer Desktop is dimmed when the scene's render is disabled (via DisableRender or signal-loss substitution). Dimming helps the user notice that the visible frame is no longer live. Default: true.

UI Scale

Setting Type API exposed Description
UIScale double Global UI scale factor. 1.0 = 100%. Clamped to 0.75–2.0.
BgraParadeOverlayImage string Path to a background-overlay image shown behind the BGRA parade scope in the Video Analyzer. Empty = use the built-in default background.
ScopeOverlayImage string Path to a background-overlay image shown behind the waveform / vectorscope in the Video Analyzer. Empty = use the built-in default background.

Latest News

Setting Type API exposed Description
ShowLatestNewsAtStartup bool When true, the in-app release notes / news window is shown automatically at startup if the news content has changed since the last view. Default: true.

Autosave

Setting Type API exposed Description
EnableAutosave bool When true, Composer periodically writes a timestamped autosave copy of the open project to disk in addition to the user's manual saves. Default: true.
AutosaveIntervalMinutes AutosaveInterval How often autosave writes a new history copy (e.g. every 5, 10, or 15 minutes). Default: every 10 minutes.
AutosaveHistoryLimit AutosaveHistoryLimit Maximum number of autosave history copies kept per project. When the limit is reached, the oldest history entry is pruned as a new one is written. Default: 30.
AutosaveRetentionDays AutosaveRetentionDays How long autosave history copies are kept before being purged regardless of AutosaveHistoryLimit. Default: 30 days.

Project Management

Setting Type API exposed Description
PM_EnableProjectManagement bool Master switch for project management features — auto-loading of newer project versions, fallback to older versions, and the Project Management UI surface. When false, all PM_* options below are inert. Default: false.
PM_AutoStartLatestLatestVersion bool When true, opening a project automatically resolves to the highest-numbered version sibling (filename pattern NAME-version-NNNNNN.prj) found in the project folder. Honoured only when PM_EnableProjectManagement is true. Default: true.
PM_AutoReloadOnNewProjectVersion bool When true, Composer watches the project folder while the project is running and reloads the project automatically when a higher-numbered version file appears on disk. Honoured only when PM_EnableProjectManagement is true. Default: true.
PM_AutoReloadNewVersionUsingApi bool When true, the /api/project/loadlatestversion HTTP endpoint is honoured — calling it triggers Composer to scan for and load a newer versioned project file. Honoured only when PM_EnableProjectManagement is true. Default: true.
PM_AutoReloadOlderVersion bool When true and the configured project file is missing on disk, Composer falls back to the most recent older versioned sibling instead of failing the load. Honoured only when PM_EnableProjectManagement is true. Default: true.

Security

Setting Type API exposed Description
LockWorkstationSeconds int Inactivity threshold in seconds after which Composer locks the workstation (Desktop only). Clamped to 10–3600. Default: 600 s (10 min).

Connectors

Setting Type API exposed Description
ConnectorRestrictions ConnectorRestrictions How Composer behaves when a Connector is triggered while another Connector is already running (None / WarnIfActive / RejectIfActive). Default: None (concurrent triggers run side by side).

Settings Maintenance

Setting Type API exposed Description
EnableSettingsPathsAutoRepair bool When true, Composer auto-repairs path-typed settings (project / media / log / plugin directories) at startup if they no longer exist on disk — typically by recreating the missing directory or falling back to a sensible default. Default: false (paths are surfaced as errors instead of silently fixed).

Miscellaneous

Setting Type API exposed Description
GroupInputs bool When true, the Inputs list in Composer Desktop is grouped by input type rather than displayed as a flat list. Default: false.
ShowDebugProperties bool When true, properties marked [DebugProperty] / [DeveloperProperty] are visible in the Composer Desktop property panes. Use only when reproducing a bug or instrumenting a project — these surfaces are not stable across releases. Default: false.

Vindral Live

Setting Type API exposed Description
VindralLiveApiBaseUrl string Base URL of the Vindral Live REST API used by Composer's Vindral Live integration (channel listing, stream-target management). Default: https://api.cdn.vindral.com/v1/; override only when pointing at a staging or on-prem Vindral Live deployment.
VindralLiveApiKey string API key used to authenticate against the Vindral Live REST API at VindralLiveApiBaseUrl. Persisted encrypted under EncryptionKey; treat as a secret.

Persisted state (not user-configurable)

The fields below also live in settings.xml but are populated by Composer rather than configured by the user — derived values, transient runtime state, internal counters and last-used hints, and persisted UI state (panel-expanded flags). They're listed here for completeness; editing them by hand is rarely useful and may be overwritten on the next save.

Directories & Paths

Setting Type API exposed Description
LastUsedImportMediaDirectory String Internal state — last directory the user imported media from. Used to pre-fill the import-file dialog; not a user-configurable option.

Project Files & Loading

Setting Type API exposed Description
LastProjectFileFullPath string Derived state — full path to the last opened project file, computed from LastProjectFile. Not user-configurable.
LastProjectFileShortName string Derived state — file name only (no directory) of the last opened project file. Not user-configurable.

CUDA / GPU

Setting Type API exposed Description
CudaDeviceInfo CudaDeviceInfo Derived state — information about the currently selected CUDA device (name, memory, compute capability, etc.). Populated at startup from the GPU referenced by CudaDeviceIndex; not user-configurable.

Performance & Runtime

Setting Type API exposed Description
RuntimeState RuntimeState Runtime state — current state of the composition engine (Idle / Initializing / Running / Stopping / Stopped). Read-only at runtime; not a user-configurable option.
ApplicationLaunchCounter int Internal state — counter tracking how many times the application has been launched. Used for first-run gating and usage analytics; not user-configurable.

GUI Panels (expanded state)

Setting Type API exposed Description
IsExpandedPanelProjectStatistics bool Persisted UI state — whether the Project Statistics right-pane panel is expanded. Updated when the user clicks the panel header.
IsExpandedPanelLivePreview bool Persisted UI state — whether the Live Preview right-pane panel is expanded.
IsExpandedPanelPerformance bool Persisted UI state — whether the Performance right-pane panel is expanded.
IsExpandedPanelSync bool Persisted UI state — whether the Sync right-pane panel is expanded.
IsExpandedPanelCpuAndGpuLoad bool Persisted UI state — whether the CPU and GPU Load right-pane panel is expanded.
IsExpandedPanelOptions bool Persisted UI state — whether the Options right-pane panel is expanded.
IsExpandedPanelAudioOptions bool Persisted UI state — whether the Audio Options right-pane panel is expanded.
IsExpandedPanelRenderTuning bool Persisted UI state — whether the Render Tuning right-pane panel is expanded.
IsExpandedPanelReferenceImageOptions bool Persisted UI state — whether the Reference Image Options right-pane panel is expanded.
IsExpandedPanelAudioMeters bool Persisted UI state — whether the Audio Meters right-pane panel is expanded.

Latest News

Setting Type API exposed Description
LatestNewsLastModified DateTime Internal state — last-modified timestamp of the news content the user has already seen. Compared against the current news payload to decide whether to auto-open the news window. Not user-configurable.

Autosave

Setting Type API exposed Description
AutosavedHistoryFiles ObservableCollection<FileInfo> Runtime state — collection of autosave history files for the currently open project, populated for the Restore-from-Autosave UI. Not persisted.
SelectedHistoryFile FileInfo Runtime state — the autosave history entry currently selected in the Restore-from-Autosave UI. Not persisted.
PreviousRestoredAutosave FileInfo Runtime state — the autosave history entry most recently restored, used to support an undo of the restore action. Not persisted.
HasHistoryFiles bool Runtime state — true when the open project has at least one autosave history entry (drives whether the Restore-from-Autosave entry is enabled in the UI). Not persisted.

Security

Setting Type API exposed Description
EncryptionKey string Internal state — per-installation symmetric key (a fresh GUID generated on first launch) used to encrypt sensitive fields persisted in settings.xml (API tokens, stream keys, OpsGenie key). Treat as a secret; rotating it invalidates every encrypted field on this host.