VMCI Manual

(version 1.21)

General

Installation

The Activation Bar

The 7-bit Slider Panels

The 14-bit Slider Panels

The XYin Panels

The Keyboard panel

Copyright and Magic Code


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.

 VMCI requirements:

VMCI features:

  1. Four panels of completely configurable 7-bit control sliders (one panel in Lite mode). Each panel contains 64 sliders; the total is 256 sliders available (8 in Lite mode).
  2. Two panels of completely configurable 14-bit control sliders (one in Lite mode). Each panel contains 32 sliders; the total is 64 sliders (2 in Lite mode).
  3. Two panels (one in Lite mode) of mouse-sensitive areas. Each panel contains 8 areas; the total is 16 areas (2 areas in Lite mode). Each area can be clicked by the mouse to send two control messages a time. These areas are similar to the 'xyin' opcode of Csound.
  4. A virtual MIDI keyboard can send midi data by a  mouse click on one of the 192 piano-key-like buttons, or by pressing a key of the alphanumeric keyboard. Each key is completely configurable to send any midi-message of any midi-channel. Up to 959 events can be stored (24 events in Lite mode).
  5. The configuration, including all slider positions and all parameters customized by the user, can be saved  to a file and restored when needed (both in Lite and Pro modes).

PRO mode Vs. LITE mode

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


How to install VMCI

To install MSVC you must do the following steps:

  1. You must download the three zipped archives: The executable, the manual in html format and the VisualBasic5 runtime files (Tip: If any program written in VisualBasic5 is already installed on your computer, maybe you don't have to download and install the runtime files. So download only the executable and try to run it. Then, only if something goes wrong, that is some missing file error messages appear, let's download and install the runtime files.)
  2. Decompress the runtime files in a temporary directory and run the setup file. When the installation is finished, you can delete files in the temporary directory.
  3. Expand the executable and the manual archives, putting them in a directory of your choice (I suggest you to create a new directory named "VMCI" in the drive C: root to put these files to).
  4. Then, if you want creat a shortcut of the executable and put it on the desktop or in the start menu.

Here is the installation procedure to use VMCI with DirectCsound:

  1. Downlad and Install Microsoft DirectX package (if it is not already present on your computer).
  2. Download DirectCsound. Create a folder named  c:\csound and copy all content of DirectCsound distribution.
  3. Download and install MIDI OX program (optional, available separately; it is useful to monitor incoming/outgoing MIDI messages) by clicking on midioxe.exe file.
  4. Install Hubi's Loopback virtual MIDI device. Create a folder named c:\csound\MidiCable and unzip the content of archive mdlpbk25.zip in that folder.
    The loopback device must be installed as a device. Here is a quote from the installation notes.

    "Windows 95: Start->Settings->ControlPanel->Hardware Continue-> [No] ->Continue -> [ Audio/Video/Game Controller ] ->Continue ->Diskette -> [ enter the unzipped directory (c:\csound\MidiCable) ] ...

    Then you will see a list with "Hubi's Loopback v250", select this, some ok and restart Windows when asked about it."
  5. Create a shortcuto to  hwmdcabl.exe on the desktop in order to make it faster to start it.
  6. Start VMCI and configure the MIDI port (button "MIDI setup"), the Csound Settings (button" CsoundSettings") and start a real-time orc/sco pair to test it.


The Activation Bar

The activation bar is the main window of VMCI. It can be used to fulfil the following tasks:


The 7-bit Slider Panels (old interface)

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.


The 7-bit Slider Panels (new in ver.1.2)

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.


The 14-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.


The XYin Panels

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

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

  1. play mode
  2. edit mode
  3. show mode

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.

Play mode

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).

Edit Mode

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.

Show mode

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.


Copyright and Magic Code

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:

g.maldonado@agora.stm.it

and you can get the last version of this program at the following WEB sites:

http://www.geocities.com/SiliconValley/Way/7041/home2.htm

http://www.agora.stm.it/G.Maldonado/home2.htm