setBfree - 3D openGL LV2 audio plugin

I've started to tackle a major todo item on the setBfree issue-tracker: the Organ needs a GUI :)

Well, strictly speaking it does not. All controls are available as MIDI-CCs, so when playing it using a midi-keyboard, a GUI is uncalled for. The GUI is completely optional. But setting up those MIDI-CC maps and midi-program-presets in the first place can be quite an advanced talk for musicians who are not comfortable with editing text config files. Also using when using the organ synthesizer as plugin in a sequencer MIDI-CCs are unwieldy for visualizing drawbar settings. Last but not least the GUI is bi-directional: the GUI is updated if the synth receives MIDI messages and can be used to quicky check the state (e.g. when loading midi-programs/presets) and changing values in the GUI sends corresponding midi feeback to the connected device.

A major factor in the GUI design decision was that GUI should run cross-platform and can be used in LV2 plugin hosts without causing ABI conflicts. The toolkit should also be reasonably lightweight. This basically ruled out gtk+, QT, FLTK and NTK :( Luckily there's OpenGL!

So if GL, why not 3D too?! In the context of an audio-plugin it's one of the most superfluous uses of 3D, ever, but WTH!

setBfree running as LV2-plugin in ardour – of course you can pan, zoom and tilt the 3D view :)

The 3D model was made with blender and the textures with gimp, the files are available with the source-code at github. The folder also contains a readme file with basic information.

Now, I'm not much of a 3D artist, hence Alexandre Prokoudine from has issued an open call.

For inspiration, here are some pictures that google found searching for Hammond B3.

Work on the GUI is still ongoing. It is already functional but work on many of the planned features - like interactive midi-maps, presets, etc - has only just begun.

blog/setbfree_-_3d_opengl_lv2_audio_plugin.txt · Last modified: 12.04.2013 17:24 by rgareus