-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathharmony-rhythm.ly
223 lines (192 loc) · 5.05 KB
/
harmony-rhythm.ly
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
% Boilerplate Sheet Music for Small Acoustic Pop Ensembles
%
% Copyright (c) 2024 Four-String Mate. Licensed under MIT
%
% You keep your own pieces generated with the boilerplate
% in any license you prefer.
% Set compatible LilyPond version.
\version "2.22.1"
% Adjust the size of a sheet music.
#(set-global-staff-size 20)
% The parameters used by a piece.
piece-title = "The Title"
piece-composer = "The Composer"
piece-parameter = {
% Set the key signature.
\key c \major
% Set the time signature.
\numericTimeSignature
\time 4/4
% Set the tempo.
\tempo 4 = 88
}
harmony-instrument = "acoustic guitar (steel)"
rhythm-instrument = #"drum kit"
harmony-tuning = \stringTuning <e, a, d g b e'>
% Record the chords of a piece.
% \chords is a builtin command in LilyPond.
% Don't use chords as a variable name.
chord = \chordmode {
% Don't show any text when no chord set.
% Replace the default "N.C." to save space.
\set noChordSymbol = ""
% Write your chord names here.
s1
\bar "|." % The end of a piece.
}
% Record the harmony of a piece.
harmony = {
% Write your harmony here.
s1
\bar "|."
}
% Record the rhythm of a piece.
rhythm = \drummode {
% Write your rhythm here.
s1
\bar "|."
}
% Record the piece.
piece = {
\new StaffGroup <<
% Create the chord name part.
\tag #'chord \new ChordNames {
% Recall the chord names we wrote.
\chord
}
% Create the chordal part.
\new Staff \with {
instrumentName = "Harmony"
midiInstrument = \harmony-instrument
} {
\clef "treble_8"
\piece-parameter
% Recall the harmony we wrote.
\harmony
}
% Create the rhythm part.
\new DrumStaff \with {
instrumentName = "Rhythm"
\override MidiInstrument #'midiInstrument = \rhythm-instrument
% Assume a cajon here.
% Record the sheet music as if a drum kit.
%
% Change the style table if you
% use other percussion instrument.
drumStyleTable = #drums-style
} \drummode {
\clef percussion
\piece-parameter
% Recall the rhythms we wrote.
\rhythm
}
>>
}
% Create a sheet music.
\book {
% Set the title and the composer of a piece.
\header {
title = \piece-title
composer = \piece-composer
% Remove the default footer.
tagline = ##f
}
% Create the MIDI for a piece.
% We can explore a piece freely before your ensemble play it.
\score {
% Keep the chord names from the MIDI output.
\removeWithTag #'chord
\piece
\midi {}
}
% Create the full score.
\score {
\piece
% Set the layout of a sheet music.
\layout {}
}
}
\book {
% Set the title and the composer of a piece.
\header {
title = \markup { \concat { \piece-title " (Harmony Part)" }}
composer = \piece-composer
% Remove the default footer.
tagline = ##f
}
\bookOutputSuffix "harmony"
% Generate a MIDI file for the harmony part.
\score {
\new Staff \with {
instrumentName = "Harmony"
midiInstrument = \harmony-instrument
} {
\clef "treble_8"
% Recall the harmony we wrote.
\harmony
}
\midi {}
}
% Create the harmony part.
\score {
<<
% Create the chord name part.
\new ChordNames {
% Recall the chord names we wrote.
\chord
}
\new Staff {
\clef "treble_8"
\piece-parameter
\harmony
}
\new TabStaff \with {
stringTunings = #harmony-tuning
} {
\harmony
}
>>
\layout {}
}
}
\book {
% Set the title and the composer of a piece.
\header {
title = \markup { \concat { \piece-title " (Rhythm Part)" }}
composer = \piece-composer
% Remove the default footer.
tagline = ##f
}
\bookOutputSuffix "rhythm"
% Generate a MIDI file for the rhythm part.
\score {
\new DrumStaff \with {
instrumentName = "Rhythm"
\override MidiInstrument #'midiInstrument = \rhythm-instrument
% Assume a cajon here.
% Record the sheet music as if a drum kit.
%
% Change the style table if you
% use other percussion instrument.
drumStyleTable = #drums-style
} \drummode {
% Recall the rhythms we wrote.
\rhythm
}
\midi {}
}
% Create the rhythm part.
\score {
<<
\new DrumStaff \with {
% Use a cajon as if it is a drum kit.
drumStyleTable = #drums-style
} \drummode {
\clef percussion
\piece-parameter
\rhythm
}
>>
\layout {}
}
}