lilypond-user
[Top][All Lists]
Advanced

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

Re: simplify the program code


From: Лысов Дмитрий
Subject: Re: simplify the program code
Date: Sun, 26 Jun 2022 13:31:04 +0300

Thanks. I will give a part of the code. The name and \score blocks often alternate here. The \score block is bulky and has repetitive content. How can this content be taken out separately?
Second question: is it possible to describe the name of the section \markup { \fill-line \huge { "Name" }} inside the \score block?
 
%\version "2.22.1"  
 
\header { 
  title = "Сборник мелодических формул знаменного распева" %\markup { \override #'(line-width . 60) \wordwrap-string  { "Конда́къ ..., гла́съ є҃:"  } } 
  %subtitle = ""
  %subsubtitle =  ""
  composer= "Штейнберг Б."
  poet = "Москва 2017"
  %copyright = ""
}
 
\paper {
  (set-paper-size "a4") 
  %page-count = # 1
  tagline=##f 
  %ragged-last = ##t
  ragged-right = ##t
  myStaffSize = #21
  #(define fonts (make-pango-font-tree 
         "Times New Roman"
         "Times New Roman"
         "Times New Roman"
         (/ myStaffSize 21)))
}
 
#(define counter-alist '())
 
#(define-markup-command (counter layout props name) (string?)
  "Increases and prints out the value of the given counter named @var{name}.
  If the counter does not yet exist, it is initialized with 1."
  (let* ((oldval (assoc-ref counter-alist name))
         (newval (if (number? oldval) (+ oldval 1) 1)))
  (set! counter-alist (assoc-set! counter-alist name newval))
  (interpret-markup layout props
    (markup (number->string newval)))))
 
#(define-markup-command (setcounter layout props name value) (string? number?)
  "Set the given counter named @var{name} to the given @var{value} and prints
  out the value. The counter does not yet have to exist."
  (set! counter-alist (assoc-set! counter-alist name (- value 1)))
  (interpret-markup layout props (make-counter-markup name)))
 
\markup { \setcounter #"mycounter" #-1 }
 
\markup { \fill-line \huge { "Глас 1" }}
\markup { \fill-line \huge { "Начальные" }}
\markup { Номер midi файла: \counter #"mycounter" } \score {<< \new KievanVoice = "melody"{ \cadenzaOn \stemDown \set fontSize = #1.0 \override Score.SpacingSpanner.spacing-increment = #0.5 \relative c' { \mark "Удра" e4 c d f e d c d e d e1 \bar "|" \break}}>>\layout {indent = 0.0 \context {\Lyrics \override LyricText #'font-size = #4 \override LyricText #'font-name = #"Times New Roman" \override LyricSpace.minimum-distance = #0.8 } \context {\Score}} \midi { \context {\Staff \remove "Staff_performer"} \context {\Voice \consists "Staff_performer"} \context {\Score tempoWholesPerMinute = #(ly:make-moment 110 2)}}}
\markup { Номер midi файла: \counter #"mycounter" } \score {<< \new KievanVoice = "melody"{ \cadenzaOn \stemDown \set fontSize = #1.0 \override Score.SpacingSpanner.spacing-increment = #0.5 \relative c' { \mark "Рымза" e4 c d f e d c2 d e1 \bar "|" \break}}>>\layout {indent = 0.0 \context {\Lyrics \override LyricText #'font-size = #4 \override LyricText #'font-name = #"Times New Roman" \override LyricSpace.minimum-distance = #0.8 } \context {\Score}} \midi { \context {\Staff \remove "Staff_performer"} \context {\Voice \consists "Staff_performer"} \context {\Score tempoWholesPerMinute = #(ly:make-moment 110 2)}}}
\markup { Номер midi файла: \counter #"mycounter" } \score {<< \new KievanVoice = "melody"{ \cadenzaOn \stemDown \set fontSize = #1.0 \override Score.SpacingSpanner.spacing-increment = #0.5 \relative c' { \mark "Рутва" e2 e4 c d f e d c d e d e1 \bar "|" \break}}>>\layout {indent = 0.0 \context {\Lyrics \override LyricText #'font-size = #4 \override LyricText #'font-name = #"Times New Roman" \override LyricSpace.minimum-distance = #0.8 } \context {\Score}} \midi { \context {\Staff \remove "Staff_performer"} \context {\Voice \consists "Staff_performer"} \context {\Score tempoWholesPerMinute = #(ly:make-moment 110 2)}}}
\markup { Номер midi файла: \counter #"mycounter" } \score {<< \new KievanVoice = "melody"{ \cadenzaOn \stemDown \set fontSize = #1.0 \override Score.SpacingSpanner.spacing-increment = #0.5 \relative c' { \mark "Перегиб" e2 e4 c d f e d c2 d e1 \bar "|" \break}}>>\layout {indent = 0.0 \context {\Lyrics \override LyricText #'font-size = #4 \override LyricText #'font-name = #"Times New Roman" \override LyricSpace.minimum-distance = #0.8 } \context {\Score}} \midi { \context {\Staff \remove "Staff_performer"} \context {\Voice \consists "Staff_performer"} \context {\Score tempoWholesPerMinute = #(ly:make-moment 110 2)}}}
\markup { \fill-line \huge { "Конечные" }}
\markup { Номер midi файла: \counter #"mycounter" } \score {<< \new KievanVoice = "melody"{ \cadenzaOn \stemDown \set fontSize = #1.0 \override Score.SpacingSpanner.spacing-increment = #0.5 \relative c' { \mark "Вознос последний" d2 d4 f e d c b a1 g \bar "|" \break}}>>\layout {indent = 0.0 \context {\Lyrics \override LyricText #'font-size = #4 \override LyricText #'font-name = #"Times New Roman" \override LyricSpace.minimum-distance = #0.8 } \context {\Score}} \midi { \context {\Staff \remove "Staff_performer"} \context {\Voice \consists "Staff_performer"} \context {\Score tempoWholesPerMinute = #(ly:make-moment 110 2)}}}
 
25.06.2022, 16:30, "Knute Snortum" <ksnortum@gmail.com>:

On Fri, Jun 24, 2022 at 1:16 AM Лысов Дмитрий <siitop@yandex.ru> wrote:


 Hello. How to simplify the program code?
 Source text (.xlsx): https://disk.yandex.ru/i/QNJiHUoFMqGdWA
 Program code (.ly): https://disk.yandex.ru/d/SfNy-mchF9V34g


I have a feeling you'll get more responses if you add your ly file as
a text attachment, or just paste it in your post. Also, the more
specific your question, the more likely you can get help. What exactly
is it you want to simplify?


reply via email to

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