Ключ нижнего нотоносца в Lilypond выглядит неправильно, как исправить?

Я пытаюсь выгравировать кусок пипы, используя Lilypond 2.20 на Ubuntu 20.04. Первые несколько нот отображаются так:

введите описание изображения здесь

Что выглядит не так:

  1. Ключ в нижней части не начинается с символа баса, но бас появляется после него.
  2. Настроенный символ тактового размера サ не отображается в нижнем нотоносце. Вместо большой буквы C.
  3. Вся первая часть должна быть каденцией (и верхняя, и нижняя часть), но тактовая черта по-прежнему появляется в нижней части.

Любая помощь будет высоко оценена!

Вот мой исходный код Lilypond:

\version "2.20.0"

\header {
  title = "Yi Dance"
  subtitle = "彝族舞曲"
  subsubtitle = "1960"
  instrument = "Pipa · 琵琶"
  composer = "WANG Huiran · 王惠然"
  arranger = "Pipa Fingering: YANG Wei · 楊惟"
}

\markup {
  \vspace #1
}

%% fingering symbols

fngs = \finger\markup{\override #'(font-name . "pipa") \fontsize #5 "s"}
fngw = \finger\markup{\override #'(font-name . "pipa") \fontsize #5 "w"}

fngDaiLunBoxed = ^\markup{\translate #'(-2.25 . 1.25) \box{\pad-markup #0.2 \override #'(font-name . "pipa") \fontsize #2 "s w"}}

\layout {
  indent = #0
  \context {
    \Score
    \remove "Bar_number_engraver"
  }
  \context {
    \Voice
    \consists "Melody_engraver"
    \override Stem #'neutral-direction = #'()
  }
}

global = {
  \key a \minor
  \numericTimeSignature
}

upper = \relative c'' {
  \clef treble
  \global
  % Music follows here.
 
  %% for the symbol サ  
  \once\override Staff.TimeSignature.stencil = #ly:text-interface::print
  \once\override Staff.TimeSignature.text = \markup{\bold \fontsize #3 "サ" }
  \once\override Staff.TimeSignature.extra-offset = #'(0 . -1.5)
  
  %% section title and tempo hint
  \once \override Score.RehearsalMark.self-alignment-X = #LEFT
  \tempo "[1] liberamente, lento poi accelerando【一】自由地、慢起漸快"
  \cadenzaOn
    \appoggiatura{d16 c} a4\fngDaiLunBoxed \appoggiatura{d16 c} a4 \appoggiatura{d16 c} a4  \appoggiatura{d16 c} a4 
  \cadenzaOff
  \revert Score.TimeSignature.stencil
   
  
}

lower = \relative c {
  \clef bass
  \global
  % Music follows here.
  
  %% for the symbol サ  
  \once\override Staff.TimeSignature.stencil = #ly:text-interface::print
  \once\override Staff.TimeSignature.text = \markup{\bold \fontsize #3 "サ" }
  \once\override Staff.TimeSignature.extra-offset = #'(0 . -1.5)
  
  \cadenzaOn
    c1 c
  \cadenzaOff
  \revert Score.TimeSignature.stencil
 
}

\score {
  \new PianoStaff   
  <<  
  \new Staff = "upper" \upper  
  \new Staff = "lower" \lower
  >>  
  
  \layout { }
  \midi { }
}

Ответы (1)

Вот что вы можете с этим сделать:

  1. Это вызвано грациозными нотами. Они всегда приходят перед долей, поэтому программа ведет себя по такой логике: «Начнем с двух нотоносцев. Хорошо, в верхнем должен быть скрипичный ключ, а в другом ключ еще не указан, поэтому ставим скрипичный ключ. ключ в нем тоже. Теперь добавьте несколько нот форы в верхнем нотоносце и немного пустого места в нижнем нотоносце. Эй! Теперь в нижнем нотоносце есть басовый ключ! и т. д. Если вы поставите \grace s8после вашего \clef bass, музыка «выстроится», и проблема исчезнет.

  2. В PianoStaffтактовые размеры связаны вместе: вы меняете их в одном нотоносце, они меняются и в другом PianoStaff.TimeSignature. Staff.TimeSignatureделать то, что вы хотите.

  3. То же самое для каденций. Если вы запускаете/останавливаете каденцию в одном нотоносце, она автоматически запускается/останавливается в другом.* Таким образом, в вашем примере музыка в первом нотоносце заканчивается раньше, и каденция останавливается, поэтому каденция останавливается и в другом нотоносце. , что приводит к тактовой черте (и тактовому размеру 4/4) после этого. Это уйдет само собой, когда вы будете писать музыку.

(*: Экспериментально установленный факт 😃)

Я бы также порекомендовал пару небольших изменений, чтобы сделать код немного чище. Они вообще не меняют вывод:

  • Было бы чище поместить переопределение вашего тактового размера в вашу globalпеременную. Это лучшее место для сброса всех таких переопределений.

  • Вам не нужно \revertвзламывать тактовый размер, потому что он был переопределен только \once, т.е. он работает только для следующего вхождения этого объекта, в данном случае тактового размера.

  • Я бы также переместил \layoutблок в \scoreблок для дополнительной чистоты.

Привет, Рамиллис, ты действительно самая красивая лилия в пруду! Большое спасибо! Я последовал вашему совету, и теперь моя оценка выглядит так: photos.app.goo.gl/YhC6LRVhpTywkxBb9 Очень доволен исправлениями! :-) Спасибо-спасибо!
Я только что задал еще один вопрос (на самом деле 2 вопроса в одном посте).... Но я люблю lilypond, возможности безграничны.
Что означает s8 в \grace s8?
sэто спейсерная пауза — просто невидимая пауза, которая занимает заданное количество времени, в данном случае 8= 1/8 ноты.
Это результат сегодняшней работы по гравировке.... photos.app.goo.gl/KKCS8WRNF5vpWcrP9 это было непросто, столько всего особенного, пришлось копаться в документах.... Но это того стоило для этой прекрасной работы. Yi Dance также был аранжирован для классической гитары. Даже на классической гитаре это очень сложная пьеса. youtu.be/tjHcHliEy14 Я продолжу гравировку позже. В очередной раз благодарим за помощь! Желаем вам приятного вечера и отличной предстоящей недели!
@NicoleNaumann: Хорошая работа! Я давний классический гитарист, поэтому сразу заинтересовался :). Неудивительно, что Xuefei Yang сделала аранжировку для гитары, она часто играет и транскрибирует традиционные китайские пьесы. Честно говоря, ее исполнение классического "европейского" репертуара меня не особо впечатлило, а вот традиционные китайские пьесы она исполняет великолепно. Я склонен слушать их снова и снова :-).