I'm forwarding the answer from Nigel. It was a long time since I
looked carefully at this implementation, but would it make sense
to move the Key_performer, Tempo_performer and Time_signature_performer
to the score level and let all performers on the Score level output
the commands to track 0.

/Mats


-------- Original Message -------- Subject: RE: MIDI Tempo Off...Everywhere Date: Fri, 17 Oct 2003 17:13:47 +0100 From: Nigel Warner <[EMAIL PROTECTED]> Reply-To: <[EMAIL PROTECTED]> To: 'Mats Bengtsson' <[EMAIL PROTECTED]>


Mats,


        Anyway, I'm still curious to hear from a MIDI expert how tempo changes
        in the middle of a piece should be specified in a MIDI file? Should
        they also be inserted (only) in track 0?

In a word yes. The reasoning is that tempo changes, which do not contain a channel number, should apply to all tracks in the file. There are a number of holes in the MIDI specification which various designers of sequencers and such like have interpreted differently; for example key changes should also be confined to track 0. If they are instead scattered throughout the tracks in an attempt to represent transposing instruments then no typesetting program that I have found, even those which cost an arm and a leg, will attempt to deal with the admittedly rather complex logic required to deduce the intention.

        The bottom line is that channel mode messages, those which
        contain the channel number in the low order nibble of the status
        byte should only appear in the track containing the data for that
        channel and should never appear in track 0. Messages
        which do not contain a channel number are intended to apply to
        all tracks and as such should only appear in track 0.

        FYI my "expertise" in MIDI derives from many hours spent tinkering
        with my own program which translates a text file written in a language
        of my own devising into MIDI. Just to see what happens
        with such programs as Sibelius and Finale and others I deliberately
        concocted MIDI files which contained all sorts of peculiar combinations
        of data in order to provide a page or two of information in the
documentation
        about how to best structure MIDI data for each program; what you can and
can't
        do in order to obtain various typographic effects in each package. Needless
        to say this was one humongous can of worms and so I decided instead
        to investigate MusiXTeX and Lilypond as typesetting options for my
        (so far) nonexistent users and for my own purposes in writing the
        documentation for my program. Of course, Lilypond won that particular
        battle and I hope to release a beta version which emits Lilypond
        code (ahem) "real soon now".

Hope this helps.

Nigel.




_______________________________________________ Bug-lilypond mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-lilypond

Reply via email to