Les Horace : acte 1 scène 1 [1-7] camille
[nenuvar.git] / common / charpentier-common.ily
blob14085a51524fe6aae739cf7b8c621b2acdf9def4
2 #(ly:set-option 'ancient-style (eqv? #t (ly:get-option 'urtext)))
3 #(ly:set-option 'ancient-alteration (eqv? #t (ly:get-option 'urtext)))
4 #(ly:set-option 'original-layout (eqv? #t (ly:get-option 'urtext)))
5 #(ly:set-option 'baroque-repeats (eqv? #t (ly:get-option 'urtext)))
6 #(ly:set-option 'baroque-repeat-bar ":||:")
8 %% Staff size:
9 %%  12 for urtext lead sheet
10 %%  14 for lead sheets
11 %%  16 for vocal parts
12 %%  18 for instruments
13 #(set-global-staff-size
14   (cond ((memq (ly:get-option 'part) '(voix)) 16) ;; vocal part
15         ((ly:get-option 'part) 18)      ;; other parts
16         ((eqv? #t (ly:get-option 'ancient-style)) 12) ;; make urtext smaller
17         (else 14)))
19 %% Line/page breaking algorithm
20 %%  optimal   for lead sheets
21 %%  page-turn for instruments and vocal parts
22 \paper {
23   #(define page-breaking (if (or (eqv? (ly:get-option 'part) #f)
24                                  (memq (ly:get-option 'part) '(voix)))
25                              ly:optimal-breaking
26                              ly:page-turn-breaking))
29 %% Use rehearsal numbers in parts
30 %#(if (symbol? (ly:get-option 'part))
31 %     (ly:set-option 'use-rehearsal-numbers #t))
33 %% No incipits for parts
34 #(ly:set-option 'non-incipit (not (not (ly:get-option 'part))))
36 %% No key signature modification
37 #(ly:set-option 'forbid-key-modification #t)
39 \include "italiano.ly"
40 \include "common/common.ily"
41 \include "common/alterations.ily"
43 \layout {
44   reference-incipit-width = #(* 1/2 mm)
46   \context {
47     \Score
48     %% Clef after bar-line (in unbroken case)
49     \override BreakAlignment #'break-align-orders =
50     ##(;; end of line
51        (left-edge
52        cue-end-clef
53        ambitus
54        breathing-sign
55        clef
56        cue-clef
57        staff-bar
58        key-cancellation
59        key-signature
60        time-signature
61        custos)
62       ;; unbroken
63       (left-edge
64        cue-end-clef
65        ambitus
66        breathing-sign
67        staff-bar
68        clef
69        cue-clef
70        key-cancellation
71        key-signature
72        time-signature
73        custos)
74       ;; begin of line
75       (left-edge
76        ambitus
77        breathing-sign
78        clef
79        key-cancellation
80        key-signature
81        staff-bar
82        time-signature
83        cue-clef
84        custos))
85   }
86   \context {
87     \Voice
88     \override FootnoteItem #'annotation-line = ##f
89     %\override FootnoteItem #'color = #red
90     \override NoteHead #'style = #'baroque
91   }
92   \context {
93     \Staff
94     \name Staff
95     explicitClefVisibility = ##(#f #t #t)
96     %% Figured bass
97     ignoreFiguredBassRest = ##f
98     figuredBassAlterationDirection = #LEFT
99     \override BassFigureAlignment #'stacking-dir = #DOWN
100     %\override BassFigureAlignmentPositioning #'direction = #UP
101   }
104 %%% Titling
105 \paper {
106   bookTitleMarkup = \markup \when-property #'header:title \abs-fontsize #12 \column {
107     \column {
108       \fontsize #1 \bold \fill-line { \fromproperty #'header:title }
109       \null
110       \fontsize #0 \fill-line {
111         \fromproperty #'header:opus
112         \fromproperty #'header:instrument
113         \fromproperty #'header:composer
114       }
115       \vspace #1
116     }
117   }
120 pieceTocTitle =
121 #(define-music-function (parser location title) (markup?)
122   (let ((rehearsal (rehearsal-number))
123         (font-size (if (symbol? (ly:get-option 'part)) 2 3)))
124     (add-toc-item parser 'tocPieceMarkup title rehearsal)
125     (add-toplevel-markup parser 
126       (if (eqv? #t (ly:get-option 'use-rehearsal-numbers))
127           (markup #:rehearsal-number rehearsal
128                   #:hspace 1
129                   #:fontsize font-size title)
130           (markup #:fill-line (#:fontsize font-size title))))
131     (add-no-page-break parser)
132     (make-music 'Music 'void #t)))
135 trill = #(make-articulation "stopped")
137 %% In urtext version, add original manuscript page numbers in page header
138 #(define-markup-command (page-header layout props text) (markup?)
139    (define (ancestor layout)
140      "Return the topmost layout ancestor"
141      (let ((parent (ly:output-def-parent layout)))
142        (if (not (ly:output-def? parent))
143            layout
144            (ancestor parent))))
145    (let* ((first-page-number (ly:output-def-lookup (ancestor layout) 'first-page-number))
146           (page-number (chain-assoc-get 'page:page-number props -1))
147           (page-number-markup (number->string page-number))
148           (text-markup (markup #:italic (or text "")))
149           (part-page-number (1+ (- page-number first-page-number)))
150           (orig-page-number-table (ly:output-def-lookup layout 'original-page-number-table '()))
151           (orig-page-number-markup (if (eqv? #t (ly:get-option 'ancient-style))
152                                        (let ((num-text (assoc part-page-number orig-page-number-table)))
153                                          (if (pair? num-text)
154                                              (cdr num-text)
155                                              ""))
156                                        "")))
157          (if (or (= page-number 1) (not text))
158              empty-stencil
159          (interpret-markup
160           layout props
161           (if (odd? page-number)
162               (markup #:fill-line (orig-page-number-markup text-markup page-number-markup))
163               (markup #:fill-line (page-number-markup text-markup orig-page-number-markup)))))))
165 %%% Instruments
167 %% Clés dans les parties séparées
168 %%  dessus1+2 --> sol1
169 %%  dessus+haute-contre --> sol1
170 %%  haute-contre --> ut3
171 %%  taille --> ut3
173 \opusPartSpecs
174 #`((dessus "Dessus" ()
175            (#:score "score-dessus" #:notes "dessus"
176                     #:clef ,(if (eqv? (ly:get-option 'dessus-sol1) #t)
177                                 "french"
178                                 "treble")))
179    (dessus-haute-contre "Dessus et hautes-contre" ()
180                         (#:score "score-dessus-haute-contre"
181                                  #:clef ,(if (eqv? (ly:get-option 'dessus-sol1) #t)
182                                              "french"
183                                              "treble")))
184    (haute-contre "Hautes-contre" ()
185                  (#:notes "haute-contre"
186                   #:tag-notes haute-contre
187                   #:clef "alto"))
188    (taille "Tailles" () (#:notes "taille" #:clef "alto"))
189    (basse "Basses et basse continue" ()
190           (#:notes "basse" #:clef "basse"
191                    #:score-template "score-basse-continue2")))
193 %% Clés des dessus dans le conducteur
194 #(if (eqv? (ly:get-option 'dessus-sol1) #t)
195      (set-modern-clef! 'dessus 'french)
196      (set-modern-clef! 'dessus 'treble))
198 #(if (eqv? (ly:get-option 'violon-iso-haute-contre) #t)
199      (set-modern-clef! 'haute-contre (modern-clef 'dessus)))