What is Vkeys?
Starting up/Tutorial
User interface items
Using VKeys with a sequencer
What is VKeys?VKeys is a freely configurable virtual midi keyboard for Windows 95/98/2000. You can freely assign midi notes to PC keyboard keys, each with its own velocity and velocity randomness settings. You can also map the x and y coordinates of the mouse pointer to two midi controllers. You can use VKeys as stand alone or supplement a normal midi keyboard with the mouse controllers. VKeys is particularly suitable for playing drum and bass grooves. You can assign for example snare hits with different velocities to different keys, enabling dynamic but still controlled playing. This is not truly possible with a normal midi keyboard, because the velocity sensitivity tends to be too random when playing drums. See the tutorial below for examples. When playing bass sounds, you can use mouse to control for example filter cutoff and resonance. The author also uses VKeys as an inspiration tool. All instruments have melodies or intervals that are particularly easy or difficult to play with them, but since VKeys in configurable, it has no such limits. This gives more degrees of freedom for random playing and searching for ideas. You can even assign readymade weird scales to the keys. See for example the 'mixolydic.vk' setup and try the key sequences commented there. |
![]() |
VKeys is not very suitable for polyphonic playing because PC keyboard limits the number of simultaneously detected keypresses.
VKeys is freeware. You may freely use it. You may also freely distribute it provided that you include all the example and help files as specified in the readme. (c) Perttu Hämäläinen 2000. Send bug reports and comments to perttu.hamalainen@hut.fi.
The following lists the steps needed to begin playing, and gives you an example of how to use VKeys for playing drum grooves.
After starting VKeys, the first step is to select a midi output device to be controlled. For this tutorial select your soundcards midi synthesizer, for example 'Creative S/W Synth'.
VKeys loads automatically a default setup ('default.vk') and you should be able to start playing immediately. To play a C major scale, type "qwertyui". If you cannot hear any sound, check your soundcard's mixer settings. Check that MIDI is not muted and that the volume control slider is adjusted right. Also check the master volume slider. You can test midi playback also by quitting VKeys and playing a midi file with Windows Media Player.
You can change the midi instrument by changing the value marked 'program'. When VKeys is started, the default midi channel is 1. If you want to play drums, change it to 10.
The mouse controls are off by default. Now try to select 'Velocity' for the mouse X controller. Now you should be able to adjust the touch of your playing by moving the mouse horizontally. For mouse Y controller select 'Pitch bend'. Now you can bend the notes by moving the mouse vertically, if your soundcard's synthesizer supports pitch bend messages.
Select 'Open' from the file menu and open 'dynadrums.vk'. This is a GM drum setup that has three velocities for snare and bassdrum and two for toms and hihats.
The full bassdrum hit is assigned to 'q', snare to 'w' and hihat to 'e'. This is like in a normal virtual keyboard, like the 'default.vk' setting. Try playing a simple beat with these keys and you'll find out that the sound is monotonic and machine-like with no dynamics of a real drummer. Try to play the following example (you need WinAmp or some other mp3 player to listen it)
One essential element of groove is how the hihat is used. Now try to play every other hihat more lightly using the key 'd'. Listen to the following example to hear how it adds a more natural feeling to the beat.
Now add 'ghost' snare hits with the key 'x'. Compare the result to what you get by only using the key 'w'. Listen to the final example, quite different from the first one.
The key assignments can be edited in the text editor window. The format is simple: each line has first the key, then the midi note (note and an octave number). After this are optionally the velocity the note is played and the randomness of the velocity. For example a velocity of 120 and a randomness of 7 means that the velocity varies in the range 113..127. The maximum velocity is 127 and the minimum is 0 (mute). A '#' in the beginning of a line denotes comments for the user.
The values on a line are separated by whitespaces or tabulators.
When editing, the virtual keyboard is disabled, but you can preview the note the cursor is on by pressing F2. When you have finished editing, just click the 'Keyboard' checkbox to begin playing. If you get error messages, there's a typing error somewhere. The text parser is not very advanced and will be made more robust in the future versions.
Try for example changing the velocities and randomness of the ghost snares and hihats to produce a lighter or heavier touch.
User interface items
The parameters | The main window contains simple controls for selecting midi output device, midi channel, transposing of the notes, midi instrument (program), default velocity that is used when no key-specific velocity is specified in the text editor, global velocity scaling and midi controllers that the mouse position is mapped to. There's also checkboxes for disabling and enabling mouse and keyboard functionality. When you disable the mouse, the midi controllers are set to default values. |
Panic button | The button marked '!' sends 'all notes off' and 'all controllers off' messages to the midi output. It should stop any stuck notes that happen for example when you hold down a key, click with the mouse to activate a different program window and then release the key. |
Text editor | The key assignments can be edited in the text editor window. The format is simple: each line has first the key, then the midi note (note and an octave number). After this are optionally the velocity of the note and the randomness of the velocity. For example a velocity of 120 and a randomness of 7 means that the velocity varies in the range 113..127. The maximum velocity is 127 and the minimum is 0 (mute). A '#' in the beginning of a line denotes comments for the user. The values on a line are separated by whitespaces or tabulators. When editing, the virtual keyboard is disabled, but you can preview the note the cursor is on by pressing F2. When you have finished editing, just click the 'Keyboard' checkbox to begin playing. If you get error messages, there's a typing error somewhere. The text parser is not very advanced and will be made more robust in the future versions. |
File menu | You can load and save the setups using the file menu. |
Edit menu | Edit menu contains the standard cut/copy/paste for the text editor and the 'play current' that plays the note the cursor is on in the text editor. |
Help menu | Help menu has functions for opening this file and displaying the copyright notice. |
When making music with a PC, all midi input is normally handled with a sequencing software like Cubase VST or Cakewalk. You play with a midi keyboard and the sequencer forwards the events to the midi output devices.
To get VKeys midi messages to the sequencer input you need a midi loopback driver, for example Hubi's,
http://www.hitsquad.com/smm/programs/Hubis_LoopBack_device/
After installing the driver, start the included Hwmdcabl.exe and select 'LB1' as both input and output. Start VKeys and select 'LB1' as the output. Then start your preferred sequencer and select 'LB1' as the input. Now the midi events should go from VKeys to the LB1 driver, then to sequencer and finally to the actual output device.
The other (more professional) way would be to program and install a midi input driver for VKeys so that it would appear in the sequencer's list of available midi inputs. Unfortunately I don't currently know how to write one, neither do I have the time to get lost in Microsoft's documentation since this is a freeware hobby project. Any help is welcome!