![]() |
(version 1.21)
General
VMCI (Virtual Midi Control Interface) is a GUI program which allows the user to send most MIDI data to a MIDI device by means of gestural actions on the computer keyboard and mouse. VMCI is fully configurable and can give the user a total control of MIDI messages, even without any MIDI interface card and any external MIDI keyboard or controller. This program is primarily thinked to be used to control real-time versions of Csound, but it can also be used with any internal or external midi device or computer programs such as sequencers.
There are two VMCI modes:
The features of the two modes are identical, only the number of controller available is different.
MODE | PRO | LITE |
Total number of 7-bit sliders | 256 | 8+8 |
Total number of 14-bit sliders | 64 | 2 |
Total number of mouse-sensitive areas | 16 | 2 |
Number of piano-key-like buttons | 192 | 24 |
Number of MIDI events per configurations | 960 | 24 |
Trick: In LITE mode you can increase the number of sliders available at a time by runnig more instances of VMCI
To install MSVC you must do the following steps:
Here is the installation procedure to use VMCI with DirectCsound:
The activation bar is the main window of VMCI. It can be used to fulfil the following tasks:
Up to four 7-bit slider panels are available in Pro mode, the first two in
a new display configuration. (That in the picture is the old interface,
still present in panels 3 and 4).
Each panel contains 64 sliders, as you can see in the picture (only the first
8 are enabled in Lite mode). If you click one of the 64 sliders, some
informations relative to that slider will appear immediately in several
text boxes. Some text boxes can be edited and the modifications will be linked
to the relative slider (the last slider which had got the focus, i.e. the
last which was clicked). These sliders can be used with Csound's
'midictrl', 'midictrlsc', 'midic7', 'ctrl7',
'sliderXX' and 'sliderXXf' opcodes.
Notice that when you resize this panel vertically, each slider is redrawn with a different length to match the new size. This feature is useful when you want to obtain a more precise control with the mouse: in this case you must resize the panel to fill the maximum area possible with your monitor.
When a slider is moved, a MIDI control message is sent to the current MIDI OUT port (the messages are control-changes, those with the status-byte $B0 + channel-number). The second byte of a MIDI control-change message is the controller number. Some famous MIDI control-change numbers are the number 1 (Modulation Wheel) ; the 2 (Breath Control), the 7 (Volume) ; the 10 (Pan); the 64 (Damper Pedal) etc. The third byte of a MIDI control message is the datum itself, expressed into a range of 0 to 127. Some Csound opcodes can translate incoming midi raw data to a floating-point number inside a min-max range defined by the user; so in VMCI it is possible to show the value in two ways: midi-raw-data or floating-point-translated data. The floating-point value can is set within a range defined by the user, which can be different for each one of the 64 sliders. The default min-max range is 0 to 1, but can be changed by the user even using negative numbers.
A description of the features of this panel will be given below, beginning from the top-left corner of the panel itself.
This interface is new in version 1.2. It can show only 32 sliders a time
(in this case 11 sliders are shown. You can increase/decrease the number
of sliders by modifying the 'number of sliders to show' text box).
To switch the other 32 sliders visible, you must click in the
radio-buttons. Notice that the
sliders are horizontal and the comments are always visible. Its behaviour
is identical to that of the old 7-bit slider panels.
These sliders allow a bigger precision to control Csound when using the 'midic14' , 'ctrl14' and 'sliderXXb14' opcodes. The higher resolution is achieved by combining two different MIDI controller messages for each slider, one for the first seven bits and the other for the last seven bits. So a fourteen-bits number is generated, capable of a range of 0 to 16383 vs. the 0-127 range of the seven-bits sliders. To obtain a real resolution improvement, the pixels scanned by the mouse movement (when moving a slider) must be greater than 128. So I suggest to resize vertically the 14-bit slider panel by setting the maximum height possible with your monitor.
The 14-bit slider panels are almost the same as the 7-bit ones. A description of each difference is presented below.
These panels contain 8 mouse-sensitive areas (only the first 2 are enabled in Lite mode. In this case 4 sliders are shown. You can increase/decrease this number by modifying the 'number of sliders to show' text box). When the right mouse button is pressed over one of the 8 areas, two midi messages are sent, the first referring to the horizontal position, the other to the vertical one. So it is possible to control two different parameter at a time with a single mouse movement. The midi messages sent are 7-bit control-changes. When you drag the mouse into a mouse-sensitive area, a stream of control values will be sent to the midi-out port. This behaviour is similar to Csound opcode 'xyin', for this reason I called these panels 'XYin'. A total of 16 controllers per panel are present in each panel.
The toolbar of these panels is similar to that of 7bit slider and 14bit slider panels. The differences are:
The Keyboard panel allow the user to trigger any kind of MIDI voice message, not only note-on/off messages. A click on a piano-key-like pushbutton can generate a note-on/off message as well as a program-change or a pitch bend message. The user can configure each key to send the type of message he needs; any type of midi voice message can be assigned to each piano-like button. Also it is possible to assign a computer key to a piano-like button so you can play the computer keyboard in the manner of a piano keyboard. A total of 959 MIDI messages can be stored in memory (there is a limit of 24 messages in Lite mode).
Follows an explanation of each Keyboard feature.
There are three modes to operate with the Keyboard panel
In play mode you can play the notes or trigger
the midi messages the Keyboard is configured with.
In edit mode you can change the midi message
type and the data of each piano-like button. Also you can assign
each piano-like button to any computer key.
In show mode you can view the parameters (message
type, message data and the computer key assigned to that button) assigned
to each button.
Each button has an index. Indexes are the main points of reference of Keyboard
panel configuration.
Follows an explanation of each feature of the Keyboard panel.
When you open the Keyboard panel for the first time, it is filled with the default configuration. All of the buttons are set to note-on/off messages so you can play the buttons as they would be a piano.However you can totally edit this configuration.
The 'play mode' is the normal mode of the Keyboard panel. In this
mode it is possible to click the piano-key-like buttons in order
to play notes or to send some MIDI voice messages to Csound or any MIDI
instrument connected to a MIDI port. Each button has an
index, starting by zero. Notice that there are 192
piano-key-like buttons (only the first 24 buttons are enabled in Lite
mode), but the total number of indexes available in Pro mode is 960 (24 in
Lite mode). To access to all indexes available, when the program is
set in Pro mode, you can add an offset to the index reference of each
piano-key-like button; you can click to any of the 'values set
area' radio-buttons
. You can also define an
offset manually by typing it directly to the 'index offset' text-box.
Also you can edit the indexes greater than 191 by switching to the edit
mode and modifying the parameters (more informations about edit will
be given in the next section).
You can play glissandos with the mouse by pressing the 'CTRL' key instead
of the left mouse button as normally.
You can enable/disable the sustain-pedal on all 16 midi channels by
pressing/depressing the 'ALT' key or by clicking the
'sustain' check-box.
The two vertical sliders on the right of the piano-buttons can change the
offset of the first and second data-byte of each midi-message. So if a message
is a note-on, you can change the note-number (i.e. the first data-byte of
that message type) or the velocity (i.e. the second data-byte).
To edit a piano-key-like button, select the 'edit mode' radio button
(), then click to a
piano-key-like button. You will see that the data in the text boxes will
change. Notice how the number inside the 'index' text-box
(
) changes. This
is the index number of the last piano-like button pressed.
To modify the parameters of current index, fill the data text
boxes:
you can change the
MIDI channel, the first and second data byte according to your needs. Also
you can choose the midi-message type you want to be assigned to that index.
To do this you must select one of the midi-status-byte radio-buttons
(
). You can send the message
to the midi port for a test; simply click to the 'test midi message'
button ((
). You can
also assign a computer-keyboard key to that index. To do this put the focus
in the 'key shortcut' text-box
(
) and type a key on
the computer keyboard. You will see the ascii value inside the text box changing.
To store edited parameters of current index to memory, you have to
press the 'apply values to current index' button
(
). There is also a faster
way to store all parameters of current index and go to another index at a
time: the
button to go to the next
index, and
to go to the previous
one. Both these two buttons store the last edited parametrs to memory too.
The 'show mode' is used only to view the current configuration parameters of each piano-key-like button on its text-boxes. In this mode a computer-keyboard key can be pressed to see how the pertinent configuration parameters will change.
The this program is copyright freeware, it is not public domain. No responsibility is taken for any damage or losses caused by this package. This program is distribuited as is, without support.
You can use this program for all the time you want, there isn't time limits. You can copy this program and give it to your friends or to any other person as long as for no charge. This program may not be sold, or distribuited for any commercial purposes, without prior written approval from the author.
All trademarks belongs to his rispective author.
Donation
The Magic Code to use this program in PRO mode will be communicated to all people who send a donation of any entity to the author. To receive the Magic Code you must also send to the author your complete name. I you want, you can inform the author in advance about your donation by sending an email message (see his address below), so he will post the magic code directly to your email address as soon as he will receive the donation.
To make the donation, send an international check (or any other stuff) to:
Gabriel Maldonado
via di Donna Olimpia 166
00152 Roma - Italia
Important
When you will receive the magic code you must fill the dialog box opened clicking "About - Switch to Pro mode" menu. You must put your exact first and family name. Your name is linked to the magic code, so, if you type an incorrect name, the magic code will not allow to switch to Pro mode. Uppercase letters are significant.
You can send any question to the following email address:
and you can get the last version of this program at the following WEB sites: