Help Contact

In order to serve you better, this website makes use of Cookies. By clicking "I agree" or by continuing to use this website, you agree to the placing of these cookies.

Beta testing the new GUI

Stereo Tool 10 marks one of the most radical and thorough updates in the history of our software: a complete overhaul of our Graphical User Interface (GUI). 

Before we began development, we had two main objectives in mind:

  • It needed to be as lightweight as possible
    Audio at the lowest latencies can suffer from hiccups due to some side-effects when using the screen or system memory.
  • It should be much easier to use
    Settings that are often used should be readily available, while pages can no longer be cluttered with advanced functionality

These requirements made it become a mammoth task. We could not use existing GUI frameworks due to their many memory allocations and unsafe drawing to screen. And anyone who has used Stereo Tool in the past can confirm that its large assortment of dials and knobs can be… overwhelming, to say the least.

Nevertheless, major upgrades to both the local GUI and the web interface were long overdue. Read all about our coding adventures trying to reach that goal here.

Before we continue: note that the new GUI is in its testing phase. There are some known issues, a few missing features (most notably skinning and localization) and there are guaranteed to be (potentially game-breaking) bugs. We rely on our most dedicated users to report any problems they encounter, so we may address them.

Radio Tool 1.0
Stereo Tool 9.90
Stereo Tool 10.0 beta 1

Biggest changes

Improving the overall quality of the user interface was the main focus: Stereo Tool can deliver amazing sound, so we need a look and feel to match that. We ditched everything that was based on images that were hard to scale or resize dynamically. Fonts, icons, buttons, sliders, mouse cursors: anything that looked pixelated, we replaced with programmatically drawn graphics. This means that text looks sharper and sliders and buttons are no longer oddly squished.

Pages are now fully dynamic: if a page doesn't have enough room to put blocks of settings next to each-other, it will simply reorder itself.

A lot of work went into getting the drawing of waveforms and meters just right. There is still some work to do, but the jagged moving and obvious screen tearing have been resolved.

Usability

A big problem with the old GUI lies in the huge number of settings. There's no good way to reduce this amount: to get the perfect output signal, our users need the highest degree of freedom. All those settings are necessary, right? Well, we looked at just that.

We hand-checked the better part of almost ten thousand settings (yes, that's four zeros), looking at exactly what they did, how they were named and how they should be grouped together. Some redundant settings could be thrown out, but the most significant gains were in simply hiding settings that aren't active. We still went through all those parameters though, giving them clearer and more consise descriptions, fixing typos and rounding, etc.

In the past, we used to reduce the amount of visible settings by having multiple 'modes', from "Basic" to "Extreme Tweaker". This had some drawbacks: we would often miss issues in one mode while testing in the other, or misjudge how advanced a setting actually was. Furthermore, the most advanced modes yielded pages upon pages of settings for some filters.

We completely revamped our way of showing settings to users. Each filter has a single page, showing only the most important settings. Some blocks of parameters can be unfolded to show less important or advanced ones. We also implemented modal pages. These pop-ups can house everything to set up a self-contained part of a filter, for example: the amount of bands and their shapes and crossover frequencies of a multiband compressor. Or we use them to tuck away stuff that we think no one should ever touch (but could, if they really wanted).

The most notable improvements are for filters with multiple bands (e. g. multi band compressors, AGC, Natural Dynamics, etc.). By showing only the most used sliders and making the rest viewable by clicking headers or expanding blocks, we've done away with dozens of pages.

Note that in this new layout, there's still room for improvement. Any suggestions are welcome and encouraged, and can be posted on our forum.

Quality of life

The new interface supports some neat tricks.

Sliders can be adjusted in various ways.

  • With the arrow keys: hover the mouse over a slider, then use the up/down arrow keys for coarse adjustment, or use the left/right arrow keys for fine adjustment;
  • By dragging or using the scroll wheel: click a slider, then drag or scroll it. Hold [Shift] for coarse adjustment, hold [Ctrl] for fine adjustment.
  • Click and hold (or right-click while already dragging) for fine adjustment;
  • To reset a slider to its saved value (or its factory default, if those values differ), click the marker for that value.

Dropdown lists (like the preset selection) can be navigated with the keyboard, including folding/unfolding items and choosing an option (using [Enter]). The left navigation pane also supports this feature.

Floating windows and widgets (like pop-ups, error messages and dropdown lists) can be closed using [Escape].

To go to the previous page, use the [left arrow icon] button in the top left or press [Alt]+[Left Arrow]. To then go forward again, use [right arrow icon] or [Alt]+[Right Arrow].

The meter bar shows everything that is relevant to the currently viewed page, with less relevant but useful metering folded. Click the [dots icon] to unfold a folded meter. Click a meter to go to its page.

New web interface

Stereo Tool has a built-in web server to support remote setup. Once enabled, it allows users to access the web interface and modify settings from a browser by visiting a specific IP address.

This web interface used to be an attempt at a one-to-one translation of the old Stereo Tool GUI, but looked very outdated and did not work fluently. We completely rewrote it, using modern frameworks and reducing the amount of data and requests getting sent between the browser and the Stereo Tool webserver.

Note that the web interface is also still under development. Please send in bug reports and/or suggestions to the forum.

Planned features

To be able to publish a beta version, we needed to get our priorities straight. Some features in the old interface weren’t mission-critical, other functionality was flawed or outright broken enough that a full redesign is necessary before it can be integrated into the new GUI. The biggest omissions are listed here, but fear not: they are planned features and will be implemented in the future, some sooner than others.

Skinning

The old way of selecting a skin for Stereo Tool is no longer usable, since the inner workings of the GUI are completely different. For the beta version, we chose to hard-code our default color combination.

There’s no accounting for taste: with so many different users comes a vast range of opinions over “what looks good”. We know that some of you will dislike the color palette that the beta version of the new GUI uses. The preference for using black and dark gray tones for most of the large blocks is based on the notion that it is easy on the eyes and reduces visual clutter by being less distracting. We know that it can become less visible in brightly lit spaces, and we’re planning to implement a rudimentary form of color selection before we start work on proper skinning.

 

Keyboard navigation

In the future, Stereo Tool can be completely set up using the keyboard. Users will be able to jump from setting to setting using [Tab] or the arrow keys, press [Enter] to edit a setting or show a pop-up, etc.

Localization

Stereo Tool has support for multiple languages. We rely on some dedicated multilingual users to submit translations of text that is used in the English version. However grateful we may be for these contributions (and we truly, truly are) this system has some major flaws:

  • It entails a sizable amount of work for us to include these translations: nothing is automated
  • There is no verification system in place: while we trust our users not to send in garbage or profanity, we have no way to know which one is better if we get multiple different translations
  • A good portion of the text throughout our software is hard coded, and does not listen to the language setting at all
  • Translations only work for exact matches of the English source. If we were to change even a single character (e.g. fix a typo), the entire translation would become invalid until someone updated it

We are aware that for some users, even a crippled localization system would be preferable to none at all. However, since this major GUI overhaul saw almost all of its English text changed or improved, existing translations are completely unusable. Until we’ve addressed these problems, we won’t be able to support other languages than English.

Plugin and MacOS support

While the old GUI supports numerous plugins as well as OS X, the codebase is outdated and difficult to maintain. Rewriting the operating system message handling for Windows and Linux already proved a serious amount of work. We decided to stick to Windows and Linux stand-alone builds during development for now, but support for Apple devices (including those with Apple Silicon) and VST/DSP based plugins is coming.

Preset management

The new interface supports the old method of loading and saving presets, but this will be completely overhauled in the future. It will be possible to:

  • Add or remove presets;
  • Rename existing ones;
  • Partially load built-in presets (for example: only AGC settings);
  • View information like the creator of the preset, its creation date, etc.

Context menus

Using the right mouse button on a setting will in the future give you a context menu with some functionality for that particular setting. For example, a slider could give options to:

  • Enter a precise value as text;
  • Reset to factory default or to the last saved value;
  • Open a pop-up with information on what that slider does exactly.

New ideas are welcome

If you have ideas on how we can improve our user experience in ways we haven’t thought of, don’t hesitate to let us know! Create a topic on our forum or discuss other ideas there, we are actively watching it.

Known issues and shortcomings

  • Parametric settings for equalization curves are still pretty cluttered, and will be redesigned
  • Texts that dynamically change size (e.g. the current value of a slider) can cause elements around them to resize. This has been reduced to a minimum, but is necessary to prevent texts from cutting off or overlapping
  • Some text fields could really use good input validation (e.g. IP addresses and port numbers in network settings, license keys, etc.), but currently do not give any meaningful feedback when they reject entered values
  • Dragging sliders in precise mode can be a bit unreliable due to an OS bug in the system that handles the mouse location, and will be tweaked in the near future
  • Some fonts (especially at smaller sizes) are slightly vertically misaligned
  • The paste icon for license keys doesn't work ([Ctrl]+[V] does)
  • Some very rarely used scopes are still missing their implementations
  • Some blocks of settings might be falsely greyed out
  • The bottom edge of the screen is sometimes not redrawn properly when a page is not scrolled down all the way
  • The waveforms under "Declipper" are a bit unreliable
  • Half height (i. e. vertical zooming) on waveforms is unsupported
  • The selection that indicates selected text is not moved when the text moves
  • Some popups have so many answers that they can be overwhelming
  • Changes in hardware do not update the input/output device pulldowns (requires Stereo Tool to be restarted for now)