Skip to content

OpenXLR 0.1.70

Choose a tag to compare

@emaspa emaspa released this 18 Oct 15:25
· 625 commits to main since this release
v0.1.70
1d7a802

OpenXLR 0.1.70 lets a skin rearrange the UI, ships Broadcast, a skin that draws the submixer as a mix matrix, gives channels, mixes and the headphone outputs vector icons, verifies the Wave:1's controls on hardware and mirrors the Wave:3's microphone to computer mix.

UI

Skins arrange the UI. A skin may now carry a layout: a tree of stacks, grids and docks that places the header and the five sections (INPUTS, HEADPHONES, MONITOR, APPLICATIONS and the SUBMIXER) anywhere in the window, with the header's actions in the order the skin chooses and the rest in an overflow menu. Each section takes a template: INPUTS as the classic panel or an input rack of strips; the SUBMIXER as channel tiles, mix banks of upright faders or a mix matrix; MONITOR as a panel or a one-row toolbar; APPLICATIONS as chips or a list. A section may start folded, hidden until Arrange shows it, or at a width the skin sets, and the submixer may open in its own window the first time the skin is worn. Arrange mode still moves sections, within what the skin's tree allows, and the moves are kept per skin. A skin that sets only colours is unchanged, every existing skin works as before, and a layout with a fault is dropped whole with a message in Options naming the JSON path. The format is in docs/skins.md.

Broadcast. A new skin shipped with the application, and the complete example of what a layout skin can do. It draws the SUBMIXER as a mix matrix: a row per channel and a column per mix, where each cell holds that send's mute and a short fader over the channel's own meter and turns red when muted. Row heads carry the channel's icon, name, mute, gain and plugin chain; column heads carry the mix's name, how many outputs hear it, its mute, master level and chain. HEADPHONES and MONITOR share the row above the matrix, INPUTS is hidden because the row heads carry its controls, and the applications list sits below. Pick it under Options, APPEARANCE. A copy to start a skin of your own from is in docs/examples/skins.

Icons. Every channel, mix and headphone output has an icon from a built-in set of twenty-two vector icons, drawn in the item's colour wherever its name appears. Each gets one by kind before you choose: a microphone for the XLR inputs, a jack for Aux In, a camera for a capture channel, a headset for a monitor mix, and so on. Choose another, or none, beside the name box when you create a channel or mix, and under Appearance in the layout editor afterwards. A skin may add icons of its own or redraw a built-in one. The seven text glyphs from earlier releases still work. The terminal mixer shows a text form of each icon.

Plugin chain buttons. The button that opens a chain, FX in the matrix and Inserts elsewhere, is green while a plugin in it is processing and red when the chain's plugins are all bypassed or failed. An empty chain keeps the plain button.

Plugin

Stream Deck keys whose target is a channel or a mix draw that item's icon from the same set, in its colour, unless the key has its own icon chosen.

Devices

Wave:1. An owner's second archive confirmed that gain, mute and headphone writes from OpenXLR reach the card and light its LEDs, so every Wave:1 control is now marked as verified in hardware-support.md.

Wave:3 gain mirror. The same archive showed that a gain write the firmware drops was still reported as taken. The daemon now reports the written gain only after the card echoes it, and the desktop volume mirror follows the card.

Wave:3 microphone to computer mix. The monitor mix word runs the other way from the crossfade, as a Wave:3 owner found: full left was all microphone and full right all computer. It is mirrored, so the slider reads as the UI labels it.

API

appearance.icon on a channel or mix takes a built-in icon name, a skin icon name, none or one of the earlier glyphs, and the state carries appearance.defaultIcon with the icon by kind. createChannel and createMix take an optional icon. The headphone outputs' icon and colour are mixer.outputAppearance, set with setLayoutAppearance and output. Details in docs/api.md and docs/mixer-layout.md.

Project

The readme's status paragraph names the Wave:3 and Wave:1 betas and what owners have confirmed on them. This release carries the previous companion packages unchanged at 5.1.1.54 revision 2.

Upgrade note

No configuration change is needed. Saved layouts, skins and Arrange orders carry over; a channel or mix with a glyph chosen earlier keeps it.

Install

Packages exist for Arch Linux, CachyOS and Omarchy (AUR), Ubuntu (PPA), Fedora (COPR) and NixOS (flake); this release also carries a .deb and an .rpm for a manual install, with checksum files and a build provenance attestation.

Arch Linux, CachyOS and Omarchy, from the AUR:

yay -S openxlr        # or: paru -S openxlr
systemctl --user enable --now openxlr-daemon
openxlr               # the mixer UI, also in your application menu

On Omarchy, a package built there also carries the bar plugin. Run openxlr-omarchy-enable once to link and enable it.

Ubuntu 24.04 and 26.04, from the PPA:

sudo add-apt-repository ppa:sparvoli/openxlr
sudo apt install openxlr
systemctl --user enable --now openxlr-daemon
openxlr

Fedora 44 or newer, from the COPR repository:

sudo dnf copr enable emaspa/openxlr
sudo dnf install openxlr
systemctl --user enable --now openxlr-daemon
openxlr

NixOS: the flake's package and module, described in the README.

Replug the interface once after installing so the udev rule applies. The Stream Deck plugin is the zip on this release, for OpenDeck's install-from-file. Building from source is covered in docs/install-from-source.md.