The component visualizations for oscillators, filters, envelopes and LFOs are now ready. The real DSP elements are used in the GUI to provide a realistic rendering of the component output. For oscillators and lfos a single wavecycle is shown and for envelopes a scaled envelope cycle from attack to finish is drawn.
For the filters fftw is used to calculate the FFT of the filter impulse response and a scaled version of the power spectrum is then drawn. I have yet to test if the FFT calculation is fast enough, but it looks quite decent.
In addition to the component visualizations, labels with knob values have been added. Now the exact values of all the ports are visible in the UI. It makes the UI a bit more crowded, but is hopefully more useful then the browser approach of ElectraX. The knob + name + value combination is also used in Curve.
Here is a screenshot
After having worked out most of the lower level audio processing components in rogue I started to improve the GUI.
I wanted to customize the appearance of the Gtk GUI, but had some problems to apply theming so I considered looking at Qt as an alternative. I was quickly convinced by Qt and converted the full GUI to Qt.
All in all the advantages of Qt over Gtk are
- easier theming, at least compared to Gtk 2.*
- better designer tools
- a dial widget to start from
- C++ based programming model
Some disadvantages are
- integer range for dial widget
- build time metamodel and C++ syntax extensions
For the UI the main inspirations are ElectraX and Curve.
The UI is quite flat and I tried to make it usable and informative. Here is a sketch of the current state
I might still slim it down to something like this
The modulation part is not yet very usable and there is lots of empty space, but otherwise I am quite content with the current state.