Running¶
./build/dist/GlavaSharp # default sink monitor, bars module from rc.glsl
./build/dist/GlavaSharp --module waterfall # scrolling spectrogram
./build/dist/GlavaSharp --list-sinks # see capture targets
./build/dist/GlavaSharp --list-gpus # see DRM render nodes (for --gpu)
./build/dist/GlavaSharp --fft-device gpu # run the FFT on the GPU instead of the CPU
./build/dist/GlavaSharp --freq-scale erb # try a different perceptual scale (default: log2)
./build/dist/GlavaSharp --desktop # desktop-embedded mode (X11/xfwm4), whole screen
./build/dist/GlavaSharp --list-monitors # see connected monitors (for --desktop-monitor)
./build/dist/GlavaSharp --desktop --desktop-monitor 1 # ...on just monitor 1
./build/dist/GlavaSharp --desktop --desktop-geometry 100,100,800,600 # ...at a specific rect
./build/dist/GlavaSharp --desktop --module aurora # calming ambient desktop visualizer
./build/dist/GlavaSharp --module clock # analog clock + radial spectrum
Then open http://127.0.0.1:8642/ in a browser for live sliders (FFT
attack/decay/gain, plus module properties like aurora's amplify) —
edit a .frag/.glsl file and it hot-reloads on save, no restart needed
for either. See Live Control Channel & Hot-Reload
for how that works under the hood.
See the top of src/GlavaSharp/Program.cs for the full CLI flag
reference, or the Architecture section for
how each piece actually works under the hood.
Standalone FFT benchmark mode¶
--benchmark-fft runs entirely outside the normal app flow — no window,
no ShaderModule, no audio capture, just IFft.Process() timed in a loop
and a results table on stdout. See Benchmarks for
sample output and how to read it.