Hello Beat,
Naturally I will be (so) glad to receive your MidiLib...
Thank you
Bons souvenirs de Paris
René
Le 20 févr. 09 à 15:55, Beat Cornaz a écrit :
Hi René ,
I have been abroad and could not react earlier. Fortunalety Kurt
has helped you out quite a bit.
Maybe the following can be of use to you. The thing that took the
longest time for me in the Midi code to 'crack' was the 'Delta
time' , being the time to the next midi event (whether a Note on,
Note off or Midi message). As the Delta time cannot be fixed into a
fixed data format (it must be flexible tpo accomodate for long
Delta times), the Midi format uses 'Variable Length coding', which
can accomodate any Delta Time.
As it is some years ago that I have coded my 'MakeMidiFile' script,
I can't remember exactly how the Variable Length coding works, but
I can send you the
handler or post it here if someone else is ineterested.
Another thing I remember, is that one of the Rev functions -
baseconvert() or BinaryDecode() would not work anymore as the
number to convert got too big. I have made a workaround. I just
looked in my MidiLib, but could not find it anymore. Maybe it has
been fixed in the newer Rev versions, as I tried big numbers and
they converted just fine.But I realised that my MidiLib needs some
serious cleaning up!!
In a midi file (as Kurt already explained), some (Hex) stuff is
always there, like the Header , Tempo, TimeSignature and Key. The
actual data for the Tempo (e.g. 120) etc. is given by you of course
(in Hex). Track 1 contains all this information and the actual
notes start in track 2. (In any case in a midi file with more than
1 track). After you have the whole Midifile in Hex, you convert it
to Binary (with BinaryEncode). Of course, the binary encode can be
done earlier on, like after each Hex duplet or Hex part has been
established (I think I remember Kurt does it that way).
In the header of each track, you'll need the specify the length of
the data of that track (the number of Hex digits in that track).
So basically you have to convert decimal data (like noteNrs,
velocity, duration etc) to Hex and the whole Hex data to binary.
I can send you my MidiLib, so you can see how I have done it. I
will have to clean it up before I send it, it's too messy, but it
works fine.
I have not yet experimented with the QT synth, as I was (am) aiming
to directly address Logic. But I guess I will try with the QT synth
as well, as my bigger goal is quite a challange it seems.
In my MidiLib, there is also a handler to import a MidiFile. I use
it to import from Logic, then make variantions of the theme in my
Rev stack and make a new MidiFile which I drag into my sequencer.
Don't let the dataformat of the Midi file get to you. It takes a
while to get it. I have been 'struggling' with it for some months
untill the handler finally worked. Bit by bit, you'll get to
understand it better. I'll be gladly helping you, but
unfortunately I don't have the time to read the usergroup's mails
on a daily basis.
I hope this helps some,
kind regards, Beat
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your
subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution