]> git.donarmstrong.com Git - lilypond.git/blob - input/wilhelmus.ly
Use raggedright. Hack `Een prin -- ce'
[lilypond.git] / input / wilhelmus.ly
1 \version "2.3.0"
2
3 \header {
4   texidoc = "Wilhelmus van Nassouwe"
5   title = "Wilhelmus van Nassouwe"
6   composer = "Valerius"
7   subtitle = "Neder-landtsche gedenck-clanck"
8   opus = "1626"
9   copyright = "public domain"
10   enteredby = "janneke@gnu.org"
11 }
12
13 %% hymn tricks
14 #(define (prepend-grob-property grob-name
15           grob-prop entry)
16   (lambda (context)
17    (ly:context-pushpop-property context grob-name grob-prop
18     (cons
19      entry
20      (assoc-get grob-prop (car (ly:context-property context grob-name)))))))
21
22 #(define (set-extra-space grob-name entry value)
23   (prepend-grob-property grob-name 'space-alist
24    (cons entry (cons 'extra-space value))))
25
26 noclefs = \notes {
27   s1
28   \override Staff.Clef #'break-visibility = #(lambda (dir) (cons #t #t))
29 }
30
31 setMargins = {
32   %% first line left margin
33   %% justified:
34   %% \context Staff \applycontext #(set-extra-space 'TimeSignature 'first-note 4.5)
35   %% raggedright:
36   \context Staff \applycontext #(set-extra-space 'TimeSignature 'first-note 9.5)
37   
38   %% next lines left margin
39   \context Staff \applycontext #(set-extra-space 'KeySignature 'staff-bar 15)
40   
41   %% next lines small key-signature margin
42   \context Staff \applycontext #(set-extra-space 'LeftEdge 'key-signature 1.0)
43 }
44
45 pipeSymbol = {
46   %% Set height of bar line to 2 staff-spaces
47   \once \override Staff.BarLine #'bar-size-procedure = #(lambda (x) 2)
48   %% Move barline one staff-space up
49   \once \override Staff.BarLine #'extra-offset = #'(0 . 1)
50   \bar "|"
51 }
52
53 myBreak = { \bar "" \break }
54
55 \paper {
56   indent = 0.0\mm
57   linewidth = 120.0\mm
58   textheight = 270.0\mm
59 }
60
61 voice = \notes \relative c' {
62   \clef violin
63   \key g \major
64   d4 | g g a a b | a8 \myBreak
65   b8 | c4 b a a | g2. \myBreak
66
67   d4 | g g a a | b a8 \myBreak
68   b8 | c4 b a a| g2.  \myBreak
69
70   %% Hack for better left tekst margin
71   %% b8[ c] | d2 e4 d2 c4 | b a8 \myBreak
72   %%\override melismaBusyProperties = #'()
73   \set melismaBusyProperties = #'()
74   b8[ c] |
75   %%\revert melismaBusyProperties
76   \set melismaBusyProperties = #default-melisma-properties
77   d2 e4 d2 c4 b | a8 \myBreak
78   b8 | c4 b a g | a2. \myBreak
79
80   d,4 | g4.\melisma a8\melismaEnd b2 a2 g4 | fis e8 \myBreak
81   d8 | e4 g g fis | 
82   
83   \override NoteHead #'style = #'neo_mensural
84
85   g\breve
86
87   %% justified lines:
88   %%\override Staff.BarLine #'extra-offset = #'(12 . 0)
89   %% raggedright:
90   \override Staff.BarLine #'extra-offset = #'(23 . 0)
91   \bar "|."
92 }
93
94 stich = \notes \relative c'' {
95   \override Staff.NoteCollision #'merge-differently-dotted = ##t
96   \set fontSize = #-3
97   %% broken?
98   \override Stem #'beamed-lengths = #(map (lambda (x) (* 0.2 x)) '(3.26))
99
100   \voiceTwo
101   \partial 4
102   s4 s s a8[ b] c[ a] s4.
103   s8 s4 s a8 g s4 s2.
104
105   s4 s s a8[ b] c[ a] s4.
106   s8 s4 s a8 g s4 s2.
107   
108   s8 s s2 s4 s2 s4 s s8
109   s8 s4 s s s s2.
110
111   s4 g8[ fis g a] s2 s2 s4 s s8
112   s8 e8[ fis]
113 }
114
115 modernText = \lyrics {
116   Wil -- hel -- mus van Nas -- sou -- we
117   ben ik van duit -- sen bloed,
118
119   den va -- der -- land ge -- trou -- we
120   blijf ik tot in den dood.
121
122   Een prin -- se van O -- ran -- je
123   ben ik vrij on -- ver -- veerd,
124
125   den ko -- ning van His -- pan -- je
126   heb ik al -- tijd ge -- eerd.
127 }
128
129 text = \lyrics {
130   Wil -- hel -- mus van Nas -- sou -- we
131   Ben ick van duyt -- schen bloet,
132   Den Va -- der -- landt ghe -- trou -- we,
133   blyf ick tot in den doot!
134   %% Hack for better left text margin:
135   %% Een Prin -- ce van O -- ran -- gien
136   Een " " Prin -- ce van O -- ran -- gien
137   Ben ick, vry, on -- ver -- veert;
138   Den Co -- ninck van His -- pan -- gien
139   Heb ick al -- tijt ghe -- eert.
140 }
141
142 oneHalfNoteTime = \markup {
143   \override #'(baseline-skip . 0)
144   \column < { \number "1" } { \smaller \smaller \note #"2" #-0.5 } >
145 }
146
147 \paper {
148   raggedright = ##t
149
150   \context {
151     \ScoreContext
152     %% defaults
153     %% (shortest-duration-space . 2.0)
154     %% (spacing-increment . 1.2)
155     %% (base-shortest-duration . ,(ly:make-moment 1 8))
156     %% wider spacing
157     \override SpacingSpanner #'shortest-duration-space = #3.0
158     \override SpacingSpanner #'spacing-increment = #1.2
159     \override SpacingSpanner #'base-shortest-duration = #(ly:make-moment 1 8)
160   }
161 }
162
163 \score {
164   \context Score <<
165     \context Staff <<
166       \override Staff.StaffSymbol #'width = #'80
167       \set Staff.autoBeaming = ##f
168       \set Score.timing = ##f
169       \setMargins
170      
171       %% Less vertical space needed with lyrics
172       \set Staff.minimumVerticalExtent = #'(2 . 2)
173       
174       %% Custom time signature
175       \override Staff.TimeSignature #'print-function = #Text_item::print
176       \override Staff.TimeSignature #'text = #oneHalfNoteTime
177       \noclefs
178     
179       \context Voice = "voice" \voice
180       \context Voice = "stich" \stich
181     >>
182     \lyricsto "voice" \new Lyrics {
183       \set minimumVerticalExtent = #'(2 . 2)
184       \text
185     }
186   >>
187   \paper {}
188 %  \midi {}
189 }
190
191 %%% Local variables:
192 %%% LilyPond-indent-level:2
193 %%% End: