|
User Interface
An experiment in UI Design for VST plugins.
Inspired by Wassily Kandinsky's painting "Einige Kreise" this plugin was build to open an intuitive access to sound construction, modification, modulation, live performance tweaking, etc. being an interactive painting and thus a form of art by itself.
Watching that picture at the Kandinsky exhibition earlier this year I had the idea of an interactive or animated painting.
At that same time I already started thinking about more intuitive user interfaces.
I was a bit bored about conventional user interfaces where software resembles real instruments even showing rackmount ears.
So this painting immediately caught my attention. These circles could be used for all kind of things: Knob like controllers, animations, etc.
Another idea was to open an intuitive approach to sound synthesis.
Therefore the elements are not labeled (but you can always peek at the lower left corner of the status bar to see what parameter the mouse is over).
Just click on an element, drag the mouse and listen what happens.
There are some guidelines though like color coding: yellow/grey is for levels, red colors are for pitch and tuning, blue is for filter settings.
Elements are grouped; more important or often used circles are bigger than others, etc. I think it's very easy to learn the elements. Then during sound programming/tweaking you know to rise the green circle a bit to get a more "grainy" sound, or adjust the pink one to make the sound "fatter".
The main page shows parameters which will mainly be used during "live performance", e.g. when recording tracks in a sequencer program.
For sound programming additional windows (labeled "envelope" and "settings") can be overlaid.
Note that with additional windows open the underlying elements are still working.
Parameter
Interactive Demo:
- hover mouse over elements to show parameter
- click element to display help
- click menu titles to slide out overlays
(image of circles synthesizer)
helparea
(click element in image to show parameter) |
| |
| |
white noise |
automatable: | yes |
description: | level of white noise oscillator |
sub osc |
automatable: | yes |
description: | level of sub oscillator (one octave below osc 1) |
cutoff/resonance |
automatable: | yes |
description: | cutoff and resonance settings of the filter
vertical mouse drag: resonance (blue->black)
horizontal mouse drag: cutoff frequency (small->large)
"corona"-animation: displays run status and tempo of the VST host sequencer |
osc 1 spread |
automatable: | yes |
description: | "fattens" the sound of osc 1 |
osc 1 level |
automatable: | yes |
description: | level of osc 1 |
osc 2 spread |
automatable: | yes |
description: | "fattens" the sound of osc 1 |
osc 2 level |
automatable: | yes |
description: | level of osc 2 |
tuning fine |
automatable: | no |
description: | fine tuning of instrument |
osc 2 ratio free |
automatable: | yes |
description: | free ratio settings of osc 2 (for VST automation) |
lfo 1 amount |
automatable: | yes |
description: | modulation amount of osc 1 |
lfo 1 sync |
automatable: | no |
description: | sync lfo 1 tempo to host sequencer, either free running or beat matched (d: dotted, t: triplet) |
lfo 1 wave |
automatable: | no |
description: | lfo 1 waveform: sine, triangle, saw, pulse wave, random wave |
lfo 1 frequency |
automatable: | yes |
description: | frequency of lfo 1 when free running |
lfo 2 amount |
automatable: | yes |
description: | modulation amount of lfo 2 |
lfo 2 sync |
automatable: | no |
description: | sync lfo 2 tempo to host sequencer, either free running or beat matched (d: dotted, t: triplet) |
lfo 2 wave |
automatable: | no |
description: | lfo 2 waveform: sine, triangle, saw, pulse wave, random wave |
lfo 2 frequency |
automatable: | yes |
description: | frequency of lfo 2 when free running |
frequency modulation |
automatable: | yes |
description: | amount of frequency modulation osc 1 -> osc2 |
ring modulation |
automatable: | yes |
description: | amount of ring modulation osc 1 * osc 2 |
single sideband modulation |
automatable: | yes |
description: | amount of single sideband modulation (ssb is like rm, but only using a single sideband - in contrary to rm which has two sidebands) |
filter drive |
automatable: | yes |
description: | drive of filter. use for distorted sounds |
volume |
automatable: | yes |
description: | main volume |
filter env amount |
automatable: | yes |
description: | specifies how much the filter envelope affects the cutoff |
pitch env amount |
automatable: | yes |
description: | amount of pitch changes caused by the pitch envelope |
balance |
automatable: | yes |
description: | stereo balance left/right |
modwheel modulation amount |
automatable: | yes |
description: | modulation amount caused by MIDI modwheel changes |
velocity modulation amount |
automatable: | yes |
description: | modulation amount caused by MIDI velocity |
aftertouch modulation amount |
automatable: | yes |
description: | modulation amount caused by MIDI aftertouch |
lfo 1 indicator |
description: | lfo 1 indicator blinking with synched or free tempo (or off when lfo 1 amount is 0) |
lfo 2 indicator |
description: | lfo 2 indicator blinking with synched or free tempo (or off when lfo 1 amount is 0) |
voices indicator |
description: | voices indicator: each dot represents an active voice. BTW: in poly mode the instrument has 32 voices, in mono mode there is exacly 1 (one, uno, ichi) voice |
readout display |
description: | display element the mouse is currently over |
previous patch |
description: | switch to previous patch |
patch selector |
description: | selector patch from menu |
next patch |
description: | switch to next patch |
edit patchname |
description: | click to edit patchname - enter to confirm |
amp envelope |
automatable: | no |
description: | amplitude envelope |
filter envelope |
automatable: | no |
description: | filter envelope |
pitch envelope |
automatable: | no |
description: | pitch envelope |
lfo 1 destination |
automatable: | no |
description: | select lfo 1 destination |
lfo 2 destination |
automatable: | no |
description: | select lfo 2 destination |
modwheel destination |
automatable: | no |
description: | select modwheel destination |
velocity destination |
automatable: | no |
description: | select velocity destination |
aftertouch destination |
automatable: | no |
description: | select aftertouch destination |
osc 1 wave |
automatable: | no |
description: | select wave of osc 1 |
osc 2 wave |
automatable: | no |
description: | select wave of osc 2 |
tuning |
automatable: | no |
description: | main tuning (in octave steps) |
tuning semitone |
automatable: | no |
description: | main tuning in semitone steps |
osc 2 ratio |
automatable: | no |
description: | frequency ratio of osc 2 in relation to osc 1 (useful for fm modulation) |
poly/mono-portamento |
automatable: | no |
description: | switch between poly mode (32 voices) and mono ode (1 voice with portamento/glide) |
filter type |
automatable: | no |
description: | select filter type: 4 pole ladder type lowpass, 3 pole 18db lowpass, 2 pole lowpass, highpass, bandpass, peak, notch |
filter tracking |
automatable: | no |
description: | filter tracking (change of cutoff depending on played note) |
Sound Engine
Despite the unusual interface, there is a classic virtual analog synthesizer engine underneath the surface, simple but versatile:
Oscillator
- two mib-mapped wavetable oscillators with osc spread to fatten the sound
- available waveforms (sine): sine wave, 4bit decimated sine wave, double sine, half sine (3 types)
- available waveforms (saw): saw wave, 4bit decimated saw wave, double saw
- available waveforms (pulse): pulse waves with 25%, 50%, 75% duty cycle, 2 types of stepped pulse waves
- available waveforms (additive): 6 additive waves (harmonics 1,2,3, harmonics 1,3,5 harmonics 1,2, harmonics 1,3, harmonics 1,4, harmonics 1,5)
- additional oscillators: white noise, sub oscillator (1 octave below oscillator 1)
- free or ratio based detuning of oscillator 1 and oscillator 2 for better spectral control when using fm, rm, ssb
Filter
- filter types: 24 dB ladder lowpass, 18 dB lowpass, 12 dB lowpass, highpass, bandpass, notch, peak
- overdrive build in filter for distorted sounds
- cutoff frequency adjustable to midi note (tracking)
Modulation
- fm: frequency modulation (to be precise: it's Yamaha DX7 style fm thus rather phase modulation)
- rm: ring modulation with upper and lower sidebands
- ssb: single sideband modulation: like rm, but only with single sideband
Miscellaneous
- 2 LFO's syncable to VST sequencer or free running routable to cutoff, pitch, ratio, fm, rm, ssb
- easy adjustable graphic envelopes
- 32 voice polyphonic or monophonic using portamento/glide
Midi Control, Automation
- performance parameter: velocity, aftertouch, modwheel directly routable to cutoff, pitch, ratio, fm, rm, ssb
- VST parameter automation of all "circles" on main screen (see table)
- programs switchable through MIDI program change messages
Tips and Tricks
- VST automation nicely animates the UI
- the "corona" is animated when the VST sequencer runs (synced to beat)
- LFO indicator blinks when lfo amount is on
- use sine and additive waves with fm
- use ratio based tuning with fm
Download
_02.circles is available through the KVR developer contest 2009:
Download Link
Alternatively download circles from my google-sites project page:
Alternative Download Link
VST is a trademark of Steinberg
Soft- und Hardware GmbH
|