Skip to content
radj307 edited this page Dec 14, 2023 · 18 revisions

Volume Control Wiki

Check out the panel to the right to browse through other pages in the wiki.

See the Github Pages site for SDK documentation & an addon development guide.

Installation

Volume Control provides two installation methods, the first is via an installer, and the other is a portable executable.
You can also use winget from a terminal to setup the installer version; the package name is radj307.volume-control.

There are subtle differences between the two versions, but the primary difference is the location in which they save the config & log files:

Installer

The installer version stores its config file & log file in ~\AppData\Local\radj307\VolumeControl.
You can open this directory via the tray icon, or by pressing Win+R and entering %LocalAppData%/radj307/VolumeControl.

Portable

The portable version uses the directory where it is located to store its config & log files.

Basic Usage

Tray Icon

Volume Control relies on its system tray menu to show or hide the main window in order to keep it out of your way.
When you minimize the main window, it is hidden and must be shown via the system tray icon.
Double-clicking on the tray icon will toggle the visibility of the main window, while right-clicking on it will open a context menu with additional options.

volume-control-tray
The tray icon in v6.6.3

Due to a limitation of Windows, even when you have enabled the taskbar icon it won't be visible when the main window is hidden.

Mixer

The Mixer tab in the main window shows the audio sessions that are active on your system, as well as the current target session.
From here, you can adjust the volume and mute state of any session, and toggle the target locking feature.

volume-control-mixer-6.6.3
The Mixer tab in v6.6.3. In the above image, the current target session is Mozilla Firefox.

The target session is the session that is affected by session-specific hotkey actions, like increasing or decreasing the volume.
When using multi-selection, it instead acts like a selector that can toggle whether a session is selected or not.

Target locking prevents the current target session from being changed accidentally. It does not prevent the target from being changed to a suitable alternative if the specified one doesn't exist, such as when an application is restarted and assigned a new Process ID.

The target session may be specified by any of the following identifiers:

  • Name
    This is a non-unique name that is shared between processes from the same application.
    It can be a friendly name chosen by the application, or the process name if the application doesn't specify one.
  • Process ID
    This is a unique integer that refers to a specific running process.
    It is assigned at random every time a process starts.
  • Process "Identifier"
    A process identifier is a unique name composed of multiple segments separated by colon (:) characters. For example, 3364:firefox:O is a process identifier.
    Process ID Process Name DataFlow Specifier
    Description Process ID of the owner process. Process Name of the owner process. Specifies whether it is an input (I) or output (O) session.
    Example 3364 firefox O

Hotkeys

The Hotkeys tab in the main window allows you to create, remove, and edit global hotkeys.

volume-control-hotkeys-6.6.3
The Hotkeys tab in v6.6.3. Each row represents a hotkey, which can be toggled with the checkbox on the left.

Hotkeys are a little-known and rarely-used feature of the Windows API added in Windows Vista that allows programs to receive messages when a specific keystroke is pressed, and will even override built-in Windows keystrokes. These type of hotkeys have very little overhead with unbeatably low latency, and while they can be used almost anywhere due to their low-level implementation they are also limited by their relative simplicity. They only support basic (MODIFIER KEYS)+(KEY) key combinations and do not support input devices that don't map directly to keyboard keys. This is a worthy trade-off, however, since they can be used in almost all games, even when in fullscreen mode.

You can configure the following properties of Volume Control's hotkeys, listed here in the same order as they appear in the UI:

  • Registration
    This allows you to enable or disable specific hotkeys.
  • Name
    A friendly name that helps you to identify what a hotkey does at a glance.
  • Key
    Specifies the primary key in the keystroke.
    You can select keys from the dropdown, or click and hold on the button next to it to set the key by pressing it on your keyboard.
  • Modifier Keys
    Specifies the modifier key(s) in the keystroke.
    • Alt
      The left or right ALT key.
    • Ctrl
      The left or right CTRL key.
    • Shift
      The left or right SHIFT key.
    • Win
      The left or right WINDOWS/COMMAND/SUPER key.
    • NoRepeat
      This can't currently be set through the UI directly, and isn't actually a key at all. It prevents being able to trigger the hotkey repeatedly by holding it down.
      You can enable it by adding 16384 to the value of a hotkey's Modifiers key in the config file.
      > Note: If you would like us to add a checkbox for this, let us know by submitting a feature request.
  • Action
    This specifies what happens when the hotkey is pressed.
    A wide range of actions are available by default, and you can even add your own by creating an addon.
  • Action Settings
    These are additional persistent settings provided by some actions that allow you to change how the action works.
    They are specific to the currently selected action of that hotkey, and changing the action will reset them to default.
    For example, you could create one set of session volume up/down hotkeys that always affect a specific session (or sessions), and another set that affect the current target session.

Settings

The Settings tab in the main window allows you to configure the behaviour of the Volume Control application.

volume-control-settings
The settings tab in v6.6.3.

The settings are arranged into categories, some of which have expandable containers (represented by +/- icons) that expose even more settings. There are far too many settings to list here, so you are encouraged to explore them yourself! Many of them have tooltips that provide a description of what they do, which can be viewed by hovering your mouse cursor over the control.

You can also configure the layout, appearance, and behaviour of each of the two notification windows from here.

Notifications

Volume Control also has 2 notification windows for providing immediate feedback for session and device hotkeys.
You can customize their appearance through the Settings tab in the main window.

They show the currently selected item, and optionally show the entire list of sessions so you can see at a glance where the current target session is. Both notification windows also have a checkbox and a slider (with an editable text box) for changing the mute state & volume level of the target session.