Procedures...

June 11, 2017

Procedures...

One thing that has always been a point of mine is to move the UI design of our products away from PNG-flipping (called "filmstrips" in the music software UI business) and Photoshop asset farming and in to the purely procedural world. This first fascinated me some time ago. I believe the original Kombinat was the first product we had that had procedural controls, and once that was released, I generally moved to a scenario where the background and some buttons of the interface were image assets, but the knobs and meters were, in general, pure math. 

If you don't know what I'm talking about, drawing something procedurally means doing it with math and drawing commands, on the fly, instead of using an image asset. If you open up an older plugin on OS X via the "Show Package Contents" command, you'll generally find a folder inside named "Resources," and in this you'll see the many images that make up the user interface. As long as you don't change the size of them, you can even edit them to your taste. (Windows VST plugins are put together a little differently, and this isn't possible on Windows.) A plugin with a procedural UI does not have this resource collection, because the entire user interface is drawn with the system's drawing tools (DirectDraw or GDI on Windows, and Quartz or CoreGraphics on OS X.) 

To enable this massive rebuild event we're undertaking (and, to a lesser extent, to enable us to build many multiple formats), we decided to use Roli's excellent JUCE platform. JUCE not only has a sophisticated drawing engine of its own, but enables one to access the Holy Land of procedural drawing, OpenGL. This was a major selling point for me, as I could finally realize both true high-resolution UIs (that is to say Retina-scaled UIs) and the entire infrastructure of OpenGL. To be clear, one could always use OpenGL for plugin UIs, as far back as 2004 or so. But it was very difficult and problem-prone. JUCE has made it incredibly easy. 

The benefits of a procedural UI for a plugin far outweigh the somewhat more difficult build process, in my opinion. 

1. It is screen-scaling ecumenical. This means that the plugin looks identical whether on an iPhone 5, a 2012 Mac Air, or a brand new iMac Pro with a 5K screen. This is a bit silly on the Windows side, as there is no set standard. My own 4K monitor on my PC will merrily render this hires-capable plugin with pixels the size of canned hams if the host doesn't recognize high-resolution drawing. But with a procedural UI, we'll not see a repeat of the Tattoo Issue, where a UI we made for a current standard is far too small to read a decade down the road. In effect, it future-proofs the user interface, and makes the plugin a more valuable asset for the musician as a result. 

2. It's easier to change. For a 3D rendered user interface, everything is very delicately placed, and all design decisions have to be made before the user interface is even built. Changes involve re-rendering the entire UI, and this makes a company loath to update the product, because us designers are some of the most expensive contractors in music tech. A procedural interface, being just a bunch of draw commands, is much, much easier to alter after it has shipped, so the designer doesn't have to live with mistakes of the Rumsfeldian "unknown unknown" variety, and the engineers can roll up their sleeves and fix things without having to contract a designer again after the initial design.

3. It forces a cleaner look. It is difficult, bordering on nearly impossible, to make a photorealistic user interface procedurally. (It is, however, not impossible.) This forces the designer to adopt a flat look that is necessarily very clear in its intent. Musicians do like their skeuomorphism, and in the early days of plugins this was mildly important as the familiarity of certain devices helped make the transition from a tape-and-console environment to an in-the-box one less of a learning curve. However, many laptop jockeys of 2017 and beyond will never set foot in a "real studio," and never touch a real LA-2A, so what's the point of making a plugin that looks like it? 

The major downside of procedural user interfaces is that the designer has to have a good working knowledge of trigonometry, and the ability to code certainly wouldn't hurt. In addition, the UI of an OpenGL plugin runs on the GPU, not the CPU. This would (theoretically) take some of the load off the CPU; I say "theoretically," because graphics processes are a "do it when you can" scenario for audio plugins; the audio processing takes priority. But the onion is that on a computer with no dedicated graphics card, the fan might kick on while the UI is open, as the GPU is working and generating heat. So to an unwitting consumer, it may _seem_ like the system is working harder.

And finally, plugins with procedural UIs are very prone to the Dunning-Krugerisms of the Intardwebs, in all their glorious variety. People will put up with the most ass-ugly things on the planet with no comment whatsoever, but put something with a little effort put in to it in front of them, and everyone's a highly experienced UI design critic all of the sudden. Last week we released an update to Rough Rider that replaced the 3D rendered interface of the original with one that was all mathy. One commenter on KvR posited the following: 

"Audio Damage stuff is awesome. But RR2 has a supremely lazy gui. It looks like the kind of food you get in a concentration camp."

There are multiple levels of irony in that statement. First off, the original Rough Rider UI took me about 20 minutes to make in 3D Studio Max, whereas the Rough Rider 2 procedural interface took me several days to code. Secondly, other than the foolishness of fake drop shadows, fake glows, and fake lighting highlights, they're almost identical; everything is named the same, in the same place, is the same color, and works the same. Thirdly, it's a free plugin. If a lot effort was applied to it, it wouldn't be free. 

You have to have a thick skin to be a music technology designer; my general take on the matter is that if nobody complains, nobody cares, and if everybody complains, I made a bad decision, so somewhere in the middle is the happy place; it is, after all, a subjective art form. But after over a hundred commercial products, including some of the most-used music software on the planet, I'm pretty comfortable in the knowledge that I'm good at what I do, and that dude was just typing to see his name on the screen. 

-Chris Randall
-Phoenix, Arizona
-June 2017