Hubi's MIDI Tools v1.0 

A set of three Windows 3.1 MIDI applications with Borland Pascal 7.0 source
code. Freeware.

 a) Midi Monitor with SysEx Support.
    This program is not full finished yet. I've  included it since it is
    possible to display incoming SysEx Messages, what most other MIDI-Monitors
    can't. I used it for debugging of MIDI applications in conjunction with my
    MDLPBK11.ZIP. It is a good tool to analyze the MIDI Output of several
    Sequencers.
    Features NOT supported are: Save Settings, Save Messages, interpret Data,
    Clipboard Copy/Paste. 
   
    You can select one Input and one Output. All MIDI input goes thru MIDI
    Output. The MIDI input messages are displayed when you click at Start.
    Realtime Messages should be filtered out - the display update process
    slows down !

    The Messages are displayed like
       <timestamp> MM_MIM_DATA : C0 51
    if Filter->MIMmsg is unchecked and
       C0 51
    if checked. The timestamp is in microseconds since opening the MIDI output.
    When doing midi-thru of Sysex Messages, the MM_MIM_LONGDATA and MM_MOM_DONE 
    messages are shown with block length. SysEx data is displayed with 20
    bytes per line. The buffer can hold 100 lines. There are 3 SysEx buffers
    with 2000 bytes each.
          

 b) Midi cable - a simple MidiThru app.
    Receives MIDI messages from a MIDI-IN port and sends it to a MIDI-OUT port.
    This looks simple, but it does what no Visual Basic program can do:
        Realtime SysEx Thru.
    The settings are stored in WIN.INI, in a section with the full path name
    of the program.
    Multiple instances are allowed.
    The IN- and OUT- ports can be passed in the command line to let the user
    assign different ProgMan-icons for each MIDI connection.
      e.g. "c:\correctpath\MIDICONN.EXE IN=2 OUT=1" starts an icon with 
    IN set to 2nd port (e.g. SB 16 MIDI Port) and OUT to first (MidiMapper).
    

 c) SysEx Icon (simply drop SYX files).
     The only thing you can do with this application is to send a MIDI system
    exclusive message from a .SYX file to a MIDI output port. After program
    start an icon appears. The available MIDI ports are added to the system
    menu of this icon and one of the outputs can be choosed now. The .SYX files
    must be selected inside FileManager, dragged to the SysExIcon and dropped
    over it. The selected MIDI port will be opened and the SysEx data will be
    sent in a single MidiOutLongMsg() call, and the output will be closed when
    finished. The size limit is 1MB in Windows Standard mode or 16MB in 
    enhanced 386 mode (or the available non-virtual memory). The files can have any 
    extension (GIFs sounds better than EXEs).
     With a smart directory structure you can build a simple MIDI LIBRARIAN.
    You can configure Windows so, that a Double Click at a .SYX file inside
    Program Manager will send this bank to your synth. You can build a Program
    Manager icon for your favorite banks. You can start multiple instances and
    send different extensions to different ports. 

   The command line is:
     SYX_OUT [OUT=n] [FILE.SYX ...] [/close]
   
   There are 3 different application modes:
   1) SYX_OUT.EXE [OUT=n]
       no parameters, starts a new icon. You must select an output
       from the System-Menu and drop your SysEx-files with FileMgr.
       The output port can be passed in the command line via OUT=n . The 
       the numbering for n starts with 0=NoOutput 1=MidiMapper 2=(first port).
       OUT=1 sets Output to MIDI-Mapper.

   2) SYX_OUT.EXE FILE.SYX [FILES.SYX ...]
       if an instance of SYX_OUT is already running, then the filename
       is sent and processed by this application.
       If no instance is started, nothing will be sent.

   3) SYX_OUT OUT=n FILE.SYX /close
       Best mode for extension-assignement.
       Example: send .SYX to port 3, .DX7 to port 4. 
                in WINDOWS.INI, section [Extensions], add lines
   
               syx=c:\<program-path>\syx_out.exe OUT=3 ^.syx /close
               dx7=c:\<program-path>\syx_out.exe OUT=4 ^.dx7 /close    
       The trailing "/close" parameter causes SYX_OUT to terminate when done.


-----------------
Send Your Comments to:

Hubert Winkler            winkler@cobra.gud.siemens.co.at

