Hello

Some time ago, in this list, we discussed about partial inlines (that were supported back ago with '\partial') and the result was this macro that was very useful:

  partialInline = #(define-music-function
     (parser location nom den mus)
     (integer? integer? ly:music?)
  #{
    \set Score.measurePosition = #(ly:make-moment (- $nom) $den)
    $mus
   #}
  )

I use is as   \partialInline #3 #8 { a8 a a }

Until now I managed to use it properly, but today I have a sctb that is making me crazy :)

All the voices have the same structure:

        \time 6/8
        \partial 8  a8 a a | ... |
                    a4 a8 \repeat volta 2 { a4 a8 | ... | }
                    \alternative {
                       { a4 a8 a4 a8 | \partialInline #3 #8 { a4. } }
                       { a4 a8 a4 a8 | a4. }
                    }

where |...| are proper 6/8 measures.

While the first voice (S) doesn't complain, I get for the others
    sctb.ly:52:18: warning: barcheck failed at: -3/8
in the bar exactly before the partialInline.

I tried to add
    \set Timing.measurePosition = #(ly:make-moment 0 8)
before all the partials, but I get the sabe behavior.

Any hint?
thank you,
alberto

PS: in attach the full file (it is not that big).
\version "2.14.0"

\header {
  title = "O amor de Deus"
  composer = "Manuel Luís"
  arranger = "António Cartageno"

  tagline = "Transcrita por Alberto Simões"

  meter = "Com nobreza"

  ocasioes = "comunhao"
  seccao   = "comunhao"
}

\include "../utils.ly"

global = {
  \key d \major
  \time 6/8
}

sopranos = \relative c' {
  \global
  \autoBeamOff  
  \voiceOne

  \partial 8*3 d8 d e | fis4 fis8 g4 g8 | fis4. \breathe
  d8 d e |fis4 fis8 b4 b8 | a4.
  \repeat volta 2 {
    d8 d d | cis4 cis8 a4 a8 | b4. \breathe a8 a8 g |
  }
  \alternative {
    { fis4 fis8 e4 d8 |
      \set Timing.measurePosition = #(ly:make-moment 0 8)
      \partialInline #3 #8 { e4. }|}
    {fis4 fis8 e4 e8 | d4.}
  }
  \bar "|."
  \break
}

contraltos = \relative c' {
  \global
  \autoBeamOff  
  \voiceTwo
  \partial 8*3 s4. | s2. | s4. d8 d d | d4 d8 d4 d8 | cis4.
  \repeat volta 2 {
    fis8 fis fis | fis4 fis8 fis4 fis8 | fis4( e8) e e e |
  }
  \alternative {
    { d4 d8 d4 d8 |
      \set Timing.measurePosition = #(ly:make-moment 0 8)
      \partialInline #3 #8 {cis4.}|}
    { d4 d8 d4 cis8 | a4.}
  }
  \bar "|."
}

tenores = \relative c' {
  \global 
  \clef bass
  \autoBeamOff
  \voiceOne
  \partial 8*3 s4. | s2. | s2. | s2. | s4.
  \repeat volta 2 {
    b8 b b | a4 a8 d4 d8 | d4. cis8 cis cis |
  }
  \alternative {
    { a4 a8 b4 b8 | 
      \set Timing.measurePosition = #(ly:make-moment 0 8)
      \partialInline #3 #8 {a4.}|}
    { a4 a8 b4 g8 | fis4. }
  }
  \bar "|."
}

baixos = \relative c {
  \global 
  \clef bass
  \autoBeamOff
  \voiceTwo
  \partial 8*3 d8 d e | fis4 fis8 g4 g8 | fis4. d'8 d cis | b4 a8 g4 e8 | fis4.
  \repeat volta 2 {
    b,8 b d| fis4 fis8 b4 a8|g4. a8 a a |
  }
  \alternative {
    { d,4 d8 g4 gis8 |
      \set Timing.measurePosition = #(ly:make-moment 0 8)
      \partialInline #3 #8 {a4.} |}
    { d,4 d8 g4 a8 | d,4. }
  }
  \bar  "|."
}


text = {
  \lyricmode {
    O_a- mor de Deus re- pou- sa_em mim,
    O_a- mor de Deus me con- sa- grou.
    O_a- mor de Deus me en- vi- ou
    a_a- nun- ci- ar a Paz e_o Bem, -ar a Paz e_o Bem.
  }
}

\score {
  <<
    \new ChoirStaff <<
      \new Staff = "upper" <<
        \new Voice = "S" \sopranos
        \new Voice = "A" \contraltos
      >>
      \new Staff = "lower" <<
        \new Voice = "T" \tenores
        \new Voice = "B" \baixos
      >>
      \new Lyrics \with { alignAboveContext = "lower" } { \lyricsto S \text }
    >>
  >>
  \layout {
    \context {
      \Staff \RemoveEmptyStaves 
      \override VerticalAxisGroup #'remove-first = ##t
    }
    % #(layout-set-staff-size 17)
  }
  \midi {
    \context {
      \Score
      tempoWholesPerMinute = #(ly:make-moment 80 4)
    }
  }
}


_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to