Am 28.10.2013 01:03, schrieb Joshua Nichols:
I'm not familiar enough to know how well LilyPond works with creating
separate title pages...

Is there a feasible way of doing this within LilyPond?


Here is a complete real live example. It might be improved though.

Regards
Helge


%=============================================
%
%   Konservatorium Schwerin
%
%   author: Helge Kruse   
%
%=============================================

\version "2.16.0"


#(ly:set-option 'midi-extension "midi") 
#(ly:set-option 'delete-intermediate-files #t)
#(ly:set-option 'point-and-click #f)

#(set-default-paper-size "a4")

%\include "../../Tools/Tools.ily"
%% Bookpart first page and last page predicates
  #(define (not-part-first-page layout props arg)
     (if (= (chain-assoc-get 'page:page-number props -1)
            (ly:output-def-lookup layout 'first-page-number))
         empty-stencil
         (interpret-markup layout props arg)))

  #(define (part-first-page layout props arg)
     (if (= (chain-assoc-get 'page:page-number props -1)
            (ly:output-def-lookup layout 'first-page-number))
         (interpret-markup layout props arg)
         empty-stencil
         ))


\paper {
  %%set to ##t if your score is less than one page: 
  ragged-last-bottom = ##t
  ragged-bottom = ##f  

  oddFooterMarkup = \markup { \on-the-fly #part-first-page \teeny { Notensatz: Helge Kruse } }
  oddHeaderMarkup = \markup \fill-line {
    ""
    \on-the-fly #not-part-first-page \fromproperty #'header:composer
    \on-the-fly #not-part-first-page \fromproperty #'header:title
    \on-the-fly #not-part-first-page \fromproperty #'header:instrument
    \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string
  }
  evenHeaderMarkup = \markup \fill-line {
    \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string
    \on-the-fly #not-part-first-page \fromproperty #'header:instrument
    \on-the-fly #not-part-first-page \fromproperty #'header:title
    \on-the-fly #not-part-first-page \fromproperty #'header:composer
    ""
  }
  
  tocTitleMarkup = \markup \huge \column {
    \hspace #1
    \hspace #1
    \fill-line { \null "Inhaltsverzeichnis" \null }
    \hspace #1
    \hspace #1
  }
  tocItemMarkup = \markup \fill-line {
    \fromproperty #'toc:text \fromproperty #'toc:page
  }
}

changeBeaming = \set beamExceptions =
#'((end . (
((1 . 8) . (2 2 2 2))
((1 . 16) . (4 4 4 4))
((1 . 24) . (3 3 3 3 3 3 3 3))
((1 . 32) . (8 8 8 8))
))) 

revertBeaming = \set beamExceptions = #'() 

hideTuplet = {
  \override TupletNumber #'stencil = ##f
  \override TupletBracket #'bracket-visibility = ##f
}

showTuplet = {
  \revert TupletNumber #'stencil
  \override TupletBracket #'bracket-visibility = ##t
}


%\include "Allegro.ly"
AllegroCornoOne = \relative c'' { c }
AllegroCornoTwo = \relative c'' { c }
AllegroViolinoOne = \relative c'' { c }
AllegroViolinoTwo = \relative c'' { c }
AllegroViola = \relative c'' { c }
AllegroBasso = \relative c' { c }
AllegroHarpRight = \relative c'' { c }
AllegroHarpLeft = \relative c' { c }

%\include "Affettuoso.ly"
AffettuosoFlautoOne = \relative c'' { c }
AffettuosoFlautoTwo = \relative c'' { c }
AffettuosoViolinoOne = \relative c'' { c }
AffettuosoViolinoTwo = \relative c'' { c }
AffettuosoViola = \relative c'' { c}
AffettuosoBasso = \relative c' { c }
AffettuosoHarpRight= \relative c'' { c }
AffettuosoHarpLeft = \relative c' { c }

%\include "AllegroNonTroppo.ly"
AllegroNonTroppoCornoOne = \relative c'' { c }
AllegroNonTroppoCornoTwo = \relative c'' { c }
AllegroNonTroppoViolinoOne = \relative c'' { c }
AllegroNonTroppoViolinoTwo = \relative c'' { c }
AllegroNonTroppoViola = \relative c'' { c }
AllegroNonTroppoBasso = \relative c' { c }
AllegroNonTroppoHarpRight = \relative c'' { c }
AllegroNonTroppoHarpLeft = \relative c' { c }

\book {
  \bookpart {
    \header {
      title = \markup \center-column { " " " " " " " " "Concerto in G" " " "per la Arpa o il Cembalo concertato" " " " " }
      subtitle = \markup \center-column { "accompagnate " "da due Violini e Basso," "con due Corni e due Flauti per rinforza" " " " " " " " " }
      dedication = "Giovanni Guglielmo Hertel"
      date = "1727-1789"
      tagline = ##f
      copyright = ##f
    }
    \markuplist \table-of-contents
    \pageBreak
  }
 
  \bookpart {
    \tocItem \markup {Partitur}
    \header {
      title="Concerto per la Arpa"
      composer = "Hertel"
    }

    \tocItem \markup {"   Allegro"}
    \score {
      <<
        \new StaffGroup <<
          \new Staff=CornoOne \with { instrumentName = #"Corno 1" } { \AllegroCornoOne  }
          \new Staff=CornoTwo \with { instrumentName = #"Corno 2" } { \AllegroCornoTwo }
        >>
        \new StaffGroup <<
          \new Staff=ViolinoOne \with { instrumentName = #"Violino 1" } { \AllegroViolinoOne }
          \new Staff=ViolinoTwo \with { instrumentName = #"Violino 2"  }{ \AllegroViolinoTwo }
        >>
        \new Staff=Viola \with { instrumentName = #"Viola" } { \AllegroViola }
        \new Staff=Basso \with { instrumentName = #"Basso" }  { \AllegroBasso }
        \new PianoStaff \with { instrumentName = #"Arpa"  }  <<
          \context Staff=right \AllegroHarpRight
          \context Staff=left \AllegroHarpLeft
        >>
      >>
      \layout {
      }
    } % score allegro

    \tocItem \markup {"   Affettuoso"}
    \score {
      <<
        \new StaffGroup <<
          \new Staff \with { instrumentName = #"Flauto 1"} { \AffettuosoFlautoOne }
          \new Staff \with { instrumentName = #"Flauto 2" } { \AffettuosoFlautoTwo }
        >>
        \new StaffGroup <<
          \new Staff \with { instrumentName = #"Violino 1" } { \AffettuosoViolinoOne }
          \new Staff \with { instrumentName = #"Violino 2" } { \AffettuosoViolinoTwo }
        >>
        \new Staff \with { 	instrumentName = #"Viola" } { \AffettuosoViola }
        \new Staff \with { 	instrumentName = #"Basso" } { \AffettuosoBasso }
        \new PianoStaff \with { instrumentName = #"Arpa" } <<
          \context Staff=right \AffettuosoHarpRight
          \context Staff=left \AffettuosoHarpLeft
        >>
      >>
      \layout {
      }
    } % score affettuoso

    \tocItem \markup {"   Allegro non troppo"}
    \score {
      <<
        \new StaffGroup <<
          \new Staff \with { instrumentName = #"Corno 1" } { \AllegroNonTroppoCornoOne }
          \new Staff \with { instrumentName = #"Corno 2" } { \AllegroNonTroppoCornoTwo }
        >>
        \new StaffGroup <<
          \new Staff \with { instrumentName = #"Violino 1" } { \AllegroNonTroppoViolinoOne }
          \new Staff \with { instrumentName = #"Violino 2"  } { \AllegroNonTroppoViolinoTwo }
        >>
        \new Staff \with { 	instrumentName = #"Viola" } { \AllegroNonTroppoViola }
        \new Staff \with { 	instrumentName = #"Basso" } { \AllegroNonTroppoBasso }
        \new PianoStaff \with { instrumentName = #"Arpa" } <<
          \context Staff=right \AllegroNonTroppoHarpRight
          \context Staff=left \AllegroNonTroppoHarpLeft
        >>
      >>
      \layout {
      }
    } % score allegro non troppo

  } % bookpart
%%{
  %%%%% Bläser %%%%%
  
  \bookpart {
    \tocItem \markup {Corno 1}
    \paper { ragged-last-bottom = ##t }
    \header { title = "Concerto per la Arpa" composer = "Hertel" instrument = "Corno 1" }
    \score { \new Staff=CornoOne { \compressFullBarRests \tempo Allegro \AllegroCornoOne }
             \layout { \context { \Score \override SpacingSpanner #'common-shortest-duration = #(ly:make-moment 1 16) } }
    }
    \pageBreak
    \score { \new Staff=CornoOne { \compressFullBarRests \tempo "Allegro non troppo" \AllegroNonTroppoCornoOne } 
             \layout { \context { \Score \override SpacingSpanner #'common-shortest-duration = #(ly:make-moment 1 16) } }
    }
  }

  \bookpart {
    \tocItem \markup {Corno 2}
    \header {
      title = "Concerto per la Arpa" composer = "Hertel"       instrument = "Corno 2" }
    \score { \new Staff { \compressFullBarRests \tempo Allegro \AllegroCornoTwo }
             \layout { \context { \Score \override SpacingSpanner #'common-shortest-duration = #(ly:make-moment 1 16) } }
    }
    \pageBreak
    \score { \new Staff { \compressFullBarRests \tempo "Allegro non troppo" \AllegroNonTroppoCornoTwo } 
             \layout { \context { \Score \override SpacingSpanner #'common-shortest-duration = #(ly:make-moment 1 16) } }
    }
  }
  
  \bookpart {
    \tocItem \markup {Flauto 1}
    \paper { ragged-last-bottom = ##t }
    \header { title = "Concerto per la Arpa" composer = "Hertel" instrument = "Flauto 1" }
    \score { \new Staff { \compressFullBarRests \tempo Affettuoso \AffettuosoFlautoOne } }
  }
  
  \bookpart {
    \tocItem \markup {Flauto 2}
    \header { title = "Concerto per la Arpa" composer = "Hertel" instrument = "Flauto 2" }
    \score { \new Staff { \compressFullBarRests \tempo Affettuoso \AffettuosoFlautoTwo } }
  }

  %%%% Streicher %%%%%

  \bookpart {
    \tocItem \markup {Violino 1}
    \header { title = "Concerto per la Arpa" composer = "Hertel" instrument = "Violino 1" }
    \score { \new Staff { \compressFullBarRests \tempo Allegro \AllegroViolinoOne } }
    \score { \new Staff { \compressFullBarRests \tempo Affettuoso \AffettuosoViolinoOne } }
    \score { \new Staff { \compressFullBarRests \tempo "Allegro non troppo" \AllegroNonTroppoViolinoOne } }
  }

  \bookpart {
    \tocItem \markup {Violino 2}
    \header { title = "Concerto per la Arpa" composer = "Hertel" instrument = "Violino 2" }
    \score { \new Staff { \compressFullBarRests \tempo Allegro \AllegroViolinoTwo } }
    \score { \new Staff { \compressFullBarRests \tempo Affettuoso \AffettuosoViolinoTwo } }
    \score { \new Staff { \compressFullBarRests \tempo "Allegro non troppo" \AllegroNonTroppoViolinoTwo } }
  }

  \bookpart { 
    \tocItem \markup {Viola}
    \header { title = "Concerto per la Arpa" composer = "Hertel" instrument = "Viola" }
    \score { \new Staff { \compressFullBarRests \tempo Allegro \AllegroViola } }
    \score { \new Staff { \compressFullBarRests \tempo Affettuoso \AffettuosoViola } }
    \score { \new Staff { \compressFullBarRests \tempo "Allegro non troppo" \AllegroNonTroppoViola } }
  }

  \bookpart { 
    \paper {
      ragged-last-bottom = ##f
    }
    \tocItem \markup {Basso}
    \header { title = "Concerto per la Arpa" composer = "Hertel" instrument = "Basso" }
    \score { \new Staff { \compressFullBarRests \tempo Allegro \AllegroBasso } }
    \score { \new Staff { \compressFullBarRests \tempo Affettuoso \AffettuosoBasso } }
    \score { \new Staff { \compressFullBarRests \tempo "Allegro non troppo" \AllegroNonTroppoBasso } }
  }

  %%%%% Harfe %%%%%
  
  \bookpart {
    \tocItem \markup {Harpa}
    \header { title = "Concerto per la Arpa" composer = "Hertel" instrument = "Arpa" }
    \tocItem \markup {"   Allegro"}
    \score {
      <<
        \context PianoStaff <<
          \context Staff = right <<
            \context Voice = AllegroHarpRight \AllegroHarpRight
            \set Staff.instrumentName = #""
            \set Staff.shortInstrumentName = #""
          >>
          \context Staff = left <<
            \context Voice = AllegroHarpLeft \AllegroHarpLeft
            \set Staff.instrumentName = #""
            \set Staff.shortInstrumentName = #""
          >>
        >> %end of PianoStaffA
      >>
      %% Boosey and Hawkes, and Peters, have barlines spanning all staff-groups in a score,
      %% Eulenburg and Philharmonia, like Lilypond, have no barlines between staffgroups.
      %% If you want the Eulenburg/Lilypond style, comment out the following line:
      \layout {
        \context {
          \Score
          \consists Span_bar_engraver
          \override SpacingSpanner #'base-shortest-duration = #(ly:make-moment 1 16)
        }
      }
    }%% end of score-block 

    \tocItem \markup {"   Affettuoso"}
    \score {
      \context PianoStaff <<
        \context Staff=right {
          \context Voice=AA \AffettuosoHarpRight
        }
        \context Staff=left {
          \context Voice=AB \AffettuosoHarpLeft
        }
      >>
      \layout {
        \context { \Score \override SpacingSpanner #'base-shortest-duration = #(ly:make-moment 1 16)  }
      }
    }

    \tocItem \markup {"   Allegro non troppo"}
    \score {
      \context PianoStaff <<
        \context Staff=right {
          \context Voice=AA \AllegroNonTroppoHarpRight
        }
        \context Staff=left {
          \context Voice=AB \AllegroNonTroppoHarpLeft
        }
      >>
      \layout {
        \context {\Score \override SpacingSpanner #'base-shortest-duration = #(ly:make-moment 1 16)  }
      }
    } % score
  } % bookpart

  \score {
    \new StaffGroup <<
      \new Staff { 
        \set Staff.midiInstrument = "french horn" \AllegroCornoOne  s1
        \set Staff.midiInstrument = "flute" \AffettuosoFlautoOne s2.*2
        \set Staff.midiInstrument = "french horn" \AllegroNonTroppoCornoOne
      }
      \new Staff { 
        \set Staff.midiInstrument = "french horn" \AllegroCornoTwo s1
        \set Staff.midiInstrument = "flute" \AffettuosoFlautoTwo s2.*2
        \set Staff.midiInstrument = "french horn" \AllegroNonTroppoCornoTwo
      }
      \new Staff { \set Staff.midiInstrument = "violin" \AllegroViolinoOne s1 \AffettuosoViolinoOne s2.*2 \AllegroNonTroppoViolinoOne }
      \new Staff { \set Staff.midiInstrument = "violin" \AllegroViolinoTwo s1 \AffettuosoViolinoTwo s2.*2 \AllegroNonTroppoViolinoTwo }
      \new Staff { \set Staff.midiInstrument = "viola" \AllegroViola s1 \AffettuosoViola s2.*2 \AllegroNonTroppoViola }
      \new Staff { \set Staff.midiInstrument = "contrabass" \AllegroBasso s1 \AffettuosoBasso s2.*2 \AllegroNonTroppoBasso }
      \new PianoStaff <<
        \set PianoStaff.midiInstrument = "orchestral harp"
        \new Staff = right {
          \AllegroHarpRight s1 \AffettuosoHarpRight s2.*2 \AllegroNonTroppoHarpRight
        }
        \new Staff = left {
          \AllegroHarpLeft s1 \AffettuosoHarpLeft s2.*2 \AllegroNonTroppoHarpLeft
        }
      >> %end of PianoStaffA
    >>
    \midi { }
  }
%}
} %% end of book-block

#(set-global-staff-size 20)
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to