MIDI into Director



PROBLEM DESCRIPTION

Getting MIDI-messages from external MIDI-devices into Director for PC.
(Although I´m a MAC-girl, I have to solve this problem for a project which is running under Win NT.)

some more details about what I am interested in:
- Simple Midi-messages, mainly NOTE-ON, NOTE-OFF and Controller-datas
- I don´t need Sysex-messages
- I don´t need Midi "system real time messages", because I don´t have to synchronize to music, than only to react to the user´s activity



Step 1: RESEARCH   (18 Sep 1999)

First I searched for already existing informations.
I found alot in the archive of Direct-L (www.mcli.dist.maricopa.edu/director/digest/) and I also got alot of tips by private mails from the people of this list. Thanks alot for all your help!
So what´s listed here are all the possibilities (or at least the one that I found), even when they are not the right solution, but maybe interesting in case of MIDI & Director generally...

Beatnik www.beatnik.com Software only, no IO.
HyperMIDI www.Earlevel.com powerful  XCMD, but Mac only.
EZIO www.ezio.com Interface board (which description sounds very interesting).
But this is a hardware solution, and I want to find a software possibility.
MIDXTRA www.yamaha-xg.com/english/
xg/midxtra/midxtra.html
On their FAQ site I meanwhile saw that there is a way to use external MIDI devices (I think this is new), but the Xtra is for MAC and Win 95 only, not for NT.
Opcodes Max www.opcode.com/products/max/ MAC, object-oriented programming environment.
"will talk to Director via OMS - haven't tested myself" (Julian Baker)
That sounds super interesting, want to know more about it, even it´s no solution for this project...
BinaryIO Xtra www.updatestage.com/
xtras/binaryio.html
Well, my bad english... I believe it´s only to read and write files (also Midi-Files). But I don´t see a possibilty to communicate with the port in realtime... ???
DirectComm Xtra www.directxtras.com/ Xtra, for communication to serial ports, parallel ports, fax machines, and modems...
I tried some years ago to read MIDI-messages through the serial-port on the MAC. That was fine. But does this work on PC similiar?



Step 2: POSSIBLE SOLUTIONS   (21 Sep 1999)

I found 2 great possibilities to get MIDI-messages into Director. And I tell you something: completely different solutions than listed above!

Solution 1:
MIDI  I/O ActiveX, from Mabry ( http://www.mabry.com/midipk.htm), $40 (international $45)
(You get a message-box as long as you haven´t registered. Working with IN-communication, this box appears only from time to time, but with the OUT-communication, it appears much to often in Director...)

Solution 2:
SequenceXtra, from Bjarne Nyquist (bjarne@interactiveinstitute.se), I think $230 for both MAC & PC Xtra.
(Bjarne gives you authoring Xtra for free.)



Step 3: FIRST TESTS with ActiveX   (22 Sep 1999 +)

ActiveX - first touch

I have to mention, I didn´t know anything about the ActiveX technology till this moment (doesn´t exist on MAC :-)
Even with this hudge amount of knowledge :-) it was quite easy to make the first example running in Director.
Director -> Menu Insert -> Control -> ActiveX
Then just drag the castMember into the score, and all communication happens with the sprite.
fe.: sprite(1).PropertyName
This ActiveX came together with a Visual Basic example, and there I found alot of good scripts, which were easy to adapt to Lingo.

Test 1: Note-ON - Midi-IN

global gInSprite   -- the SpriteNr of the ActiveX

on Message   -- get the messages
   mes = sprite(gInSprite).message -- Midi Status 1, type of message
   if mes = 144 then   -- NOTE-ON channel 1
      d1 = sprite(gInSprite).Data1   -- note
      d2 = sprite(gInSprite).Data2   -- velocity
      put mes && d1 && d2 -- or do with it whatever you want :-)
   end if
   sprite(gInSprite).action = 6   -- Remove the MIDI data from the MIDI IN queue
end

on Error par1, par2
   beep
   put "error" && par1 && par2
end

Test 2: Going on...

I went on with displaying the values visually, and later sending something out too.
Till now this all works fine, works fast, and I had no big problems.
For sure, the real hard tests will follow...
As soon as the complexity of interaction concept will increase, I will see if the stability and quality will keep the same.
Of course I will inform you here about new test results.



Step 4: FIRST TESTS with SequXtra   (22 Sep 1999)

I made the same tests with the SequenceXtra. Same results: works perfect.

But I really have to tell: when working with this Xtra it is very sad, only to send or get some small Midi-datas.
This Xtra can do alot more than that!
Maybe you can write your own Cubase with it. :-)

In fact I didn´t test any of the great possibilities of sequencing.
But if you need something to do in that direction, you should write to Bjarne Nyquist (bjarne@interactiveinstitute.se) for getting a copy. I think it will make you happy!



PS: Well, I know, I don´t talk alot about what this application will be, which I am working on.
Sorry, it´s Top Secret.
I am not allowed to talk about the job, but there´s no problem to talk about technical things in general (till a certain point).
I really got alot of help from many people. Always.
This here is just a small way to say: THANK YOU!

ACTUAL: Another great programmer at Nofrontiere is finishing this project, cause I have to do other jobs...