lilypond-user
[Top][All Lists]
Advanced

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

Re: Staccato


From: Jay Anderson
Subject: Re: Staccato
Date: Mon, 19 Jan 2015 12:44:26 -0700

On Mon, Jan 19, 2015 at 11:45 AM, Cynthia Karl <address@hidden> wrote:
> Section 1.285 "staccato" of the 2.19.15 LilyPond Music Glossary says:  
> Staccato is indicated by a dot above or below the note head.  Gardner Read 
> ("Music Notation:  A Manual of Modern Practice") agrees with this and has a 
> little picture showing a stem-up note with a dot just beneath the note-head 
> and a stem-down note with a dot just above the note-head.
>
> Ordinarily, LP follows both Read's and its own guideline on the placement of 
> the dot, e.g., the following snippet:
> ...
>
> However, the following snippet:
> ...
>
> Besides being pretty ugly, this violates LP's own guidelines.
>
> Is there a way to get the second snippet to produce regular staccato dots?

Lilypond is behaving correctly. In multi-voice situations the
articulation should be be placed on the stem side (Gould page 117 says
that in this situation articulations should _never_ be placed on the
notehead side so it is absolutely clear to which voice the
articulation belongs).

Another comment about this example: I'd prefer to see staccato
markings centered on the stem in this case. There is an enhancement
for this: https://code.google.com/p/lilypond/issues/detail?id=2535 and
a discussion a few years back:
http://lists.gnu.org/archive/html/bug-lilypond/2012-05/msg00098.html.
It can be used to somewhat clean this situation up:

================================
\version "2.19.15"

#(define stacc-corrector
  (lambda (ctx)
    (let ((articulations '())
          (staccato '()))
      (make-engraver
        (acknowledgers ((script-interface engraver grob source-engraver)
          (set! articulations (cons grob articulations))
          (if (string= (ly:prob-property (event-cause grob)
'articulation-type) "staccato")
            (set! staccato grob))))
        ((stop-translation-timestep trans)
          (cond ((and (ly:grob? staccato) (= 1 (length articulations)))
                  (set! (ly:grob-property staccato 'toward-stem-shift) 1.0))
                ((ly:grob? staccato)
                  (set! (ly:grob-property staccato 'toward-stem-shift) 0.0)))
          (set! articulations '())
          (set! staccato '()))))))


music = \relative c''
{
  <<
    {
      \voiceOne
      g8-. a-. b-. c-. d-. e-. f-. g-.-- |
      a4-. b-. c-. b-. |
    }
    \new Voice
    {
      \voiceTwo
      g,2~ g2~ |
      g2~ g2 |
    }
  >> \oneVoice
  g8-. a-. b-. c-. d-. e-. f-. g-.-- |
}

\score
{
  \new Staff \music
}

\score
{
  \new Staff \music
  \layout
  {
    \context
    {
      \Voice
      \consists #stacc-corrector
    }
  }
}
================================

The default toward-stem-shift for staccato marks is 0.5 (I'm not quite
sure why). The above also moves the staccato back to the default
position if other articulations are present.

-----Jay



reply via email to

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