lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re:


From: Павел
Subject: Re:
Date: Sun, 21 Aug 2022 09:08:34 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0

Вот, посмотрите в моём примере. Привожу здесь фрагмент из готового произведения. Если вдруг не разберётесь, как работает, можете написать. (Пояснение: некоторые функции я закомментировал, потому что они определены в отдельном файле).

\version "2.20.0"
#(set-global-staff-size 25 )
%\include "my.ily"
\pointAndClickOff
%\churchslavonicPageNumber
%\churchslavonic
\language "deutsch"

\header {
    title = "Херꙋві́мскаѧ пѣ́снь"
    subtitle = "І҆мереті́нско_чꙋрі́йскагѡ роспѣ́ва."
}

%\paper { page-count = 5 }
global = {
    \cadenzaOn
    \key a \major \autoBeamOff
    \accidentalStyle Score.forget
    \omit Staff.TimeSignature
    \override Score.SpacingSpanner.spacing-increment = #2
}

voiceA = \relative e' {
    \global
    e1. e2 fis fis e( d4 e d2 cis h) h \bar ""
}
voiceB = \relative cis' {
    \global
    cis2( h a4 h) cis2 a4( h) cis( d) cis2( h4 cis h cis h a2 h4) a( gis)
}
voiceC = \relative {
    \global
    a1. 2 2 2 1( e1.) 2
}
lyric = \lyricmode {
    %\churchslavonicLyric
    И҆̀ -- же хе -- рꙋ -- ві́ -- мы
}

НаТриГолоса = #(define-music-function
    (first second third lyric secondlyric aligner) (ly:music? ly:music? ly:music? ly:music? ly:music? ly:music?) #{
    \new StaffGroup \with { midiInstrument = "french horn" } <<
        \new Staff <<
            \new Voice { \clef soprano #first }
            \new NullVoice = "aligner" { #aligner }
        >>
        \new Lyrics = "lyric" \with {
            \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = 1             \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing.padding = 0.3
        } \lyricsto "aligner" { #lyric }
        \new Lyrics \with {
            \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = 1             \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing.padding = 0.3
        } \lyricsto "aligner" { #secondlyric }
        \new Staff <<
            \clef baritone
            \new Voice { \voiceOne #second }
            \new Voice { \voiceTwo #third }
        >>
    >> #})

\score {
    \header { title = "" subtitle = "" }
    \НаТриГолоса \voiceA \voiceB \voiceC \lyric { } \voiceB
    \layout { }
    \midi { \tempo 2=60 }
}

21.08.2022 00:18, Лысов Дмитрий пишет:
Как определить в define-scheme-function аргументы "lyricup" и "lyricdown", чтобы их значения брались из данных \makeScore? При этом у верхней и нижней строк текста должны быть заданы разные шрифты.
\version "2.22.1"
\header {
  title = "Сборник мелодических формул знаменного распева"
  composer= "Штейнберг Б."
  poet = "Москва, 2017"
}
\paper {
  #(set-paper-size "a4")
  tagline=##f
  ragged-right = ##t
  myStaffSize = #21
  #(define fonts (make-pango-font-tree
                  "Ponomar Unicode"
                  "Ponomar Unicode"
                  "Ponomar Unicode"
                  (/ myStaffSize 21)))
}
\layout {
  indent = 0.0
  \context {
    \Lyrics
    \override LyricText #'font-size = #4
    \override LyricText #'font-name = #"Ponomar Unicode"
    \override LyricSpace.minimum-distance = #0.8
  }
  \context {
     \Score
     \override SpacingSpanner.spacing-increment = 0.5
  }
  \context {
     \KievanVoice
     \stemDown
     fontSize = 1.0
  }
}
\midi {
   \context {
     \Score
     tempoWholesPerMinute = #(ly:make-moment 110 2)
   }
   \context {
     \Staff
     \remove Staff_performer
   }
   \context {
     \Voice
     \remove Staff_performer
   }
}
makeScore =
#(define-scheme-function (mark notes lyricup lyricdown) (markup? ly:music? markup? markup?)
    #{
      \score {
        \header {piece = \markup { Название }}
        <<
          \new KievanStaff  = slavonic
          <<
          \new KievanVoice = "melody"
            \relative c' {
              \cadenzaOn
              \mark #mark
              #notes
              \bar "|"
            }
          >>
        \new Lyrics
        \lyricsto "melody"
        {а п р ц} %lyricup
        \new Lyrics \with {alignAboveContext = slavonic}
        \lyricsto "melody"
        {b b b b} %lyricdown
        >>
        \layout { }
        %\midi { }
      }
    #})
\markup { \fill-line \huge { "Глас 1" }}
\markup { \fill-line \huge { "Начальные" }}
\makeScore "Удра" {e4 c d f e d c d e d e1} "mi do re fa" "E C D F"
\markup { \fill-line \huge { "Конечные" }}
\makeScore "Удра" {e4 c d f e d c d e d e1} "mi do re fa" "E C D F"
\markup { \fill-line \huge { "Срединные" }}
\makeScore "Дербица или скорпица" {e4 f g a a g2.} "mi fa sol la" "E F G A"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]