Как установить количество тактов на строку или страницу в LilyPond/Frescobaldi, если у вас есть партитура с несколькими инструментами?

Поскольку я занимаюсь аранжировкой, мне было интересно, как установить количество тактов в строке и, следовательно, страницу, поскольку это партитура с ритм-секцией и пятью валторнами. Я видел эти страницы ( разрыв строки и использование дополнительного голоса для разрывов ), но я не понимаю, как заставить технику работать для нескольких инструментов в партитуре, каждый из которых определяется как собственная переменная. В настоящее время я использую мелодию с формой из 31 такта (7 тактов, 8 тактов, 8 тактов и, 8 тактов) и хотел бы иметь отдельную страницу или строку для каждого раздела, если бы я мог.

Пример в Разделе 4.3.8 можно расширить до нескольких голосов (инструментов), просто добавив больше \staffs. Что вы сделали и как это терпит неудачу? Можете ли вы опубликовать образец, демонстрирующий проблему?
Чего вы хотите добиться, делая это? Музыканты привыкли к тому, что разрывы строк происходят в любой тактовой черте, не обязательно в конце фразы. Пусть Лилипонд делает перерывы там, где хочет. Форсированные перерывы каждые 7 или 8 тактов слишком часты. Если вы хотите сослаться на точку в середине произведения, используйте номер такта. Или вставьте репетицию \markс.
Мне кажется, что вы рассматриваете задачу, которую lilypond выполняет самостоятельно: вы предоставляете заметки в \staffдетализации, lilypond делает верстку. Это не связано с какой-либо функциональностью разрыва строки.

Ответы (3)

Или \breakв \noBreakлюбом голосе влияет на всю систему. У меня просто есть специальная переменная во всех моих файлах Lilypond, которая содержит только паузы-разделители с установленными разрывами, и я помещаю ее как голос в один из своих нотоносцев (неважно, какой именно). Вот пример лилибина: http://lilybin.com/walvlh/1 .

Кстати, я бы сказал, что неплохо сначала записать всю партитуру и только потом работать над разбивкой строк (а также над любыми другими настройками, которые сделают партитуру красивее).

Если вы хотите получить полный контроль над разрывами строк, просто ставьте \noBreakпосле каждого такта в голосе разрыва строки. Поэтому вместо s1*4 | \break, вы бы написали \repeat unfold 3 { s1 | \noBreak } s | \break.

Если вы хотите довести это до крайности, вы можете поместить это в свой \layoutблок:

\context
{
    \Score
    \override NonMusicalPaperColumn.line-break-permission = ##f
    \override NonMusicalPaperColumn.page-break-permission = ##f
}

Это полностью отключит разрыв строки (первое переопределение) и разрыв страницы (второе переопределение) (в том смысле, что Lilypond никогда не вставит разрыв, за исключением случаев, когда вы специально указываете это сделать с помощью или \break) \pageBreak.

В дополнение к отличному ответу Рамиллиса, аналогичный инструмент, который может быть полезен, — указать, сколько систем вы хотите использовать на своей странице. Включите в свой paperблок systems-per-page = #4, например, чтобы на каждой странице было ровно четыре системы. Но это может быть проблематично в зависимости от характера вашей партитуры: если инструментарий часто меняется с плотного на разреженный, наличие одинакового количества систем на каждой странице может не иметь особого типографского смысла.

И если вы хотите сохранить эту строку в своей оценке, пока тестируете ее, вы можете отключить ее, либо закомментировав ее, либо установив значение ##f.

Системы на страницу чрезвычайно удобны, и я бы даже сказал, что это необходимо при работе с макетом страницы, даже если вы уберете его позже.

Я хочу поблагодарить всех за их ответы и помощь, и я сожалею о том, что опоздал с вами. Что я на самом деле закончил, так это добавил переменную над всеми остальными, у которой был «молчаливый голос» со всей информацией о перерыве, например:

системная информация = { \ новый голос {

      s1*8 \break
      
      s1*7 \break
      s1*8 \break
      s1*8 \break 
      s1*8 \break 
      
       
       
       s1*7 \break
      s1*8 \break
      s1*8 \break 
      s1*8 \break 
      
       s1*7 \break
      s1*8 \break
      s1*8 \break 
      s1*8 \break 
      
      
      
      s1*7 \break
      s1*8 \break
      s1*8 \break 
      s1*8 \break } }  

Затем я добавил переменную ко всем своим инструментам в блоке партитуры, как на этом примере:

<< \new ChordNames = "аккорды" \gtrHarmony \new Staff \with { InstrumentName = "Trumpet" shortInstrumentName = #"Trp." midiInstrument = "trumpet" } { << \Trumpet \systeminfo >> } >>

В следующий раз мне придется использовать «системы на странице» и посмотреть, насколько хорошо это работает.