bug-lilypond
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Midi should reissue time signature after pickup measure


From: David Kastrup
Subject: Midi should reissue time signature after pickup measure
Date: Tue, 15 Jun 2021 01:16:37 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Midi (at least in the versions we will be talking about for quite long
to come) does not have a notion of a pickup measure.  Here are some
quotes from the GM Level 1 Developer Guidelines — Second Revision:

    File Data: Pickup bars

    • Pickup bars should be as brief as possible, set to the minimal
    time signature required (generally, 1/4 or 3/8 will suffice).

    • A time signature meta-event should be inserted at the end of the
    pickup bar in order to set the correct time signature for the body
    of the music to follow.

    The issue: Often a sequence will start out with a “pickup” — a group
    of notes shorter than a bar line that precede the first bar, such as
    the three eighth-notes at the beginning of “Seventy-Six Trombones.”
    Should this pickup be in a short bar by itself, or should it be the
    last part of a standard-length bar which has blank space at the
    beginning?
    
    Findings: 5 software respondents said they use a full bar at the
    beginning of the sequence, and leave the beats before the pickup
    blank. 4 said they give the pickup bar its own time signature,
    equivalent to its length (in the above example, 3/8), and then
    change the time signature for subsequent bars. 4 said that it
    depended on the situation, and 3 on whether the start time or
    synchronization of the sequence was critical. One said they don’t
    concern themselves with the barlines at all, and just “let the notes
    fall where they may”.

Now in general, there is some leeway here and arguably there are several
valid strategies.  For example, with a 3/8 pickup measure on a 4/4 beat,
one may want to use 2/4 of time for the pickup measure in order to make
it easier to time when to hit the "start" button when restarting a drum
computer after a longer "tacet" passage while a human ensemble played on
(it's surprisingly hard to hit the "start" button or pedal on an
off-beat _and_ then come in at the proper time with your own
instrument).  Taking a full 4/4 measure for the pickup is less than
optimal since then the tempo drift of the human players causes a larger
offset.

So what do we tell the MIDI rendition about the first bar's meter?
Either the truth, in which case the drum computer will be out of sync
with the actual meter until it sees another time signature event (if you
try looking at its 1/2/3/4 display for timing other decisions, that may
be seriously distracting).  Or a fib like 2/4.  If your drum computer
happens to interpret "skip 20 bars" as an instruction relative to the
meter at the beginning (sigh), then this will be annoying in a different
way.

So one may prefer just to start with \time 4/4 and then reissue the
\time 4/4 MIDI command after the pickup measure so that the drum
computer resynchronizes to the actual beat.

LilyPond only issues a time signature in MIDI when it changes.  Also it
doesn't issue "Bar marker" messages I think?

So I think one thing we should be doing as part of \partial is to
trigger the issuance of a time signature at the next bar start
regardless of whether the signature stays the same.

-- 
David Kastrup



reply via email to

[Prev in Thread] Current Thread [Next in Thread]