═══ 1. Introduction ═══ Piano is a Presentation Manager application (for OS/2 2.x) that turns your computer into a MIDI controller. In other words, it allows you to play notes on external MIDI sound modules from your computer's keyboard and mouse via a MIDI Interface. If you have a sound card with a built-in sound module that is triggered via MIDI notes (such as a Turtle Beach MultiSound or Roland RAP-10, SCC-1, or other such cards, with appropriate OS/2 driver), then you can play those like musical instruments as well. Piano also allows you to generate many other types of MIDI data such as Volume, Pan, Effects Level, Chorus Level, Pitch Wheel, Modulation Wheel, AfterTouch (Key Pressure), and Channel Pressure so that if your MIDI sound module supports these MIDI messages, you can control the module appropriately. Some of the words in this manual are highlighted in bold text, such as Program Change. These are words that refer to controls (ie, buttons, sliders, checkboxes) which you manipulate in Piano's window. Other words are in colored text such as Channel Pressure. These refer to MIDI messages (ie, data). Underlined words, such as Pitch Wheel, refer to hardware, such as if I was referring to the Pitch Wheel on your MIDI unit. Words that are in colored text such as Read This are meant to be emphasized. Words in italics refer to aspects of OS/2. Piano is version 1.3, copyright 1994 by Jeff Glatt. Piano is freely redistributable. ═══ 2. Driver Requirements and Setup ═══ Piano requires that your MIDI interface or Sound Card has an OS/2 driver. Information sent to this driver via DosWrite() must be interpreted as MIDI data. (It would have to be a rather strange driver if it didn't interpret data in this way, but if you're using a sound card with WAVE playback in addition to a MIDI interface, it's conceivable that the Sound Card might interpret DosWrite() data to be WAVE data). You must also know your driver's internal name (which might be different than the filename of the driver). Often, this is the driver filename minus the .SYS extension. For example, I use a Roland RAP-10 audio card which has an MPU-401 compatible MIDI interface built into it. There is a shareware OS/2 driver available for the MPU-401 by the following manufacturer: Delta Music Systems 2615 Ginghamsburg-Frederick Rd. Tipp City, OH 45371 This driver's internal name is MPU401. It properly interprets DosWrite() data as MIDI data, and ships it out of any MPU-401 compatible interface. So, you can use this driver with Piano, and any card that has an MPU-401 compatible interface (in hardware, not just a software driver simulation). By default, Piano will use that driver, and so you don't have to supply it with that name. If you want Piano to use a different driver, then you must supply the name of the driver to Piano. If you run piano from an OS/2 Command Prompt, then simply type the name of your driver as an argument. If you run Piano from a Desktop icon, open up the Settings menu for that program. In the Parameters field, type the name of your driver. Now whenever you run Piano from the Desktop, it will use that driver. Note: Remember to omit the .SYS extension from the driver name. If Piano can't open the specified driver, it will display an error dialog box. At this point, the program will run, but it won't really do anything. Note: Piano is not an MMPM app. It doesn't use MMPM drivers. It only uses drivers that follow the same scheme as the DMS driver. Tell IBM to fix up their Physical Device Driver model so that it isn't an archaic 16-bit thing harking back to the days of MS-DOS 2.0's driver scheme, and maybe I'll do something with MMPM drivers. ═══ 3. Options ═══ When starting Piano, there are a number of optional parameters that can be specified. If running Piano from a Command Prompt Window, then add the parameters to the command line. If running Piano from a Presentation Manager Object (ie, icon), then open up the Settings menu for that object, and in the Parameters field, type the desired options (ie, where you also put the driver name). Now whenever you run Piano from the Desktop, it will use those options. You could even create several program objects (by copying the Program object in OS/2's Template folder), and give each one different options tailored for various MIDI devices (and also give each object a unique name). For example, to specify the driver MPU401 with channel 7: MPU401 /C7 If not using the Delta Music Systems driver, then specify the /N option. This will cause Piano to skip some MPU-401 initialization code for that driver. For example, to use a driver called "RAP10", skipping initialization. RAP10 /N Some sound cards, such as the RAP-10, have a built-in General MIDI (GM) sound module. The module will not play MIDI messages sent to it until it receives a "Turn GM Sound On" MIDI System Exclusive Message (although the card may still pass MIDI messages on to its MIDI OUT jack). Initially, Piano will send such a MIDI message unless you specify the /G option. This will prevent Piano from turning on the GM Sound Module (if you desire) of a card that supports this MIDI message. By default, Piano starts with only MIDI channel 1 selected. You can override this, and specify which MIDI channel(s) that Piano should select upon startup. You specify the /C option, and then follow this with the desired MIDI channels to select, each separated by a comma. For example, to select channels 3 and 4 initially: /C3,4 By default, Piano starts with mouse button 2 emulating a Hold Pedal. You can specify a different controller for mouse button 2 to emulate via the /B2 option. Follow the option with a comma, and then the new controller number (in decimal). For example, to specify the Hold2 Pedal Controller (ie, 69) for mouse button 2: /B2,69 By default, Piano starts with mouse button 3 emulating a Portamento On/Off switch. You can specify a different controller for mouse button 3 to emulate via the /B3 option. Follow the option with a comma, and then the new controller number (in decimal). For example, to specify the Data Increment (Button) Controller (ie, 96) for mouse button 3: /B3,96 By default, Piano starts with the "Effect" slider (ie, 2nd slider from the top of the window) set to send Effects Level Controller (#91). You can specify a different controller for this slider via the /B1 option. Follow the option with a comma, and then the new controller number (in decimal). For example, to specify the Breath (ie, Wind) Coarse Controller (ie, 2) for this slider: /B1,2 Initially, Piano also sends out All Notes Off and Reset Controllers MIDI messages on the selected MIDI channels. On MIDI devices that acknowledge these messages, this turns off any sounding notes, and usually resets the Pitch Wheel to center, the MOD wheel to 0 (ie, off), releases the Hold Pedal, turns off any Pressure or Aftertouch effects, and may reset other controllers. (Check your device's MIDI implementation chart for its response to the Reset Controllers MIDI message). If you don't want Piano to send these messages initially, then specify the /Z option. If you specify this option, note that the state of Piano's sliders and Program may not reflect the true state of the MIDI device. Of course, you can always press Piano's Reset button to force the MIDI device to be set to the state of Piano's sliders and buttons, but this also sets the sliders to default values as well as turning off the controllers associated with Mouse 2 and Mouse 3. Note: You can specify options (and the driver name) in any order. For options that require additional text, such as the /M option, you must not leave blank spaces between the option and additional text. ═══ 4. MultiTimbral Modules ═══ Some MIDI modules are "multi-timbral". This means that the module can listen to all 16 MIDI channels, and play any 16 of its "patches" simultaneously, with each of the 16 patches set to a different MIDI channel. It's as if the module had 16 smaller modules inside of it, with each being able to play a patch on its own MIDI channel. So is there a name for these 16 "sub-modules" inside of your MIDI module? Well, different manufacturers refer to them in different ways, and I'm going to use the Roland preference, a Part. A Roland multi-timbral module has 16 Parts inside of it, and each usually has its own settings for such things as Volume, Panning, Reverb and Chorus levels, Brightness, and its MIDI channel (ie, which MIDI data the Part "plays"). Furthermore, each Part has its own way of reacting to MIDI data such as Channel Pressure (often used to adjust volume or brightness), MOD Wheel controller (often used for a vibrato effect), and Pitch Wheel (used to slide the pitch up and down). For example, one Part can cause its patch to sound brighter when it receives Channel Pressure messages that increase in value. On the other hand, another Part could make its volume increase when it receives increasing Channel Pressure messages. These Parts are completely independent of each other. Just because one Part is receiving a Pitch Wheel message and bending its pitch doesn't mean that another Part has to do the same. ═══ 5. General MIDI Standard ═══ Nowadays, most MIDI modules have specific Patches setup in a specific order according to a standard known as General MIDI (or GM). All this means is that on every GM module, a Piano patch must be the very first patch. Patch #49 must be a Flute. Patch #25 must be a Nylon String Guitar. Etc. There are 128 defined patches that a GM module must have, in the proper order. Note: When you drop down the list box for Piano's Program, you'll see all 128 GM Patch names. Furthermore, all patches must sound a middle C when receiving a MIDI note number of 60. This corresponds to setting the QWERTY Octave to 6 and pressing the z key. If the GM module also has a built-in "drum module" (ie, usually one of 16 Parts), then each of that Drum Part's MIDI notes triggers a different drum sound. Particular drum sounds are assigned to particular MIDI note numbers. For example, a Closed HiHat sound is set to note number 42. The Drum Part is usually set to receive MIDI data on channel 10, and some devices with a built-in drum module have this module permanently set to MIDI channel 10. Note: The QWERTY keyboard counts its octaves from 1. Most MIDI devices count their octaves from -2. What this means is that, to play the Snare 1 sound, which is a D2 (ie, a D note in octave 2), set the QWERTY keyboard to octave 4 (ie, 2 octaves higher than written) and play the z key (ie, a D note). ═══ 6. Piano Window ═══ When run, Piano opens a Presentation Manager window that has a number of controls that you can operate to do 2 things: 1. Setup how the QWERTY (computer) keyboard operates. These controls don't change settings on your MIDI modules, but rather, affect how your computer controls those modules. In other words, if your computer was a real MIDI controller, it would need some means of setting itself to a particular MIDI channel(s), and perhaps offer features such as being able to transpose its "piano keyboard" (if it were a keyboard controller), etc. These controls setup the controller, rather than the external modules that are slaved to the controller. 2. Directly generate MIDI events with sliders, buttons, and the QWERTY keyboard. These MIDI events are what control and change settings on the external modules. You exit Piano by selecting Close from its System Menu, or double-clicking on the window upper left corner icon. ═══ 6.1. QWERTY Keyboard ═══ The QWERTY keyboard is just the bottom 2 rows of your computer keyboard, which are setup as if they were the black and white keys on a piano keyboard. The z key corresponds to a D note. Therefore, the x key next to it would correspond to a E note. You'll note that the s key is above and inbetween the z and x keys. As you might expect, this would be a D# key. The left SHIFT key is the C key. This physical piano keyboard extends all of the way up to the right SHIFT key which represents a high G. In other words, it has an octave and a half range. When you press down one of these keys, it sends a MIDI Note On message to your MIDI interface on each of the MIDI channels that you have selected. The net result is that it will play this one note on each sound module that is assigned to one of those selected MIDI channels. Note: By default, the QWERTY keyboard is set to output MIDI data on only MIDI Channel 1 (unless you specify the /C option when starting Piano). If your external module allows you to set its MIDI channel, make sure that it is set to the same channel as the QWERTY keyboard (or vice versa). You can even press down several keys simultaneously and play a chord. For example, press the left SHIFT, x, and v keys simultaneously to hear a C Major chord. When you release the keys, the QWERTY keyboard sends the appropriate Note Off messages to your MIDI interface on each of the selected MIDI channels. You'll notice that there is a picture of a piano keyboard in the QWERTY window. You can move the mouse pointer over one of the keys on this graphical piano, and click the mouse button 1 to sound that note (ie, in lieu of using the computer keyboard). When you release the mouse button, the note stops playing. (ie, A Note Off is sent). There is a checkbox for each of the 16 MIDI Channels. Make sure that a channel's box is checked if you want the QWERTY keyboard to output upon that channel. You can check as many of those channels as desired, and the QWERTY keyboard will broadcast its notes on all of those channels simultaneously. Because the QWERTY keyboard is "multi-channel", it allows you to play any combination of sound modules (set to various MIDI channels), at any time. So, you could use the QWERTY keyboard to easily play all of your MIDI modules or check the setup of those modules. Note: You must have at least one channel selected in order for any MIDI messages to be sent. By default, the left SHIFT key is middle C, but you can change the octave that the QWERTY keyboard plays within by using the Octave spin button. Click on either the up or down arrows to increment/decrement the octave, or click into the text field, type the desired octave (1 to 10), and press ENTER. If you ever get any "stuck" notes, use the All Notes Off button to turn them off. If you really get into big trouble with stuck notes, and odd controller settings, click on the Reset button. By default, MIDI Note On messages are sent with a velocity of 127 (ie, the highest possible velocity). Generally, velocity is used to set the volume on a per note basis, although some modules can use velocity for other effects such as adjust attack time of a voltage controlled generator (VCA). Your computer keyboard does not generate velocity information (which is how fast you press and release the keys). Piano allows you to set the QWERTY keyboard to one of 12 preset velocity ranges. The 12 Function keys represent those 12 levels, with function key 12 being full velocity (ie, 127). So, you can change the velocity while you're playing by pressing the function keys. ═══ 6.2. MIDI (Mouse) Buttons and Effect Slider ═══ Mouse button 1 is always used to play the graphical piano, or manipulate Piano's window and controls. By default, mouse button 2 simulates a Hold Pedal, and sends MIDI Hold Pedal Controller messages. When you push the button down (and hold it down), the hold pedal is on. When you release the button, the hold pedal is also released. In other words, this is a "momentary pedal" because it's only on while you hold the button down. You can specify a different controller for mouse button 2 to emulate by using the Mouse 2 control. See the Mouse 2 section for details. By default, mouse button 3 simulates a Portamento On/Off switch, and sends MIDI Portamento On/Off Controller messages. When you push the button down, Portamento is toggled on or off (ie, if it was previously off, it's now on, and vice versa). This is not a momentary pedal because, when you toggle it on, it stays on until you press mouse button 3 again (at which time it is toggled off). When the switch is "on", an asterisk appears next to the controller name selected for Mouse 3. If the switch is off, there is no asterisk. You can specify a different controller for mouse button 3 to emulate by using the Mouse 3 control. See the Mouse 3 section for details. By default, the "Effect" slider (ie, 2nd slider from the top of the window) sends MIDI Effects Level Controller (#91). Various MIDI devices may interpret this in different ways (if at all). For example, Roland devices that have a built-in reverb unit often use this for the reverb level. You can specify a different controller for this slider by typing the desired Controller number (in decimal) or Controller name into the entry field next to the slider, or dropping down the list of defined Controller names and selecting one. Mouse button 2 is good for emulating controllers that normally are associated with momentary Pedals, such as Hold, Hold2, Soft, and Sustenuto pedals, whereas button 3 is good for controllers normally associated with Foot Switches, such as Data +/-, Portamento On/Off, Local keyboard On/Off, etc. The "Effect" slider is suited for continuous MIDI controllers; controllers that have more than just an "on" and "off" state, such as Breath controller, Mod wheel, Foot pedal, PTme (Portamento time), etc. Any continuous controller has both a coarse and fine controller number. For example, there is a controller number (10) that adjusts the Pan Position in coarse amounts. It offers 128 "coarse" Pan positions. There is another controller number (42) that adjusts Pan in fine increments. It offers 128 "fine" increments in between two, consecutive coarse settings. So, you could use the Pan coarse controller to set a sound to one of the 128 coarse positions, and then use the Pan fine controller to adjust the Pan to one of the 128 fine increments that fall between the current coarse position and the next coarse position. Some MIDI devices only respond to the coarse controllers and do not implement the fine controllers (ie, for example, a device may only implement the 128 coarse pan positions, and allow no fine adjustments to those). In Piano's drop down list of defined controllers, an H at the end of the name refers to coarse (ie, high resolution) controller, and an L refers to fine (ie, low resolution) controller. ═══ 6.3. MIDI Sliders ═══ As mentioned, Piano generates MIDI Note On and Note Off messages on the selected MIDI channels when you play the QWERTY keyboard. Virtually all MIDI modules respond to these messages. But, there are many more types of MIDI messages that Piano can generate and send to your MIDI module. The sliders on the left side of the window generate some of these different types of MIDI messages. Note: Not all MIDI sound modules respond to all of these types of MIDI messages. In particular, old and very cheap equipment may not respond to any of these messages. If you get a response to the QWERTY keyboard (ie, the MIDI module makes some sound), but a particular slider doesn't seem to be having any effect, then you're probably dealing with such limited equipment. On the other hand, sophisticated gear often allows you to turn on/off the module's response to these types of messages, so check your unit's setup. You operate a slider by "grabbing" its knob with mouse button 1 and moving it to a new position. You have to "let go" (ie, release the mouse button) before Piano sends out any MIDI message (and you perhaps hear the result on your MIDI sound module). Alternately, if you want to increment/decrement the knob's position, move the mouse pointer inside of the slider's shaft, but not on top of the knob itself (ie, to either side of the knob), and click the mouse button 1 once. If you're to the left of the knob, it will decrement by 1 position, and a MIDI message will be sent. If you're to the right of the knob, it will increment by 1 position, and a MIDI message will be sent. Note: Each slider has a small arrow above it. (The arrow may be in different positions on different sliders). This arrow marks the default position of the slider. If you want to quickly set the slider to this default position, click on that arrow, and the knob will move to that position, and send out an appropriate MIDI message. This is very handy for such things as Pan and Pitch since the default is to center the Pan and Pitch wheel. Note that when Piano is first started or when you change the MIDI channel checkboxes, the settings shown for the sliders may not reflect the actual state of your external MIDI modules. You could click on a default arrow in order to send a slider's setting to your module, or use the Reset button. You can hold down a key on the QWERTY keyboard to sound a note on your external module. Then, without releasing the key (ie, so that the note on the external module is still sounding), you can operate a slider. If your external unit responds to such a MIDI message while sounding a note, then you will hear the result on the currently sounding note. In fact, that's really how AfterTouch and Channel Pressure are meant to be applied. Some modules won't make changes to any already sounding notes, so you'll have to release the note and play it again in order to hear the results of moving a slider. You don't have to be playing a note when you move a slider. You can simply move the slider, and then play a note to hear the result. It's just that moving a slider while listening to a note sounding can give you a much clearer sonic idea of what that slider is doing to the sound (assuming that your module responds to the slider's MIDI messages). Note: Remember that if you "grab and move" the slider's knob with the mouse, you must eventually "let go" of the knob in order for Piano to send any MIDI message. Some modules use AfterTouch and Channel Pressure to affect the Brightness of the sound (ie, Filter cutoff), or Volume, or some other such parameter. Normally, AfterTouch and Channel Pressure are generated by pressing harder and softer on the piano keyboard while you're holding down a note. Obviously, your computer's keyboard doesn't generate AfterTouch and Channel Pressure. If you press down harder, you'll only break it. So, when you release notes after having adjusted the AfterTouch or Pressure sliders, you may wish to click on the respective default arrow to turn the effect off (which is what would happen as you released the keys on a real controller). If you're adjusting the AfterTouch slider, you should only play one note at a time, and reset AfterTouch to default upon releasing each note, since AfterTouch only works on the last key that you've played (ie, Piano doesn't fully implement Aftertouch). The Reset button also resets AfterTouch and Channel Pressure (as well as the other sliders). ═══ 6.4. Controls ═══ What follows is a description of the controls in the Piano window; what they control, and additional notes about any MIDI information that they send. ═══ 6.4.1. Program ═══ Affects Which one of its Patches, Presets, or Instruments the MIDI module will play. If the module is a MultiTimbral unit, then it usually can play 16 "Parts" at once, each receiving data upon its own MIDI channel. This changes all Parts (which are set to one of the selected MIDI channels) to use that one chosen GM Patch. Note: If a module's Part receives a Program Change message on the channel to which it is assigned, then its Patch will change to the program number embedded in that message. For example, assume that a Part is set to MIDI channel 1, and its Patch is set to Grand Piano. If a Program Change message with a program number of 41 is sent on MIDI channel 1, then the Part will switch to the Violin (ie, which is GM Patch #41). A Program Change can be sent while the Part is playing -- even while the Part is playing some Grand Piano notes. The Part will simply play subsequent MIDI notes using the new Patch. Range One of the 128 GM Patches. You pick out which one from the list box (by clicking on it), or type in the desired Patch name and press the ENTER key. If you prefer to deal with numbers, especially if you're dealing with a non-GM MIDI device, you can instead type in the desired Patch number (where 1 is the first Patch) and press the ENTER key. In this case, Piano will always display the respective GM Patch name. If you type in the Patch name, you may enter only as many characters as are needed for Piano to find a matching name. For example, if you type "Gran" (or "Piano") and press ENTER, then Piano will match this as "Grand Piano". If you type "harp" and press ENTER, Piano will match this with "Harpsichord" (since that comes before "Harp"). Note: It doesn't matter whether you type the name in upper or lower case. ═══ 6.4.2. Pan ═══ Affects Where within the stereo field the module will be placed. If the module is a MultiTimbral unit, then each one of its Parts usually has its own pan position. This changes the pan of all Parts assigned to one of the selected MIDI channels. Note: If the Part receives a Pan Controller message on the channel to which it is assigned, then its pan will change to the value embedded in that message. For example, assume that a Part is set to MIDI channel 1, and is panned hard left. If a Pan Controller message with a value of 64 (ie, center) is sent on MIDI channel 1, then the Part's sound will switch to center position. A Pan Controller can be sent while the Part is playing -- even while the Part is playing some notes. The Part will simply play with a new pan position. Range 128 possible positions, with 0 being hard left, 64 being center, and 127 being hard right. You must center the slider's knob for center pan (ie, where the default arrow is), and moving the knob to the left or right pans in those directions respectively. (This is the coarse controller for Pan). ═══ 6.4.3. Chorus ═══ Affects The chorus effect amount (ie, level) for the module. If the module is a MultiTimbral unit, then each one of its Parts usually has its own chorus level. This changes the chorus level of all Parts assigned to one of the selected MIDI channels. Note: If the Part receives a Chorus Controller message on the channel to which it is assigned, then its Chorus Level will change to the value embedded in that message. For example, assume that a Part is set to MIDI channel 1, and has a Chorus Level of 64. If a Chorus Controller message with a value of 0 is sent on MIDI channel 1, then the Part will switch to having no chorus (ie, chorus level=0). A Chorus Controller can be sent while the Part is playing -- even while the Part is playing some notes. The Part will simply play with a new chorus effect level. Range 0 to 127, with 0 being no chorus effect applied at all. Moving the fader all the way to the left gives a chorus level of 0. ═══ 6.4.4. Volume ═══ Affects The MIDI module's volume. If the module is a MultiTimbral unit, then each one of its Parts usually has its own volume. This changes the volumes of all Parts assigned to one of the selected MIDI channels. Note: If a Part receives a Volume Controller message on the channel to which it is assigned, then its Volume will change to the value embedded in that message. For example, assume that a Part is set to MIDI channel 1, and has a Volume of 127. If a Volume Controller message with a value of 64 is sent on MIDI channel 1, then the Part's volume will drop by half. A Volume Controller can be sent while the Part is playing -- even while the Part is playing some notes. The Part will simply play with a new Volume. Range 0 to 127, with 0 being no volume at all. Moving the fader all the way to the left gives a volume of 0. (This is the coarse controller for volume). ═══ 6.4.5. MOD Wheel ═══ Affects Sends MOD Wheel messages to the MIDI module. If the module is a MultiTimbral unit, then each one of its Parts may respond differently (or not at all) to MOD Wheel. This sends a MOD Wheel message to all Parts assigned to one of the selected MIDI channels. Note: If a Part receives a MOD Wheel Controller message on the channel to which it is assigned, then it may or may not do something depending upon how the Part is set to respond to this message. Usually, MOD Wheel introduces some sort of vibrato effect. For example, assume that a Part is set to MIDI channel 1. If a MOD Wheel Controller message with a value of 64 is sent on MIDI channel 1, then a medium vibrato effect may be applied to the Part's sound. A MOD Wheel Controller can be sent while the Part is playing -- even while the Part is playing some notes. A vibrato effect will simply be applied to any sounding notes. Range 0 to 127, with 0 being no modulation. (This is the coarse controller for MOD wheel). ═══ 6.4.6. Pitch Wheel ═══ Affects Sends Pitch Wheel messages to the MIDI module. If the module is a MultiTimbral unit, then each one of its Parts may or may not respond to Pitch Wheel. This sends a Pitch Wheel message to all Parts assigned to one of the selected MIDI channels. Note: If a Part receives a Pitch Wheel message on the channel to which it is assigned, then it may or may shift its pitch up/down depending upon whether the Part is set to respond to this message. A value of 64 (MSB only) is centered pitch, and values below that shift the pitch downward, whereas values above shift the pitch upward. For example, assume that a Part is set to MIDI channel 1. If a Pitch Wheel message with a value of 95 (MSB only) is sent on MIDI channel 1, then the pitch shifts upward. A Pitch Wheel can be sent while the Part is playing -- even while the Part is playing some notes. The pitch will simply shift accordingly. Range 0 to 127, with 64 being no pitch shift (ie, center position). Note: Piano only sends the MSB of Pitch Wheel. In other words, its a coarse adjustment only. ═══ 6.4.7. Pressure ═══ Affects Sends Channel Pressure messages to the MIDI module. If the module is a MultiTimbral unit, then each one of its Parts may respond differently (or not at all) to Channel Pressure. This sends a Channel Pressure message to all Parts assigned to one of the selected MIDI channels. Note: If a Part receives a Channel Pressure message on the channel to which it is assigned, then it may or may not do something depending upon how the Part is set to respond to this message. Usually, Channel Pressure adjusts the brightness (ie, filter cutoff), the volume, and/or introduces some sort of vibrato effect. For example, assume that a Part is set to MIDI channel 1. If a Channel Pressure message with a value of 64 is sent on MIDI channel 1, then a medium vibrato effect may be applied to the Part's sound. Channel Pressure can be sent while the Part is playing -- even while the Part is playing some notes. Some effect will simply be applied to any sounding notes. Indeed, Channel Pressure is usually generated by pressing harder or softer on the keys while holding them down (ie, so you are playing some notes). So, Channel Pressure is meant to affect sounding notes in some way. Range 0 to 127, with 0 being no channel pressure (ie, off). ═══ 6.4.8. AfterTouch ═══ Affects Sends AfterTouch messages (sometimes referred to as Key Pressure) to the MIDI module. If the module is a MultiTimbral unit, then each one of its Parts may respond differently (or not at all) to these messages. This sends an AfterTouch message to all Parts assigned to one of the selected MIDI channels. Note: If a Part receives an AfterTouch message on the channel to which it is assigned, then it may or may not do something depending upon how the Part is set to respond to this message. Usually, AfterTouch adjusts the brightness (ie, filter cutoff), the volume, and/or introduces some sort of vibrato effect. For example, assume that a Part is set to MIDI channel 1. If an AfterTouch message with a value of 64 is sent on MIDI channel 1, then a medium vibrato effect may be applied one of the Part's sounding notes. AfterTouch can be sent while the Part is playing -- even while the Part is playing some notes. Some effect will simply be applied to the note corresponding to the message. Indeed, AfterTouch is usually generated by pressing harder or softer on a key while holding it down (ie, so you are playing a note). So, AfterTouch is meant to affect a sounding note in some way. What's the difference between AfterTouch and Channel Pressure? Well, AfterTouch messages are for individual keys. Every key that you press down generates its own AfterTouch messages. If you press on one key harder than another, then the one key will generate AfterTouch messages with higher values than the other key. The net result is that some effect will be applied to the one key more than the other key. You have individual control over each key that you play. With Channel Pressure, one message is sent out for the entire keyboard. So, if you press one key harder than another, the module will average out the difference, and then just pretend that you're pressing both keys with the exact same pressure. The net result is that some effect gets applied to all sounding keys evenly. You don't have individual control per each key. A controller would use either Channel Pressure or AfterTouch, but usually not both. Most MIDI controllers don't generate AfterTouch because the circuitry required is a bit too costly. Piano's QWERTY keyboard is no exception. (Hey, you got it free. What do you expect?). It only generates AfterTouch messages for the last key that you play. If you play a chord, only one of the notes gets the AfterTouch effect when you move the slider (ie, the last one that you pressed down). Ideally, there should be AfterTouch messages happening for each key being held down, but that's irrelevant here because your computer keyboard doesn't have some way of detecting pressure for each key, and it would be impractical to be adjusting an AfterTouch slider for every key that you hold down. You should avoid playing chords while adjusting the AfterTouch slider. If you do, you may need to Reset in order to clear aftertouch from all of the keys that you played. Range 0 to 127, with 0 being no aftertouch (ie, off). ═══ 6.4.9. Effect ═══ Affects This slider can be set to emulate any one of the 128 possible MIDI controllers. By default, it emulates the effects level for the module. If the module is a MultiTimbral unit, then each one of its Parts usually has its own effects level. This changes the effects level of all Parts assigned to one of the selected MIDI channels. Various MIDI devices may respond to effects controller differently (if at all). Some Roland devices with a built-in reverb unit, use Effects controller to set the reverb amount. Note: If the Part receives a MIDI Effects Controller message on the channel to which it is assigned, and the device uses that to adjust reverb amount, then its Reverb Level will change to the value embedded in that message. For example, assume that a Part is set to MIDI channel 1, and has a Reverb Level of 64. If an Effects Controller message with a value of 0 is sent on MIDI channel 1, then the Part will switch to having no reverb (ie, reverb level=0). An Effects Controller can be sent while the Part is playing -- even while the Part is playing some notes. The Part will simply play with a new reverb level. When you select a new controller for the Effect slider, this new controller is initially set to whatever value the slider is set to (ie, if the slider is all of the way to the right, then the controller's value is set to 127). Range 0 to 127, with 0 being no effects applied at all. Moving the fader all the way to the left gives an effects level of 0. ═══ 6.4.10. All Notes Off ═══ Affects This button sends Note Off messages to the MIDI module for any notes that Piano thinks are still "on". Due to the way that Presentation Manager works, it's possible for Piano to not "see" a mouse button up message (ie, some other app may get it). Clicking on this button forces Piano to turn off all notes that it played and didn't turn off even though you may no longer be pressing the mouse button over the graphical piano, or holding down a key on the computer. Piano also sends All Notes Off Controller and All Sound Off Controller messages on the MIDI channels that you have selected, as an extra precaution to turn off any "stuck notes". See the remarks about such in the Reset description. ═══ 6.4.11. Reset ═══ Affects This is a more drastic reset than the All Notes Off button. The latter button only turns off notes. This button also resets various controllers to default values, and resets the Program on the MIDI channels that you have selected. This button sends All Notes Off Controller, All Sound Off Controller, and Reset Controllers messages on all 16 MIDI channels. Note that some older or cheap MIDI gear does not implement some of these special controller messages. (ie, On some gear, you have to send an individual MIDI Note Off message for each note that you wish turned off. This is an archaic and slow way of turning off "stuck notes". Piano doesn't bother with that. Likewise, some gear doesn't implement Reset Controllers, and wants individual controller messages for each controller that you wish to reset. Piano does initialize the MIDI parameters associated with the 8 sliders (ie, Volume, MOD, PITCH, etc) as well as the Mouse 2 and Mouse 3 controllers regardless of whether a device understands the Reset Controllers message, but other controllers may not be reset. You'll have to reset those manually. Piano resets the sliders to default values, and turns off the controllers for Mouse 2 and Mouse 3. Finally, this button causes the Program to be changed on all of the selected MIDI channels, to that program displayed in Piano's Program control. ═══ 6.4.12. Octave ═══ Affects The note range that the QWERTY piano (and graphical piano) plays back. In other words, this transposes Piano's note range an octave at a time. Note: The QWERTY keyboard counts its octaves from 1. Most MIDI devices count their octaves from -2. What this means is that, to play a middle C (MIDI note number 60), set Octave to 4 and play the z key (ie, a C note) or click on the leftmost C of the graphical piano. ═══ 6.4.13. Mouse 2 ═══ Affects The controller that is sent (on the selected MIDI channels) every time that you press and release mouse button 2. You can choose any one of the possible 128 MIDI Controllers. 48 of these 128 Controllers are defined for specific purposes, and have "names". If you drop down the list box for Mouse 2, you'll see those defined controller names. You can choose one of these (by clicking on the name, or typing the name), or you can type in the desired controller number (from 0 to 127 decimal). If you type in the Controller name, you may enter only as many characters as are needed for Piano to find a matching name. For example, if you type "Por" and press ENTER, then Piano will match this as "Porta" (ie, Portamento On/Off). If you type "Mod" and press ENTER, Piano will match this with "Mod H" (since that comes before "Mod L"). It doesn't matter whether you type the name in upper or lower case. When you select a new controller for Mouse 2, this new controller is initially set to 0 (ie, turned off). Note: Consult my OS/2 online book, "The MIDI Book" for descriptions of all the defined MIDI controllers. ═══ 6.4.14. Mouse 3 ═══ Affects The controller that is sent (on the selected MIDI channels) every time that you press mouse button 3. You can choose any one of the possible 128 MIDI Controllers. 48 of these 128 Controllers are defined for specific purposes, and have "names". If you drop down the list box for Mouse 3, you'll see those defined controller names. You can choose one of these (by clicking on the name, or typing the name), or you can type in the desired controller number (from 0 to 127 decimal). If you type in the Controller name, you may enter only as many characters as are needed for Piano to find a matching name. For example, if you type "Por" and press ENTER, then Piano will match this as "Porta" (ie, Portamento On/Off). If you type "Mod" and press ENTER, Piano will match this with "Mod H" (since that comes before "Mod L"). It doesn't matter whether you type the name in upper or lower case. When you select a new controller for Mouse 3, this new controller is initially set to 0 (ie, turned off). Note: Consult my OS/2 online book, "The MIDI Book" for descriptions of all the defined MIDI controllers.