I already asked some question about \markup and \midi and get some usefull
answer. Here I attached the real code I'm working on.

I would like to generate the midi and I would appreciate some suggestion.

Kieren suggest to separate the layout and midi. Pro: clear and easy to do;
Cons: a bit verbose and difficult to maintain.

Thomas Morley proposed a scheme method to extract the score from the
markup. Pro: it works nicely with some test examples. Cons: complex.

I personally would prefer Kieren solution because I can handle it better.
But maybe organizing the code differently gives better solution....?

* * *

My code looks to me very redundant. For example:

\markup \justify-line {
  \score {{ \set Staff.instrumentName = #(nextcount)
            \clef bass \override Score.TimeSignature #'stencil = ##f
            \cadenzaOn
            *\tetrachordOneUp*
            \cadenzaOff}
  }
  \score {{ \set Staff.instrumentName = #(nextcount)
            \clef bass \override Score.TimeSignature #'stencil = ##f
            \cadenzaOn
            *\tetrachordOneDn*
            \cadenzaOff}
  }
  \score {{ \set Staff.instrumentName = #(nextcount)
            \clef bass \override Score.TimeSignature #'stencil = ##f
            \cadenzaOn
            *\tetrachordOneUpDn*
            \cadenzaOff}
  }
}

This repeats three times the same thing except for referencing different
variables:

\tetrachordOneUp
\tetrachordOneDn
\tetrachordOneUpDn


Is this the correct way to go or is there any way to simplify it?
Thank you, g.
\version "2.19.60"
date = #(strftime "%d-%m-%Y" (localtime (current-time)))

#(define mystring ".")
#(define count 0)
#(define (nextcount) (begin
                      (set! count (+ 1 count))
                      (string-append (number->string count) mystring)
                      )
   )

\layout { indent = #0  }

\header 
{
  title = "Scala maggiore"
  subtitle = "Bassi standard"
  composer = "Author: gwl"
  opus = ""
  tagline = \date
}

eccetera = 
{
  \hideNotes c \stopStaff e-\tweak TextScript.staff-padding #'() -\markup { \italic "ecc." }
}

cf = 
#(define-event-function (arg) (number-or-markup?)
  #{ _\markup \underline \finger
     #(if (number? arg) (number->string arg) arg)
  #})

% this is to generate one midi file so that the real the other midi files will start from 1
\score 
{
  {c}
  \midi { }
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tetrachordOneUp = \fixed c, {c8_3 [d_2 e\cf 3 f_4]}
tetrachordOneDn = \fixed c, {f8_4 [e\cf 3 d_2 c8_3]}
tetrachordOneUpDn = \fixed c, {c8_3 [d_2 e\cf 3] f_4 [e\cf 3 d_2]}

tetrachordTwoUp = \fixed c, {c8_2 [d\cf 4 e\cf 2 f_3]}
tetrachordTwoDn = \fixed c, {f8_3 [e\cf 2 d\cf 4 c_2]}
tetrachordTwoUpDn = \fixed c, {c8_2 [d\cf 4 e\cf 2] f_3 [e\cf 2 d\cf 4]}

cgup = \fixed c, {c8_3 [d_2 e \cf 3 f_4 g_2]}
cgdn = \fixed c, {g8_2 [f_4 e\cf 3 d\cf 2 c_3]}
cgupdn = \fixed c, {c8_3 [d_2 e \cf 3 f_4] g_2 [f_4 e\cf 3 d\cf 2]}

caup = \fixed c, {c8_3 [d_2 e\cf 3 f_4 g_2 a\cf 4]}
cadn = \fixed c, {a\cf 4 [g_2 f_4 e\cf 3 d_2 c_3]}
caupdn = \fixed c, {c8_3 [d_2 e\cf 3 f_4 g_2] a\cf 4 [g_2 f_4 e\cf 3 d_2]}

cbup = \fixed c, {c8_3 [d_2 e\cf 3 f_4 g_2 a\cf 4 b\cf 2]}
cbdn = \fixed c, {b\cf 2 [a\cf 4 g_2 f_4 e\cf 3 d_2 c_3]}
cbupdn = \fixed c, {c8_3 [d_2 e\cf 3 f_4 g_2 a\cf 4] b\cf 2 [a\cf 4 g_2 f_4 e\cf 3 d_2]}

ccup = \fixed c, {c8_3 [d_2 e\cf 3 f_4 g_2 a\cf 4 b\cf 2 c'_3]}
ccdn = \fixed c, {c'_3 [b\cf 2 a\cf 4 g_2 f_4 e\cf 3 d_2 c_3]}
ccupdn = \fixed c, {c8_3 [d_2 e\cf 3 f_4 g_2 a\cf 4 b\cf 2] c'_3 [b\cf 2 a\cf 4 g_2 f_4 e\cf 3 d_2]}

shiftPattern = \tetrachordOneUp
shiftUpModel = {
    \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
    \cadenzaOn
    \repeat percent 2 {\transpose c c \shiftPattern}
    \bar"|"
    \repeat percent 2 {\transpose c g \shiftPattern}
    \bar"|"
    \repeat percent 2 {\transpose c d \shiftPattern}
    \eccetera
    \cadenzaOff
}

shiftUpUpModel = {
    \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
    \cadenzaOn
    \repeat percent 2 {\transpose c c \shiftPattern}
    \bar"|"
    \repeat percent 2 {\transpose c d \shiftPattern}
    \bar"|"
    \repeat percent 2 {\transpose c e \shiftPattern}
    \eccetera
    \cadenzaOff
}

shiftDnModel = {
    \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
    \cadenzaOn
    \repeat percent 2 {\transpose c c \shiftPattern}
    \bar"|"
    \repeat percent 2 {\transpose c f \shiftPattern}
    \bar"|"
    \repeat percent 2 {\transpose c bes, \shiftPattern}
    \eccetera
    \cadenzaOff
}

shiftDnDnModel = {
    \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
    \cadenzaOn
    \repeat percent 2 {\transpose c c \shiftPattern}
    \bar"|"
    \repeat percent 2 {\transpose c bes, \shiftPattern}
    \bar"|"
    \repeat percent 2 {\transpose c aes \shiftPattern}
    \eccetera
    \cadenzaOff
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\markup "Tetracordo diteggiatura I"
\markup \justify-line {
  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \tetrachordOneUp
            \cadenzaOff}
  }
  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \tetrachordOneDn
            \cadenzaOff}
  }

  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \tetrachordOneUpDn
            \cadenzaOff}
  }
}

\markup "Tetracordo diteggiatura II"
\markup \justify-line {
  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \tetrachordTwoUp
            \cadenzaOff}
  }

  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \tetrachordTwoDn
            \cadenzaOff}
  }

  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \tetrachordTwoUpDn
            \cadenzaOff}
  }
}

\markup "Do Sol"
\markup \justify-line {
  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \cgup
            \cadenzaOff}
  }

  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \cgdn
            \cadenzaOff}
  }

  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \cgupdn
            \cadenzaOff}
  }
}

\markup "Do La"
\markup \justify-line {
  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \caup
            \cadenzaOff}
  }

  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \cadn
            \cadenzaOff}
  }

  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \caupdn
            \cadenzaOff}
  }
}

\markup "Do Si"
\markup \justify-line {
  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \cbup
            \cadenzaOff}
  }

  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \cbdn
            \cadenzaOff}
  }

  \score {{ \set Staff.instrumentName = #(nextcount) 
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \cbupdn
            \cadenzaOff}
  }

}

\markup "Do Do"
\markup \justify-line {
  \score {{ \set Staff.instrumentName =  #(nextcount)
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \ccup
            \cadenzaOff}
  }
  
  \score {{ \set Staff.instrumentName = #(nextcount)
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \ccdn
            \cadenzaOff}
  }

  \score {{ \set Staff.instrumentName = #(nextcount)
            \clef bass \override Score.TimeSignature #'stencil = ##f %to hide the time 4/4
            \cadenzaOn 
            \ccupdn
            \cadenzaOff}
  }
}

size = 14
\markup "Modelli di esecuzione (esempio con ex 1)"
\markup "Shift up"
\markup \justify-line {
  %Shift +1
  \score { 
    {\set Staff.instrumentName =  #(nextcount)
     \shiftUpModel}
     \layout {#(layout-set-staff-size size)}
  }

  %Shift +2
  \score { 
    {\set Staff.instrumentName =  #(nextcount)
     \shiftUpUpModel}
     \layout {#(layout-set-staff-size size)}
  }
}

\markup "Shift Down"
\markup \justify-line {
  %Shift -1
  \score { 
    {\set Staff.instrumentName =  #(nextcount)
     \shiftDnModel}
     \layout {#(layout-set-staff-size size)}
  }

  %Shift -2
  \score { 
    {\set Staff.instrumentName =  #(nextcount)
     \shiftDnDnModel}
     \layout {#(layout-set-staff-size size)}
  }
}
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to