Pavel, thank you! Everything worked out. I will add that it should not just be enclosed in curly brackets, but also with spaces { #lyric }.
A byzantine font "ByzantineLily" ("ByzantineMusic" & "EZ"):
Symbol table:
Font "Ponomar Unicode": https://sci.ponomar.net/fonts.html
Font "Mezenets Unicode": https://sci.ponomar.net/music.html
Working code:
\version "2.22.1"
\header {
title = "Сбо́рникъ мелѡди́ческихъ фо́рмꙋлъ зна́меннагѡ роспѣ́ва"
composer= "Ште́йнберг Б."
poet = "Москва̀, ҂вз҃і"
copyright = "Вѧ́тка, ҂вк҃в"
}
\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 lyricdown lyricup) (markup? ly:music? ly:music? ly:music?)
#{
\score {
\header {}
<<
\new KievanStaff = slavonic
<<
\new KievanVoice = "melody"
\relative c' {
\cadenzaOn
\mark #mark
#notes
\bar "k"
}
>>
\new Lyrics
\lyricsto "melody"
{
\override LyricText.font-name = #"ByzantineLily"
\override LyricText.font-size = #5
\override LyricSpace.minimum-distance = #0.8
#lyricdown }
\new Lyrics \with {alignAboveContext = slavonic}
\lyricsto "melody"
{
\override LyricText.font-name = #"Mezenets Unicode"
\override LyricText.font-size = #9
\override LyricSpace.minimum-distance = #2
#lyricup }
>>
\layout { }
%\midi { }
}
#})
\markup { \fill-line \huge { "Гла́съ д҃" }}
\markup { \fill-line \huge { "Начальные" }}
\makeScore "Оу҆до́ль [а҃]" {\[(d4 c)\] \[(d e)\] \bar "|" f1 \[(e4 d)\] f2 e d1} \lyricmode { } \lyricmode { 𜽗 𜽞 𜾒 𜽗 𜽐𜼱 𜽜 𜾆 }
\makeScore "Оу҆до́ль [в҃]" {d4 c d e \bar "|" d2 e4 d f2 e d1} \lyricmode { 𝁆 𝁑 𝁇 𝁇 𝁇 𝁑 } \lyricmode { }
\makeScore "Рютка" {d2 d d d4 c d e f2 e1} \lyricmode { 𝁆 𝁑 𝁇 𝁇 } \lyricmode { }
\makeScore "Возгласка" {g'2 f a1 g2 g g4 f g2 f4 e d2} \lyricmode { 𝁆 𝁑 𝁑 𝁑 } \lyricmode { }
\markup { \fill-line \huge { "Конечные" }}
\makeScore "Вознос конечный" {e4 d e f g1 g2 f e d e f1 e} \lyricmode { 𝁆 𝁑 𝁇 𝁇 } \lyricmode { }
22.08.2022, 11:57, "Павел" <[email protected]>:
Нужно ещё заключить #lyricup и #lyricdown в фигурные скобки (в функции makeScore), как в моём примере. С этим исправлением ваш пример у меня заработал.
21.08.2022 21:02, Лысов Дмитрий пишет:Я исправил, но все равно что-то не так. Этот вариант кода выдает ошибки:I fixed it, but there's still something wrong. This version of the code gives errors:
\version "2.22.1"makeScore =#(define-scheme-function (mark notes lyricup lyricdown) (markup? ly:music? ly:music? ly:music?)#{\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"#lyricdown>>\layout { }%\midi { }}#})\markup { \fill-line \huge { "Глас 1" }}\markup { \fill-line \huge { "Начальные" }}\makeScore "Удра" {e4 c d f e d c d e d e1} \lyricmode {la la la la} \lyricmode {ta ta ta ta}C:/Users/Asus/AppData/Local/Temp/frescobaldi-m1s83y6n/tmpvpo3he0n/Сборник формул_define-scheme_byz.ly:24:9: error: syntax error, unexpected SCM_TOKEN, expecting \sequential or \simultaneous or << or '{'
#lyricup
C:/Users/Asus/AppData/Local/Temp/frescobaldi-m1s83y6n/tmpvpo3he0n/Сборник формул_define-scheme_byz.ly:28:9: error: syntax error, unexpected SCM_TOKEN, expecting \sequential or \simultaneous or << or '{'
#lyricdown
C:/Users/Asus/AppData/Local/Temp/frescobaldi-m1s83y6n/tmpvpo3he0n/Сборник формул_define-scheme_byz.ly:38:1: error: errors found, ignoring music _expression_
\makeScore "Удра" {e4 c d f e d c d e d e1} \lyricmode {la la la la} \lyricmode {ta ta ta ta}
C:/Users/Asus/AppData/Local/Temp/frescobaldi-m1s83y6n/tmpvpo3he0n/Сборник формул_define-scheme_byz.ly:38:1: error: error in #{ ... #}
\makeScore "Удра" {e4 c d f e d c d e d e1} \lyricmode {la la la la} \lyricmode {ta ta ta ta}
fatal error: failed files: "C:\\Users\\Asus\\AppData\\Local\\Temp\\frescobaldi-m1s83y6n\\tmpvpo3he0n\\Сбо�\x80ник �\x84о�\x80м�\x83л_define-scheme_byz.ly"
Программа завершилась с кодом 1.21.08.2022, 20:14, "Павел" <[email protected]>:Используйте \lyricmode:
\makeScore "Удра" {e4 c d f e d c d e d e1} \lyricmode {a b c d} \lyricmode {e f g hh}
21.08.2022 15:52, Лысов Дмитрий пишет:\makeScore "Удра" {e4 c d f e d c d e d e1} {a b c d} {e f g hh}
