Mimir/docs/obs-stem-plugin.md
2026-05-27 20:55:48 +01:00

1.4 KiB

OBS Stem Plugin

The production audio path is a Mimir/Fensalir-owned stem bus plus a narrow OBS source plugin.

Authority

  • Mimir/Fensalir own timing, alignment, DSP, and stem identity.
  • OBS owns broadcast mixing and scene composition.
  • The plugin reads already-processed stem samples. It does not synchronize raw sources, estimate clocks, or decide which stem is true.

Current Contract

MimirObsStemSharedMemoryPublisher writes the latest validated MimirObsStemPublicationSnapshot into a Windows shared-memory map named Local\MimirObsStemBus by default. The native OBS plugin in native/obs_stem_source exposes one audio input source. Add one source per stem and set:

Shared memory map: Local\MimirObsStemBus
Stem id: aligned_source_0

Use aligned_source_0 through aligned_source_5 for the first actuator-stage source lanes.

Build

The plugin requires an OBS/libobs development package that provides libobsConfig.cmake.

cmake -S .\native\obs_stem_source -B .\native\obs_stem_source\build -Dlibobs_DIR=<path-to-libobs-cmake>
cmake --build .\native\obs_stem_source\build --config Release

This workstation currently does not have the libobs SDK installed, so CMake configuration stops at find_package(libobs). The managed shared-memory publisher is still verified by:

dotnet run --no-build --project .\src\Mimir.BufferSmoke\Mimir.BufferSmoke.csproj -- --obs-stem-shared-memory-smoke