home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Educate / Educate.zip / piano17.zip / piano.INF (.txt) < prev   
OS/2 Help File  |  1995-09-22  |  48KB  |  1,171 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4.                                       Piano
  5.  
  6. Please read this document in entirety.  I took the time to make it explicit, 
  7. clear, and very useful.  It took me longer to write it than it will ever take 
  8. you to read it.  Therefore, you owe it to both of us to read it.  OK? 
  9.  
  10. Piano is a Presentation Manager program (for OS/2 2.x) that turns your computer 
  11. into a MIDI controller.  In other words, it allows you to play notes on 
  12. external MIDI sound modules from your computer's keyboard and mouse via a MIDI 
  13. Interface.  If you have a sound card with a built-in sound module that is 
  14. triggered via MIDI notes (such as a Turtle Beach MultiSound or Roland RAP-10, 
  15. SCC-1, or other such cards, with appropriate OS/2 driver), then you can play 
  16. those like musical instruments as well.  Piano also allows you to generate many 
  17. other types of MIDI data such as Volume, Pan, Effects Level, Chorus Level, 
  18. Pitch Wheel, Modulation Wheel, AfterTouch (Key Pressure), and Channel Pressure 
  19. so that if your MIDI sound module supports these MIDI messages, you can control 
  20. the module appropriately. 
  21.  
  22.  
  23. Some of the words in this manual are highlighted in bold text, such as Program 
  24. Change.  These are words that refer to controls (ie, buttons, sliders, 
  25. checkboxes) which you manipulate in Piano's window.  Other words are in colored 
  26. text such as Channel Pressure.  These refer to MIDI messages (ie, data). 
  27. Underlined words, such as Pitch Wheel, refer to hardware, such as if I was 
  28. referring to the Pitch Wheel on your MIDI unit.  Words that are in colored text 
  29. such as Read This are meant to be emphasized.  Words in italics refer to 
  30. aspects of OS/2. 
  31.  
  32. This is version 1.6. 
  33.  
  34.  
  35. ΓòÉΓòÉΓòÉ 2. Copyright ΓòÉΓòÉΓòÉ
  36.  
  37. This OS/2 Online Book and the related files PIANO.EXE and GENMIDI.DLL are all 
  38. copyright 1995 by Jeff Glatt.  These files are freely redistributable, and may 
  39. be used by and distributed along with any software, be it commercial or 
  40. otherwise, provided that these files are not internally modified, nor 
  41. specifically sold as a complete product by themselves.  The only price that you 
  42. have to pay is the one that you're already paying by spending all of your time 
  43. in front of a computer instead of developing healthier outlets. 
  44.  
  45. NOT SO STANDARD DISCLAIMER: 
  46.  
  47. These programs are provided "as is" without warranty of any kind either 
  48. expressed or implied or tatooed in a place that only a few people have ever 
  49. seen, including but not limited to the implied warranties of merchantability, 
  50. fitness for a particular purpose, and the dubious assumption that the software 
  51. has been created by a sane individual who would never do anything that may hurt 
  52. you. The entire risk as to the results and performance of the programs is 
  53. assumed by you or someone who looks exactly like you.  Jeff Glatt does not 
  54. guarantee that the functions in these programs will meet your requirements, 
  55. especially if your requirements involve lots of latex and some docile, 
  56. domesticated animal.  Nor does Jeff Glatt warranty the programs to be 
  57. uninterruptable or error-free, although mercifully free of "General Protection 
  58. Faults".  If you use said programs, you can not say anything nasty about the 
  59. author, even if the programs inadvertently cause the erasure of your collection 
  60. of X-rated GIFs of a conservative, overweight and overrated TV "personality" 
  61. plooking himself vigorously with his royalty checks from some rancid paperback. 
  62. Jeff Glatt is not responsible for any damages as a result of anything that he 
  63. has done, or hasn't done, or was supposed to do but never got around to it, and 
  64. furthermore, he doesn't even care so leave him alone, ratface.  You may have 
  65. more or less protections in certain states of the union, depending upon how far 
  66. your local politician is willing to bend over for some bribe from a business 
  67. lobbyist.  Just remember that Jeff Glatt has no money, so don't bother suing 
  68. him as a result of any damages caused by this OS/2 program.  Tell your greasy 
  69. lawyer to go after IBM, and make sure that you pick 12 really stupid pinheads 
  70. for the jury.  If swallowed, induce vomiting immediately by contemplating the 
  71. asthetics of Microsoft Windows. 
  72.  
  73. OS/2 is a trademark of International Business Machines Corporation. 
  74.  
  75. Windows is a trademark of Microsoft Incorporated, and furthermore, Bill Gates 
  76. is to blame for it. 
  77.  
  78. If you have unreasonably presumptuous suggestions (ie, an enduser who expects 
  79. outrageous amounts of free support), snide comments, criticisms, and anything 
  80. else other than dollar bills, then send them to someone else because you got it 
  81. for free, and you know what you get for nothing?  On the other hand, any type 
  82. of positive contribution from other programmers is very much welcome and 
  83. encouraged as these are the only folks who can made things happen for OS/2. 
  84. IBM ain't gonna do it.  If you do need to contact the author, then either phone 
  85. some of the more prominent psychiatrict clinics in central New York state, or 
  86. try this: 
  87.  
  88. Jeff Glatt 
  89. 6 Sycamore Drive East 
  90. New Hartford, NY 13413 
  91. (315) 735-5350 
  92.  
  93. Sure, this copyright notice has attitude.  Get used to it, or kill yourself. 
  94.  
  95.  
  96. ΓòÉΓòÉΓòÉ 3. Driver Requirements and Setup ΓòÉΓòÉΓòÉ
  97.  
  98. Of course, your computer needs some sort of MIDI interface card (ie, with MIDI 
  99. IN and OUT jacks) to connect the computer to the MIDI unit.  Many Sound Cards 
  100. offer the option of attaching a "box" with MIDI connectors to the card's 
  101. joystick port.  This is the same thing as having a separate card that just does 
  102. MIDI input and output. 
  103.  
  104. Piano requires that your MIDI interface or Sound Card has an OS/2 driver 
  105. compatible with MPUDEV.SYS (included).  Information sent to this driver via 
  106. DosWrite() must be interpreted as outgoing MIDI data (without any timestamp). 
  107.  
  108. Note:  Piano does not use MMPM.  An MMPM driver will not work with Piano.  MMPM 
  109.        is going to die a horrible death anyway due to lack of useful support, 
  110.        as well as IBM introducing a new protocol.  You may as well get your 
  111.        shovel and bury MMPM right now.  Piano probably also doesn't support 
  112.        IBM's "Realtime MIDI subsystem".  I wouldn't know.  I didn't look at it, 
  113.        and I don't intend to buy $300 worth of CD-ROMs in order to find out 
  114.        that it may not be for me anyway, plus I'm not too keen upon tying my 
  115.        stuff to an "IBM MIDI subsystem" given IBM's disinterest in pursuing 
  116.        vertical markets like the music market to the extent that Microsoft 
  117.        does.  Who's to say that IBM won't traipse off with the development and 
  118.        promotion budget, fawning after their big buck corporate client 
  119.        accounts, and we won't end up with another OS/2 item of "secondary 
  120.        importance" like MMPM on our hands?
  121.  
  122. You must also know your driver's internal name (which might be different than 
  123. the filename of the driver).  Often, this is the driver filename minus the .SYS 
  124. extension. 
  125.  
  126. If you own an MPU-401, or some card that has an MPU-401 compatible interface 
  127. (UART mode is good enough, but it must be actual hardware compatibility, not 
  128. just some TSR software driver emulation such as what you get with cheesy sound 
  129. cards), such as an SCC-1, RAP-10, MusicQuest MQX-16 or MQX-32, etc, then you 
  130. can use my MPUDEV.SYS OS/2 driver.  See the documentation with that driver for 
  131. its internal name and usage, or see the Port setting. 
  132.  
  133. By default, Piano will use my MPUDEV.SYS driver (ie, the first port MPUDEV1$), 
  134. and so you don't have to supply it with that name.  If you want Piano to use a 
  135. different driver, then you must supply the name of the driver to Piano.  If you 
  136. run Piano from an OS/2 Command Prompt, then simply type the name of your driver 
  137. as an argument.  For example, to use a driver with the internal name BLORT, you 
  138. would specify BLORT. 
  139.  
  140. If you run Piano from a Desktop icon, open up the Settings menu for Piano.  In 
  141. the Parameters field, type the name of your driver.  Now whenever you run Piano 
  142. from the Desktop, it will use that driver. 
  143.  
  144. Note:  You must omit the .SYS extension from the driver name.
  145.  
  146. If Piano can't open the specified driver, it will display an error dialog box. 
  147. At this point, the program will run, but it won't really do anything until you 
  148. open a driver (ie, port). 
  149.  
  150. You may want to specify the /I switch when invoking the program if you don't 
  151. desire the card to be reset when Piano starts up.  The RAP-10's entire GM 
  152. module will be reset to default values otherwise. 
  153.  
  154. There are other startup parameters that you can pass to Piano, either by adding 
  155. them to the command line, or entering them in the Parameters field of the 
  156. Desktop icon. These will be covered later. 
  157.  
  158. Piano also requires that GENMIDI.DLL (included in this archive) be copied to 
  159. some directory along the path specified by the LIBPATH statement in your 
  160. config.sys file.  Often, placing it in the same directory to which PIANO.EXE is 
  161. copied will suffice. 
  162.  
  163.  
  164. ΓòÉΓòÉΓòÉ 4. Options ΓòÉΓòÉΓòÉ
  165.  
  166. When starting Piano, there are a number of optional parameters that can be 
  167. specified.  If running Piano from a Command Prompt Window, then add the 
  168. parameters to the command line.  If running Piano from a Presentation Manager 
  169. Object (ie, icon), then open up the Settings menu for that object, and in the 
  170. Parameters field, type the desired options (ie, where you also put the driver 
  171. name).  Now whenever you run Piano from the Desktop, it will use those options. 
  172. You could even create several program objects (by copying the Program object in 
  173. OS/2's Template folder), and give each one different options tailored for 
  174. various MIDI devices (and also give each object a unique name).  For example, 
  175. to specify the unit MPUDEV2$ with channel 7: 
  176.  
  177. MPUDEV2$ /C7 
  178.  
  179. You may want to specify the /I switch when invoking the program if you don't 
  180. desire the card to be reset when Piano starts up.  The RAP-10's entire GM 
  181. module will be reset to default values otherwise.  For example, to use a driver 
  182. called "RAP10", skipping initialization. 
  183.  
  184. RAP10 /I 
  185.  
  186. Some sound cards, such as the RAP-10, have a built-in General MIDI (GM) sound 
  187. module.  The module will not play MIDI messages sent to it until it receives a 
  188. "Turn GM Sound On" MIDI System Exclusive Message (although the card may still 
  189. pass MIDI messages on to its MIDI OUT jack).  Initially, Piano will send such a 
  190. MIDI message unless you specify the /G option.  This will prevent Piano from 
  191. turning on the GM Sound Module (if you desire) of a card that supports this 
  192. MIDI message. 
  193.  
  194. By default, Piano starts with only MIDI channel 1 selected.  You can override 
  195. this, and specify which MIDI channel(s) that Piano should select upon startup. 
  196. You specify the /C option, and then follow this with the desired MIDI channels 
  197. to select, each separated by a comma.  For example, to select channels 3 and 4 
  198. initially: 
  199.  
  200. /C3,4 
  201.  
  202. By default, Piano starts with mouse button 2 emulating a Hold Pedal.  You can 
  203. specify a different controller for mouse button 2 to emulate via the /B2 
  204. option.  Follow the option with a comma, and then the new controller number (in 
  205. decimal).  For example, to specify the Hold2 Pedal Controller (ie, 69) for 
  206. mouse button 2: 
  207.  
  208. /B2,69 
  209.  
  210. By default, Piano starts with mouse button 3 emulating a Portamento On/Off 
  211. switch.  You can specify a different controller for mouse button 3 to emulate 
  212. via the /B3 option.  Follow the option with a comma, and then the new 
  213. controller number (in decimal).  For example, to specify the Data Increment 
  214. (Button) Controller (ie, 96) for mouse button 3: 
  215.  
  216. /B3,96 
  217.  
  218. By default, Piano starts with the "Effect" slider (ie, 2nd slider from the top 
  219. of the window) set to send Effects Level Controller (#91).  You can specify a 
  220. different controller for this slider via the /B1 option.  Follow the option 
  221. with a comma, and then the new controller number (in decimal).  For example, to 
  222. specify the Breath (ie, Wind) Coarse Controller (ie, 2) for this slider: 
  223.  
  224. /B1,2 
  225.  
  226. For the mouse button 2 and 3, and "Effect" slider, you can also specify the 
  227. controller name (ie, as it appears in Piano's drop down list).  For example, 
  228. instead of controller #69, you can specify "Hold2".  If the controller name has 
  229. an imbedded space, such as "Genr 1", then enclose the option in parentheses, 
  230. such as: 
  231.  
  232. "/B1,Genr 1" 
  233.  
  234. Initially, Piano also sends out All Notes Off and Reset Controllers MIDI 
  235. messages on the selected MIDI channels.  On MIDI devices that acknowledge these 
  236. messages, this turns off any sounding notes, and usually resets the Pitch Wheel 
  237. to center, the MOD wheel to 0 (ie, off), releases the Hold Pedal, turns off any 
  238. Pressure or Aftertouch effects, and may reset other controllers.  (Check your 
  239. device's MIDI implementation chart for its response to the Reset Controllers 
  240. MIDI message).  If you don't want Piano to send these messages initially, then 
  241. specify the /Z option.  If you specify this option, note that the state of 
  242. Piano's sliders and Program may not reflect the true state of the MIDI device. 
  243. Of course, you can always press Piano's Reset button to force the MIDI device 
  244. to be set to the state of Piano's sliders and buttons, but this also sets the 
  245. sliders to default values as well as turning off the controllers associated 
  246. with Mouse 2 and Mouse 3. 
  247.  
  248. Note:  You can specify options (and the driver name) in any order.  For options 
  249.        that require additional text, such as the /C option, you must not leave 
  250.        blank spaces between the option and additional text, unless you enclose 
  251.        the entire option in quotes.
  252.  
  253.  
  254. ΓòÉΓòÉΓòÉ 5. MultiTimbral Modules ΓòÉΓòÉΓòÉ
  255.  
  256. Some MIDI modules are "multi-timbral".  This means that the module can listen 
  257. to all 16 MIDI channels, and play any 16 of its "patches" simultaneously, with 
  258. each of the 16 patches set to a different MIDI channel.  It's as if the module 
  259. had 16 smaller modules inside of it, with each being able to play a patch on 
  260. its own MIDI channel. 
  261.  
  262. So is there a name for these 16 "sub-modules" inside of your MIDI module? 
  263. Well, different manufacturers refer to them in different ways, and I'm going to 
  264. use the Roland preference, a Part.  A Roland multi-timbral module has 16 Parts 
  265. inside of it, and each usually has its own settings for such things as Volume, 
  266. Panning, Reverb and Chorus levels, Brightness, and its MIDI channel (ie, which 
  267. MIDI data the Part "plays").  Furthermore, each Part has its own way of 
  268. reacting to MIDI data such as Channel Pressure (often used to adjust volume or 
  269. brightness), MOD Wheel controller (often used for a vibrato effect), and Pitch 
  270. Wheel (used to slide the pitch up and down).  For example, one Part can cause 
  271. its patch to sound brighter when it receives Channel Pressure messages that 
  272. increase in value.  On the other hand, another Part could make its volume 
  273. increase when it receives increasing Channel Pressure messages.  These Parts 
  274. are completely independent of each other.  Just because one Part is receiving a 
  275. Pitch Wheel message and bending its pitch doesn't mean that another Part has to 
  276. do the same. 
  277.  
  278.  
  279. ΓòÉΓòÉΓòÉ 6. General MIDI Standard ΓòÉΓòÉΓòÉ
  280.  
  281. Nowadays, most MIDI modules have specific Patches setup in a specific order 
  282. according to a standard known as General MIDI (or GM).  All this means is that 
  283. on every GM module, a Piano patch must be the very first patch.  Patch #49 must 
  284. be a Flute.  Patch #25 must be a Nylon String Guitar.  Etc.  There are 128 
  285. defined patches that a GM module must have, in the proper order. 
  286.  
  287. Note:  When you drop down the list box for Piano's Program, you'll see all 128 
  288.        GM Patch names.
  289.  
  290. Furthermore, all patches must sound a middle C when receiving a MIDI note 
  291. number of 60.  This corresponds to setting the QWERTY Octave to 6 and pressing 
  292. the z key. 
  293.  
  294. If the GM module also has a built-in "drum module" (ie, usually one of 16 
  295. Parts), then each of that Drum Part's MIDI notes triggers a different drum 
  296. sound.  Particular drum sounds are assigned to particular MIDI note numbers. 
  297. For example, a Closed HiHat sound is set to note number 42.  The Drum Part is 
  298. usually set to receive MIDI data on channel 10, and some devices with a 
  299. built-in drum module have this module permanently set to MIDI channel 10. 
  300.  
  301. Note:  The QWERTY keyboard counts its octaves from 1.  Most MIDI devices count 
  302.        their octaves from -2.  What this means is that, to play the Snare 1 
  303.        sound, which is a D2 (ie, a D note in octave 2), set the QWERTY keyboard 
  304.        to octave 4 (ie, 2 octaves higher than written) and play the z key (ie, 
  305.        a D note).
  306.  
  307.  
  308. ΓòÉΓòÉΓòÉ 7. Piano Window ΓòÉΓòÉΓòÉ
  309.  
  310. When run, Piano opens a Presentation Manager window that has a number of 
  311. controls that you can operate to do 2 things: 
  312.  
  313.  1. Setup how the QWERTY (computer) keyboard operates.  These controls don't 
  314.     change settings on your MIDI modules, but rather, affect how your computer 
  315.     controls those modules.  In other words, if your computer was a real MIDI 
  316.     controller, it would need some means of setting itself to a particular MIDI 
  317.     channel(s), and perhaps offer features such as being able to transpose its 
  318.     "piano keyboard" (if it were a keyboard controller), etc.  These controls 
  319.     setup the controller, rather than the external modules that are slaved to 
  320.     the controller. 
  321.  
  322.  2. Directly generate MIDI events with sliders, buttons, and the QWERTY 
  323.     keyboard.  These MIDI events are what control and change settings on the 
  324.     external modules. 
  325.  
  326. You exit Piano by selecting Close from its System Menu, or double-clicking on 
  327. the window upper left corner icon. 
  328.  
  329.  
  330. ΓòÉΓòÉΓòÉ 7.1. QWERTY Keyboard ΓòÉΓòÉΓòÉ
  331.  
  332. The QWERTY keyboard is just the bottom 2 rows of your computer keyboard, which 
  333. are setup as if they were the black and white keys on a piano keyboard.  The z 
  334. key corresponds to a D note.  Therefore, the x key next to it would correspond 
  335. to a E note.  You'll note that the s key is above and inbetween the z and x 
  336. keys.  As you might expect, this would be a D# key.  The left SHIFT key is the 
  337. C key.  This physical piano keyboard extends all of the way up to the right 
  338. SHIFT key which represents a high G.  In other words, it has an octave and a 
  339. half range. 
  340.  
  341. When you press down one of these keys, it sends a MIDI Note On message to your 
  342. MIDI interface on each of the MIDI channels that you have selected.  The net 
  343. result is that it will play this one note on each sound module that is assigned 
  344. to one of those selected MIDI channels. 
  345.  
  346. Note:  By default, the QWERTY keyboard is set to output MIDI data on only MIDI 
  347.        Channel 1 (unless you specify the /C option when starting Piano).  If 
  348.        your external module allows you to set its MIDI channel, make sure that 
  349.        it is set to the same channel as the QWERTY keyboard (or vice versa).
  350.  
  351. You can even press down several keys simultaneously and play a chord.  For 
  352. example, press the left SHIFT, x, and v keys simultaneously to hear a C Major 
  353. chord.  When you release the keys, the QWERTY keyboard sends the appropriate 
  354. Note Off messages to your MIDI interface on each of the selected MIDI channels. 
  355.  
  356. You'll notice that there is a picture of a piano keyboard in the QWERTY window. 
  357. You can move the mouse pointer over one of the keys on this graphical piano, 
  358. and click the mouse button 1 to sound that note (ie, in lieu of using the 
  359. computer keyboard).  When you release the mouse button, the note stops playing. 
  360. (ie, A Note Off is sent). 
  361.  
  362. There is a checkbox for each of the 16 MIDI Channels.  Make sure that a 
  363. channel's box is checked if you want the QWERTY keyboard to output upon that 
  364. channel.  You can check as many of those channels as desired, and the QWERTY 
  365. keyboard will broadcast its notes on all of those channels simultaneously. 
  366. Because the QWERTY keyboard is "multi-channel", it allows you to play any 
  367. combination of sound modules (set to various MIDI channels), at any time.  So, 
  368. you could use the QWERTY keyboard to easily play all of your MIDI modules or 
  369. check the setup of those modules. 
  370.  
  371. Note:  You must have at least one channel selected in order for any MIDI 
  372.        messages to be sent.
  373.  
  374. By default, the left SHIFT key is middle C, but you can change the octave that 
  375. the QWERTY keyboard plays within by using the Octave spin button.  Click on 
  376. either the up or down arrows to increment/decrement the octave, or click into 
  377. the text field, type the desired octave (1 to 10), and press ENTER. 
  378.  
  379. If you ever get any "stuck" notes, use the All Notes Off button to turn them 
  380. off.  Holding the Ctrl key while pressing the n key on your computer keyboard 
  381. is a shortcut for clicking upon the All Notes Off button.  If you really get 
  382. into big trouble with stuck notes, and odd controller settings, click on the 
  383. Reset button.  Holding the Ctrl key while pressing the r key on your computer 
  384. keyboard is a shortcut for clicking upon the Reset button. 
  385.  
  386. By default, MIDI Note On messages are sent with a velocity of 127 (ie, the 
  387. highest possible velocity).  Generally, velocity is used to set the volume on a 
  388. per note basis, although some modules can use velocity for other effects such 
  389. as adjust attack time of a voltage controlled generator (VCA).  Your computer 
  390. keyboard does not generate velocity information (which is how fast you press 
  391. and release the keys).  Piano allows you to set the QWERTY keyboard to one of 
  392. 12 preset velocity ranges.  The 12 Function keys represent those 12 levels, 
  393. with function key 12 being full velocity (ie, 127).  So, you can change the 
  394. velocity while you're playing by pressing the function keys. 
  395.  
  396.  
  397. ΓòÉΓòÉΓòÉ 7.2. MIDI (Mouse) Buttons and Effect Slider ΓòÉΓòÉΓòÉ
  398.  
  399. Mouse button 1 is always used to play the graphical piano, or manipulate 
  400. Piano's window and controls. 
  401.  
  402. By default, mouse button 2 simulates a Hold Pedal, and sends MIDI Hold Pedal 
  403. Controller messages.  When you push the button down (and hold it down), the 
  404. hold pedal is on.  When you release the button, the hold pedal is also 
  405. released.  In other words, this is a "momentary pedal" because it's only on 
  406. while you hold the button down.  You can specify a different controller for 
  407. mouse button 2 to emulate by using the Mouse 2 control.  See the Mouse 2 
  408. section for details. 
  409.  
  410. By default, mouse button 3 simulates a Portamento On/Off switch, and sends MIDI 
  411. Portamento On/Off Controller messages.  When you push the button down, 
  412. Portamento is toggled on or off (ie, if it was previously off, it's now on, and 
  413. vice versa).  This is not a momentary pedal because, when you toggle it on, it 
  414. stays on until you press mouse button 3 again (at which time it is toggled 
  415. off).  When the switch is "on", an asterisk appears next to the controller name 
  416. selected for Mouse 3.  If the switch is off, there is no asterisk.  You can 
  417. specify a different controller for mouse button 3 to emulate by using the Mouse 
  418. 3 control.  See the Mouse 3 section for details. 
  419.  
  420. By default, the "Effect" slider (ie, 2nd slider from the top of the window) 
  421. sends MIDI Effects Level Controller (#91).  Various MIDI devices may interpret 
  422. this in different ways (if at all).  For example, Roland devices that have a 
  423. built-in reverb unit often use this for the reverb level.  You can specify a 
  424. different controller for this slider by typing the desired Controller number 
  425. (in decimal) or Controller name into the entry field next to the slider, or 
  426. dropping down the list of defined Controller names and selecting one. 
  427.  
  428. Mouse button 2 is good for emulating controllers that normally are associated 
  429. with momentary Pedals, such as Hold, Hold2, Soft, and Sustenuto pedals, whereas 
  430. button 3 is good for controllers normally associated with Foot Switches, such 
  431. as Data +/-, Portamento On/Off, Local keyboard On/Off, etc.  The "Effect" 
  432. slider is suited for continuous MIDI controllers; controllers that have more 
  433. than just an "on" and "off" state, such as Breath controller, Mod wheel, Foot 
  434. pedal, PTme (Portamento time), etc. 
  435.  
  436. Any continuous controller has both a coarse and fine controller number.  For 
  437. example, there is a controller number (10) that adjusts the Pan Position in 
  438. coarse amounts.  It offers 128 "coarse" Pan positions.  There is another 
  439. controller number (42) that adjusts Pan in fine increments.  It offers 128 
  440. "fine" increments in between two, consecutive coarse settings.  So, you could 
  441. use the Pan coarse controller to set a sound to one of the 128 coarse 
  442. positions, and then use the Pan fine controller to adjust the Pan to one of the 
  443. 128 fine increments that fall between the current coarse position and the next 
  444. coarse position.  Some MIDI devices only respond to the coarse controllers and 
  445. do not implement the fine controllers (ie, for example, a device may only 
  446. implement the 128 coarse pan positions, and allow no fine adjustments to 
  447. those).  In Piano's drop down list of defined controllers, an H at the end of 
  448. the name refers to coarse (ie, high resolution) controller, and an L refers to 
  449. fine (ie, low resolution) controller. 
  450.  
  451.  
  452. ΓòÉΓòÉΓòÉ 7.3. MIDI Sliders ΓòÉΓòÉΓòÉ
  453.  
  454. As mentioned, Piano generates MIDI Note On and Note Off messages on the 
  455. selected MIDI channels when you play the QWERTY keyboard.  Virtually all MIDI 
  456. modules respond to these messages.  But, there are many more types of MIDI 
  457. messages that Piano can generate and send to your MIDI module.  The sliders on 
  458. the left side of the window generate some of these different types of MIDI 
  459. messages. 
  460.  
  461. Note:  Not all MIDI sound modules respond to all of these types of MIDI 
  462.        messages.  In particular, old and very cheap equipment may not respond 
  463.        to any of these messages.  If you get a response to the QWERTY keyboard 
  464.        (ie, the MIDI module makes some sound), but a particular slider doesn't 
  465.        seem to be having any effect, then you're probably dealing with such 
  466.        limited equipment.  On the other hand, sophisticated gear often allows 
  467.        you to turn on/off the module's response to these types of messages, so 
  468.        check your unit's setup.
  469.  
  470. You operate a slider by "grabbing" its knob with mouse button 1 and moving it 
  471. to a new position.  You have to "let go" (ie, release the mouse button) before 
  472. Piano sends out any MIDI message (and you perhaps hear the result on your MIDI 
  473. sound module).  Alternately, if you want to increment/decrement the knob's 
  474. position, move the mouse pointer inside of the slider's shaft, but not on top 
  475. of the knob itself (ie, to either side of the knob), and click the mouse button 
  476. 1 once.  If you're to the left of the knob, it will decrement by 1 position, 
  477. and a MIDI message will be sent.  If you're to the right of the knob, it will 
  478. increment by 1 position, and a MIDI message will be sent. 
  479.  
  480. Note:  Each slider has a small arrow above it.  (The arrow may be in different 
  481.        positions on different sliders).  This arrow marks the default position 
  482.        of the slider.  If you want to quickly set the slider to this default 
  483.        position, click on that arrow, and the knob will move to that position, 
  484.        and send out an appropriate MIDI message.  This is very handy for such 
  485.        things as Pan and Pitch since the default is to center the Pan and Pitch 
  486.        wheel.  Note that when Piano is first started or when you change the 
  487.        MIDI channel checkboxes, the settings shown for the sliders may not 
  488.        reflect the actual state of your external MIDI modules.  You could click 
  489.        on a default arrow in order to send a slider's setting to your module, 
  490.        or use the Reset button.
  491.  
  492. You can hold down a key on the QWERTY keyboard to sound a note on your external 
  493. module.  Then, without releasing the key (ie, so that the note on the external 
  494. module is still sounding), you can operate a slider.  If your external unit 
  495. responds to such a MIDI message while sounding a note, then you will hear the 
  496. result on the currently sounding note.  In fact, that's really how AfterTouch 
  497. and Channel Pressure are meant to be applied.  Some modules won't make changes 
  498. to any already sounding notes, so you'll have to release the note and play it 
  499. again in order to hear the results of moving a slider.  You don't have to be 
  500. playing a note when you move a slider.  You can simply move the slider, and 
  501. then play a note to hear the result.  It's just that moving a slider while 
  502. listening to a note sounding can give you a much clearer sonic idea of what 
  503. that slider is doing to the sound (assuming that your module responds to the 
  504. slider's MIDI messages). 
  505.  
  506. Note:  Remember that if you "grab and move" the slider's knob with the mouse, 
  507.        you must eventually "let go" of the knob in order for Piano to send any 
  508.        MIDI message.
  509.  
  510. Some modules use AfterTouch and Channel Pressure to affect the Brightness of 
  511. the sound (ie, Filter cutoff), or Volume, or some other such parameter. 
  512. Normally, AfterTouch and Channel Pressure are generated by pressing harder and 
  513. softer on the piano keyboard while you're holding down a note.  Obviously, your 
  514. computer's keyboard doesn't generate AfterTouch and Channel Pressure.  If you 
  515. press down harder, you'll only break it.  So, when you release notes after 
  516. having adjusted the AfterTouch or Pressure sliders, you may wish to click on 
  517. the respective default arrow to turn the effect off (which is what would happen 
  518. as you released the keys on a real controller).  If you're adjusting the 
  519. AfterTouch slider, you should only play one note at a time, and reset 
  520. AfterTouch to default upon releasing each note, since AfterTouch only works on 
  521. the last key that you've played (ie, Piano doesn't fully implement Aftertouch). 
  522. The Reset button also resets AfterTouch and Channel Pressure (as well as the 
  523. other sliders). 
  524.  
  525.  
  526. ΓòÉΓòÉΓòÉ 7.4. Controls ΓòÉΓòÉΓòÉ
  527.  
  528. What follows is a description of the controls in the Piano window; what they 
  529. control, and additional notes about any MIDI information that they send. 
  530.  
  531.  
  532. ΓòÉΓòÉΓòÉ 7.4.1. Program ΓòÉΓòÉΓòÉ
  533.  
  534. Affects        Which one of its Patches, Presets, or Instruments the MIDI 
  535.                module will play.  If the module is a MultiTimbral unit, then it 
  536.                usually can play 16 "Parts" at once, each receiving data upon 
  537.                its own MIDI channel.  This changes all Parts (which are set to 
  538.                one of the selected MIDI channels) to use that one chosen GM 
  539.                Patch. 
  540.  
  541.                Note:  If a module's Part receives a Program Change message on 
  542.                       the channel to which it is assigned, then its Patch will 
  543.                       change to the program number embedded in that message. 
  544.                       For example, assume that a Part is set to MIDI channel 1, 
  545.                       and its Patch is set to Grand Piano.  If a Program Change 
  546.                       message with a program number of 41 is sent on MIDI 
  547.                       channel 1, then the Part will switch to the Violin (ie, 
  548.                       which is GM Patch #41).  A Program Change can be sent 
  549.                       while the Part is playing -- even while the Part is 
  550.                       playing some Grand Piano notes.  The Part will simply 
  551.                       play subsequent MIDI notes using the new Patch. 
  552.  
  553. Range          One of the 128 GM Patches.  You pick out which one from the list 
  554.                box (by clicking on it), or type in the desired Patch name and 
  555.                press the ENTER key.  If you prefer to deal with numbers, 
  556.                especially if you're dealing with a non-GM MIDI device, you can 
  557.                instead type in the desired Patch number (where 1 is the first 
  558.                Patch) and press the ENTER key.  In this case, Piano will always 
  559.                display the respective GM Patch name.  If you type in the Patch 
  560.                name, you may enter only as many characters as are needed for 
  561.                Piano to find a matching name.  For example, if you type "Gran" 
  562.                (or "Piano") and press ENTER, then Piano will match this as 
  563.                "Grand Piano".  If you type "harp" and press ENTER, Piano will 
  564.                match this with "Harpsichord" (since that comes before "Harp"). 
  565.  
  566.                Holding the Ctrl key while pressing the p key on your computer 
  567.                keyboard is a shortcut for clicking upon the Program control to 
  568.                change it. 
  569.  
  570.                Note:  It doesn't matter whether you type the name in upper or 
  571.                       lower case.
  572.  
  573.  
  574. ΓòÉΓòÉΓòÉ 7.4.2. Pan ΓòÉΓòÉΓòÉ
  575.  
  576. Affects        Where within the stereo field the module will be placed.  If the 
  577.                module is a MultiTimbral unit, then each one of its Parts 
  578.                usually has its own pan position.  This changes the pan of all 
  579.                Parts assigned to one of the selected MIDI channels. 
  580.  
  581.                Note:  If the Part receives a Pan Controller message on the 
  582.                       channel to which it is assigned, then its pan will change 
  583.                       to the value embedded in that message.  For example, 
  584.                       assume that a Part is set to MIDI channel 1, and is 
  585.                       panned hard left.  If a Pan Controller message with a 
  586.                       value of 64 (ie, center) is sent on MIDI channel 1, then 
  587.                       the Part's sound will switch to center position.  A Pan 
  588.                       Controller can be sent while the Part is playing -- even 
  589.                       while the Part is playing some notes.  The Part will 
  590.                       simply play with a new pan position. 
  591.  
  592. Range          128 possible positions, with 0 being hard left, 64 being center, 
  593.                and 127 being hard right.  You must center the slider's knob for 
  594.                center pan (ie, where the default arrow is), and moving the knob 
  595.                to the left or right pans in those directions respectively. 
  596.                (This is the coarse controller for Pan). 
  597.  
  598.  
  599. ΓòÉΓòÉΓòÉ 7.4.3. Chorus ΓòÉΓòÉΓòÉ
  600.  
  601. Affects        The chorus effect amount (ie, level) for the module.  If the 
  602.                module is a MultiTimbral unit, then each one of its Parts 
  603.                usually has its own chorus level.  This changes the chorus level 
  604.                of all Parts assigned to one of the selected MIDI channels. 
  605.  
  606.                Note:  If the Part receives a Chorus Controller message on the 
  607.                       channel to which it is assigned, then its Chorus Level 
  608.                       will change to the value embedded in that message.  For 
  609.                       example, assume that a Part is set to MIDI channel 1, and 
  610.                       has a Chorus Level of 64.  If a Chorus Controller message 
  611.                       with a value of 0 is sent on MIDI channel 1, then the 
  612.                       Part will switch to having no chorus (ie, chorus 
  613.                       level=0).  A Chorus Controller can be sent while the Part 
  614.                       is playing -- even while the Part is playing some notes. 
  615.                       The Part will simply play with a new chorus effect level. 
  616.  
  617. Range          0 to 127, with 0 being no chorus effect applied at all.  Moving 
  618.                the fader all the way to the left gives a chorus level of 0. 
  619.  
  620.  
  621. ΓòÉΓòÉΓòÉ 7.4.4. Volume ΓòÉΓòÉΓòÉ
  622.  
  623. Affects        The MIDI module's volume.  If the module is a MultiTimbral unit, 
  624.                then each one of its Parts usually has its own volume.  This 
  625.                changes the volumes of all Parts assigned to one of the selected 
  626.                MIDI channels. 
  627.  
  628.                Note:  If a Part receives a Volume Controller message on the 
  629.                       channel to which it is assigned, then its Volume will 
  630.                       change to the value embedded in that message.  For 
  631.                       example, assume that a Part is set to MIDI channel 1, and 
  632.                       has a Volume of 127.  If a Volume Controller message with 
  633.                       a value of 64 is sent on MIDI channel 1, then the Part's 
  634.                       volume will drop by half.  A Volume Controller can be 
  635.                       sent while the Part is playing -- even while the Part is 
  636.                       playing some notes.  The Part will simply play with a new 
  637.                       Volume. 
  638.  
  639. Range          0 to 127, with 0 being no volume at all.  Moving the fader all 
  640.                the way to the left gives a volume of 0.  (This is the coarse 
  641.                controller for volume). 
  642.  
  643.  
  644. ΓòÉΓòÉΓòÉ 7.4.5. MOD Wheel ΓòÉΓòÉΓòÉ
  645.  
  646. Affects        Sends MOD Wheel messages to the MIDI module.  If the module is a 
  647.                MultiTimbral unit, then each one of its Parts may respond 
  648.                differently (or not at all) to MOD Wheel.  This sends a MOD 
  649.                Wheel message to all Parts assigned to one of the selected MIDI 
  650.                channels. 
  651.  
  652.                Note:  If a Part receives a MOD Wheel Controller message on the 
  653.                       channel to which it is assigned, then it may or may not 
  654.                       do something depending upon how the Part is set to 
  655.                       respond to this message.  Usually, MOD Wheel introduces 
  656.                       some sort of vibrato effect.  For example, assume that a 
  657.                       Part is set to MIDI channel 1.  If a MOD Wheel Controller 
  658.                       message with a value of 64 is sent on MIDI channel 1, 
  659.                       then a medium vibrato effect may be applied to the Part's 
  660.                       sound.  A MOD Wheel Controller can be sent while the Part 
  661.                       is playing -- even while the Part is playing some notes. 
  662.                       A vibrato effect will simply be applied to any sounding 
  663.                       notes. 
  664.  
  665. Range          0 to 127, with 0 being no modulation.  (This is the coarse 
  666.                controller for MOD wheel). 
  667.  
  668.  
  669. ΓòÉΓòÉΓòÉ 7.4.6. Pitch Wheel ΓòÉΓòÉΓòÉ
  670.  
  671. Affects        Sends Pitch Wheel messages to the MIDI module.  If the module is 
  672.                a MultiTimbral unit, then each one of its Parts may or may not 
  673.                respond to Pitch Wheel.  This sends a Pitch Wheel message to all 
  674.                Parts assigned to one of the selected MIDI channels. 
  675.  
  676.                Note:  If a Part receives a Pitch Wheel message on the channel 
  677.                       to which it is assigned, then it may or may shift its 
  678.                       pitch up/down depending upon whether the Part is set to 
  679.                       respond to this message.  A value of 64 (MSB only) is 
  680.                       centered pitch, and values below that shift the pitch 
  681.                       downward, whereas values above shift the pitch upward. 
  682.                       For example, assume that a Part is set to MIDI channel 1. 
  683.                       If a Pitch Wheel message with a value of 95 (MSB only) is 
  684.                       sent on MIDI channel 1, then the pitch shifts upward.  A 
  685.                       Pitch Wheel can be sent while the Part is playing -- even 
  686.                       while the Part is playing some notes.  The pitch will 
  687.                       simply shift accordingly. 
  688.  
  689. Range          0 to 127, with 64 being no pitch shift (ie, center position). 
  690.  
  691.                Note:  Piano only sends the MSB of Pitch Wheel.  In other words, 
  692.                       its a coarse adjustment only. 
  693.  
  694.  
  695. ΓòÉΓòÉΓòÉ 7.4.7. Pressure ΓòÉΓòÉΓòÉ
  696.  
  697. Affects        Sends Channel Pressure messages to the MIDI module.  If the 
  698.                module is a MultiTimbral unit, then each one of its Parts may 
  699.                respond differently (or not at all) to Channel Pressure.  This 
  700.                sends a Channel Pressure message to all Parts assigned to one of 
  701.                the selected MIDI channels. 
  702.  
  703.                Note:  If a Part receives a Channel Pressure message on the 
  704.                       channel to which it is assigned, then it may or may not 
  705.                       do something depending upon how the Part is set to 
  706.                       respond to this message.  Usually, Channel Pressure 
  707.                       adjusts the brightness (ie, filter cutoff), the volume, 
  708.                       and/or introduces some sort of vibrato effect.  For 
  709.                       example, assume that a Part is set to MIDI channel 1.  If 
  710.                       a Channel Pressure message with a value of 64 is sent on 
  711.                       MIDI channel 1, then a medium vibrato effect may be 
  712.                       applied to the Part's sound.  Channel Pressure can be 
  713.                       sent while the Part is playing -- even while the Part is 
  714.                       playing some notes.  Some effect will simply be applied 
  715.                       to any sounding notes.  Indeed, Channel Pressure is 
  716.                       usually generated by pressing harder or softer on the 
  717.                       keys while holding them down (ie, so you are playing some 
  718.                       notes).  So, Channel Pressure is meant to affect sounding 
  719.                       notes in some way. 
  720.  
  721. Range          0 to 127, with 0 being no channel pressure (ie, off). 
  722.  
  723.  
  724. ΓòÉΓòÉΓòÉ 7.4.8. AfterTouch ΓòÉΓòÉΓòÉ
  725.  
  726. Affects        Sends AfterTouch messages (sometimes referred to as Key 
  727.                Pressure) to the MIDI module.  If the module is a MultiTimbral 
  728.                unit, then each one of its Parts may respond differently (or not 
  729.                at all) to these messages.  This sends an AfterTouch message to 
  730.                all Parts assigned to one of the selected MIDI channels. 
  731.  
  732.                Note:  If a Part receives an AfterTouch message on the channel 
  733.                       to which it is assigned, then it may or may not do 
  734.                       something depending upon how the Part is set to respond 
  735.                       to this message.  Usually, AfterTouch adjusts the 
  736.                       brightness (ie, filter cutoff), the volume, and/or 
  737.                       introduces some sort of vibrato effect.  For example, 
  738.                       assume that a Part is set to MIDI channel 1.  If an 
  739.                       AfterTouch message with a value of 64 is sent on MIDI 
  740.                       channel 1, then a medium vibrato effect may be applied 
  741.                       one of the Part's sounding notes.  AfterTouch can be sent 
  742.                       while the Part is playing -- even while the Part is 
  743.                       playing some notes.  Some effect will simply be applied 
  744.                       to the note corresponding to the message.  Indeed, 
  745.                       AfterTouch is usually generated by pressing harder or 
  746.                       softer on a key while holding it down (ie, so you are 
  747.                       playing a note).  So, AfterTouch is meant to affect a 
  748.                       sounding note in some way.  What's the difference between 
  749.                       AfterTouch and Channel Pressure?  Well, AfterTouch 
  750.                       messages are for individual keys.  Every key that you 
  751.                       press down generates its own AfterTouch messages.  If you 
  752.                       press on one key harder than another, then the one key 
  753.                       will generate AfterTouch messages with higher values than 
  754.                       the other key.  The net result is that some effect will 
  755.                       be applied to the one key more than the other key.  You 
  756.                       have individual control over each key that you play. 
  757.                       With Channel Pressure, one message is sent out for the 
  758.                       entire keyboard.  So, if you press one key harder than 
  759.                       another, the module will average out the difference, and 
  760.                       then just pretend that you're pressing both keys with the 
  761.                       exact same pressure.  The net result is that some effect 
  762.                       gets applied to all sounding keys evenly.  You don't have 
  763.                       individual control per each key.  A controller would use 
  764.                       either Channel Pressure or AfterTouch, but usually not 
  765.                       both.  Most MIDI controllers don't generate AfterTouch 
  766.                       because the circuitry required is a bit too costly. 
  767.                       Piano's QWERTY keyboard is no exception.  (Hey, you got 
  768.                       it free.  What do you expect?).  It only generates 
  769.                       AfterTouch messages for the last key that you play.  If 
  770.                       you play a chord, only one of the notes gets the 
  771.                       AfterTouch effect when you move the slider (ie, the last 
  772.                       one that you pressed down).  Ideally, there should be 
  773.                       AfterTouch messages happening for each key being held 
  774.                       down, but that's irrelevant here because your computer 
  775.                       keyboard doesn't have some way of detecting pressure for 
  776.                       each key, and it would be impractical to be adjusting an 
  777.                       AfterTouch slider for every key that you hold down.  You 
  778.                       should avoid playing chords while adjusting the 
  779.                       AfterTouch slider.  If you do, you may need to Reset in 
  780.                       order to clear aftertouch from all of the keys that you 
  781.                       played. 
  782.  
  783. Range          0 to 127, with 0 being no aftertouch (ie, off). 
  784.  
  785.  
  786. ΓòÉΓòÉΓòÉ 7.4.9. Effect ΓòÉΓòÉΓòÉ
  787.  
  788. Affects        This slider can be set to emulate any one of the 128 possible 
  789.                MIDI controllers.  By default, it emulates the effects level for 
  790.                the module.  If the module is a MultiTimbral unit, then each one 
  791.                of its Parts usually has its own effects level.  This changes 
  792.                the effects level of all Parts assigned to one of the selected 
  793.                MIDI channels.  Various MIDI devices may respond to effects 
  794.                controller differently (if at all).  Some Roland devices with a 
  795.                built-in reverb unit, use Effects controller to set the reverb 
  796.                amount. 
  797.  
  798.                Note:  If the Part receives a MIDI Effects Controller message on 
  799.                       the channel to which it is assigned, and the device uses 
  800.                       that to adjust reverb amount, then its Reverb Level will 
  801.                       change to the value embedded in that message.  For 
  802.                       example, assume that a Part is set to MIDI channel 1, and 
  803.                       has a Reverb Level of 64.  If an Effects Controller 
  804.                       message with a value of 0 is sent on MIDI channel 1, then 
  805.                       the Part will switch to having no reverb (ie, reverb 
  806.                       level=0).  An Effects Controller can be sent while the 
  807.                       Part is playing -- even while the Part is playing some 
  808.                       notes.  The Part will simply play with a new reverb 
  809.                       level. 
  810.  
  811.                When you select a new controller for the Effect slider, this new 
  812.                controller is initially set to whatever value the slider is set 
  813.                to (ie, if the slider is all of the way to the right, then the 
  814.                controller's value is set to 127). 
  815.  
  816. Range          0 to 127, with 0 being no effects applied at all.  Moving the 
  817.                fader all the way to the left gives an effects level of 0. 
  818.  
  819.  
  820. ΓòÉΓòÉΓòÉ 7.4.10. All Notes Off ΓòÉΓòÉΓòÉ
  821.  
  822. Affects        This button sends Note Off messages to the MIDI module for any 
  823.                notes that Piano thinks are still "on".  Due to the way that 
  824.                Presentation Manager works, it's possible for Piano to not "see" 
  825.                a mouse button up message (ie, some other app may get it). 
  826.                Clicking on this button forces Piano to turn off all notes that 
  827.                it played and didn't turn off even though you may no longer be 
  828.                pressing the mouse button over the graphical piano, or holding 
  829.                down a key on the computer. 
  830.  
  831.                Piano also sends All Notes Off Controller and All Sound Off 
  832.                Controller messages on the MIDI channels that you have selected, 
  833.                as an extra precaution to turn off any "stuck notes".  See the 
  834.                remarks about such in the Reset description. 
  835.  
  836.  
  837. ΓòÉΓòÉΓòÉ 7.4.11. Reset ΓòÉΓòÉΓòÉ
  838.  
  839. Affects        This is a more drastic reset than the All Notes Off button.  The 
  840.                latter button only turns off notes.  This button also resets 
  841.                various controllers to default values, and resets the Program on 
  842.                the MIDI channels that you have selected. 
  843.  
  844.                This button sends All Notes Off Controller, All Sound Off 
  845.                Controller, and Reset Controllers messages on all 16 MIDI 
  846.                channels.  Note that some older or cheap MIDI gear does not 
  847.                implement some of these special controller messages.  (ie, On 
  848.                some gear, you have to send an individual MIDI Note Off message 
  849.                for each note that you wish turned off.  This is an archaic and 
  850.                slow way of turning off "stuck notes".  Piano doesn't bother 
  851.                with that.  Likewise, some gear doesn't implement Reset 
  852.                Controllers, and wants individual controller messages for each 
  853.                controller that you wish to reset.  Piano does initialize the 
  854.                MIDI parameters associated with the 8 sliders (ie, Volume, MOD, 
  855.                PITCH, etc) as well as the Mouse 2 and Mouse 3 controllers 
  856.                regardless of whether a device understands the Reset Controllers 
  857.                message, but other controllers may not be reset.  You'll have to 
  858.                reset those manually.  Piano resets the sliders to default 
  859.                values, and turns off the controllers for Mouse 2 and Mouse 3. 
  860.                Finally, this button causes the Program to be changed on all of 
  861.                the selected MIDI channels, to that program displayed in Piano's 
  862.                Program control. 
  863.  
  864.  
  865. ΓòÉΓòÉΓòÉ 7.4.12. Octave ΓòÉΓòÉΓòÉ
  866.  
  867. Affects        The note range that the QWERTY piano (and graphical piano) plays 
  868.                back.  In other words, this transposes Piano's note range an 
  869.                octave at a time. 
  870.  
  871.                Note:  The QWERTY keyboard counts its octaves from 1.  Most MIDI 
  872.                       devices count their octaves from -2.  What this means is 
  873.                       that, to play a middle C (MIDI note number 60), set 
  874.                       Octave to 4 and play the z key (ie, a C note) or click on 
  875.                       the leftmost C of the graphical piano.
  876.  
  877.  
  878. Holding the Ctrl key while pressing the o key on your computer keyboard is a 
  879. shortcut for clicking upon the Octave control to change it. 
  880.  
  881.  
  882. ΓòÉΓòÉΓòÉ 7.4.13. Mouse 2 ΓòÉΓòÉΓòÉ
  883.  
  884. Affects        The controller that is sent (on the selected MIDI channels) 
  885.                every time that you press and release mouse button 2.  You can 
  886.                choose any one of the possible 128 MIDI Controllers.  48 of 
  887.                these 128 Controllers are defined for specific purposes, and 
  888.                have "names".  If you drop down the list box for Mouse 2, you'll 
  889.                see those defined controller names.  You can choose one of these 
  890.                (by clicking on the name, or typing the name), or you can type 
  891.                in the desired controller number (from 0 to 127 decimal). 
  892.  
  893.                If you type in the Controller name, you may enter only as many 
  894.                characters as are needed for Piano to find a matching name.  For 
  895.                example, if you type "Por" and press ENTER, then Piano will 
  896.                match this as "Porta" (ie, Portamento On/Off).  If you type 
  897.                "Mod" and press ENTER, Piano will match this with "Mod H" (since 
  898.                that comes before "Mod L").  It doesn't matter whether you type 
  899.                the name in upper or lower case. 
  900.  
  901.                When you select a new controller for Mouse 2, this new 
  902.                controller is initially set to 0 (ie, turned off). 
  903.  
  904.                Holding the Ctrl key while pressing the 2 key on your computer 
  905.                keyboard is a shortcut for clicking upon the Mouse 2 control to 
  906.                change it. 
  907.  
  908.                Note:  Consult my OS/2 online book, "The MIDI Book" for 
  909.                       descriptions of all the defined MIDI controllers.
  910.  
  911.  
  912. ΓòÉΓòÉΓòÉ 7.4.14. Mouse 3 ΓòÉΓòÉΓòÉ
  913.  
  914. Affects        The controller that is sent (on the selected MIDI channels) 
  915.                every time that you press mouse button 3.  You can choose any 
  916.                one of the possible 128 MIDI Controllers.  48 of these 128 
  917.                Controllers are defined for specific purposes, and have "names". 
  918.                If you drop down the list box for Mouse 3, you'll see those 
  919.                defined controller names.  You can choose one of these (by 
  920.                clicking on the name, or typing the name), or you can type in 
  921.                the desired controller number (from 0 to 127 decimal). 
  922.  
  923.                If you type in the Controller name, you may enter only as many 
  924.                characters as are needed for Piano to find a matching name.  For 
  925.                example, if you type "Por" and press ENTER, then Piano will 
  926.                match this as "Porta" (ie, Portamento On/Off).  If you type 
  927.                "Mod" and press ENTER, Piano will match this with "Mod H" (since 
  928.                that comes before "Mod L").  It doesn't matter whether you type 
  929.                the name in upper or lower case. 
  930.  
  931.                When you select a new controller for Mouse 3, this new 
  932.                controller is initially set to 0 (ie, turned off). 
  933.  
  934.                Holding the Ctrl key while pressing the 3 key on your computer 
  935.                keyboard is a shortcut for clicking upon the Mouse 3 control to 
  936.                change it. 
  937.  
  938.                Note:  Consult my OS/2 online book, "The MIDI Book" for 
  939.                       descriptions of all the defined MIDI controllers.
  940.  
  941.  
  942. ΓòÉΓòÉΓòÉ 7.4.15. Port ΓòÉΓòÉΓòÉ
  943.  
  944. Affects        The driver (and therefore MIDI interface card) that Piano 
  945.                outputs MIDI messages through.  If you drop down the list box 
  946.                for Port, you'll see that the 4 available ports of MPUDEV.SYS 
  947.                are listed.  You can choose one of these (by clicking on the 
  948.                name, or typing the name), or you can type in some other driver 
  949.                name. 
  950.  
  951.                If you have not disabled Driver Initialization (ie, not 
  952.                specified the /I option) then Piano will attempt to initialize 
  953.                the driver/hardware via the protocol used by my MPUDEV.SYS 
  954.                driver. 
  955.  
  956.                If you have not disabled turning on GM mode (ie, not specified 
  957.                the /G option) then Piano will attempt to kick the module into 
  958.                General MIDI mode. 
  959.  
  960.                Holding the Ctrl key while pressing the t key on your computer 
  961.                keyboard is a shortcut for clicking upon the Port control to 
  962.                change it. 
  963.  
  964.                Note:  If the port that you specify can't be opened, Piano will 
  965.                       retain the previously opened port for MIDI output.
  966.  
  967.  
  968. ΓòÉΓòÉΓòÉ 7.4.16. Initialize ΓòÉΓòÉΓòÉ
  969.  
  970. Affects        Initialization of the MIDI driver that Piano outputs MIDI 
  971.                messages through.  If you check the Initialize box, then Piano 
  972.                assumes that, everytime a driver is opened, Piano needs to reset 
  973.                the driver and card using a protocol that my MPUDEV.SYS driver 
  974.                establishes.  If you aren't using an MPUDEV compatible driver, 
  975.                or don't want the driver and card to be reset whenever a driver 
  976.                is opened, you should turn Initialize off. 
  977.  
  978.                Holding the Ctrl key while pressing the i key on your computer 
  979.                keyboard is a shortcut for selecting the Initialize checkbox, 
  980.                and then pressing the SPACE BAR toggles it on/off. 
  981.  
  982.  
  983. ΓòÉΓòÉΓòÉ 7.4.17. GM Enable ΓòÉΓòÉΓòÉ
  984.  
  985. Affects        Initialization of a GM MIDI sound module attached to Piano's 
  986.                Port.  Whenever you check the GM Enable box, then Piano issues a 
  987.                System Exclusive command to set a sound module into General MIDI 
  988.                mode.  (ie, You can force Piano to send this message by turning 
  989.                the check off, and then turning it back on again).  If this box 
  990.                is checked when you select a new Port, then Piano sends the GM 
  991.                message out that new Port. 
  992.  
  993.                Holding the Ctrl key while pressing the g key on your computer 
  994.                keyboard is a shortcut for selecting the GM Enable checkbox, and 
  995.                then pressing the SPACE BAR toggles it on/off. 
  996.  
  997.  
  998. ΓòÉΓòÉΓòÉ 8. Driver Sharing ΓòÉΓòÉΓòÉ
  999.  
  1000. Piano allows shared access to a driver.  (ie, Another program may output MIDI 
  1001. data to, or read MIDI data from, that driver while Piano is running, and even 
  1002. while using Piano to play the module). 
  1003.  
  1004. Piano doesn't input any MIDI data, and therefore should not cause a problem for 
  1005. any program that only reads from the same driver (ie, doesn't write to it), nor 
  1006. will that program cause a problem for Piano, 
  1007.  
  1008. Shared MIDI output is usually fine, since when programs are "sitting idle", 
  1009. they usually aren't writing to the driver.  So, it's generally OK to 
  1010. simultaneously run two programs that do MIDI output to the same driver, as long 
  1011. as both programs aren't performing such operations simultaneously (ie, one 
  1012. program is "sitting idle" while the other is performing an operation that 
  1013. causes MIDI data to be output).  Piano sits idle when you are not actually 
  1014. moving its sliders, pushing its buttons, playing notes, or operating any 
  1015. controls in it. 
  1016.  
  1017. It may even be possible for both programs to simultaneously output MIDI data to 
  1018. the same driver.  But both programs need to DosWrite() full MIDI messages to 
  1019. the driver (ie, not break up one MIDI message into several calls to 
  1020. DosWrite()).  If a program doesn't conform to this restriction, then its MIDI 
  1021. output may be destroyed by another program attempting to output MIDI data 
  1022. simultaneously.  (Of course, even if the two programs conform to this 
  1023. restriction, and therefore, their MIDI data can be successfully "merged", this 
  1024. merge process will slow down the operations of each program, and may cause each 
  1025. program to experience significantly longer delays in MIDI output than if both 
  1026. programs weren't simultaneously outputting MIDI data).  Piano fully conforms to 
  1027. this restriction and therefore, performing a MIDI output with some other 
  1028. program that uses the same driver should be OK.  You may have to avoid using 
  1029. Piano while the other program is outputting data, if that program also doesn't 
  1030. conform to the restriction.  But Piano may be left running while using other 
  1031. programs that access the same driver. 
  1032.  
  1033. Some drivers, such as MPUDEV, support several independent "ports" (ie, each 
  1034. port has its own MIDI hardware interface card), and each port has its own 
  1035. SHARED status.  Therefore, it's perfectly acceptable to have two programs 
  1036. running which both use MPUDEV simultaneously, and you won't have to worry about 
  1037. any of the above sharing conditions as long as each program uses a different 
  1038. port. 
  1039.  
  1040.  
  1041. ΓòÉΓòÉΓòÉ 9. Error Messages ΓòÉΓòÉΓòÉ
  1042.  
  1043. Here are the possible error messages that you may see.  Following each message 
  1044. is a description of likely causes for that error and possible remedies, and 
  1045. what happens as a result of that error (ie, does the program terminate, or stop 
  1046. transmission, or what?). 
  1047.  
  1048. An error message is displayed in a message box that pops up and suspends the 
  1049. operation of the program until you dismiss that message box. 
  1050.  
  1051. Piano returns non-zero error values only if it encounters a problem upon 
  1052. startup.  Otherwise, once Piano is up and running, it will return 0 (ie, 
  1053. successful operation) when it terminates. 
  1054.  
  1055.  
  1056. ΓòÉΓòÉΓòÉ 9.1. Initialization failed! ΓòÉΓòÉΓòÉ
  1057.  
  1058. Synopsis       Piano wasn't able to complete some initialization associated 
  1059.                with Presentation Manager. 
  1060.  
  1061. Cause          OS/2 couldn't start up another PM program. 
  1062.  
  1063. Cure           Close down other running apps as you may have run out of PM 
  1064.                resources, or shut down OS/2 itself, and try running Piano 
  1065.                again. 
  1066.  
  1067. Error occurs   Only during program startup. 
  1068.  
  1069. Result         Piano terminates returning RC = -1. 
  1070.  
  1071.  
  1072. ΓòÉΓòÉΓòÉ 9.2. Can't load Exit handler! ΓòÉΓòÉΓòÉ
  1073.  
  1074. Synopsis       Piano wasn't able to complete some initialization associated 
  1075.                with Presentation Manager. 
  1076.  
  1077. Cause          OS/2 couldn't install an Exit List handler. 
  1078.  
  1079. Cure           Close down other running apps as you may have run out of PM 
  1080.                resources, or shut down OS/2 itself, and try running Piano 
  1081.                again. 
  1082.  
  1083. Error occurs   Only during program startup. 
  1084.  
  1085. Result         Piano terminates returning RC = -2. 
  1086.  
  1087.  
  1088. ΓòÉΓòÉΓòÉ 9.3. Can't create window! ΓòÉΓòÉΓòÉ
  1089.  
  1090. Synopsis       Piano wasn't able to open its Presentation Manager window. 
  1091.  
  1092. Cause          OS/2 couldn't create a PM window of the requested class. 
  1093.  
  1094. Cure           Close down other running apps as you may have run out of PM 
  1095.                resources or there may be a conflict in window classes, or shut 
  1096.                down OS/2 itself, and try running Piano again. 
  1097.  
  1098. Error occurs   Only during program startup. 
  1099.  
  1100. Result         Piano terminates returning RC = -3. 
  1101.  
  1102.  
  1103. ΓòÉΓòÉΓòÉ 9.4. Can't open MIDI driver! ΓòÉΓòÉΓòÉ
  1104.  
  1105. Synopsis       This error means that the requested driver did not open, and 
  1106.                therefore Piano can't do any MIDI output. 
  1107.  
  1108. Cause          Some other program already has this driver open and has denied 
  1109.                any other program access to it (ie, no Shared access).  When a 
  1110.                program opens a driver for reading or writing, it may decide to 
  1111.                restrict any other program from reading and/or writing to that 
  1112.                driver.  Subsequent programs will not be allowed to open (and 
  1113.                use) that driver while the preceding program is running. 
  1114.  
  1115. Cure           There's nothing you can do other than to terminate the program 
  1116.                that is refusing to share the driver.  If in doubt as to which 
  1117.                program that is, terminate all other programs using this driver, 
  1118.                and try Piano again.  See Driver Sharing for more information 
  1119.                about this problem. 
  1120.  
  1121. Cause          The driver isn't installed properly with an entry in your 
  1122.                config.sys file. 
  1123.  
  1124. Cure           Check that entry in your config.sys file. 
  1125.  
  1126. Cause          The name you supplied is not the true, internal name of the 
  1127.                driver.  Every driver has an ascii string embedded inside of it, 
  1128.                which is its real name as far as OS/2 is concerned.  This might 
  1129.                not be the same as the driver's filename.  Usually, it is the 
  1130.                filename minus the .SYS extension. 
  1131.  
  1132. Cure           Contact the author of the driver and verify the driver's name 
  1133.                for a DosOpen().  Or use my LISTDRVS.CMD REXX script (included 
  1134.                with File REXX) to display a listing of the internal names of 
  1135.                all installed drivers, and pick out what you think is the real 
  1136.                name of that driver. 
  1137.  
  1138. Error occurs   During program startup, or whenever you change the driver Port. 
  1139.  
  1140. Result         If the error happens during program startup, Piano terminates 
  1141.                returning RC = -4.  Otherwise, Piano retains the previously 
  1142.                opened driver for its MIDI output. 
  1143.  
  1144.  
  1145. ΓòÉΓòÉΓòÉ 9.5. Error with MIDI driver command! ΓòÉΓòÉΓòÉ
  1146.  
  1147. Synopsis       The driver returned an error when Piano issued the Reset Command 
  1148.                via the driver's IoCtl interface.  My MPUDEV.SYS driver uses 
  1149.                this scheme to set an MPU-401 into Uart mode.  That's what Piano 
  1150.                needs to do when using an MPU-401.  So, I do it this way. 
  1151.  
  1152. Cause          If you're not using an MPU-401 or compatible MIDI interface, 
  1153.                then it probably doesn't need to be set like this, its driver 
  1154.                will probably not recognize what Piano is telling it to do, and 
  1155.                you'll see the error message. 
  1156.  
  1157. Cure           Specify the /I option when running Piano, or disable Initialize. 
  1158.                This tells Piano that you don't want it to try to reset the MIDI 
  1159.                interface using my MPUDEV driver's procedure.  For example, if 
  1160.                you had a driver named BLORT, and you didn't want it reset, 
  1161.                here's what you might type as arguments when running the program 
  1162.                (or type into the Parameters field of the Desktop icon) 
  1163.  
  1164.                BLORT /I 
  1165.  
  1166. Error occurs   During program startup, or whenever you change the driver Port 
  1167.                and allow Piano to initialize the driver. 
  1168.  
  1169. Result         Piano doesn't regard this as a real error.  It's essentially 
  1170.                ignored except for displaying the message. 
  1171.