home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Multimed / Multimed.zip / tmidi299.zip / tmidi.doc < prev    next >
Text File  |  1997-07-12  |  12KB  |  285 lines

  1.  tMidi.doc                                   Copyright (C)1997 Cornel Huth
  2.  Release 2.99                                                  12-Jul-1997
  3.  
  4.  
  5. tMidi is a 32-channel, real-time, VIO-based standard MIDI file player.  It
  6. can be used with an attached keyboard to completely control the MPU(s).
  7. You can play an SMF and the keyboard at the same time, even with one MPU.
  8.  
  9. Files included are:
  10.  
  11.         1. paradise.sys
  12.         2. tmidi.exe
  13.         3. several SMFs, documentation
  14.  
  15. Optionally, if you are running Warp 3 or earlier:
  16.  
  17.         4. clock01.sys  (clock02.sys available by request, for MCA)
  18.  
  19.  
  20. No other drivers are needed.  MMPM/2 is not required (but is okay), nor
  21. are any soundcard drivers.  This package includes everything you need for
  22. perfect MIDI playback, even under heavy multitasking.
  23.  
  24. For related files go to http://www.40th.com/ and look around the Paradise
  25. section.  If you are using an older version of the Paradise driver, be
  26. sure to replace it with the driver in this package (version 1.7).
  27.  
  28. Also currently available in the Paradise line:
  29.  
  30.  aMixer: a PM mixer for all Sound Blaster cards, for Warp 3 and Warp 4
  31.  tMixer: a VIO mixer, similar to aMixer, except command-line driven
  32.  XG DSP: a PM DSP editor/controller/mixer for Yamaha's SW60XG and MU-80
  33.  
  34. Either of the mixer apps may be required for best use of tMidi if you
  35. have a Sound Blaster card; current Warp SB drivers break the mixer
  36. support in Warp (3 and 4).  The Paradise mixers are not affected.
  37.  
  38.  
  39. Installation
  40. ------------
  41.  
  42. Install the (two) SYS driver(s) in your boot drive's root directory and
  43. include a reference for the paradise driver in your config.sys:
  44.  
  45.         DEVICE=G:\PARADISE.SYS     (optional -q for quiet install)
  46.  
  47. Paradise version 1.7 or later is required.
  48.  
  49. CLOCK01.SYS, installed automatically by the boot process and so has no
  50. reference in the config.sys file, is based on the Warp 4.0 driver.  It
  51. can be used in previous OS/2 versions, too.  If you are using Warp 4.0,
  52. your CLOCK driver already has the IDC hook, so you can use the one you
  53. already have.  The included CLOCK01.SYS driver is only for those running
  54. Warp 3 or earlier.
  55.  
  56. If you have the old clock driver installed, paradise.sys will gracefully
  57. tell you so, and not install itself.  If you get this message at boot, use
  58. the included clock01.sys.
  59.  
  60. Note:  Due to a long-standing bug in OS/2, detection of obsolete clock
  61. drivers is not as straight-forward as it should be.  However, if the
  62. obsolete clock is not found during boot, it likely will be found by tmidi.
  63.  
  64. The clock01.sys driver in Warp 3's fixpack #26 is -not- an up-to-date
  65. driver.  If the clock01.sys driver is substantially less than 4000 bytes
  66. (e.g., 3520 bytes, like the fp26 one (date 10-10-96)) you need to install
  67. the clock01.sys driver included in this package.
  68.  
  69. Once you have the driver(s) installed, reboot.
  70.  
  71. Note:  There is no need to remove any driver from config.sys.  All you
  72. need to do is add an entry for PARADISE.SYS, and possibly copy the
  73. clock01.sys included in this package to boot:\.  That's all there is
  74. to it.
  75.  
  76.  
  77. Using tMidi
  78. -----------
  79.  
  80. For technical support in the use of tMidi, register using the included
  81. _order.* forms.  Once registered, e-mail support@40th.com for answers to
  82. any of your questions on how to best use tMidi.  This evaluation version
  83. contains basic setup and use instructions, which is enough to see whether
  84. you want to use it, but includes no tech support.  tMidi may be withdrawn
  85. at anytime, so be sure to check if it's still available before ordering.
  86.  
  87.  
  88. Use no args for a list of switches:
  89.  
  90.  [F:\mids\fine]tmidi
  91.  tMidi 2.99   Copyright (C)1997 Cornel Huth   http://www.40th.com/
  92.  Use: [G:\]tmidi [-switch] file.mid
  93.  
  94.   -p1:x     x=hex baseport of MPU for port 1  (e.g., -p1:330 [def])
  95.   -p2:x     x=hex baseport of MPU for port 2+ (e.g., -p2:300)
  96.   -gm       send GM ON sysex before play
  97.   -gs       send GS ON sysex before play
  98.   -xg       send XG ON sysex before play
  99.   -tm:x     x=hex track mask, to play selected tracks only (x=1-FFFFFFFF)
  100.   -tk:n     n=track to mask, repeat as required (n=1 to 32)
  101.   -w1:n     n=max timeout for port 1, n=1000 to 65535, def=10000
  102.   -w2:n     n=max timeout for port 2, n=1000 to 65535, def=10000
  103.  
  104.   "-sx1:x x"       x=hex byte(s) to output to -p1: (single ch msg or sysex)
  105.   "-sx2:x x"       x=hex byte(s) to output to -p2: (must be in "marks")
  106.   "-kb:i pi ch po" IRQ,portIn=1|2,channel=1-16,portOut=1|2 ("-kb:10 1 16 1")
  107.  
  108.  
  109. The default MPU port is 330h, and if there, does not need to be specified.
  110. The Paradise driver handles up any number of ports, and any number of
  111. devices, though tMidi currently supports 16 ports and 2 device.  If a
  112. second device is specified, all output to ports 2 through 16 go to it.
  113.  
  114. An example output during a run:
  115.  
  116.  [F:\paradise\tmidi\mids]tmidi -p1:330 -p2:300 -gm -tm:FFFFF inferno.mid
  117.   1:45  fmt:1 tks: 9 div:120  GM    123456789 1234567890
  118.   0:15.88  6/8   4:1  67bpm  136Hz  TTTTTTTTT PP.......P
  119.  
  120. In this case, 3 ports have been specified:  port 1 data goes to the MPU
  121. at -p1:330; port 2 and port 10 data goes to the MPU at -p2:300.  All
  122. tracks are played (-tm:FFFFF used only for example).  The screen output
  123. makes use of ANSI color, where it's needed.
  124.  
  125.  
  126. Specifying Mode
  127. ---------------
  128.  
  129. An optional switch is the MIDI playback mode:  GM, GS, or XG.  If the
  130. SMF contains no embedded mode, you can specifiy it via the command line.
  131. If the SMF already contains a mode, you cannot override it.
  132.  
  133.  
  134. Specifying Tracks
  135. -----------------
  136.  
  137. Supply either a hex mask for tracks to play, or select them individually
  138. using -tk:.  Only the first 32 tracks can be played if either of these
  139. are used, otherwise, 1000+ tracks can be played.
  140.  
  141.  
  142. Specifying Waits
  143. ----------------
  144.  
  145. To detect when the MPU interface has been reset out from under it, the
  146. Paradise driver checks for a timeout condition to occur.  By default, it
  147. counts down 10,000 times before concluding that something's gone wrong.
  148.  
  149. For very fast systems this may be too soon.  If you get a time-out error
  150. reported, or otherwise do not hear anything when you expect you should,
  151. use the -w1: switch to set this wait timeout value.  The valid range is
  152. 1000 to 65535, with the default set to 10,000.
  153.  
  154. An additional fail-safe has been added to this time-out check:  when a
  155. time-out condition has occured 5 times in a row the current play is
  156. stopped and tmidi exits.  The next play should go as expected.
  157.  
  158.  
  159. Specifying Data to Send To the MPU
  160. ----------------------------------
  161.  
  162. Using -sx1: (-sx2: for -p2: MPU) you can send a single channel or system
  163. exclusive messages to the MPU(s).  The entire argument must be enclosed in
  164. double-quote marks.  For example:
  165.  
  166.  [G:\]tmidi -gs "-sx1:F0 41 42 12 40 00 7F 00 FF F7"
  167.  
  168. The above sends a GS RESET sysex message to the MPU.  The checksum is
  169. calculated if FF is used in the checksum place (and -gs).  See tmidi.tec
  170. (available to registered usrs only) for details and tips.
  171.  
  172.  
  173. Specifying an External Controller
  174. ---------------------------------
  175.  
  176. If you have an external controller, like a MIDI-capable keyboard, you can
  177. use it with tMidi.  You can specify the IRQ (required), portIn, portOut,
  178. and MIDI channel to output to.  See tmidi.tec for details and tips.  The
  179. entire argument must be enclosed in double-quote marks.
  180.  
  181. You -must- supply either a SMF filename or a sysex/channel msg (-sx above) on
  182. the command line with this switch.
  183.  
  184. For example, to play the keyboard connected to the port 1 device, using
  185. IRQ 10, out to the port 1 device, on channel 16:
  186.  
  187.  [G:\]tmidi xg_on.mid           ;switch to XG mode
  188.  [G:\]tmidi "-sx1:BF 00 40"     ;switch to SFX bank (may need BF 20 00 also)
  189.  [G:\]tmidi "-sx1:CF 21" "-kb:10 1 16 1"  ;set program to THUNDER, then
  190.                                 ;using IRQ10, read from port 1 device
  191.                                 ;and output to channel 16 on port 1 device
  192.  
  193. When you press a key, you get rolling thunder!
  194.  
  195. The keyboard remains active until you press a key on the (type) keyboard,
  196. such as ENTER (or up-arrow).  You can transmit on any channel from your
  197. keyboard.
  198.  
  199. Another example:
  200.  
  201.  [G:\]tmidi gm_on.mid           ;switch to GM mode
  202.  [G:\]tmidi "-sx1:C0 7F"        ;use gunshot (C0 pp w/pp=00 to 7F)
  203.  [G:\]tmidi "-sx1:B0 07 7F" "-kb:5 1 1 1" ;set max volume for ch 1
  204.                                 ;using IRQ5, read from port 1 device
  205.                                 ;and output to channel 1 on port 1 device
  206.  
  207.  
  208. If you have:
  209.  
  210.   1. SB16 as your MPU hardware input device:
  211.      baseport address 330h
  212.      IRQ 5
  213.  
  214.   2. SW60XG as your output device:
  215.      baseport 300h
  216.  
  217. you can use this:
  218.  
  219.  [G:\]tmidi -p2:300 gm_on.mid
  220.  [G:\]tmidi -p2:300 "-sx2:C0 7F"                        ;gunshot
  221.  [G:\]tmidi -p2:300 "-sx2:B0 07 7F" "-kb:5 1 1 2"       ;max volume
  222.  
  223.  
  224. Note that the IRQ pertains to the port receiving input, and may be either
  225. one.
  226.  
  227. Note that program numbers (1-128, piano=1...gunshot=128) are not used
  228. in MIDI.  The numbers in MIDI start at 0 and go to 127, so piano=0...
  229. and gunshot=127).  Same with channel numbers (1-16 are really 0-15).
  230. Consult the massive amounts of MIDI info available on the net if you
  231. want to learn about this.  tMidi expects you to use 1-based numbers
  232. (i.e., programs 1-128, channels 1-16) except when you are entering
  233. sysex or MIDI data bytes via -sx1: and -sx2:, in which case you must
  234. use the real data, not the idiot-numbers.
  235.  
  236.  
  237. Limitations
  238. -----------
  239.  
  240. A compatible MPU-401 device is required.  This includes not only
  241. real MPU-401 devices, but cards like the Sound Blaster 16, AWE32, etc.,
  242. with either a daughterboard (CL Wave Blaster, Yamaha DB50XG, etc.), or
  243. a sound module or keyboard attached to the external MIDI port.  Stand-
  244. alone cards, like the Yamaha SW60XG, AW32, OPL4, AudioTrix 3D-XG or
  245. Pro, can be used, too, among many others.  There are no plans to work
  246. with non-MPU devices at this time.
  247.  
  248. Note: An SB16 has an MPU-401 interface, and will appear to work with
  249. tMidi, but without any sound.  That's because the SB16 has only the
  250. interface, and not a device.  Attach a device to either of its ports
  251. (26-pin internal or the external) and you can use tMidi.
  252.  
  253.  
  254. Tips
  255. ----
  256. If the SMF has no internal play mode specified (GM, GS, or XG), tmidi
  257. plays it using whatever the MPU device was last set to.  To prevent
  258. playing a "generic" (a file with no internal play mode) in whatever
  259. mode was last set, add -gm to each command line until you are sure
  260. that the "generic" SMF is really a GS or XG.  If there is an internal
  261. play mode, adding -gm won't have any affect.  You can also use the
  262. included xx_on.mid files before playing an SMF without an internal
  263. reset message.  If there is an internal reset (GM, GS, XG) message,
  264. you cannot override it.
  265.  
  266. To play a whole lot of files without having to keep feeding the
  267. command line, create a cmd file like this:
  268.  
  269.         dir *.mid /b > all.cmd
  270.  
  271. Edit all.cmd by placing a ` in column 1 for all rows.  Go back and
  272. replace the ` with a tmidi<space> (or tmidi<space><quote>).  If you
  273. are using quotes around the name (spaces in the names), change .mid to
  274. .mid<quote>.  Then, just type in all.cmd.  If you don't like a
  275. tune, just hit a key (ctrl-C to exit for good).
  276.  
  277. See the tmidigm.cmd file if you want to use tMidi as a Netscape Helper
  278. to play .mid files off the web (by clicking the filename.mid link).
  279.  
  280. This is probably the last public release due to lack of interest.
  281.  
  282. See the README for more.
  283.  
  284. Filename is tmidi299.zip.
  285.