Лилипонд не запускает автоматически новый ряд баров, когда текст и музыка слишком длинные, чтобы поместиться в одну строку

У меня есть следующий скрипт:

\version "2.16.0"
\header {title = "He came down"}
upper = \relative c'' {
    \easyHeadsOn
    \clef treble
    \key g \major
    \numericTimeSignature
    \time 4/4
    %He came down that we may have love;
    d,8 <d g>4  <d g> <d b'> <c a'> <d g> <fis a> <d c>2 r8
    %He came down that we may have love;
    <d c>8 <d a'>4 <d a'> <e c'> <d b'> <c a'> <d b'> <b g'>2 r8
    %He came down that we may have love;
    <b g'>8 <d b'>4 <d b> <g d'> <g c> <g b> <g c> g2
    %Hal -- le -- lu -- Yah for ev -- er -- more.


}

lower = \relative c {
    \clef bass
    \key g \major
    \time 4/4 
    d8
}

text = \lyricmode {
    He came down that we may have love;
    He came down that we may have love;
    He came down that we may have love;
    Hal -- le -- lu -- Yah for ev -- er -- more.
}

\score {
    \new GrandStaff <<
      \new Staff = upper {\new Voice = "singer" \upper }
      \new Lyrics \lyricsto "singer" \text
      \new Staff = lower { \lower }
    >>
}

К сожалению, когда я компилирую его в Lilypond, я получаю следующий вывод: Кто-нибудь знает, как я могу заставить Лилипонд правильно это набрать?

2 ответа

Это на самом деле не проблема программирования, ваша проблема в том, что вы добавляете слишком много заметок к своей 4/4 временной подписи. У LilyPond есть проблемы с решением, когда добавлять разрывы строк, если ритмы превышают допустимое значение для бара (обычно оценка, а не разрыв строки - это красный флаг для проблем с ритмом). Вы также можете добавить штриховые проверки в свой код, используя |, При их использовании LilyPond проверит, совпадает ли линия бара с положением покоя бара, и если возникнет проблема, будет выведена ошибка, сообщающая точно, где проверка бара не совпадает с линией бара.

Вот исправленная версия вашего кода, хотя я не уверен, что это именно тот ритм, который вы хотели или нет:

\version "2.16.0"
\header {title = "He came down"}
upper = \relative c'' {
    \easyHeadsOn
    \clef treble
    \key g \major
    \numericTimeSignature
    \time 4/4
    %He came down that we may have love;
    d,8 <d g>4  <d g> <d b'> <c a'>8 | <d g>4 <fis a> <d c>2 | 
    %He came down that we may have love;
    <d c>8 <d a'>4 <d a'> <e c'> <d b'>8 | <c a'>4 <d b'> <b g'>2 |
    %He came down that we may have love;
    <b g'>8 <d b'>4 <d b> <g d'>8 <g c>4 | <g b> <g c> g2 |
    %Hal -- le -- lu -- Yah for ev -- er -- more.


}

lower = \relative c {
    \clef bass
    \key g \major
    \time 4/4 
    d8
}

text = \lyricmode {
    He came down that we may have love;
    He came down that we may have love;
    He came down that we may have love;
    Hal -- le -- lu -- Yah for ev -- er -- more.
}

\score {
    \new GrandStaff <<
      \new Staff = upper {\new Voice = "singer" \upper }
      \new Lyrics \lyricsto "singer" \text
      \new Staff = lower { \lower }
    >>
}

Я предполагаю, что это - только приподнятое настроение, которое мешает лилипонду определить правильный ритм. Просто добавьте \part 8 (это длина положительного результата).

\version "2.16.0"
\header {title = "He came down"}
upper = \relative c'' {
    \easyHeadsOn
    \clef treble
    \key g \major
    \numericTimeSignature
    \time 4/4

    \partial 8   % **This marks the upbeat. The length is 8, matching d,8 below** 

    %He came down that we may have love;
    d,8 <d g>4  <d g> <d b'> <c a'>8 | <d g>4 <fis a> <d c>2 | 
    ...
Другие вопросы по тегам