home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / sci / virtual / 3660 < prev    next >
Encoding:
Internet Message Format  |  1992-11-11  |  6.4 KB

  1. Path: sparky!uunet!charon.amdahl.com!pacbell.com!iggy.GW.Vitalink.COM!cs.widener.edu!eff!sol.ctr.columbia.edu!zaphod.mps.ohio-state.edu!swrinde!emory!ogicse!news.u.washington.edu!stein.u.washington.edu!hlab
  2. From: 70233.1552@CompuServe.COM (Mark T. Pflaging)
  3. Newsgroups: sci.virtual-worlds
  4. Subject: TECH: Annoucing-- Musical Glove Program!
  5. Message-ID: <1992Nov12.021824.22863@u.washington.edu>
  6. Date: 11 Nov 92 08:45:19 GMT
  7. Article-I.D.: u.1992Nov12.021824.22863
  8. Sender: news@u.washington.edu (USENET News System)
  9. Organization: University of Washington
  10. Lines: 131
  11. Approved: cyberoid@milton.u.washington.edu
  12. Originator: hlab@stein.u.washington.edu
  13.  
  14.  
  15. Edited and crossposted from Compuserve message base:
  16.  
  17. NEWS FLASH!  The first PC program to use the glove to generate music
  18. has been created!  The file will be available via anonymous ftp within a
  19. few days.  Read on...
  20.  
  21. --------------------
  22.  
  23. Musical VR'ers:
  24.  
  25. I have uploaded midiglov.zip to library 11 [of graphdev forum on
  26. Compuserve].  It contains two .exe's using the Nintendo power glove
  27. as a midi controller.  It has a theramin type effect.
  28.  
  29. DOCUMENT FILE FOR MIDI ADDITION TO O2GLOVE by Mick Imfeld The files
  30. in this Zip are files from o2glov.zip into which I spliced midi
  31. control functions using the Musicquest Toolkit.
  32.  
  33. HELPME!.DOC and THEGLOVE.DOC are included in unaltered form. These files
  34. tell how to hook the Nintendo Power Glove to the parallel port of an IBM
  35. compatible computer, and how to maximize the glove's performance.
  36.  
  37. The files:
  38.  
  39. UF_GLOV1.CPP UF_GLOV2.CPP GLGRPH1.CPP GLGRPH2.CPP MO2GLOVE.PRJ
  40. MO2GLOVE.DSK
  41.  
  42. are my modifications of files by the same name (minus the first letter
  43. "M" which I added so you would not overwrite your o2glove files of
  44. the same name if you unzip in the directory where you have the
  45. o2glove files stored) from o2glov.zip.  To produce midiglov.exe,
  46. change uf_glov1.cpp and glgrph1.cpp to uf_glove.cpp and glgrph.cpp.
  47. To produce midiglo2.exe rename uf_glov2.cpp and glgrph2.cpp to
  48. glgrph.cpp and ul_glove.cpp.
  49.  
  50. Midiglov.exe and midiglo2.exe are executables file which will behave
  51. in the same manner as o2glove.exe except that midi transmissions are
  52. linked to the glove movements as well as the graphic display.  For
  53. the difference in the two see PROBLEMS.
  54.  
  55. X-Axis:  the X Axis sends midi note numbers.  The note-on note-off
  56. function is controlled by the index finger of the glove.  (fist=off)
  57. The program asks you how many notes you wish to spread over the 256
  58. X axis values.
  59.  
  60. Y-Axis:  the Y Axis controls midi pitch bend messages, with up bending up
  61. (big surprise).  You are asked upon startup if you wish to turn this
  62. function on or off.  Pitch bend range must be done on your instrument for
  63. now, but it should be controlled in the software as the project develops.
  64.  
  65. Z-Axis:  the Z Axis controls volume by sending midi controller 7 volume
  66. control messages.  If your midi instrument does not receive this
  67. controller the program probably will not work for you.  Some volume
  68. scaling is available depending on how far from the glove receivers the
  69. glove is placed when you center the glove.  Greater control over the
  70. volume range is needed.
  71.  
  72. PROGRAMMING:  In order to compile this program, besides adjusting the
  73. directory parameters and adjusting for the differences between Turbo
  74. C++ 3.0 which I used and another compiler, you must have the files
  75. mcc.h and mcctkf.asm compiled for large model.  These files are
  76. contained in the Musicquest Programmers Toolkit.  (Note Musicquest
  77. compiles their large model obj as mcctkfl.obj, while I used the name
  78. mcctkf.obj.)
  79.  
  80. All I did was to locate the portion of the o2glove code where the
  81. glove parameters are sent to the graphics screen and insert a function
  82. which also sends the parameters to the above described functions on
  83. the midi card.  This is located in the file glgrph.cpp.  I added to 
  84. the main program file ul_glove.cpp the interface initialization
  85. routines and some user input code, and interface close code.
  86.  
  87. I believe the program should function on any MPU 401 compatible card,
  88. although I have only tried it on an MQX32M.
  89.  
  90. PROBLEMS:  Obviously this is just a programming example and does not
  91. begin to touch the potential of the glove as a midi controller.
  92.  
  93. The biggest problem so far is that my method of sending note off
  94. messages does not catch all of the note on's generated by the glove.
  95. If the midi intstument receives the "all notes off" message, this is
  96. not a probem.  My Roland D-5 does.  My Keyboard model EPS 16+ does not.
  97. I created midiglo2.exe for instruments which do not accept midi all
  98. note off messages.  The only thing I could think of (in the 2 hours
  99. since I discovered the problem) was to send multiple individual note
  100. off messages.  I have covered from two notes below the range to two
  101. notes above so as to catch the effect of the pitch bend.  It seems to
  102. slow down the whole works, so I am anxious to see what clever 
  103. solutions our predigious programmer members come up with.
  104.  
  105. In fact, my hope is that a number of the experienced programmers here
  106. will take this idea and run with it, creating a wonderful new musical
  107. experience for enthusiasts like me.  [not as yet.]
  108.  
  109. DISCLAIMER:  This is freeware.  I can only offer it for free if you
  110. agree to waive all rights against me if the program crashes your
  111. comupter, overwrites your operating system and the last 10 years
  112. accounting records, melts down your synth and breaks the water pipes
  113. in the toilet, or any other damage I may have left out.  I an not a
  114. professional programmer.  I barely know enough to get this thing to
  115. work.  I do not profess to know anything about C++ programming
  116. technique.  The whole thing is a kludge, but what the heck, I'm
  117. having a good time.
  118.  
  119. ACKNOWLEDGEMENTS:  To the extent this program works, please give
  120. credit to Mark Pflaging and all of the others who worked to create
  121. o2glove, and who are credited in various files in the o2glov.zip.
  122.  
  123. Mick Imfeld  contact: Cserve graphdev Sections 10 & 11.
  124.  
  125. [Internet people:  Please contact me (Mark Pflaging) at
  126. 70233.1552@CompuServe.com. Mick does not wish to be flooded with
  127. technical questions.]
  128.  
  129. Ideas on uses for midi glove:
  130.  
  131. right now the glove takes the notes you specify for the X Axis and plays
  132. them sequentially.  Instead, an array could be built which could load a
  133. series of jazz scales which the glove could go through by setting up the
  134. sequence of scales beforehand then selecting them with the 10 glove
  135. buttons.
  136.  
  137. Other ideas?
  138.  
  139.  
  140.  
  141.  
  142. Distribution:
  143.   GloveList INTERNET:glove-list@win30.nas.nasa.gov
  144.   Internet Sci-VW INTERNET: hlab@milton.u.washington.edu
  145.