Vellocet VS1 Manual
Vellocet Virtual Synth One   VS-1 manual  version: a10-2-0

Vellocet                     http://vellocet.ii.net
21 Kanimbla Road              +61 8 9380 2279 (SKoT McDonald)   
Nedlands                      +61 8 9383 2642 (Andrew Simper)
Australia 6009

vs1@vellocet.ii.net

This manual is a work in progress - please be patient with it!

Last update: Nov  22 1999          ,----.
                                  /      \
                                 |        |
                                 |  OO__/ |
                                 | *``_/  |
                                  \ /  \ /
                               VS1 `----' Gerbil powered audio synthesis
          VS1 (c) copyright 1999 - 2000
          All rights reserved.
          Vellocet Music

          This manual may be freely distributed in a completely unchanged form.
        

Chapters:

1 Setting up VS1

1.1 Requirements
1.2 Installation
1.3 Setting up audio
1.4 Setting up MIDI
1.5 Activating the synth

2 The VS1 main window

3 VS1 Synthesis

3.1 Overview
3.2 Generation
3.3 Effects processing
3.3.1 Delay
3.3.2 VST plugin effects
3.4 Mixing
3.4.1 The Limiter

4 Synthesis Parameters

5 Designing a Patch

5.1 Choosing a synthesis mode
5.2 Choosing a generator
5.3 Adding effects
5.4 Linking MIDI controllers to synthesis parameters
5.5 Linking LFOs to synthesis parameters
5.5.1 MIDI-synched LFOs
5.6 The Envelope Editor

5.7 The Wave Mapper

6 Global options

6.1 Designing a bank of patches
6.2 Setting default directories
6.3 Other global options

Appendices

A Glossary

B Trouble shooting FAQ

C Vellocet custom controls

C.1 Knob
C.2 ValueBox
C.3 CheckBox
C.4 Dialog Window

Start...

1. Setting up VS1 [index]
1.1 Requirements

* A Pentium class machine (or above) running Windows 95 or 98.
* Either a MIDI keyboard connected to the computer or a MIDI sequencer.
* A sound card.
* At least 64 Mb of RAM. 128 Mb recommended.

CPU: VS1 is getting hungrier and hungrier as the feature list grows - we will optimize
code once the form of the synthesis engine settles down, but for the moment a Pentium 133
is probably the bare minimum. Development is primarily done on a Cel366 at the moment,
which provides about 20 simple voices (no filters, no LFOs, single layer, single oscillator).

Memory: VS1 has a lot of lookup tables in memory, and will happily allocate itself at
least 17Mb when it starts up. It also stores all sample data in memory as well, to allow
rapid changes in playback position. Windows needs about 20Mb to itself to stay happy,
meaning total memory of at least 64Mb is heavily recommended. The Vellocet attitude
to memory is to use as much as we need - we will not optimize memory usage at the
expense of performance. And in these days of 100's Mb, who will blame us?

(October 1999:) Well, memory prices have just tripled for some reason (Cartel action?), 
so there goes our philosophy. :(

1.2 Installation

Unzip the VS1 archive file in a clean directory. 

Double click on the VS1.exe file to run VS1 for the first time.

If you are a registered alpha tester, your version of the synth will ask for 
your name and serial number - you should have received an email from vellocet
with both. If you have the demo version, you will simply see a splash screen.
Click on 'OK' to proceed.

The synth now looks for various data files, such as a bank settings file and
an options file. If it cannot find them, it reports that the file wasn't 
found, and that it will create one when you exit VS1. This is perfectly
normal.

You should now be faced with the main window of VS1. Before you can use VS1,
you must set the MIDI and audio ports that it will use.

1.3 Setting up audio

Click on the Audio button. The Audio options editor should appear. Select
an audio port. Note the buffer size and number settings - if your audio
output stutters, you may need to increase the buffer size. If you have
many applications running, then more buffers are sometimes needed. The
latency (time-lag) introduced by increasing the number and size of your
audio buffers is shown in the 'Latency' box.

Some audio cards have better direct-X drivers than their 'normal' windows
multimedia drivers, such as the SbLive and many consumer cards. If you have
such a card, try using the direct-X audio output mode.

When you are finished, click on 'Apply', then click on 'OK'.

1.4 Setting up MIDI

Click on the MIDI button. The MIDI options editor should now appear.
Select a MIDI In port corresponding to your input device. Click on 'OK'.

1.5 Activating the synth

Finally, activate the synthesis engine by pressing the 'Power' button. VS1 
should shudder into life (literally). If you press a key on your music
keyboard, you should now hear the default patch setting - a rather boring
sine-wave sound.

Click on the 'Edit' button. Here you can start manipulating VS1's synthesis
parameters for the current patch... the subject of the rest of this manual.
2. The VS1 main window [index]
Components:

+-+-------------------------------------------------------------------------+-+
| |              +--------------------+  +--+ +-----+ +-----+ +-----+ Power | |
| |        Patch |         1          |  |2 | |  5  | |  7  | |  9  | +---+ | |
| |              |                    |  +--+ +-----+ +-----+ +-----+ |   | | |
| |              |                    |[3]MIDI|  6  | |  8  | | 10  | |11 | | |
| |  VS1         +--------------------+[4]Lim +-----+ +-----+ +-----+ +---+ | |
+-+-------------------------------------------------------------------------+-+


[1]  Information window

     Displays the current part, and the name and number of the patch currently
   loaded. When you send a program change message to VS1 on the MIDI channel
   corresponding to the current part, you should see the patch name and
   number change (if the patch bank has been initialised - see Global options)


[2]  Current part selector

     Allows the user to change which of the 16 parts is currently selected for
   editing.

[3]  MIDI indictor light

     Flashes whenever a MIDI message is received on the currently selected
   MIDI-In port. (See MIDI Options button)

[4]  Limiter indicator light

     Flashes whenever the synthesizer's limiter is activated by output levels
   that are too high. (See 'Limiter' in the glossary)

[5]  Edit button

     Brings up the patch editor for the currently selected part.

[6]  Global options button
  
     Brings up the Global options editor. This editor allows the user to
   define a Patch bank, set various VS1 options, and activate various VS1
   state monitoring windows.

[7]  MIDI options button

     Brings up the MIDI options editor. The user MUST select a MIDI-In port
   before VS1 will respond to any MIDI messages sent by either a sequencer or
   a MIDI input device (eg, a musical keyboard attached to your computer).
   Various other MIDI options are set in this dialog as well, like MIDI
   synchronization settings.

[8]  Audio options button

     Brings up the Audio options editor. The user MUST select an Audio-Out
   port before VS1's responses to MIDI messages can be heard.

[9]  About button
 
     Brings up the About window, filled with cheery details about Vellocet,
   how to contact us, the version number, release date, etc.

[10] Quit button

     The death-to-VS1 button. By pressing this, you save your current patch
   bank and system settings, but any unsaved patch edits are lost.

[11] Power button

     Activates/deactivates the synth engine. 
3. Synthesis Modes [index]
3.1 Overview                                                             [3.1]

VS1 synthesis stages:

 3.2  Generation
 3.3  Effects processing
 3.4  Mixing

3.2 GENERATION                                                           [3.2]

Unit generators available:

  Sine
  Square
  Triangle
  Saw (up)
  Saw (down)
  Rectified Sine
  Quarter Sine
  Pulse Width Modulation (PWM)
  Compensated Pulse Width Modulation (CPWM)
  Exponential (up)
  Exponential (down)
  Wave 

There are 5 generation modes available at the moment:

3.2.1  Simple Generator

(coming)

3.2.2  Generator with one FM modulator

(coming)

3.2.3  Generator with two FM modulators

(coming)

3.2.4  Generator with ring modulation

(coming)

3.2.5 Granular synthesis

What is Granular synthesis?
When granular synthesis mode is selected, VS-1 plays only a small loop of the
loaded wavefile; this loop is termed the grain. The grain may be moved up and
down the length of the sample independantly of the sample playback rate, which
allows the user to time stretch samples without a corresponding pitch shift.
This is useful for getting drum loops sampled at say, 120 BPM to play back at
140 without sounding like something from a Chipmunks record. At extremely slow
grain speeds, the instantaneous timbre of the sound can be heard for much
greater lengths of time, and makes for fine atmospheric pads. It is possible
to actually halt the grain's motion, or move the grain backwards in time (all
whilst the grain loop plays away at its normal rate).

Background: This is a particularly down-and-dirty method of performing
granular synthesis. More elegant sounding solutions involve modelling the
instantaneous spectrum of the grain (with a Fast Fourier Transform, say),
and using that for resynthesis to avoid the stuttering or metallic sound 
VS-1 produces. Vellocet's opinion is that CPU's have better things to do,
and we like the way the sound gets mangled! In later versions, FFT based
synthesis will appear.

Setting up granular synthesis: To use the granular synthesis mode, you must
firstly have the tone generator's waveform set to WAVE, which requires you
to load a wavefile first. Once that is done, you can change the layer
synthesis method to Granular. A button labelled 'GrainOpts' is enabled. This
activates the Granular Synthesis Options Dialog, where you can set the ranges
for grain size and grain movement speeds. The actual rate at which the sample
data within a grain loop is played is still determined by the key you press,
but the sample playback time is determined by how quickly the grain loop moves
along the sample data.

3.3 EFFECTS PROCESSING

(coming)

3.3.1 Delay

The delay effect options dialog has only a few controls, the function of which
should be fairly obvious:

1) Active - turns the delay effect on or off.
2) PingPong - bounces the delayed signal back and forth between the hard left
   and hard right pan positions
3) Volume - how loud the delay effect is
4) Feedback - the strength of successive delays as a proportion of the previous
   delay.
5) Delay time - the time (in milliseconds) between successive delays.

3.3.2 VST plugin effects

(more coming)

BJ and Blue Line plugins don't work at the moment - 
there is something different about them we are yet to figure out - it is
looking like uninitialised variables within the plugins themselves, which
is something we can't fix. :( 

In the near future, you will be able to chain effects together, and specify
signal paths between effects - rather like my trusty Alesis Quadraverb2.

3.4 MIXING                                                               [3.4]

A mixer controlling the levels of each part can be activated from within the
Global dialog. Note these levels are independent of the Patch Layer levels, and
are applied after all generation and effects have been processed. Coming soon:
Pan position controls, part VU meters.

3.4.1 The Limiter

After VS1 has mixed the output from all audio channels, the mix is passed
through a limiter, which is designed to prevent clipping. Any values outside
the output range of an audio device are scaled down to be inside the range
again. Scaling starts at about 87 percent of full output, and at first is
very, very mild. As the input level increases beyond this, the magnitude
of the scaling increases disproportionately, so that you should never be able
to exceed your audio device's limits. This produces a faily soft, warm
distortion, and shouldn't be overly noticeable. If you want to guarantee that
your sounds aren't affected my the limiter, turn down the level of the
patch slightly. Whenever the limiter detects the synth engine output has
exceeded safe levels. the yellow limit lamp on the VS1 main panel will light 
up.
4. Synthesis Parameters [index]
The synthesis parameters are values you can alter in real-time via LFOs or
MIDI continuous controller messages. Parameters will not always affect the
sound generated - if you change a parameter which is not being used by the
current synthesis mode for that part, then no changes will result. For
example, changing the grain speed when your patch is a ring-modulated sound
will have no affect, since grain speed is only used in granular synthesis mode.

PART PAN
  Always active

PART LEVEL
  Always active

MOD n DEPTH
  Active when modulator n is enabled

MOD n RATE
  Active when modulator n is enabled

MOD n RATE DEPTH
  Active when modulator n is enabled

LFO n RATE
  Active when LFO n is enabled

LFO n DEPTH
  Active when LFO n is enabled

GRAIN SPEED
  Active when the synthesis mode is set to Granular.
  Affects the rate at which the grain position is changed. Does not affect the
  playback rate of the sound data within the grain.

GRAIN SIZE
  Active when the synthesis mode is set to Granular.
  Adjusts the size of the grain loop.

GRAIN POSITION
  Active when the synthesis mode is set to Granular.
  Sets the location of the grain loop.

GRAIN START MODE
  Active when the synthesis mode is set to Granular.
  Boolean switch determining initial grain position per note. Default starting
  mode (0) sets the grain position to the beginning of the sample; when grain
  start mode is (1), all notes start from the current grain position at the
  time the grain start mode was changed to (1). Sort of a grain position hold
  function.

DELAY TIME
  Active when the delay module of the patch is enabled.
  Changes the digital delay time from 1-1000ms.

DELAY FEEDBACK
  Active when the delay module of the patch is enabled.
  Adjusts the degree of feedback in the delay module from 0% to 100%.

DELAY LEVEL
  Active when the delay module of the patch is enabled.
  Adjusts the volume level of the delay effect.

FILTER FREQUENCY
  Active when the filter module of the patch is enabled.
  Changes the cutoff frequency of the high or low pass filters, or the center 
  frequency of the bandpass filter. 

FILTER RESONANCE
  Active when the filter module of the patch is enabled.
  Changes the amount of resonance at the critical frequency of the filter.
  High settings result in ringing, electronic-sounding filters. Low settings
  have a more natural sound.

HOLD MODE
  Always active
  Boolean that provides the standard MIDI hold function, which when active
  (MIDI controller value >= 64) suspends Note-Off messages from killing active 
  voices until released (controller value &lessthan 64). Linked to the MIDI Hold 
  Pedal Controller by default. 

Many more to be documented... patience.
5. Designing a Patch [index]
Designing a Patch - more coming!

Open the current part's patch editor by clicking on the EDIT button in the main
VS1 window.

A VS1 patch is composed of a number of layers, each of which acts almost as an
independent synthesizer. Therefore creating a multi-layered patch can be a bit
like creating four patches that just happen to receive the same MIDI messages.
The rest of this chapter focuses primarily on the creation of just one layer
within a patch.

5.1 Choosing a synthesis mode

In the bottom right hand corner of the Patch editor is a picture representing
the current synthesis mode. By clicking on the picture with the left mouse
button, you can change the synthesis mode for this patch. Notice how various
controls within the editor activate and disable according to which mode you
have selected.

1) Simple generator - G in a blue circle
2) Generator with one FM modulator - G in a blue cirle connected by a line to
   a dark green box with an M in it.
3) Generator with two FM modulators - as above, but with 2 green boxes
4) Ring modulator - an olive box with an R in it
5) Granular synthesis - a sheaf of wheat

NOTE: If you try to select the Granular synthesis method without having a wave
file loaded first, VS1 automatically skips bak to Simple Generator mode. There
is a warning dialog option in the Global Options Dialog if you would like to be
reminded of this.

5.2 Choosing a generator 

The top left corner of the Editor has a combo box with names like sin, saw, square
and so on - these are the basic wave shapes you may perform synthesis with:

1) Sine       - Sine wave
2) Tri        - Triangular wave
3) Square     - Square wave
4) RectSin    - Rectified sine wave, ie the absolute value of a sine function.
4) Saw (up)   -
5) Saw (down) -
6) Quart Sq   - Quarter square wave - halfway point for a PWM (see below), composed
                of a quarter cycle 'up' phase, and a three-quarter cycle 'down'
                phase.
7) Exp (up)   - Exponential up
8) Exp (down) - Exponential down
9) PWM        - Pulse Width Modulation - basically a square wave, but with the
                added feature that you can assign an LFO or CC to control the
                relative width of the 'up' phase versus the 'down' phase of the
                wave.
10) CPWM      - Compensated Pulse Width Modulation - like a normal PWM, but the
                integral of a CPWM is zero - meaning the thinner phase of the wave
                has a greater amplitude, and the wider phase a reduced amplitude.
                This difference is mainly of use for LFOs, when you want the LFOed
                parameter to stay centered.
11) Wave      - User supplied wave data - ie a .WAV file. (Other formats soon)

5.3 Adding effects 

5.4 Linking MIDI controllers to synthesis parameters 

Open the Controller Map dialog in the Patch Editor by clicking on the button
labelled 'Controllers'. You will see two lists. The left list shows all the
MIDI controller messages, and in brackets, their current message assignment.
The right box shows all the mappable synthesizer parameters. To link a controller
to a parameter, simply click on the controller you want, and then click on the
synth parameter it should control.

Remember not all synthesizer parameters are active - it is no use mapping a
controller to grain position if you aren't using the granular synthesis mode.

5.5 Linking LFOs to synthesis parameters

Very similar to the controller maps: click on the LFO you want, then click the
synthesis parameter it should control. The amount and rate knobs control how
much the LFOs affect a parameter, and at what frequency. The rates vary between
0 and 20 Hz logarithmically.

You must then specify which of the layers the LFO will affect by clicking on the
associated layer light.

5.5.1 MIDI-synched LFOs 

If you want to synchronize an LFO to incoming MIDI clock messages, then click 
on the 'Sync' button. This then enables a text box labelled 'clocks'. The 
number of clocks you enter determines the time taken for the LFO to go through 
one cycle. The MIDI standard defines a crochet (one beat) to be 24 MIDI clocks, 
so if you wanted an LFO to go through the values zero to one in a linear fashion 
every 4/4 bar, you would specify a SAW-UP LFO wave pattern, with a MIDI-synced 
cycle time of 96 clocks (4 x 24). This could be used, say, to synchronise the 
playback position of a drum-loop sample played in granular-synthesis mode loop 
so that it was always in time with your song, even when you change the tempo! 
Very useful, we think... 

5.6 The Envelope Editor

The graphical envelope editors are currently used for Amplitude, Pitch and 
Filter Frequency. Click on any of the three envelope editor button in the Patch 
Editor to start editing an envelope. You will see a jagged red line connecting 
small blue boxes. The white boxes mark the position of envelope control points, 
which can be moved with the mouse whilst holding down the left mouse button. 

SHIFT + left mouse button darg = Control points only move vertically.
CTRL  + left mouse button drag = Control points only move horizontally.

The red line indicates the overall shape of the envelope. New control points 
can be created by double clicking with the left mouse button. Control points 
can be removed by single clicks of the right mouse button. Note: The second last 
control point has a special function: its value is held constant until a MIDI 
note-off message is received. The envelope then starts moving to the final 
control point. Amplitude envelopes should always have a final value of zero to 
prevent popping and clicks! 

Loops may be defined by activating the loop control. Part of the envelope now
appears in yellow, bounded by left and right margin lines. The start point
may be selected by using the '+' and '-' buttons marked 'Loop start'. The loop
ends at the Release start point.

5.7 The Wave Mapper

If you want a realistic wavetable patch, or a drumkit, you want to be able
to map several wave files to different parts of your keyboard. This is what
the wave mapper is here to help you do.

To load a wavefile: left double-click on one of the available wave-file 
slots listed on the left side of the main display.
To delete a wavefile: right click on one of the loaded wave-files.
To set a key range for a wave: Hold the left mouse button down and
drag the mouse along the keyboard graphic at the top of the window, or use 
the upper and lower value boxes to specify the highest and 
lowest keys in the range you want. A red line will appear on the main display 
indicating the keyboard range. 

If the line appears grey, that means you have set the upper boundary BELOW 
the lower boundary - hopefully this is only a temporary situation whilst
you are moving both boundaries! No mapping will occur if the range boundaries 
are left in this invalid state, and hence no sound will be heard when you
press a key.  

To set a loop range for a wave: Hold the left mouse button down and
drag along the waveform graphic, or use the loop start/stop value boxes to
set the loop boundary positions.

The pitch of every wave may be changed independently.

Loop: toggles looping mode on/off. The wave display indicates the 
loop start and end points with a vertical

BiDir: toggles bi-directional looping mode on/off.

Auto key div: (Automatic keyboard range based sample division)
This is a (hopefully) nifty function that alters the
playback start position of your wave based on which key in the wave's
range you press. For example, if you have mapped a one-bar 4/4 drumloop 
over 16 keys, each key will now start playback at one of the 1/16th note
positions. We thought this was handy, and much quicker, and less messy,
than having to use another program to chop it up for you.

The wave display will indicate the division points with light grey vertical
lines.

Pitch invar: stands for Pitch Invariant. All keys play back the
wave at the same rate. The Auto Key Div function activates Pitch invariance
automatically. 
6. Global options [index]
6.1 Designing a bank of patches

(coming)

6.2 Setting default directories

(coming)

6.3 Other global options

(coming)

6.4 Output volume
Appendix A: Glossary [index]
[To be added to lots!]
A Amplitude How loud a sound is (see level), or the magnitude of a function.
B    
C CC MIDI Continuous Controller
D    
E Envelope A value in the range [0,1] that changes with time, continuously describing a contour specified by a number of control points. Each control point has a value, and a time required to reach that value. Typically envelopes are used to impose a temporal struture on a parameter, such as Amplitude.
F    
G    
H    
I    
J    
K    
L LFO Low Frequency Oscillator - a slowly changing, time-dependent value often used to change parameters such as the pitch of a layer, providing enough change in your patch to keep the listener interested in your sound.
M    
N    
O    
P Part


Patch
The input from each MIDI channel is linked to one of 16 parts within VS1. Each Part is a mini-synthesizer, with its own patch settings.

A collection of settings describing an instrument. VS1's patches are made up of 4 Layers, each of which is a separate synthesis module, but linked to the one patch to create richer and more interesting timbres.
Q    
R    
S    
T Timbre The 'colour' of the sound. A more complicated concept than the mere spectral composition, since timbre encompasses spectral changes with time.
U Unit Generator  
V Voice The smallest unit of synthesis - when starting a note, VS1 creates new voices, one for each Layer in the current Patch. A voice is thus the real-time implementation of a Layer. When the note ends, its associated voices are removed from the generation table.
W    
X    
Y    
Z    
End.
Appendix B: Trouble Shooting FAQ [index]
AUDIO PROBLEMS
Problem: The output is jerky or stuttering

Cause 1: VS1 can't get the processing power it needs. 
       - Close any other applications that might be using a lot of the CPU. 
       - Increase the size of VS1's audio buffers and/or the number of audio 
         buffers (Try size first) 
       - Decrease the complexity of your patches 
       - Decrease the number of parts you are simultaneously running. 
       - Don't move the mouse so much (We've noticed some mice chew up almost 
         all the CPU power power available when moved!) 
       - Buy a grander and more expensive computer! (sigh, it never ends...)

Cause 2: Sound card drivers of questionable quality. 

       - You might need to use Direct-X mode 
       - Increase VS1's audio buffer size. 

Cause 3: Other applications competing for CPU time 
 
       - Increase the number of audio buffers to give VS1 more time to 
         generate sound. This will also increase the latency of VS1, so 
         you will need to adjust the MIDI delay in your sequencer, if 
         possible, to maintain synchronisation. 

Cause 4: DirectX has incorrectly reported the buffer play position.

       - Sometimes DX can send sound buffer updates out of order when the CPU is
         overloaded, leading to all kinds of crunchy sounds ever after. To reset
         your direct-X device, simply turn the synthesizer's power button off and
         on, and you should have smooth output again. 

Appendix C: Vellocet custom controls [index]
C.1 Knob

Left mouse button behaviour: Knob value is changed according 
to the VECTOR location of the mouse, ie after clicking and holding down the 
left mouse button, as the mouse moves about the screen the notch remains pointed 
at the mouse Right mouse button behaviour: Knob value is changed 
according to the vertical, or Y, position of the mouse.
Mouse wheel behaviour: Forward spin movement increases the knob value, 
backward spin decreases the value. This behaviour is only active if the control 
has the current input focus. To give the knob input focus, simply click on it with 
the left mouse button

The Left/Right mouse behaviour may be swapped by going to the Global settings
dialog and clicking on the checkbox labelled 'Swap knob behaviour'

Appearance: As you change the knob from the minimum to the maximum setting, the
central colour spot will change smoothly from blue through green to red. This is
to help the user quickly assess the state of many knobs at a glance, rather
than having to look carefully for notch graphics. If the knob is disabled, the
center colour is gray.

C.2 ValueBox

Left mouse button behaviour: Clicking and dragging up or down 
changes the value at a rate proportional to tyhe vertical distance from the 
control. (coarse) 
Right mouse button behaviour: Clicking and dragging up or down changes 
the value in a manner similar to a slider. (fine)
Mouse wheel behaviour: None yet.
Left mouse double click behaviour: An edit box appears, allowing you to
type in a value using the keyboard.

Appearance: A dark green box with bright blue/green numerals. 
If disabled, the box is dark gray with light gray numerals.

C.3 CheckBox

Left mouse button behaviour: Clicking changes the value on/off.
Right mouse button behaviour: None
Mouse wheel behaviour: None

Appearance: A virtual LED - bright red if 'ON', dark red if 'OFF'. If disabled,
the lamp appears dark gray.

C.4 Dialog Window

Left mouse button behaviour: Holding the button down and dragging the 
mouse will drag the window araound the screen. If the dialog window detects 
another dialog window closely above it when you stop dragging, it will form 
a group with that window. Dragging the top window in a group drags all grouped 
windows around the screen, allowing you to rapidly organise your VS1 workspace. 
Right mouse button behaviour: Clicking on the title bar will minimize 
the window to a small floating titlebar. Some windows have hidden features 
found by clicking with the right mouse button... :)

///////////////////////////////////////////////////////////////////////////////