A NON-SPAWNING DemoNodeFactory: returns the same deterministic loopbackPorts
port names as PipeWireDemoNodeFactory but starts NO pw-loopback process. Used in
NATIVE-mixer mode, where every channel head is repointed onto the native strip input and MAIN
goes straight to the hardware sink, and the native path emits boundary edges only — so the demo's
synthetic I/O nodes carry no audio and are pure graph weight. Spawning them anyway (32 in + 16
out + main ≈ 196 idle PipeWire nodes) churns the driver group and causes periodic dropouts (the
"C hiccup"). The topology model still needs the port NAMES to label channels / buses, so we
synthesise them; nothing ever links to them. Set OPENMIXER_DEMO_SOURCES=1 to force the real
spawning factory back when you actually want patchable demo sources.
A NON-SPAWNING DemoNodeFactory: returns the same deterministic loopbackPorts port names as PipeWireDemoNodeFactory but starts NO
pw-loopbackprocess. Used in NATIVE-mixer mode, where every channel head is repointed onto the native strip input and MAIN goes straight to the hardware sink, and the native path emits boundary edges only — so the demo's synthetic I/O nodes carry no audio and are pure graph weight. Spawning them anyway (32 in + 16 out + main ≈ 196 idle PipeWire nodes) churns the driver group and causes periodic dropouts (the "C hiccup"). The topology model still needs the port NAMES to label channels / buses, so we synthesise them; nothing ever links to them. SetOPENMIXER_DEMO_SOURCES=1to force the real spawning factory back when you actually want patchable demo sources.