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.
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.
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.
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.
Media Search
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 (PathFinderOriginalPath → PathFinderNewPath) 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.
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).
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.
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.