-
Notifications
You must be signed in to change notification settings - Fork 0
Apps and Routing
Rostrum's job is to get each app onto the right bus without you wiring anything. This page explains how that works in plain terms: automatic placement, your own choices, rules, volume and mute for one app, and what happens at login.

When an app plays audio, Rostrum decides where it goes in this order. The first one that applies wins:
- You moved it, for this launch only. You put the app on a bus with Always off.
- A rule in the current scene. You put the app on a bus with Always on (the default when you assign or drag an app).
- Automatic placement. Rostrum recognised what kind of app it is and sent it to the bus that receives that kind.
If none applies, the app stays Unassigned and plays on your default output, exactly as it would without Rostrum.
With Assign apps automatically on (the default), Rostrum recognises games, voice chat, music players and stream alert tools, and puts each on the bus that receives it. For example, Discord goes to Voice, Spotify to Music, Steam and Proton games to Game, and Streamer.bot to Alerts. Browsers, video players and other recognised apps go to Desktop, which receives everything else.
Rostrum always says why it placed an app. On the Apps page the row is marked Auto, and the line under the app name gives the reason, for example:
| Reason shown | Meaning |
|---|---|
| Recognised as a voice chat app | The app is in Rostrum's built-in list. |
| Steam game | Steam started it. A nameless Proton game is named from its Steam entry. |
| Windows game under Wine or Proton | The program is Wine or a .exe. |
| The app reports itself as a game | The app labels its own audio as game, music, voice and so on. |
| Its app menu entry lists it as a music player | The app's menu category says so. |
| Plays through a game audio engine | The audio comes from an engine such as OpenAL Soft, SDL or FMOD. |
Some apps are never placed automatically:
- OBS, audio tools and screen readers, for example pavucontrol, Helvum, qpwgraph, EasyEffects, Carla, DAWs and Orca. The row says "Audio tools, OBS and screen readers are never assigned automatically".
- Apps that picked their own output. If you chose a specific output device in an app's own settings (for example Discord's output device set to HDMI), Rostrum leaves it there and says "Chose its own output in its settings, so Rostrum leaves it there". Choosing your headphones or your default output doesn't count: some apps, such as Minecraft, name the default device by themselves, and Rostrum still places them.
Automatic placements last only while Rostrum runs. They are not saved as rules, so a guess never outlives Rostrum. To keep a placement, turn on Always for that app.
Right-click a bus strip and pick from Receives Automatically: Games, Voice Chat, Music Players, Stream Alerts, Everything Else, or Nothing. Each kind goes to at most one bus, and the Mic bus never receives apps. If no bus receives a kind, apps of that kind stay unassigned, and the Apps page says "No bus receives … yet".
Switch off Assign automatically at the top of the Apps page, or Settings → Apps → Assign apps automatically. Every automatically placed app goes back to your default output. Apps placed by a rule do not move.
- On the Mixer: drag an app's chip onto another bus, or use the chip's options button → Move to.
- On the Apps page: press Assign (or Move) on the app's row and pick a bus.
Your own choices always win over automatic placement.
Each app row on the Apps page has an Always switch:
- On: Rostrum saves a rule in the current scene. New launches of the app go straight to the bus, and from your next login on the app lands there even before Rostrum starts.
- Off: only this launch goes to the bus. Turning Always off deletes the rule, but the app stays on the bus until it quits.
Each row on the Apps page has the app's icon, a meter, a mute button and a Volume slider. They act on that app alone, on top of its bus fader, so you can turn one game down or silence a browser without touching the rest of the bus.
- With Always on, the volume and mute are saved in the app's rule, so they belong to the current scene and come back with it. The mute button's tooltip says "Muted. Saved with its rule in this scene."
- With Always off, they last until Rostrum quits ("Muted until Rostrum quits").
- Turning Always on keeps the volume and mute you have already set.
- Rostrum only touches an app's own volume once you set something other than 100 % or mute it, and it does not fight a volume or mute you set in another mixer.
- When Rostrum quits, it unmutes every app it muted, so quitting never leaves an app silent. A saved mute comes back when Rostrum starts. After a crash, an app Rostrum muted stays muted until you unmute it in any mixer.
The rule files for apps that start before Rostrum carry only the bus, never a volume or mute.
App rows, saved rules and the chips on the Mixer show each app's icon. For a Steam game it is the icon Steam installed for that game, if there is one; otherwise Rostrum uses the icon from the app's menu entry or the icon the app reports. A saved rule for an app that is not running takes the icon of the menu entry its match finds. Apps with no icon get a generic one.
Unassign an app (drag it off the strips, or choose Unassign in its chip's menu) and it goes back to your default output. Rostrum also stops placing that app automatically, and its row says "You took it off its bus." Steam games are remembered one by one, so taking one Proton game off its bus does not affect others.
To let Rostrum place those apps again, use Settings → Apps → Forget skipped apps. Assigning an app to any bus yourself also removes it from that list.
The Saved rules list on the Apps page shows the rules in the current scene, for example "Discord → Voice". Each rule matches an app by its name or by its binary (program file), ignoring upper and lower case. You can Edit match to switch between the two or change the text, and Delete rule to remove it. The search box filters both the running apps and the rules.
Rules belong to a scene. Scenes made from a preset or with Duplicate keep your rules; an Empty Scene starts with none. See Scenes and Presets.
Some apps, often Wine and Proton games, play audio without a proper name. Rostrum shows a banner, "An app is playing audio without a name", with Name It…. Give it a name and a bus, and press Save Rule; the rule then matches the app's program.
While Rostrum runs, it moves every app itself. For apps that start at login before Rostrum (Discord set to start with your session, for example), Rostrum also writes the rules of your default scene into two small PipeWire config files:
-
~/.config/pipewire/pipewire-pulse.conf.d/50-rostrum.conf, for PulseAudio apps such as Discord, browsers and most games. -
~/.config/pipewire/client.conf.d/50-rostrum.conf, for native PipeWire apps.
These files ask PipeWire to send each app to its bus when the app starts. Things to know:
- Only the default scene's rules are written, and only rules, never automatic placements.
-
New rules reach PulseAudio apps after your next login, because
pipewire-pulsereads its file when it starts. Until then, Rostrum moves those apps itself once it is running. - If Rostrum is not running, apps still play. The rules never pin an app to a bus. If the bus is missing, the app plays on your default output instead, and you can still move it in any other mixer.
-
Nothing is written to WirePlumber's configuration (
~/.config/wireplumber/).
Settings → Advanced → Write app rules now writes the files on demand. If your session manager is not WirePlumber, Rostrum shows a banner and does not write these files; it still routes apps while it is open.
If you move an app's stream in another mixer after Rostrum placed it, Rostrum leaves it where you put it. Rostrum's own devices are set up so that WirePlumber should never pick one as your system default output or input.
One exception: Rostrum manages the links from its own devices to your hardware. A link you patch by hand from a Rostrum device to a hardware output (in qpwgraph or Helvum, for example) will be removed.
- How the classifier decides, step by step: docs/audio.md, Automatic assignment
- The rule files and the login sequence: docs/audio.md, Rules for apps that start before Rostrum
Rostrum is licensed under Apache-2.0. This wiki describes Rostrum 0.1.0.
Repository · Report an issue · Security policy · getrostrum.dev · hello@getrostrum.dev
Start here
Using Rostrum
- Mixer and Buses
- Apps and Routing
- Scenes and Presets
- OBS Setup
- Keyboard Shortcuts
- Command Line and D-Bus
Help and reference
Project