diff --git a/README.md b/README.md index 0274387..5930f82 100644 --- a/README.md +++ b/README.md @@ -1,68 +1,104 @@ # reforger-surround -Temporary PipeWire/PulseAudio 5.1 sink helper for testing Arma Reforger surround output on Linux. +PipeWire/PulseAudio helper for exposing Arma Reforger's 5.1 output on Linux. -It creates a virtual 5.1 output device, makes it the launch-time default, then exposes Reforger back to that device after normal system audio is restored. +This project has two parts: + +- Create a temporary 5.1 sink so Reforger negotiates surround channels. +- Manually open the Carla EQ project and wire it to your real stereo output. + +Watching the graph in `qpwgraph` is recommended while testing. ## Requirements - PipeWire with PulseAudio compatibility - `pactl` -- Arma Reforger running through Steam/Proton +- Arma Reforger through Steam/Proton -## Install - -Run from the repo: +For the Carla EQ stage on Arch: ```bash -./reforger-surround --help +sudo pacman -S carla lsp-plugins-vst ``` -Or install locally: +## Install ```bash install -Dm755 reforger-surround ~/.local/bin/reforger-surround ``` -## Workflow +## 1. Expose Reforger 5.1 + +Preferred flow: ```bash reforger-surround launch ``` -This runs `up`, launches Arma Reforger through Steam, waits for the audio stream, then restores normal system audio while keeping Reforger exposed to the 5.1 sink. +This creates the 5.1 sink, makes it default, launches Reforger, waits for the game audio stream, restores your previous default device, then exposes Reforger back to the 5.1 sink. -Manual workflow: +Check the result: + +```bash +reforger-surround check +``` + +Good: + +```text +Sample Specification: ... 6ch 48000Hz +Channel Map: front-left,front-right,front-center,lfe,rear-left,rear-right +``` + +If `launch` errors or times out, use the manual flow: ```bash reforger-surround up -``` - -Launch Arma Reforger while `Reforger Surround 5.1` is the default output. - -```bash +# launch Arma Reforger manually reforger-surround restore reforger-surround check ``` -If successful, clean up later with: +If Reforger negotiates only `2ch`, restart the game and investigate manually with `qpwgraph`, `reforger-surround status`, and `pactl list sink-inputs`. + +## 2. Open ReforgerEQ Carla + +Open `reforger-audio.carxp` through Carla: ```bash -reforger-surround down +pw-jack /usr/bin/python3 /usr/share/carla/carla --with-appname=carla --with-libprefix=/usr /path/to/reforger-audio.carxp ``` -## Commands +Optional KDE launcher: + +- Open the start menu. +- Choose `Edit Applications`. +- Create a new item. +- Name: `Reforger EQ Carla` +- Program: `pw-jack` +- Command line arguments: `/usr/bin/python3 /usr/share/carla/carla --with-appname=carla --with-libprefix=/usr /path/to/reforger-audio.carxp` + +## 3. Carla Output Wiring + +Wire Carla outputs to your real output device's playback ports: + +```text +Output 1 -> playback_FL +Output 2 -> playback_FR +Output 3 -> playback_FL and playback_FR +Output 4 -> playback_FL +Output 5 -> playback_FR +``` + +## Useful Commands ```bash -reforger-surround create # create the 5.1 sink only reforger-surround up # create sink, save default, make 5.1 default reforger-surround launch # up, launch Steam app, wait for stream, restore -reforger-surround expose # move running Reforger stream to the 5.1 sink -reforger-surround pin # alias for expose reforger-surround restore # restore previous default, then expose Reforger -reforger-surround down # restore default and unload the 5.1 sink -reforger-surround status # show current state +reforger-surround expose # move running Reforger stream to the 5.1 sink reforger-surround check # report whether Reforger is 2ch or 6ch +reforger-surround down # restore default and unload the 5.1 sink ``` ## Configuration @@ -75,39 +111,4 @@ REFORGER_SURROUND_STEAM_URI=steam://rungameid/1874880 REFORGER_SURROUND_WAIT_SECONDS=90 ``` -Example override: - -```bash -REFORGER_SURROUND_APP_NAME="ArmaReforgerSteam.exe" reforger-surround check -``` - -Use a custom launch command: - -```bash -reforger-surround launch steam steam://rungameid/1874880 -``` - -## Expected Result - -Good: - -```text -Sample Specification: ... 6ch 48000Hz -Channel Map: front-left,front-right,front-center,lfe,rear-left,rear-right -``` - -Bad: - -```text -Sample Specification: ... 2ch 48000Hz -Channel Map: front-left,front-right -``` - -If Reforger negotiates stereo, restart the game with the 5.1 sink selected/default before launch. - -## Notes - -- Prefer `restore` over manually changing your default output device. -- If you change default output manually, run `reforger-surround expose` afterward. -- `restore` keeps the 5.1 sink alive; `down` unloads it. -- LFE may be silent even when Reforger is outputting 6ch. +LFE may be silent even when Reforger is outputting 6ch.