Аппликатура на 2 голоса на одном нотоносце в одном направлении в LilyPond

Мне трудно найти способ получить аппликатуры для двух голосов в левой руке на одной стороне одного нотоносца в LilyPond, как на картинке ниже:

Музыкальное произведение с аппликатурой для двух голосов на одной стороне

Моя цель: получить аппликатуры для обоих голосов на одной стороне нотоносца (сверху или снизу).

Голоса должны быть независимыми, например:

lower = {
  \new Voice = "lower" <<
     \new Voice { \voiceOne \alt }
     \new Voice { \voiceTwo \tenor }
  >>
}

НЕЛЬЗЯ использовать такие аккорды:

lower = {
  \new Voice = "lower" <<
  { \alt }
  { \tenor }
  >>
}

Если я использую способ добавления аппликатуры по умолчанию к отдельным нотам в каждом голосе, например c4-4, то их предпочтительное направление аппликатуры — это то, что одна идет над нотоносцем, а другая — под.

Если я попытаюсь заставить их двигаться в одном направлении, всегда используя ^like c4^4, то алгоритм компоновки не учитывает, что в нотоносце 2 голоса, и обе аппликатуры находятся в одном и том же положении, т. е. они накладываются друг на друга и больше не читаются.
(То же самое произойдет, если вы попробуете с \override Fingering.direction = #UPопцией)

Еще одна идея, которая у меня была, заключалась в том, чтобы разделить аппликатуры в контексте третьего голоса, например:

fingeringMII = { s4-4 }
\new Staff \context Voice = ManII { \lower }
\context Voice = ManII { \fingeringMII }

Это в основном работает хорошо, но нотация, которая мне нужна, c4-5-4не работает с невидимыми паузами. Обозначение c4-5-4приводит к аппликатуре 4 выше 5, как и ожидалось. Однако s4-5-4ведет себя по-другому — и отображается как 54. Я пытался обойти это с такими аккордами <s-5 s-4>4, но это дает ошибку, так как конструкция аккорда, похоже, не допускает пауз.

Таким образом, единственный способ, который я нашел, чтобы получить то, что мне нравится, - это добавить аппликатуры для обоих голосов к верхнему голосу, как это, c4^5^4но это не лучший способ поддерживать.

Какое решение лучше?

Ответы (1)

В зависимости от диапазона теноровой линии вы можете просто переопределить аппликатуру нотоносца для голоса тенора:

alto = {
    \new Voice {
        \voiceOne       
            b4_3 cs'_2 d'_1 a_3 |
    }
}   

tenor = {
    \new Voice {
        \voiceTwo
        \override Voice.Fingering.staff-padding = #3  %%%
            g4-5 g-5 a-3 fis-5 |
    }
}

Аппликатура для альта и тенора на одной стороне нотоносца

Однако, если для этих голосов много низких нот, это не будет хорошим методом.
Но если в нотоносце есть всего несколько нот, которые слишком низки, вы можете настроить их вручную.

Большой! Большое спасибо. Это то, что я искал. У вас также нет идеи, как заставить его работать с разделенным голосовым контекстом для аппликатуры (мой последний пример)? Потому что приятно иметь возможность переключать аппликатуры в некоторых случаях для печати версии без аппликатуры.
Я попробовал это, и, похоже, он работает с контекстами. Что не работает для вас?