Releases: GoXLR-on-Linux/goxlr-utility
1.1.4 - Hotfix
This is a hotfix release to resolve an issue introduced in 1.1.3 with volumes not loading correctly from the profile on full sized devices.
1.1.3 - Swappidy Swap Swap
Hi all, hope you're all having a good weekend, I'm here with a GoXLR Utility Release :)
1.1.3 primarily fixes the bug introduced in 1.1.2 which prevented 'swapping' two faders from being correctly saved to the profile, as well as a couple of other bits and pieces (if you're running a Mini, there's something fun in System -> Device Settings for you!).
As always, grab the release below, and here's the full changelog:
- Fix issue with 'swapping' faders not saving to the profile correctly (Reported by Bullhorn + #188)
- Fixed scribble display not being swapped when swapping faders
- Support dynamic updating of 'Mute Function' without needing to unmute / remute faders or Cough button
- When loading a profile, apply the channel volumes before assigning faders (Reported by my nightmare, MightyFlower)
- Voice Chat Mute to All also Mutes Mic to Chat Mic correctly updates state on change
- Update DaemonStatus on wake to correctly report the new GoXLR state
- Added setting for the GoXLR Mini's Sampler / VOD channels to be sacrificed as a 'Stream Mix (No Music)' channel
- Fixed issue with randomisation of samples (Reported by RossMinor)
- Fixed Divide and Multiply by zero when linking submixes
- Added code to correct profiles that were reporting SubMix link ratios as '0' or 'INFINITY'
- [UI] Fixed error if the latest firmware version could not be determined
- [UI] Fixed Sampler Lighting 'Apply to All' button not working (Reported by xAlgorhythms)
- [UI] Improved screen reader accessibility for 'Mix Assignment', mix naming, and Waterfall direction settings (GoXLR-on-Linux/goxlr-ui#55)
- [UI] Correctly clamp Mix B range inputs when Linked Mix ratio was greater than 1
- [MacOS] Added option to disable the utility management of Aggregate Devices (Use Loopback instead, seriously)
1.1.2 - Stability, bugfixes and other little things
Hi all,
It's been almost 4 months since the last Utility release, how time flies! I'm quite happy with the state of the utility at the moment, it functions and does the job well.. This release is primarily focused on improving stability and reliability, along with a couple of smaller optimisations.
Change Log
Daemon
- Massively Hardened the Profile Saving / Loading behaviours against corruption
- A backup is made of a profile when loaded successfully as a 'known good' profile
- If a profile fails to load, attempt to pull and use the backup
- Change from
fs::copy
tofs::rename
when saving to aid in avoiding disk sync issues - Do not execute any 'Save' shutdown actions when Windows reports a 'CRITICAL' shutdown reason
- Created defaults for all profile keys to prevent crashing on incomplete official profiles (Reported by Arimil)
- Removed some excessive error checking on things that cannot error
- Improved behaviour of the UI app check to be a little less jank
- Disable Submix Bug Mitigation on latest firmware Versions
- Correctly display errors in the initialiser if it fails
- Increased the Windows 'Sleep' check to 15 minutes to ease notification area mic flicker
- Sample buttons set to 'Random' with only two samples will now choose one randomly
- Flush the remaining sample buffer to file when stopping recording
- Replaced
bounded-vec-deque
with a circular buffer based onrb
(should give better performance) - Support Updating the Sample pre-buffer without needing to teardown the entire audio handler
- Promote Profile Load failure messaging from debug to warn
- The Utility will now probe the TC-Helicon servers on startup to fetch latest firmware versions
- Expose the latest device firmware versions to IPC
- Solve issue in TUSB driver which could result in a failure to detect devices
- On Windows, use
CM_Get_Device_Interface_List
instead of libusb for device detection - Updated all dependencies to their latest versions
- Fixed issue with Mix B volumes not being set correctly on profile load (Reported by Dadbeard)
- Optimised the playback / stopping / teardown of Sample audio Playback
UI
- Correctly disable Mute Target again where applicable
- [#167] Fix mini hz and khz displays when fine tune is disabled
- Added whitespace to empty router table cells to prevent weird breakage (Reported by Adrian)
- Added a 'Firmware Update Available' notice to the bottom of the page with upgrade instructions
1.1.1 - Polish, Polish, MacOS and More!
NOTE: This is a re-release of 1.1.0, with a Windows UI related bugfix.
Greetings all, a lot of focus on this release has been dedicated to giving everything some polish and finalising features, there are a couple of 'Big Ticket' items in this release, so lets get started :)
Language Support
The Utility has been translated into several languages with MASSIVE thanks to the community members who have helped out with this project. On startup the Utility will check your system locale, and attempt to use that inside the UI if it's available. The language can also be manually changed in System -> Utility Settings if you'd prefer to keep it English, or use a different language. Below is the list of available languages, as well as the legends who have done the translation work (this comes with a MASSIVE thanks from me!).
Italian (Italy) - @PaoloTK
German (Germany) - @mischiminator, @jonilala769
Polish (Poland) - @pitermach
Dutch (Netherlands) - @Tyfcho
French (France) - donttrytogetintomylife(13), HokutoTokiSama
Russian (Russia) - @Kurenai-IRISKA, David, silcu
If your language isn't listed, and you'd like to help contribute, please check out the Translators channel on the Utility's discord.
Experimental MacOS Support
Before now, the only way to run the Utility on MacOS was to either compile it yourself, or use the third party GoXLR-on-MacOS project (which is currently based on 0.12.6), with 1.1.0 we now provide native MacOS binaries and a .pkg
installer (Note: You may need to go to Settings -> Security in MacOS to allow the installer to run). There are currently two installers available, the x86_64 build for Intel based Macs, and the aarch64 for M1/M2/M3 based macs. Shoutout to Casper for helping test out the MacOS support!
Functionally, MacOS support now has feature parity with Windows and Linux, and includes the UI wrapper and an 'Aggregate Manager' to automatically manage the GoXLRs channels in CoreAudio while the utility is running. Automatically starting the Utility on Login can enabled in System -> Utility Settings.
Do be advised, the native Utility build will conflict with the GoXLR-on-MacOS project's build, and they cannot currently be run at the same time.
MacOS support is still somewhat experimental, and you may run into problems. Please report them to either github, or the Utility's discord.
Visualiser Polishing
With thanks to @parzival-space, the Visualiser in the UI is now fully functional. It'll now display your scribbles, highlight the section currently being modified, and can be left clicked to open a specific config page, or right clicked to load relevant the lighting page. In addition, if you happen to be running a White GoXLR, the Visualiser will reflect that.
Sampler
The sampler code and timings have been tightened to help reduce latency when replaying a sample, and more accurately trim the start of samples (shoutout to bryaudio on Discord for helping with the logic). Additionally, the sampler should no longer prevent Windows from dropping into a sleep state while the Utility is running, and no audio is currently being played to the Sampler.
Full ChangeLog
Daemon
- Support Fetching the Scribbles via the Web interface as PNGs
- Allow file locations to migrate alongside Username changes (Reported by Dusk)
- [#156] Propagate JSON Formatting errors back to the IPC socket
- Improved accuracy of Sampler trim code on recording (Reported by SGTBubbaGump)
- If replaying an active sample, seek to start rather than destroying / recreating (Reported by SGTBubbaGump)
- Close and Re-Open the Sample listener every minute if it's idle, allowing Windows to reach 'Sleep' mode.
- Ensure the 'final' audio chunk when is written to the file when recording
- Increased the CPAL buffer sizes to prevent audio skips when handling large pre-buffers
- Sampler 'Clear' button now resets the Sample Function to Play/Next (matching official app behaviour)
- Added setting for the Sampler 'Clear' button to NOT reset the 'Sample Function' (Requested by Ryan)
- Added MacOS support for Device Lock / Unlock
- Propage Display Lock state from all OSes to the Event Handler
- Only spawn a TTS context if TTS is enabled
- Correctly propagate changes to UIOnLoad in DaemonStatus
- [API] Added SetLocale(Option) command
- [API] Expose the GoXLR Driver type, and Version to IPC
- [API] Expose System Locale to IPC
- [API] Expose GoXLR ColourWay to IPC
CLI
- Added 'persist' boolean to
goxlr-client profiles [microphone|device] load <profile>
UI
- Migrated UI from
vue-cli
tovite
- Added Scribbles to Visualiser
- Added Area Highlighting to Visualiser (@parzival-space)
- Added White GoXLR visualisations
- Introduces i18n package
- Pulled all English strings into a separate i18n file
- Added support for other languages (details above)
- Modified Components to support 'long' Strings
- Added Click Handling to the Visualiser (@parzival-space)
- Fixed some components not using the correct Font (@mischiminator)
- Polished up the Device Settings, Utility Settings, and Power Actions dialogs
- Set the Gate Waveform line to the Bottom (Off) if the value is -59dB (Reported by BullHorn)
- Added Confirmation Dialog when hitting the 'Shutdown Utility' button in settings
- Display the Driver version in System -> About
- If using a GoXLR Mini with Windows Driver Version > 5.12, the 'Sampler' output will be changed to 'VOD'
- Wait for a SetVolume to complete before sending another one to prevent weird backlog issues (Reported by Casper)
Linux
- Fixed libspeechd dependency requirements on Fedora Beta (Reported by PrussianPrince)
Hope you all enjoy, and until next time :)
1.0.6 - Polish, Fixes and Improvements
Downgrade Recommended
If you are reaching this page from a 1.1.0 update notification, it's highly recommended you downgrade back to 1.0.6 due to some issues with the Windows App found in the latest release. 1.1.0 will be re-released once those issues are resolved. Thanks!
Original Release Notes
Greetings one and all, 1.0.6 is a relatively large release, that for most people will appear relatively small. A lot of work was done on bringing the GoXLR Utility experience on Linux and MacOS more closely inline with the experience on Windows, but also includes new features, bug fixes, and a lot of extra polish under the hood as well.
The Mic Setup and 'Gate' sections of the UI now have a new waveform which detail your Mics volume levels over the last few seconds, these were added to make it easier to tune your Gain and Gate, and give a visual representation of the changes.
I'd like to also give a shoutout to Ryan on discord, who's spent the last couple of days reporting bugs (including audio and video reproductions), testing fixes, and generally just being awesome with the process :)
As always, grab the binaries below, and without further ado, onto the changelog:
General Changes
Daemon
- Updated TTS crate to latest version
- Don't report Encoder changes to TTS if device is a Mini
- Don't send Echo 'Delay L/R' to GoXLR unless mode is ClassicSlap (Ryan)
- Don't send Echo 'Tempo' to GoXLR if mode is ClassicSlap (Ryan)
- Correctly round the Gender dial values so they're consistent (Ryan)
- Correctly import profiles where 'Mute to Voice Chat' was changed to 'Mute to Chat Mic' (Ryan)
- Solved situation where the TC-Helicon driver and the Utility's PnP handler could get out of sync (ONI)
- Export raw Encoder values to IPC
- Support displaying Startup errors via the UI on Linux (via KDialog / Zenity) and MacOS
- Add Periodic Check for the 'Application' binary alonside the daemon, or in $PATH
- Expose currently used 'Activator' (application / browser / other) to IPC
- Add the ability to change the 'Activator' via IPC
UI
- The VU Meter has been replaced with a Waveform in the Mic Setup dialog
- A waveform can be displayed next to the Gate to provide feedback on settings
- Correctly 'Disable' Tempo / Delay UI Elements depending on Echo Style
- The Encoder Visualisation now correctly matches the GoXLR (Ryan / @parzival-space)
- Added 'UI Handler' Option to System -> Settings to change between the App and Browser
- Changed 'Mute to Voice Chat' to 'Mute to Chat Mic' to match newer versions of the Official App (Ryan)
- Don't crash the Sampler component when the button is cleared while an option is selected (Ryan)
Application
- Decreased minimum Utility version requirement to 0.12.0
- When run, if the application isn't the default UI handler it will prompt to change
- Added 'Single Instance' behaviour for the command line on MacOS
- Changed tauri behaviour on MacOS to mimmic the App Hide / Show behaviour on Windows and Linux
- Added
goxlr-utility-ui
to AUR, and produce.deb
.rpm
and.AppImage
packages for Linux
Platform Specific Changes
Windows
- Fixed 'Double Error' occurences when there are issues during Daemon Startup
- Fixed installer not correctly closing the Utility if it was already running
- Fixed resampling to prevent occasional 'popping' on long samples, and upgraded
rubato
- Attempt to gracefully handle when the Windows Audio System returns nonsense (#150)
MacOS
- Added XPC support to
goxlr-initialiser
(run with--xpc
) - Rebuilt Tray Handling
- Added support for Shutdown / Sleep / Power actions
- Added initial CI for building a .dmg installer for the Utility
- Typoed the word 'Dock' in a commit at least once..
Linux
- Support displaying startup error dialogs on Linux (via KDialog / Zenity)
- Removed libdbus build dependency, instead use zbus fork of ksni
- Prevent happening if the Utility cannot create a Tray Icon
1.0.5 - Fixes, tidying and Error Handling
The main goal of this release was to fix a couple of reported bugs since 1.0.4, as well as increase the robustness of the error handling in case something bad happens. The main fix ensures the UI opens when running the Utility from the Start Menu while it's already running.
In addition if you missed it, the Stream Deck Plugin got a release last week, adding a lot of new actions for better control!
Changelog
- [Windows] Fixed bug where launcher may not detect the utility running
- [Windows] Switched from
win_win
andwinapi
crates towindows
crate - [Windows] Reworked Tray Icon Logic
- [Windows] Display an error if the Utility fails to start
- [Windows] Correctly set default log level to Debug on fresh installs
- [UI] Fix Scrollbar style in lighting effects tab (Contributed by @t3duk)
- Fixed Microphone not unmuting if unmuted via the API (Reported by @TheRealDadbeard)
- Added 'already running' checks for platforms that use Named Pipes
- Added preliminary code to detect Session Locking on Windows and Linux
- If launching the Utility fails, force enable DEBUG logging
1.0.4 - Sample Trim Fix
This release primarily fixes issues with trimming the samples introduced with 1.0.1/1.0.2. It should now be possible once again to set the start and end points in the Waveform editor.
Thanks to Panja, Sepapiel and FatBoss on Discord, as well as #146 here on Github.
In addition, the GoXLR Utility is now available on Windows via winget
, and will automatically update on future releases. A huge shoutout to @parzival-space for getting all that setup!
ChangeLog
- Correctly update profile on
SetSampleStartPercent
andSetSampleStopPercent
- Fix profile selectors in 'Power Options' being reset on unrelated changes. (Reported by ViP3R_76 on Discord)
1.0.3 - Hotfix
This is a small 'HotFix' release that solves issues with Samples not being Resampled correctly, resulting in them playing back faster or slower than they should on Windows.
Thanks to Pally, Corey, Zerovu and LupusCapiosus for reporting, and helping!
ChangeLog
- Reverted the
rubato
crate back to 0.12.0, to solve resample issues.
Release 1.0.2 - Sleep and Samples
Note: 1.0.1 was redacted due to issues, 1.0.2 is now the latest version.
2023 Started with the release of 0.9.0 and we've seen 14 releases since then! A huge shoutout to everyone who's worked on the utility, helped with support as well as bug fixes throughout the year. It's been a great year for the GoXLR and the Utility, so I'm looking forward to 2024! Anyway, down to business.
As you may recall, in the 1.0.0 release I noted that I consider the Utility 'Complete', so with that in mind, here's some new stuff!
Sleep / Wake Actions
The 'Shutdown Actions' button on the System tab has been replaced with a 'Power Actions' button, and now includes options for what to do when your PC is entering and leaving Sleep mode. This allows you to (for example) load the Sleep Colour profile when your PC goes to Sleep, then reload your normal profiles colours when it wakes up, amongst other things.
For those using a Mini which powers off when your computer sleeps, there's a 'Reload Settings' option, which should bring your Mini back to life with the previous settings when your PC wakes up.
This feature is currently only available on Windows and Linux, and for Linux your environment needs to implement the org.freedesktop.login1.Manager dbus signals.
Sampler Changes
Some changes have been made to the way Samples are recorded in an effort to bring better volume consistency to added vs recorded samples. This is the first situation in which the utility does NOT behave identically to the official app on a common feature, but overall I feel it's an important change. Because of the nature of this change, I've created a Wiki Page which details the context as well as 'Before' and 'After' behaviours.
Change Log
- Prevent Visual C installation from Rebooting PCs on install.
- Improve PnP Handler's readiness check
- Add option to System -> Utility Settings to always show the UI on Launch
- Add Sleep / Wake Power State Actions (#79, #127)
- Properly Handle process names as UTF-8 when doing Process Check (#134)
- Normalise recorded Samples to match Added sample Volumes
- Bundle VC Redist and WebView2 Bootstrapper with the Windows Installer
- Correctly update the DeEsser UI Element when the Value is changed (#132)
- Added a Pre-Flight check on Windows to ensure the Driver is present before launching, and error otherwise.
- Properly Log errors when Spawning the HTTP Server
- Have the the WebUI automatically attempt to reconnect when it loses connection
- Change the Labels in Mic Setup to better reflect their behaviour
- The UI will now correctly load external links (such as updates, or discord) in the users external browser.
- Various Dependency Updates
While I normally attach credits to the issue, this release has been a little difficult just to the number of people involved! So I'll list all Discord contributors / suggesters / helpers below:
ViP3R_76, DSL_Installateur, Cob Kurtain, S N Ξ K Ξ£, Turbo_David, Caniso, Parzival, JulanDeAlb, SirWizardLizard, Pally, Kable, ThicChan, lily<3, tekidoko, catherine, Le GΓ’tΓ©, xargs, bryaudio, Zerovu, Paolo
If I've missed you, gimme a poke on discord and I'll fix it!
Happy Holidays, and the best new year!
1.0.0 - Official Release
I know a lot of people have been waiting on this release, so it's finally, here, v1.0.0 of the GoXLR Utility!
When we started this project several years ago, our goal was always to simply make a 1:1 compatible version of the GoXLR App designed for use on Linux and MacOS to provide those OSes with the same experience as on Windows. During development and over time we also added quite a few Quality of Life changes and improvements, good accessibility support, and eventually Windows support.
This release indicates that our main objectives for the Utility have been attained, and that the project is now considered 'Complete', and future updates here will likely be primarily bugfixes and smaller changes. For those happy with the compatibility and simple usage, the utility is still the tool for you.
But do not fret, this certainly isn't the end of the road. Work is beginning on a new project where we intend on throwing out the need for compatibility with the official app, and attempt to push the GoXLR as best as we can with the firmware available. We'll be looking at features such as fader paging, multiple mute targets, and other enhancements which aren't possible while maintaining compatibility.
While work is still in its extremely early days, keep an eye on the Utility's discord for notifications as we start putting things in place :)
For now, enjoy 1.0.0, below as always is the main changelog:
- Reorganised the FX Keys to prevent activation when changing settings
- Fixed incorrect handling of cough button on profile load when Muted To X (#121)
- Correctly handle the Pitch Threshold when loading from a profile (Reported by Pally)
- Avoid saving corrupt configs in the event the Utility is killed before configs are written (Reported by Multiple)
- A corrupt global settings file will no longer crash the utility, instead will load defaults (Reported by Multiple)
- Errors with (for example) opening a browser when clicking the tray icon are logged
- Critical PANIC errors are now logged to the log file
- Log files will attempt to use local time instead of UTC (Requested by DrawF)
- Add ability to probe the 'Microphone Level' directly from the GoXLR via the API
- Fix Scenario where 'MicInputMute' is not correctly reset on profile load (Reported by evlsmurf)
- Disable Fader Colours when 'Muted to All' to simulate 'Volume 0' on the Mini (Requested by silcu)
- Added Option to 'Lock' the Faders in their current positions when Muting to All (Requested by Dadbeard)
- [UI] The 'Mic Setup' dialog will now display a basic VU Meter indicating mic level
- [Linux] Added a SuSE artifact during CI build (Requested by MagicTrevor)
- [Linux] Do not try to reload udev when running on an immutable OS (#128)
- [Windows] Don't warn on driver version 5.57.0
- [Windows] Tray icon will respawn on explorer.exe restart (#124)
- [Windows] Download and install the Visual C++ Runtime if needed on install (Requested by Arnavigator)
- [Windows] The installer will now tick 'Use App' by default
- [Windows] Added goxlr-client-quiet.exe binary, which executes without a Command Prompt (Requested by MaddinAusmPott)
- [Windows] Fixed incorrect Error message in the installer if the GoXLR Drivers are missing
All the best!