The GUI is what is called a two-way tool, much like the graphical form designer in Delphi, C#, or Visual Basic. It is an alternate view of the same program, which you can edit with either the GUI, or the script editor, or both, swapping between the two as much as you want. Some complex script elements, and anything inside IF statements, will just not appear in the GUI. The GUI won’t delete those things, it just won’t let you see them or change them until you switch back to the script view. The Script view will show everything you created in the GUI or the script editor and let you modify everything to your heart’s content. But all lines which are similar to “something = something”, or “something => something” will be shown in the GUI. Even lines like “x++” will be shown in the GUI (although they don’t make a lot of sense outside IF statements).
You can create, load or save your whole program using only the GUI. It will switch back to script view when you run it, but that is just because the GUI window chews through lots of memory and CPU. But you can switch straight back to GUI to edit it again. You don’t need to do any scripting to create GlovePIE scripts, or even to load other people’s.
The left hand side of the GUI is a list of all the output values that can be set with the GUI. This includes MIDI output, keyboard emulation, mouse emulation, joystick emulation (using PPJoy), and fake mouse cursors. Output values that have already been set to something, are marked with an asterisk (*). If you need to click on the drop-down button of a drop-down box to see the items that have been set, then it will be marked with the drop-down symbol (-v-).
The right hand side of the GUI specifies what input values you want to set the selected value to. You can set it to a constant value or mathematical expression by typing it in, or you can choose parts of the input devices from drop-down boxes. You can also choose what range you want the input to be mapped from or to, or, if you are more advanced, what functions you want to apply to it.
You need to start from the top of the left hand side. The top drop-down box lists all the MIDI output devices followed by the keyboard, mouse, joystick and fake cursors. The MIDI output devices show both the number and the name. Choose a device from this list. You can see which output devices have something set in them already by the * symbol.
If you want to use MIDI then I recommend choosing “Default MIDI”. That way you can choose later what the default MIDI device will be, without having to change your whole file. Another alternative is to choose the MIDI Mapper device. The MIDI Mapper was a complicated MIDI mapping device in Windows 3.1, but these days it is a mere shadow of its former self. From Windows 95 onwards the MIDI Mapper is just a single setting in Control Panel which chooses which MIDI device MIDI playback should go to. You can go to the MIDI page of Control Panel, by choosing MIDI from the CP-Settings menu in GlovePIE. Unlike “Default MIDI”, which can be changed by GlovePIE settings, the Mapper is considered to be just another MIDI device. If you need to output to more than one MIDI device at once, choose the MIDI device in this box, otherwise use the default.
If you chose Keyboard or Mouse then the two drop-down boxes underneath will disappear. That is because you can only emulate the combined system mouse or combined system keyboard, not multiple keyboards or multiple mice individually. Very few programs distinguish between multiple mice or keyboards. Also GlovePIE doesn’t group the keyboard and mouse values into categories yet. There is only a single category for all the keyboard and mouse values.
If you chose PPJoy Virtual Joystick, or Fake Cursor, then there will be a drop-down box underneath, listing all 16 possible Virtual Joysticks numbered 1 to 16, or listing 17 possible fake cursors, numbered from 0 to 16. You need to install PPJoy, and configure PPJoy to add virtual joysticks before they will work in GlovePIE, but they will all be listed here whether they have been installed or not.
If you chose a MIDI output device, then there will be two drop-down boxes underneath. The first drop-down box lists all the MIDI channels, plus the default channel. You should choose “Default Channel” so you can change it later without changing your entire file, unless you need to output on multiple channels at once. There are 16 channels, but if your device uses General Midi then Channel 10 will always be percussion. But all the other channels have their own individual settings, such as instrument and volume, and each channel can play multiple notes at once (of the same instrument).
The category box only appears for MIDI. Everything else just uses a single category, because I was lazy. So skip to the next section if you don’t care about MIDI. But because MIDI has so many things you can set, I have grouped them into categories. There is obviously no default category, because that makes no sense.
You need to choose a category. The first category you should choose should probably be “Other Controls” because it allows you to change general settings, like which device is the default, and which channel is the default.
The categories are:
14-bit Controls 0..31
These set main parameters such as volume. They apply separately to each channel. These are the combined Coarse and Fine controls for the first 32 MIDI controls. The controls in this category will set both the coarse and fine settings at once, giving you 14-bits of precision (16 thousand possible levels). This is the recommended way to set these controls, (unless your MIDI system interprets the coarse and fine values as separate things). Some of them have pre-defined names and functions, some of them don’t. But you can set any of them that you like. It will set the coarse value using cc0 to cc31 messages and it will set the fine value using cc32 to cc63 messages.
7-bit Controls 64..95
Other controls have no separate coarse and fine settings. These ones just have a single value for 7 bits of precision (only 128 possible levels). This is the only way to set these controls. These are often used for pedals, buttons and things like that. They can control effects like Hold, Sustenuto, Portamento, Legato, Chorus, AttackTime, etc.
7-bit Controls 96..127
These controls don’t really do anything much. I think most of the later ones actually correspond to other MIDI messages, like All Notes Off, so it doesn’t make much sense to set them. But you can set all these ones anyway if you want, just for completeness.
Coarse Controls 0..31
These controls set only the coarse half of the MIDI value. Since the coarse half is 128 times as significant as the fine half, sometimes it makes sense to only use the coarse half. Some devices (particularly software ones) use the coarse and fine values separately for different things. The coarse control is set with cc0 to cc31 messages.
Fine Controls 0..31
These controls set only the fine half of the MIDI value. Some devices (particularly software ones) use the coarse and fine values separately for different things. The coarse control is set with cc0 to cc31 messages.
This is where you set other important controls. It includes the important DeviceIn, DeviceOut, and DefaultChannel defaults. Set DeviceOut to a constant value of the MIDI output device you want to use. Set DefaultChannel to a constant value of the channel you want to use.
Of the other controls, some apply to the channel like what instrument to use, what the overall channel pressure is, and what the Pitch Wheel is set to. Others apply to every channel, and use RPN messages, like Master Tuning, and Pitch Bend Range. Others use SysEx messages, like GeneralMidi, and SetupFile. You can set SetupFile to the name of a SysEx file (in quotation marks) that you want to send to the MIDI device at the start of your program. This is useful for all SysEx messages GlovePIE doesn’t support.
These are the drum beats, symbol clashes, and other percussion sounds supported by General MIDI devices. These don’t change the instrument, they just turn a specific sound on or off. They all play on channel 10, no matter which channel you set them on, so it is best to set them on the default channel. You should set your MIDI device to General MIDI mode before using these, by setting GeneralMidi to true in “Other Controls”.
Notes Octaves 0..4
These are all the notes below Middle C. Octave 0 being the lowest (If you need a note deeper than C 0, use pitch bend). The octaves go from C to B. The notes are either true or false, representing On and Off. Setting a note to On this way will be like you hit the key with a velocity of 64/127 (50%). Setting a note to Off this way will be like you released the key with a velocity of 50%. You can also turn notes On and Off by setting their velocities using the categories below, if you want more control. If it is channel 10 on a General MIDI device then these play percussion rather than notes.
Notes Octaves 5..10
These are all the notes from Middle C (octave 5) upwards. Octave 10 is the highest, but it is incomplete, since MIDI devices only support 128 keys (If you need notes higher than G 10, use pitch bend). See above for the velocities.
Note Velocity o0..o4 and Note Velocity o5..o10
These are the key hit velocities for all the notes. Set the hit velocity to 0 to switch off the note (although the release velocity will always be 50% in GlovePIE). Set the hit velocity to anything else to turn on the note with that velocity. This is the better way to turn notes on and off when you need fine control over how hard they are struck.
Note Pressure o0..o4 and Note Pressure o5..o10
These are the key aftertouch, or note pressure. It is how much force you want holding down the key after it has been triggered. Most devices probably don’t support this.