Welcome to Teragon Audio, provider of audio plugins, utilities, and guides for those looking to develop their own audio software. This is the development blog, if you are looking for the official website please visit http://www.teragonaudio.com.

More GUI improvements

Spent a bit of time last night ironing out bugs in TeragonGuiComponents, namely those mentioned in the previous post. I'm pleased to report that everything is running silky smooth! The concurrency issues turned out to be an easy Juce-related fix (it was apparently upset about me delivering GUI updates from the non-GUI thread), and the glitchy controls were a simple matter of unifying all components to use ranges of 0.0-1.0, similar to VSTGUI.

Next, I will make a few minor cleanups in TeragonGuiComponents, and then tag it with a 1.0 release and start building (and finishing) GUIs for the plugins! However, there are still a few unresolved issues, namely typefaces and parameter values.

In the former case, Juce has extremely ugly typeface rendering (but shhhhh, don't tell Jules I said that!), and I need a solution for fonts. Non-fixed-width fonts are going to be difficult, since Juce's internal typeface classes are a bit lacking and I'm not too eager to use a third-party TrueType library. However, such fonts are mostly needed in the background image, so they can just be added in Photoshop.

For fixed-width fonts, I'll probably go for some LCD-ish solution and build a filmstrip, this approach has served me well in the past. However my past plugins only supported basic ASCII typefaces, and this is kind of stupid today. I'd prefer to have a typeface with full UTF-8 support, but I need to first see how large such a filmstrip would be.

For parameter values, I was thinking about having tooltips, but then I realized that this would again rely on Juce's ugly font rendering. Instead I think I will make another component to show parameter status, in a matter similar to the Virus Control plugin (the 2-line LCD display on the bottom). No Virus users (or at least none that I knew of) ever complained about this UI pattern, it allowed us to make very simple knobs and a minimal UI while still having very technical information available in the plugin.