http://recordingmaninoz.blogspot.com.au/

  ,     . 

,      .    MIDI-  MIDI- - 
   ,    ,   ,   SYSEX.

,  MIDI-  MIDI-     MIDI-  MIDI-. 

    -      -,   MIDI-,    " " ;-) 
       -  - "LoopMIDI"   .   . 

(   LoopBe1,  ,     MIDI-     .)

    CHANGED.MID,        .

      MIDI-:

https://onedrive.live.com/redir?resid=68C7CC233B49C4C2!576&authkey=!AKEp6IWwji2FKzg&ithint=folder%2c.txt

  MIDI-  MIDI-,     MIDI- -   ,  :

https://onedrive.live.com/redir?resid=6

  XG-GS Utilities  ,  .

   MIDI   (XG/GS MIDI Jukebox)  "loopMIDI port".
   MIDI   ,  ,  "loopMIDI port".
 MIDI       "     "

 play    -   -  .

,   , - :

MIDIIN VB5

 ,    .    MIDI    VB5.
      .
   "MidiMon.exe",   .

MIDI  VB6

    ,       VB5,     VB6.
  !   ,  MIDI-  VB6   :-(
      MIDI- 
-   ,            .
          ANO MIDI
   ANO5,         .
    ,   -  ,     !
   "MidiMon.exe",   .

%!!!!!!!!!!!!!!!!!!!,     ,    VB6.    1  30 ,   . ,  VB5            .  MIDI IN           , ,    . (As MIDI IN requires callback logic to maintain pointers to these data structures, it is necessary that the memory is not relocated.)


XGGSMON

 VB.NET  VS 2010.     -    .
    VB5    
-       GlobalAlloc!
   "XGGSMON.exe"   \XGGSMON\bin\Release,   .

  zsyncoz  :

http://codes-sources.commentcamarche.net/source/view/100174/1316105

/ -   ,   ,   MIDI   !

 MIDI

 2 :

ANO 
-      Roland Sound Canvas    SC-55
-        ,   Roland
-  XG/GS Reset,   SC-88, SC-88Pro  SC-8850    SC-55 (  ).
-      ,   ,   MIDI   

ELP
-     ELP-
- 5BrFugueGS -  solo piano -  MIDI- VB6     ;-)
-     LoopBe1 -     loopMIDI





  
mikelevoi@gmail.com

30  2014



http://recordingmaninoz.blogspot.com.au/

Here is some code for you all to play with. 

However, let me just say a few words first. My definition of MIDI IN and MIDI OUT processing is
not some baby code that handles a few notes struck on a keyboard - or the odd SYSEX message.

No - good MIDI IN and MIDI OUT code has to handle amazingly complex MIDI input and output. 

The only way to do this is to use MIDI FILES that provide a "torture test" ;-) 
To test the code I use loopMIDI from Tobias Erichsen. This is rock solid code. 

I have tried loopBE1 - but I gave up on this as one of my MIDI files consistently broke it. 

I have included the file, CHANGING.MID, so you can try this code with it.

Here is the link to the source code and MIDI files:

https://onedrive.live.com/redir?resid=68C7CC233B49C4C2!576&authkey=!AKEp6IWwji2FKzg&ithint=folder%2c.txt

To test MIDI IN and MIDI OUT - use your favourite MIDI file player - you can use mine if you like:

https://onedrive.live.com/redir?resid=68C7CC233B49C4C2!342&authkey=!AFDQL1CnIX7o-Gg&ithint=folder%2c.exe

Install XG-GS Utilities from the site above.

Set MIDI OUT from the player (XG/GS MIDI Jukebox) to "loopMIDI port".
Set MIDI IN in the test code below to "loopMIDI port".
Set MIDI OUT in the test code below to "Your favourite hardware or software synth"

Press play in your player - sit back - and watch.

The items I have uploaded are:

MIDIIN VB5

This is the code that started it all. MIDI IN and OUT using only VB5.
This code is rock solid and never breaks.
Just double click "MidiMon.exe" to run it.

MIDIIN VB6

This is exactly the same code as the VB5 code above - just compiled with VB6.
It does NOT WORK! I am firmly convinced that MIDI IN is simply not possible with VB6 :-(
It can play most of the MIDI files I have uploaded 
- as long as it is feeling happy and there is not much SYSEX input.
It cannot play any of the ANO MIDI files that I have uploaded
- apart from ANO5 - which has no SYSEX - and which it sometimes plays.
I would be very grateful if someone can find out why this code does not work consistently!
Just double click "MidiMon.exe" to run it.

XGGSMON

This is VB.NET using VS 2010. The code is rock solid - it never breaks.
Converting this code from VB5 was a real pain 
- disabling Garbage Collection and using GlobalAlloc had to be used!
Just double click "XGGSMON.exe" in the \XGGSMON\bin\Release folder to run it.

A huge thank you to zsyncoz here:

http://codes-sources.commentcamarche.net/source/view/100174/1316105

He/she is the only person who I have seen who has got MIDI IN working properly!

MIDI Files

There are 2 folders:

ANO 
- All files were written for Roland Sound Canvas in SC-55 Map mode
- They will almost certainly not play back on anything which is not Roland
- Use XG/GS Reset to set your SC-88, SC-88Pro or SC-8850 into SC-55 Map Mode (see earlier for link)
- Even though you will hear strange things using other equipment - they stress MIDI IN like nothing else

ELP
- Some of my favourite ELP files
- 5BrFugueGS is solo piano - even the VB6 MIDI code plays this one sometimes ;-)
- Changing will break loopBE1 - it has never broken loopMIDI



Enjoy

Mike Le Voi
mikelevoi@gmail.com

30th March 2014




