home *** CD-ROM | disk | FTP | other *** search
/ The Best of Windows 95.com 1997 April / Win95_04974.iso / docs / 00011 / 01117.exe / _SETUP.1 / MIDLPBK.TXT < prev    next >
Encoding:
Text File  |  1996-12-18  |  23.8 KB  |  636 lines

  1.  
  2.   Hubi's LoopBack device   Version 2.4ß1                     December 18, 1996
  3.     
  4.  virtual MIDI driver for Windows3x/95 to connect multiple MIDI-programs.
  5. _____________________________________________________________________________
  6.  
  7.  This package may be of use for You, if you
  8.  * work simultaneous with multiple MIDI programs in Windows (or want to do it).
  9.  * hate the Message "the MIDI device is currently in use by another ...".
  10.  * simply want to hear the OPL2-FM chips of your SoundBlaster when you play 
  11.    your Waldorf Wave keyboard (can't get that noiz out).            do you? :-)
  12.  * Use your favorite Synth-Editor together with your favourite MIDI-Sequencer,
  13.    Combine the best of all MIDI programs.
  14.  * Don't want to wait for OMS.
  15.  
  16.  This package is NOT for You, if you
  17.  * ask now "What is MIDI ?"
  18.  * laugh with pleasure about Microsofts error messages and their funny
  19.    translations. (is there a BestOf anywhere on the Net ?) 
  20.  * won't hear a PC ventilator fan near your Waldorf Wave.  
  21.  * your only MIDI application is a MIDI Jukebox player. 
  22.  
  23. _____________________________________________________________________________
  24.  
  25. Highlights
  26.  
  27.  up to 4 new MIDI In/Outputs 
  28.  Multi client feature allows mixing and duplication of MIDI messages
  29.  full SysEx support
  30.  Very low memory requirements (about 5K fixed / 4k discardable Windows memory)
  31.  No hardware required (except your Windows-PC)
  32.  Port names can be edited 
  33.  Fuse mechanism to prevent MIDI-short curcuit (dumb safe!)
  34.  CAN EXTEND YOUR MIDI-DRIVER TO MULTI-CLIENT FASCILITY !
  35.  comes with hwmdcabl.exe - the realtime SysEx-thru icon.
  36.  program source is available
  37.  IT'S FREEWARE
  38.  
  39. _____________________________________________________________________________
  40.  
  41.                            Table of Contents
  42.   
  43.   Overview
  44.   Installation
  45.   Updating from a Previous Version
  46.   How "Hubi's LoopBack works"
  47.   How "Hubi's MidiCable works"
  48.   Simple Example Setup
  49.   Making a MIDI port Multi Client able
  50.   Hints and Warnings : Midi-Thru, Cubase, CTL3D.DLL
  51.   History
  52.   Future Enhancements - What YOU can do
  53.   About the Author
  54.   
  55. _____________________________________________________________________________
  56.  
  57. Overview
  58.  
  59.  The package contains two programs:
  60.  + A MIDI driver, "Hubi's LoopBack Device", which must be installed via control
  61.     panel. The driver offers virtual MIDI Ports (up to 4), which act as Input
  62.     and Output. All MIDI data sent to the output (from sequencer program)
  63.     is delivered to all programs at the input side (eg. a MIDI monitor 
  64.     program).
  65.     
  66.  + A MIDI-Thru application, "Hubi's MIDI Cable", which acts like a MIDI thru
  67.     application. It is useful for quick connections between LoopBack-Nodes and
  68.     Hardware Ports.
  69.  
  70. _____________________________________________________________________________
  71.  
  72. Installation
  73.  
  74.  Unzip to an empty directory
  75.  
  76. pkunzip a:mdlpbk24 -d c:\tmp
  77. Copy the files HWMDCABL.EXE and HWMDCB.DLL to another directory. If you use
  78. Windows FileManager, use the Drag&Drop feature to install a ProgramManager
  79. icon. 
  80.  or use WinZip, "Extract" command. 
  81.  
  82.  Start Windows, select "Control Panel" from the "Main" group, select Drivers,
  83. select Add button, select "unlisted driver", OK, enter your directory
  84. (eg. C:\TMP). Now you should see "Hubis Loopback V2.4", and press OK. Now the
  85. configuration dialog comes up and you must select the number of ports to use.
  86. 2 should be a good starting point, but WARNING: Windows(3.1) cannot handle 
  87. more than 10 midiports (+Midimapper). 
  88. After Restart, the new MIDI In and Outputs will be available then. If you have
  89. no CTL3DV2.DLL in your \windows or \windows\system directory (nearly impossible)
  90. then you must install one manually.
  91.  
  92. Windows 95: 
  93.  Start->Settings->ControlPanel->Hardware
  94.   Continue-> [No] ->Continue -> [ Audio/Video/Game Controller ] ->Continue
  95.    ->Diskette -> [ enter the unzipped directory ] ...
  96.  
  97.  
  98.  
  99.  In case of troubles, try copying the file CTL3DV2.DLL to your windows\system
  100. directory.
  101.  
  102. ______________________________________________________________________________
  103.  
  104. Updating from a previous version
  105.  
  106.  The main difference to the previous versions 1.0 and 1.1 is, that midlpbk.dll
  107. now can deal with multiple clients. Each port can be opened by up to 4 MIDI-In
  108. clients and up to 10 MIDI-Out clients. This feature makes the old matrix
  109. configuration now unnecessary, and allows a more powerful and flexible
  110. configuration that is also easier to maintain.
  111.  
  112. Removed features are:
  113. - IN- and OUT ports now have the same name
  114. - Matrix-setup removed
  115. - No more a Control Panel Applet
  116.  
  117. This means you have to 
  118.  remove your ProgMan-Icons for "control midlpbk.dll",
  119.  remove from control.ini, Section [MMCPL] the line
  120.   Hubis LoopBack=c:\windows\system\midlpbk.dll
  121.  
  122. Please remove the old driver before installing the new one. This saves some
  123. space in system.ini.
  124.  
  125. The new features are
  126. + Multi Client
  127. + Port Name Dialog
  128. The setup dialog is now only available from SytemControl->Drivers->Configure.
  129.  
  130.  Between the versions 2.0 to 2.3 is no functional difference, only peripheral
  131. smoothing. Version 2.4 adds a fusing mechanism.
  132. ______________________________________________________________________________
  133.  
  134.  How "Hubi's LoopBack" works:
  135.  
  136.  There is a MIDI output port and a MIDI input port. All data sent to
  137. the output will be available at the input port, that is the MIDI output
  138. from one program is the input of another program.
  139.  
  140.    Prog1 >--[ LB1 ]--> Prog2
  141.  
  142. You should think about a MIDI node, which can be opened as output
  143. from several programs and input of others. Each of this programs is named
  144. "a client". The output of all OUT-clients is merged and sent to all 
  145. IN-clients. Multi-Client means, that each node can have up to 4 IN-clients 
  146. and 10 OUT-clients (hard coded).
  147. Hubi's LoopBack can serve up to 4 nodes, but changing the number of active
  148. ports (=nodes) requires to restart Windows.
  149.  
  150.  
  151.  Fuse Mechanism:
  152.  
  153. The main drawback of pre-2.4 versions was the possible system-hangup on MIDI
  154. short-curcuit. Attaching the same Node as Input and Output of a MIDI 
  155. application can cause circling MIDI messages (w/ MIDI thru). 
  156.  
  157.  The first invention was:
  158.  +  Do not send the same message twice. 
  159. But to let MIDICLOCK work, a time limit was added, and to allow the generation
  160. of Flanger Effects (all notes played twice - i.e. with two "Hubi's MIDI cable" 
  161. in parallel), a more general formula was used:
  162.  
  163.  ++ Do not send a Message more than N times within M milliseconds.
  164.  
  165.  N and M are adjustable in the Configuration Dialog as 
  166.    Duplicates: 
  167.     max    N       (default 1)
  168.     in ms  M       (default 2)
  169.  
  170. To enable "Flanger effects", N must be setted to 2.
  171. MIDICLOCK (F8 hex) appears 24 times per quarter note, that is every
  172. 10.4 ms at 240bpm. Setting M to 10 could eat up some MIDICLOCKs then.
  173.  
  174. NOTE: To turn the Fuse off, set M to 0
  175.  
  176.  
  177. But another "Crash" situation still exist: the Cubase "Reset Devices" command.
  178. It sends Controller Reset Commands on all 16 channels (6 x 16 = 96 messages),
  179. and the "thru" feature would cause a system hangup. This was solved with
  180. following formula:
  181.  
  182. ++ Do not send more than X messages per time period T.
  183.  
  184.  X and T are adjustable in the Configuration Dialog as 
  185.   Fuse:
  186.    max    X  (default 128)
  187.    in ms  T  (default 100)
  188.  
  189. The default values seems lower than the MIDI rate of about 1500 per second 
  190. (2 byte messages, i.e. Controller with running status at full use of 31250
  191. baud), but only SysEx transmission uses such a high data rate, and SysEx-Input
  192. in Windows is usually handled with blocks of several hundred bytes.
  193.  
  194.  
  195. ______________________________________________________________________________
  196.  
  197. How "Hubi's MIDI cable" works
  198.  
  199. It's a simple MIDI-thru program with following features: 
  200. - All MIDI processing in realtime (at Interrupt time!)- no Windows/Message delays
  201. - Full SysEx support
  202. - unlimited SysEx Message size
  203. - low resource requirements (I could start it 57 times! -V2.1 in Win3.1 with i/o none)
  204.       
  205.  
  206. Usage:
  207.     - Start
  208.     - Search icon, then select MIDI-in port and MIDI-out port.
  209.     - .... play your attached MIDI keyboard
  210.     - Close 
  211.     - the settings are remembered for the next start (in win.ini).
  212.  
  213.  
  214. Usage for advanced users:
  215.     The pro's need more than one instance running (I tried once 57!), so 
  216.     I gave the program the option to pass the ports on the command line. 
  217.     e.g.   HWMDCABL.EXE IN=1 OUT=1 
  218.     Create an own program manager icon for each needed MIDI-connection
  219.     and edit the appropriate command line. The numbers are the same as
  220.     in the icon menu.
  221.      If it should start at startup, copy the program manager icons into
  222.     the Autostart program group (hold down the <Ctrl> key while dragging
  223.     with the mouse).
  224.  
  225.  
  226. Filter Option: The filter can be setted only from the command line, there is
  227.         no default setting from ini-settings because of the very
  228.     confusing behaviour if not all MIDI messages go through by default.
  229.     The format is
  230.     hwmdcabl.exe FILT=Channs,ChanMsgs,SysMsgs
  231.     where Chans,ChanMsgs and SysMsgs are a hexadecimal number each.
  232.     
  233.     Chans:
  234.     8000 : Channel 16
  235.     4000 : Channel 15
  236.     2000
  237.     ....
  238.     0002 : Channel 2
  239.     0001 : Channel 1
  240.  
  241.     i.e. to filter out channels 12,11 and 1, use 0800+0400+0001 = 0C01
  242.         FILT=C01,.....      (leading zeros are optional)
  243.  
  244.     ChanMsgs:
  245.     0100 : Note Off
  246.     0200 : Note Off
  247.     0400 : Poly Key Pressure (key aftertouch)
  248.     0800 : Control Change
  249.     1000 : Program Change
  250.     2000 : Channel Pressure (channel Aftertouch)
  251.     4000 : Pitch Bend
  252.      
  253.     i.e. to filter out channels 12,11 and 1, PitchBend and Polyphone Aftertouch
  254.         FILT=C01,4400
  255.  
  256.     SysMsgs:
  257.     0001 : System exclusive
  258.     0002 : Midi Time code (MTC)
  259.     0004 : Song Position Pointer
  260.     0008 : Song Select
  261.     0040 : Tune Request
  262.     0080 : ( End of SysEx - will be received as SysEx or MM_MIM_ERROR)
  263.       realtime messages:
  264.     0100 : Midi Clock
  265.     0400 : Start
  266.     0800 : Continue
  267.     1000 : Stop
  268.     4000 : Active Sense
  269.     8000 : System Reset
  270.       When you hold down the <Ctrl> key while clicking the checkbox, you can 
  271.     send the clicked system message to the MIDI output (have you ever tried
  272.     what reset does ?).
  273.  
  274.     i.e. to filter out channels 12,11 and 1, PitchBend and Polyphone Aftertouch,
  275.         Midi Clock, Active Sense and MTC
  276.         FILT=C01,4400,4102
  277.     
  278.    All filtered is: FILT=FFFF,7F00,DDCF
  279.  
  280.    Note: use the "Cmd to Clipbrd" menu item to copy the current settings
  281.         to clipboard (and insert it to the command line of the icon)
  282.  
  283.  
  284.  
  285. Transformation options: (experimental state)
  286.     TRx=mask,trigger,value,func
  287.     with x=1..4, mask, trigger, value and func are Hex numbers
  288.            The hex bytes represent the MIDI bytes.
  289.     
  290.     Example: Transform Midi Controller #5 to Start/Stop messages
  291.  
  292.         mask=FFFF80    - only MSB of Data 2
  293.         trigger=B00540
  294.         value=FA    (Start)
  295.  
  296.         mask=FFFF80    - only MSB of Data 2
  297.         trigger=B00500
  298.         value=FC    (Stop)
  299.  
  300.     ... TR1=FFFF80,B00540,FA,01 TR2=FFFF80,B00500,FC,01
  301.  
  302.     see transform.txt for more examples
  303.     
  304. ______________________________________________________________________________
  305.  
  306. Simple Example Setup:
  307.  
  308. The symbol >>>> means a running HWMDCABL.EXE instance.
  309.  
  310. [SB MIDI In]--->>>>---[LB1]---<Cubase>---[LB2]--->>>>--[SB MIDI out]
  311.                      / / \\_<SynthEditor>_// \
  312.            MidiJoy_/  /   \<CakeWalk>____/    \<MidiMonitor>
  313.    virtual Keyboard_/      \<MidiMonitor>
  314.  
  315. Note what's possible with only 2 nodes activated, and now imagine how
  316. complicated your setup could be with all 4 nodes activated...
  317.  
  318. But if Creative Labs makes their SB16 MIDI Driver with multi client support,
  319. most would work without midlpbk.dll
  320.  
  321. _____________________________________________________________________________
  322.  
  323.  MAKING A MIDI PORT MULTI-CLIENT-ABLE
  324.  
  325. (there is a better alternative at 
  326.  ftp://ftp.winsite.com/win3/sounds/multimid.zip  )
  327.  
  328. You can use a loopback-port together with HWMDCABL.EXE to make a Hardware
  329. MIDI port (eg. SoundBlaster) able to handle with multiple clients.
  330.  
  331. There exist already several MIDI drivers which are able to deal with more
  332. than one client. I know of following:
  333.   Twelve Tone Systems MPU401 driver (comes with Cakewalk)
  334.   Voyetra Super SAPI FM synth (comes with SB16)
  335.   KORG PC I/F V1.11 (for KORG X5/05RW/X5DR)
  336.   Jamie O'Conell's FMSynth driver for OPL2/3 (V2.x )
  337.   All Turtle Beach drivers
  338.  
  339. A test if your driver supports multi-client access is simple:
  340.   - start 2 instances of HWMDCABL.EXE 
  341.   - try to open one port (in or output) simultaneous by both midicable-icons.
  342.     If this works without an error message box, the port supports multi-client
  343.     access. If an error message box comes with "the midi port is already in 
  344.     use..", multi client access is not supported.
  345.   - IN and OUT - ports are independent of each other, so you must check both.
  346.  
  347. To make a single access port multi client able, you must combine a LoopBack
  348. node with a MIDI thru application: HWMDCABL.EXE
  349.  
  350. I'll demonstrate how to make the SB-MIDI port Multi-Client:
  351. If you install midlpbk.dll and configure it with 2 active ports, then you'll
  352. have 4 available MIDI inputs:
  353.  1 [SB16 MIDI In]
  354.  2 [Voyetra Super SAPI FM Synth]
  355.  3 [LB1]
  356.  4 [LB2]
  357.  
  358. The MIDI outputs should look like:
  359.  1 [Microsoft MidiMapper]
  360.  2 [SB16 MIDI Out]
  361.  3 [Voyetra Super SAPI FM Synth]
  362.  4 [LB1]
  363.  5 [LB2]
  364.  
  365. We use LB2 for the extension. For easier maintenance of the resulting setup,
  366. we rename LB2 to "Multi SB MIDI In" (This is done by double-clicking at the
  367. port name in the configuration dialog in Windows-Sytem-Control, Drivers). Now
  368. we must start hwmdcabl.exe. The most user friendly way would be to start it
  369. automatic on Windows startup. The installation is easy: 
  370.  - Open ProgramManager and FileManager so that both are visible (Why do most
  371.    users use them in full screen mode ? ).
  372.  - Select the hwmdcabl.exe directory in FileManager
  373.  - Open the AutoStart group in ProgramManager
  374.  - Move the mouse (only the cursor) to FileManager, click over "hwmdcabl.exe"
  375.    and hold the mouse button down and move this icon into ProgramManagers
  376.    Autostart group and release the mouse button. Installed.
  377.  - Now we must tell hwmdcabl.exe which ports it should use. Start hwmdcabl.exe
  378.    and open the system menu of the appearing icon. You'll see a large menu
  379.    with all MIDI-IN ports in the middle and all MIDI-OUT ports at the right
  380.    side. Look at the numbers before the ports and remember the wanted IN and
  381.    OUT port number. Now switch to ProgramManager and hilight the Hwmdcabl icon
  382.    in the Autostart group. Press Alt-Enter to edit its properties.
  383.  - Append " IN=x OUT=y" (without quotes but with leading blank) to the
  384.    CommandLine field. x and y must be replaced with the appropriate port
  385.    numbers from the menu. 
  386.  - Edit the Description field to "Multi SB MIDI In" or whatever you want
  387.  - press OK
  388.  
  389. In the above example, this could look like this dialog snapshot: 
  390.   
  391.   Description  [Multi SB MIDI In                         ]   ( OK   )
  392.   CommandLine  [C:\WINUTILS\MIDI\HWMDCABL.EXE IN=1 OUT=5 ]   (Cancel)
  393.   Directory    [C:\WINUTILS\MIDI                         ]   (Search)
  394.   Hotkey       [<none>                                   ]   (Symbol)
  395.  
  396. The next step is to change the setup of your MIDI programs to use the new
  397. "Multi SB MIDI In port", which can be opened by 4 programs simultaneous now.
  398.  
  399. The menu of the running HWMDCABL.EXE program should look like:
  400.  
  401.  0   None                        | 0   None                        |
  402.  --------------------------------|---------------------------------|
  403.  1 X SB16 MIDI In                | 1   Microsoft MidiMapper        |
  404.  2   Voyetra Super SAPI FM Driver| 2   SB16 MIDI Out               | 
  405.  3   LB1                         | 3   Voyetra Super SAPI FM Driver|
  406.  4   Multi SB MIDI In port       | 4   LB1                         |
  407.                                  | 5 X Multi SB MIDI In port       |
  408.                  
  409. an the icon title should be "SB 16 MIDI In to Multi SB MIDI In port".
  410.  
  411.  
  412. To make an output Multi-Client, read this chapter again with words IN and OUT
  413. swapped.
  414. _____________________________________________________________________________
  415.  
  416. Integrating MIDIMAPPER in setup
  417.  
  418. Example: a Yamaha PSS790 + Cakewalk Homestudio
  419.     - PSS790 sends all MIDI IN unchanged to MIDI OUT (merged with Keys)
  420.     - Cakewalk Homestudio has no Input Channel Filter.
  421.     - If you want to sequence a song using the PSS790 Synth during record,
  422.       you'll get all MIDI data back at the MIDI-In and will record all
  423.       16 MIDI channels (echoed from PSS790 out) at the current track.
  424.  
  425.  [PSS790]-[MPU]-->>>--[MidiMapper]--[LB1]--[Sequencer]--[MPU]--[PSS790]
  426.  
  427.     * enable one virtual Node LB1
  428.     * Setup MidiMapper: Only channel 1 is enabled and sent to LB1, rest off.
  429.     * MidiCable with IN=MPU and OUT=MidiMapper
  430.     * Only LB1 as Input in Sequencer
  431. Now the Sequencer receives only channel 1 ! And you can record track by track now.
  432. _____________________________________________________________________________
  433.  
  434. HINTS & WARNINGS:
  435.  
  436.  
  437. MIDI THRU
  438.  
  439.   Midi short curcuit is no problem now - FUSE MECHANISM. 
  440.  
  441. ----------- BEGIN OUTDATED DOCUMENTATION
  442. -
  443. - When using the MIDI-thru option in your Sequencer application, be sure 
  444. -it doesn't record it's own output when it sends to a virtual MIDI port. The
  445. -system will slow down or hang if a Midi-message circles around.
  446. -
  447. -! A SEQUENCER PROGRAM MUST NOT HAVE THE SAME MIDI-NODE AS INPUT AND OUTPUT !
  448. -
  449. -
  450. -If it has, then be sure that any Midi-thru option is disabled.
  451. -
  452. -CUBASE 
  453. -Using with Cubase for Windows, MusicStation and Cubasis:
  454. - Since Cubase allocates all MIDI-Inputs and Outputs by default, you must
  455. -download the MROS-MME setup-utitlity from 
  456. - ftp://mcc.ac.uk/pub/cubase/updates/Windows/set_mme.exe (upl. Feb 95)
  457. -This utility comes from Steinberg, but I don't know if it's included in the
  458. -current releases of Cubase/Cubasis/MusicStation. It can de/activate, sort and
  459. -even rename (inside Cubase) the available MIDI ports. To avoid midi-thru
  460. -problems, enable only LB1 for input and only LB2 for output. 
  461. -Cubase will hang on startup if it one Node is activated as In- and Output.
  462. -
  463. -I have tested following Sequencers:
  464. -   Cubasis Demo, MusicStation Demo 1.1, CubaseScore1.1 : Require all SET_MME !
  465. -   Cubase 1.0 (the unstable, but not-copy protected version) requires
  466. -    SET_MME+newest MROS.DLL and drivers, but the ports can only be seen as
  467. -    numbers then. 
  468. -
  469. -I had no problems with:
  470. -   Cakewalk 3.0 Demo(up to 5.0), WinJammer 2.3, Passport Trax, MidiSoft Recording Session,
  471. -   WinSysEx 3.0, TTS Virtual Piono, MidiKeyb, .......
  472. -
  473. -I was able to synchronize demos of SoundForge 3.0 and Samplitude Studio with
  474. - Cubase, 
  475. -I could record from Cakewalk to Cubase and vice versa.
  476. -
  477. -
  478. ----------- END of OUTDATED DOCUMENTATION
  479.  
  480. CTL3D.DLL 
  481.  
  482. midlpbk.dll uses ctl3dv2.dll for their dialogs if installed. If this file is missing,
  483.    dialogs are black/white. If Win3.1 shows an error ignore this.
  484. _____________________________________________________________________________
  485.  
  486. History:
  487.  
  488. V 0.x Jan 94 : 1st working version, but nearly unused due to Cubase problems.
  489.  
  490. V 1.0 Feb 95 : first upload (Steinberg released set_mme-utility)
  491.  
  492. V 1.1          Code segment made fixed. 
  493.                MidiOutShortMsg can be reentered 4 times now (should be enough)
  494.                Device Names can be edited in system.ini
  495.  
  496. V 2.0 Jun 95 : Multi-Client version. Remove all beautiful features (no more
  497.                necessary). Source splitted in fixed- and discardable code.
  498.            Packaged with HWMDCABL.EXE
  499.  
  500. V 2.1 Aug 95 : Fix for SB16 with TB-Rio, IN- and OUT- names can be different
  501.            (required for TB-WavePatch - see wfpatch.wri )
  502.  
  503. V 2.2 Oct 95 : dynamic load of Ctl3dV2.dll, only if installed.
  504.  
  505. priv. V 2.2a Nov 95 : Filter dialog with Midi Cable
  506.  
  507. priv. V 2.2b Jan 96 : Workaround for AWE32 driver bug on close, 
  508.  
  509. V 2.3 Apr 96 : Fixed a Win95 bug with 32bit Window-Callback
  510.  
  511. V 2.4 Aug/Sep 96 : Fuse mechanism, Reviewed transform and filter
  512. ------------------------------------------------------------------------------
  513.  
  514. Future enhancements:
  515.  
  516.  Configurable realtime transformations. 
  517.  
  518.  
  519.  WHAT OTHER PROGRAMMERS CAN DO :
  520.  
  521.  I think it should now be easy for musical programmers to enhance their system
  522. with small MIDI utilities, like random note generators, midi message
  523. translation applications, problem specific input dialogs 
  524.  
  525.  -------------
  526.  
  527. Note: In the documentation of version 1.1, I said that the MMSYSTEM design of
  528.       Microsoft would not allow full featured multi-client drivers. I was
  529.       wrong! It was indeed very simple to implement it. As a hobby programmer, 
  530.       I can't afford MSDN Level 1 or 2, so I'm always behind in getting
  531.       information. Fortunately I got a MS Multemedia Jumpstart CDROM in a 
  532.       10 pack, which contained information for writing MIDI drivers.
  533.        
  534.       But I don't know why Microsoft has not impelemented this very useful
  535.       feature in their own drivers and their DDK SoundBlaster example.
  536.  
  537.  BTW, I've bought a Microsoft Home Mouse. It contains some funny programs for
  538.     modifying the Windows-cursor. After installation of the 2 floppies, one 
  539.     of the directories contains 457 cursor files with 326 bytes length each. 
  540.     But if you install this onto a harddisk partition with more than 1 GB, 
  541.     15 MB of your C: drive is occupied (a 32 kB cluster per file). What I want
  542.     to say is, only Microsoft is able to copy 15 MB uncompressed to a floppy.
  543.  
  544. ______________________________________________________________________________
  545. Undocemented features:
  546.  
  547. WIN.INI:
  548.  
  549. [Hubi's MIDI cable]
  550. SysExSize=1024
  551. Use3D=1
  552.  
  553.  
  554. SYSTEM.INI:
  555.  
  556. [midlpbk.drv]
  557. LB1=..
  558. .....
  559. Use3D=1
  560. DupeTime=2
  561. MaxDupe=2
  562. FusePeriod=100
  563. FuseLimit=128
  564.  
  565. The last 4 match M,N,T and X in the documentation of Fuse Mechanism.
  566. To turn the Fuse off, set DupeTime to 0
  567.  
  568. ______________________________________________________________________________
  569.  
  570. The following programs should be available at the same where place you got 
  571. this file. On the internet, look at
  572.  ftp://ftp.cs.ruu.nl/pub/MIDI/PROGRAMS/MSWINDOWS
  573. or 
  574.  ftp://ftp.winsite.com/win3/sounds
  575.  
  576.  
  577.   MDUTLS10.ZIP : 
  578.      MIDI_MON: "MIDI MONITOR" - show received MIDI messages, (with SysEx!) 
  579.       ( MIDICONN: "MIDI CABLE" - simple MIDI Thru application (with SysEx!)
  580.      SYX_OUT: an Iconized-Application for sending .SYX dumps to Synthesizers,
  581.              with File Manager Drag and Drop Interface.
  582.    ==> The file hwmdcb.dll in mdutls10.zip is an older version of the one
  583.        included in mdlpbk20.zip. Please replace the old with the new one to
  584.        avoid problems.
  585.        Also MIDICONN.EXE is superseeded by HWMDCABL.EXE.
  586.  
  587.  
  588.   MDJSTK10.ZIP: MIDI-Joystick. Use a PC-Joystick as MIDI controller.
  589.              X,Y and 2 Buttons configurable. 
  590.             (send email for Joystick2 version)
  591.  
  592.   SIMSAM10.ZIP: Hubi's Simple Sampler. Load a .WAV file Into memory, play
  593.              it as MIDI intrument (w. pitch transpose and volume control)
  594.  
  595.   MCICOM99.ZIP: Hubi's MCI Commander, Execute MCI commands by MIDI.
  596.             (HD-recording, CD-Audio, Video, ...) 
  597.  
  598. ______________________________________________________________________________
  599.  
  600. About the author:
  601.  
  602. Dipl. Ing. Hubert Winkler
  603. Neunkirchner Str. 17
  604. A - 2732 Willendorf 
  605.  Austria
  606.  
  607. Email: winkler@cobra.gud.siemens.co.at        (office)
  608.              (If this adress becomes invalid, try <Hubert.Winkler@siemens.at>)
  609.         
  610. My Equipment:
  611.  
  612. Hardware:
  613.  486DX/2-66/256k/16MB, 540MB, SB-clone (CS4232 chip), 5X-CDROM
  614.   
  615.  Pentium 133 / 256kPB / 32MB , 2.5+1GB HD, ET6000 VGA (2MB), 17"64kHz,
  616.  Toshiba 5602 CDROM (8x, digital output and read Audio CD) 
  617.  AWE32 w/ 8MB, 
  618.  Korg 05R/W at COM2, (sounds great)
  619.  Yamaha PSR300 keyboard (old...). 
  620.  2 Joysticks
  621.  Sony MDR94 Headphones
  622.  Philips Active Speakers (?= all I know is 2x12W, 55Hz...xxkHz)
  623.  
  624. Software:
  625.  Cubase Score 3.01
  626.  Samplitude Studio 2.5 (Many thanks to SEK'D)
  627.  Band In A Box
  628.  XEdit 3.1 (Shareware Editor for Korg Synthesizers)
  629.  AWave 3.1 (Shareware Sample Converter)
  630.  AWEVbank (Shareware AWE panel)
  631.  
  632.  
  633.