[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Moving from lilypond 2.18 to 2.19
From: |
David Kastrup |
Subject: |
Re: Moving from lilypond 2.18 to 2.19 |
Date: |
Wed, 22 Nov 2017 13:47:34 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) |
Matt Wallis <address@hidden> writes:
> So I made experimental changes to the source until I found the cause
> of the error.
> Here is a small example:
>
> \include "english.ly"
>
> global = {
> \time 4/4
> \tempo 4 = 96
> }
> \score {
> \new Staff {
> \clef treble
> \global
> \relative c' { c1 }
> }
> \midi { \global }
> }
>
> ... that provokes this error in 2.19.80:
>
> GNU LilyPond 2.19.80
> Processing `PianoScore.ly'
> Parsing.../opt/local/share/lilypond/2.19.80/scm/lily-library.scm:375:14:
> In procedure ly:add-context-mod in expression (ly:add-context-mod
> mods (list # #)):
> /opt/local/share/lilypond/2.19.80/scm/lily-library.scm:375:14: Wrong
> type argument in position 1 (expecting Context_mod): #f
>
> ... but works fine in 2.18.2
>
> The error is triggered by the use of \global in the midi block when
> global contains "\time 4/4". Incidentally, if the midi block contains
> a \key signature, but no \time, then it works fine in 2.19.80.
>
> I can understand that \time is irrelevant to midi (as is \key?), but
> I've used this lazily in the past because it works.
It isn't. The time signature is actually part of Midi files (SMF). I
am not sure whether it is also part of realtime Midi, but it might.
> I'd be interested to know if you think the correct fix is to restore
> the original 2.18.2 behaviour, or to output an error message that
> identifies the line that causes the problem.
This sounds like a bug to me, and I have to take a look at what might be
responsible here.
Huh. The bug triggers in context-defs-from-music, but that is
pre-2.16.0 material entirely.
Hm, I think the representation of \time might have gotten changed.
Let's check. There is
commit fb79cea8ec10ebc40b96a05bf7f643e47fd93ddd
Author: David Kastrup <address@hidden>
Date: Sun Mar 15 12:15:18 2015 +0100
Issue 4324: Don't create Bottom to announce TimeSignatureEvent
As a fallout of issue 4138, << \time 3/4 \new Staff c2. >> created a
spurious Staff only containing a time signature. This change avoids the
creation of a Bottom context just for accommodating \time. As a result,
{ \tweak color #red \time 3/4 c2. }
will no longer show a change in color since no Staff context exists at
the time \time is executed and consequently the tweak does not apply
anywhere. You have to use \time in existing Staff contexts to have
either \tweak and point&click have an effect (and get an error locator
when something with typesetting the signature goes wrong). Outside of
such contexts, \time just changes properties of the Timing context.
which is just one of a whole series of \time-changing commits by various
authors after 2.18.
That's likely the first occurence of the problem, but likely
context-defs-from-music should be made safe against this usage.
--
David Kastrup
- Moving from lilypond 2.18 to 2.19, Matt Wallis, 2017/11/17
- Re: Moving from lilypond 2.18 to 2.19, David Kastrup, 2017/11/17
- Re: Moving from lilypond 2.18 to 2.19, Matt Wallis, 2017/11/17
- Re: Moving from lilypond 2.18 to 2.19, David Kastrup, 2017/11/17
- Re: Moving from lilypond 2.18 to 2.19, Matt Wallis, 2017/11/22
- Re: Moving from lilypond 2.18 to 2.19,
David Kastrup <=
- Re: Moving from lilypond 2.18 to 2.19, David Kastrup, 2017/11/22
- Re: Moving from lilypond 2.18 to 2.19, David Kastrup, 2017/11/22
- Re: Moving from lilypond 2.18 to 2.19, Matt Wallis, 2017/11/22