lilypond-user
[Top][All Lists]
Advanced

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

Re: that acciaccatura issue


From: Thomas Morley
Subject: Re: that acciaccatura issue
Date: Mon, 22 Aug 2016 09:34:05 +0200

2016-08-22 0:20 GMT+02:00 Mark Stephen Mrotek <address@hidden>:
> I do not know the intricacies of Lilypond and
> therefore am unable to distinguish what code can be eliminated to create a
> "minimal."

Remembering the time I started with LilyPond, things went wrong pretty
often. I had no clue why and ofcourse I was hardly aware what I was
doing ...

To solve the problem first step is always to isolate it.
I.e. copy and paste the code into a test file and try to comment
elements, lines or blocks, if the problem persists delete what you've
commented. Only thing: don't introduce other problems. If this happens
don't delete it.
http://lilypond.org/doc/v2.19/Documentation/usage/troubleshooting

Yes, it's try and error, but you don't need _any_ knowledge about
LilyPond for this task.



Btw, back to the small example from my previous post:

\new Staff <<
  \time 4/4
  \key bes \major
  \new Voice { \voiceOne \acciaccatura r8 r4 }
  \new Voice { \voiceTwo \grace s8 r4 }
>>

At some point while creating a minimal example you may get:

<<
  \time 4/4
  \key bes \major
  \new Voice { s1 }
  \new Voice { s1 }
>>

Now all voices (those you explicitely create _and_ the others) are not
longer forced to be in one Staff.
(Though I'm somewhat surprised only three not four staves are
displayed. Obviously LilyPond accumulates some loosing ends per
default.)

Anyway, if you now apply \displayMusic you get the internal
scheme-representation of whats going on:


\displayMusic
<<
  c'1
  \new Voice { s1 }
  \time 4/4
  \new Voice { s1 }
  \key bes \major
>>

==>

(make-music
  'SimultaneousMusic
  'elements
  (list (make-music
          'TimeSignatureMusic
          'beat-structure
          '()
          'denominator
          4
          'numerator
          4)
        (make-music
          'KeyChangeEvent
          'pitch-alist
          (list (cons 6 -1/2)
                (cons 0 0)
                (cons 1 0)
                (cons 2 -1/2)
                (cons 3 0)
                (cons 4 0)
                (cons 5 0))
          'tonic
          (ly:make-pitch -1 6 -1/2))
        (make-music
          'ContextSpeccedMusic
          'create-new
          #t
          'property-operations
          '()
          'context-type
          'Voice
          'element
          (make-music
            'SequentialMusic
            'elements
            (list (make-music
                    'SkipEvent
                    'duration
                    (ly:make-duration 0 0 1)))))
        (make-music
          'ContextSpeccedMusic
          'create-new
          #t
          'property-operations
          '()
          'context-type
          'Voice
          'element
          (make-music
            'SequentialMusic
            'elements
            (list (make-music
                    'SkipEvent
                    'duration
                    (ly:make-duration 0 0 1)))))))

Ofcourse this would be far too large, if not applied to a minimal ;)
But have a look what follows after

elements
  (list

Yes, it's a still a lot stuff, but do me the favor ;)

You see four entries: settings for time-sig, key-sig and two Voices.
But you want only two voices, thus put time/key-sig into one of the
voices.

More, the time-sig is (per default) applied to the whole score, but
not the key-sig.
This is a feature, ofcourse. How to deal with it depends on the use-case...


Cheers,
  Harm



reply via email to

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