[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"