Skip to content

Releases: RadiatorTwo/LoupixDeck.Plugin.Audio

v1.16.0

Choose a tag to compare

@RadiatorTwo RadiatorTwo released this 06 Oct 14:15
60e59b4

Audio 1.16.0

New

  • Volume tiles: Audio.VolumeTile and Audio.AppVolumeTile show level, name and app icon on one key. Press to mute.
  • Live mute keys: Audio.MuteToggle shows the level, and turns red while muted (showState, on by default).
  • Cycle Output Device: Audio.CycleOutput switches the default output to the next device, optionally only through a list such as Realtek|Headset.
  • Default input: @defaultInput follows your default microphone, and the menu has a Mic Mute entry.
  • Set-mute commands for macros: Audio.Mute, Audio.Unmute, Audio.SetMute and their app versions mute or unmute without toggling.
  • Volume per sound: Audio.PlaySound takes a volume in percent.
  • App dials on the side strip get their own volume bar.
  • Long lists are paged in the mixer and the device folders.
  • Settings buttons: play a test sound, refresh devices, open the sound folder.
  • Linux: the mixer shows app icons (PNG only) and names from the .desktop files.
  • App overlays show the app's name ("Google Chrome 45%").
  • Spanish translation. The German translation is complete again.
  • Plugin icon on the Plugins page. Older LoupixDeck versions don't show it.

Improved

  • Default device changes show at once on buttons, dials, tiles and the side strip, instead of after up to 2 s.
  • Less load: Windows reuses the cached device objects, and Linux shares one pactl monitor.
  • Step 0 on an app command now uses the default step instead of doing nothing.

Fixed

  • Windows: a failed default-device switch was reported as success, and an audio service restart could crash LoupixDeck.
  • Linux:
    • Volume change notifications never arrived.
    • A hanging pactl could block the plugin; calls now time out.
    • Apps without a program name were missing from the mixer.
  • Side strip: a bar bound to @default kept showing the old device.

Notes

  • Audio.AppVolumeTile is now listed as "Audio: App Volume Tile".
  • An app dial bound to LoupixDeck itself now reports "no audio".

Bindings, settings and config files from 1.15.0 load unchanged. Requires Plugin SDK 1.28 or newer.

v1.15.0

Choose a tag to compare

@RadiatorTwo RadiatorTwo released this 30 Sep 18:07

Audio 1.15.0

A redesigned mixer: the application and device lists are drawn as proper tiles with icon, level and name, pixel-exact on the key, and you can shape their look with five parameters.

This version requires Plugin SDK 1.28.0. The tiles are drawn at the real key size, which older LoupixDeck versions cannot do. Update LoupixDeck before you update the plugin.

  • Mixer tiles with icon, level and name. Each tile shows the application's icon, its level and its name. On Windows the icon and the name (the executable's file description, for example "Google Chrome") come from the executable. On Linux, and for applications without an icon, a speaker is shown.
  • Pixel-exact on every key. The tiles are drawn at the real key size, so they stay sharp on a calibrated key that is not 90 px.
  • Four layouts. layout is Top (the default), Left, Background or Arc.
  • Two fonts. font is Smooth (the default, LoupixDeck's anti-aliased font) or Pixel, a 5x7 bitmap font that sits exactly on the panel's pixels. A name the bitmap font cannot spell, for example Chinese or Cyrillic, is drawn in the smooth font automatically.
  • Transparent and outlined by default. transparent removes the tile background so the wallpaper shows through, and outlined adds a dark outline to the text so it stays readable over a busy wallpaper. Untick both for a solid tile without outline.
  • Long names scroll. scroll decides which tiles run a name that is too wide: All (the default), Selected or Off. A scrolling name moves at a constant speed in both fonts. A name that may not scroll is cut with an ellipsis. The Left layout breaks the name over two lines instead.
  • Device lists look the same. Audio.OutputDevices and Audio.InputDevices open their list with the same tiles and take the same five parameters. The default device is named in bold, a muted device is greyed out and struck through, and the levels follow the devices while the folder is open.
  • Current Output has the tile parameters too. Audio.CurrentOutput takes the same five parameters for the list it opens. The button itself still shows only the device name.
  • The plugin defines icon and caption of every command. A command put on a touch button now comes with its own icon and caption from the plugin.
  • Mixer, Current Output and Stop Sounds appear once in the command menu. They were listed twice before.
  • Missing tools on Linux are reported. If pactl or a sound player is missing, the plugin now says so as a plugin requirement, so you see why it does nothing.
  • Opening the mixer and the device folders is smoother. The folders no longer announce changes while they are opening, which caused stale icons and a slow start.

Buttons and folders saved before these parameters existed pick up the new look with the defaults. No change to bindings or settings, and config files from 1.14.2 and earlier load unchanged.

Requires LoupixDeck with Plugin SDK 1.28 or newer.

v1.14.2

Choose a tag to compare

@RadiatorTwo RadiatorTwo released this 29 Sep 11:43

Audio 1.14.2

A fix release for some Linux systems that run in a language other than English: pressing a volume dial unmutes again.

  • Pressing a volume dial unmutes again on some non-English Linux systems (RadiatorTwo/LoupixDeck#297). The plugin reads the mute state from pactl. Whether pactl answers in the system language depends on whether the distribution installs its translation: a German Linux Mint reports Mute: ja instead of Mute: yes, while other distributions, such as CachyOS, answer in English even on a German system. On the affected systems the plugin only recognised yes, so a muted device always read as unmuted, and every press muted it again instead of unmuting. The plugin now runs pactl with English output, so the mute state reads correctly regardless of language and distribution. The same applies to the App Mute Toggle and to the app volume dial.
  • The rest of the Linux audio handling no longer depends on the system language. The device list, the per-app volumes and the live volume updates for dials and side-strip bars read the same pactl output and now use its English form too.

Windows is unaffected. No change to bindings, commands or settings. Config files from 1.14.1 and earlier load unchanged.

Requires LoupixDeck with Plugin SDK 1.25 or newer.

v1.14.1

Choose a tag to compare

@RadiatorTwo RadiatorTwo released this 21 Sep 20:54
85acf77

Audio 1.14.1

A fix release for the volume dials introduced in 1.14.0: the dial and its side-strip bar no longer stall the app, and they keep following the volume.

  • Turning a volume dial no longer slows the app down or freezes it. A dial bound to the default output resolved that device by listing every endpoint and reading each one's name from the system — hundreds of milliseconds, several times per drawn frame, while the strip render held the app's render lock. Resolving it now asks the system only for the default device and reuses the answer within a frame.
  • The level keeps updating. The plugin's volume notification was handed to the strip on the audio system's own callback thread, and reading the volume back from that thread silently ended the subscription: after the first change, no dial or bar ever updated again. The notification is now delivered off that thread, so the subscription survives.
  • The dial preset menu opens quickly. Listing the audio devices for the presets spent all of its time reading the device names, and the menu built its preset list twice per right-click. Device names are reused for a minute, which takes the menu's audio share from roughly half a second to a few milliseconds.

No change to bindings, commands or settings. Config files from 1.14.0 and earlier load unchanged.

Requires LoupixDeck with Plugin SDK 1.25 or newer.

v1.14.0

Choose a tag to compare

@RadiatorTwo RadiatorTwo released this 21 Sep 19:12
ae281b7

Audio 1.14.0

One dial per device, one per application: the volume dials became adjustment commands, and the side strip now reads its level from the dial itself.

  • Volume and Audio: App Volume replace the old dial triads. A single command per dial handles all three gestures: turn it to change the volume, press it to mute. The former Audio.VolumeUp, Audio.VolumeDown, Audio.MuteToggle and their app counterparts stay registered, so existing buttons and macros keep working.
  • A fast turn is one step, not several. The dial reports how far it was turned, so spinning it quickly no longer replays the same command per detent.
  • The dial shows its level. On a device with side strips the bar and the percentage come from the command that is bound to that dial, instead of the strip resolving the device a second time and possibly showing a different number.
  • Dials you already configured are migrated for you. On the first start the old up, down and mute triads on your dials are rewritten onto the new commands, once, and your config is backed up before anything is changed. Config files from earlier versions load unchanged.
  • Foreground app volume works on Linux. The focused application is resolved through xprop, which has to be installed. This covers X11 and XWayland windows. A native Wayland window exposes no process id, so under a Wayland session applications that do not go through XWayland still show nothing.

Requires LoupixDeck with Plugin SDK 1.25 or newer.

v1.13.0

Choose a tag to compare

@RadiatorTwo RadiatorTwo released this 19 Sep 15:22
0627587

Audio 1.13.0

German translations: the plugin now speaks the language the application is set to.

  • Everything the plugin puts on screen is translated. Command names and descriptions, the
    command group, the three dial presets, the settings page and the dynamic menu under Audio.
  • The folders too. Output Devices, Input Devices and Mixer, the mute and default-device
    tiles, and the hints shown when the mixer or the Play Sound category is empty.
  • Switching the language works while the application runs. There is nothing to restart and
    nothing to configure.
  • English is unchanged. The translation lives in a strings.de.json file next to the
    plugin. Anything it does not cover falls back to the English wording, so nothing can end up
    blank.
  • Device names and application names come from the operating system and stay as they are, in
    both languages.

Requires LoupixDeck 1.32.0 with Plugin SDK 1.24 or newer.

v1.12.0

Choose a tag to compare

@RadiatorTwo RadiatorTwo released this 16 Sep 18:07

Audio 1.12.0

Dial presets: the plugin now brings its own rotary templates instead of leaving them to you.

  • One preset per audio device — every output and every input shows up as a ready-made
    template, named the way the rest of the plugin names it, aliases included. Turn to change
    the volume, press to mute.
  • Master volume leads the list and binds the default-device sentinel rather than a fixed
    endpoint id, so it keeps meaning "the speakers I am listening on" after you switch your
    default output — and works unchanged on another machine.
  • Foreground app volume — turn to change the volume of whatever is in front, press to
    mute it. No process name involved, so it is useful as-is anywhere.
  • The list is re-read every time a preset surface opens: a headset plugged in afterwards is
    simply there.
  • App volume commands now report on the dial overlay why nothing happened — no app in the
    foreground, or the resolved app has no audio session. Previously they returned silently,
    which was indistinguishable from a broken binding.

Requires LoupixDeck with Plugin SDK 1.23 or newer.

v1.11.1

Choose a tag to compare

@RadiatorTwo RadiatorTwo released this 14 Sep 12:42
a039446

Audio 1.11.1

First release through the LoupixDeck Plugin Store.

  • Control system volume and mute, switch input and output devices, and set per-app volume.
  • Play and stop sounds from buttons.
  • Install and update this plugin from Settings → Plugin Store in LoupixDeck.

Requires LoupixDeck with Plugin SDK 1.22 or newer.