Compressor Plugin GUI

Sampo Savolainen asked me to design an audio compressor plugin GUI. This triggered a thought process with a first result that is guaranteed to be far way from what he had in mind, but before I may head in a more conventional direction, I just have to explore this 😉

Background info on dynamic range compression.

I wondered how one could express what each control of a compressor as the one written by Sampo does. Giving an idea of the signal path and relations between controls. Ideally without labels, even.

Full size

The controls provided are:

  • High-pass filter on/off for the analyzed signal. Left side. Here I neglected that the signal is split in 2, one for measurement, the other to apply the effect on.
  • Treshold. Green line in the graph. Should be draggable from the whole grap area.
  • Ratio. Blue fader with round knob, synchronized with the blue line/dot in the graph.
  • Markup gain. Fader with red arrow. The graphics show the relation to the first graph.
  • Attack and Release time. Below the stop watch icon. I’m worried that the chart below the faders is rather hard to get, so it might be best to drop it and to add labels.
  • Dry/wet amount. Right side. The output touching the right corner and the fader handle for this are one.

High-pass switched off:


GTK+ Issues

During my ongoing work on an SVG based theme to be realized with the gtk-css-engine I became aware of a number of shortcomings in GTK+.

There’s no Prelight on menus and tabs, making them feel like dead space. There’s an old bug report with patch for this, but it started out as being specifically for the Windows port:

No Active (depressed) state for entries. This is admittedly controversial:
Full size

Treating the parts of a SpinButton like separate widgets works against drawing arrows “inside” a SpinButton. Also the focus indication isn’t drawn around the whole widget like it should be, for this reason:

There shouldn’t be focus indication on only the current tab of a Notebook:
Full size

There should be support for drawing the sides of tabs differently depending on whether they line up with the page or not:
Full size

Ardour Button

Seems like several Ardour developers like the new Pro Tools 8 look, especially the buttons. I have been asked to mimic them in SVG. Took a little freedom, as I don’t think plain copying is a good idea.


The focused variants would only be needed for dialogs.

Popup Scrollbar Concept Demo

It has been a while since I came up with the original concept which proved to be hard to get across. But now there’s a Python-GTK demo, a GTK feature request and a narrated video 🙂

Ogg Theora from

Thanks to drew Roberts for helping me with ponunciation, it would be worse without him 🙂

Ardour Scroomer 4

Audun continues his excellent work on the scroomer and piano bar. Not much left for me to do, but here are 2 additional ideas that might fall into the too-much department 😉



Indicating notes as they are played on the piano bar. The buttons are clickable and have a pressed look, but it’s better to have arriving notes be displayed differently. Velocity can be shown as bars taking a percentage of the keys. Perhaps even with colours like on gain meters.

Rows that contain notes could be marked on the scroomer to make it obvious where the range or ranges of interest are.

Ardour Scroomer 3

Sweep Scrollbar

There’s a development version of Sweep with a waveform view on the scrollbar.

981 x 454 pixel

I think the gaps around the canvas could be removed to clean things up a bit. The connection between the main view and the throbber could be emphasized. Mockup:
981 x 454 pixel

The same, just with rounded corners:
981 x 454 pixel

Ardour Scroomer 3

Audun’s scroomer implementation is now paired with a piano bar (screenshot).

I made a new mockup based on that, with tweaked contrast and a new handle style. Round to not look like ranges of their own. Target areas should remain rectangular. The circles could fill up on mouse over. Plus a little 3d touch on the piano bar keys.


Ardour Scroomer 2