6 | c | d | e | f | g | a | b |
7 | g | a | b | c | d | e | fis |
8 | d | e | fis | g | a | b | cis |
9 | a | b | cis | d | e | fis | gis |
10 | e | fis | gis | a | b | cis | dis |
11 | b | cis | dis | e | fis | gis | ais |
12 | ges | aes | bes | ces | des | ees | f |
13 | des | ees | f | ges | aes | bes | c |
14 | aes | bes | c | des | ees | f | g |
15 | ees | f | g | aes | bes | c | d |
16 | bes | c | d | ees | f | g | a |
17 | f | g | a | bes | c | d | e |
19 *** DONE Generate Triad
21 #+name: gen-triad(key="c",root="c")
22 #+begin_src ruby :var keys=keys-table :var key_of=keys-table[*,0] :results silent
23 @key_id = key_of.index(key)
24 @key = keys[ @key_id ]
25 @root_id = @key.index(root)
27 def triad(key,root,value,interval)
29 #{@key.fetch(( value -1) % 7)} \
30 #{@key.fetch(( value +1) % 7)} \
31 #{@key.fetch(( value +3) % 7)} > \
35 "\\relative a' {" + "\n" +
36 triad(key, root, 4, 4) +
37 triad(key, root, 4, 4) +
38 triad(key, root, 4, 4) +
39 triad(key, root, 4, 4) + "|\n" +
41 triad(key, root, 5, 4) +
42 triad(key, root, 5, 4) +
43 triad(key, root, 5, 4) +
44 triad(key, root, 5, 4) + "|\n" +
46 triad(key, root, 4, 4) +
47 triad(key, root, 4, 4) +
48 triad(key, root, 4, 4) +
49 triad(key, root, 4, 4) + "|\n" +
51 triad(key, root, 5, 4) +
52 triad(key, root, 5, 4) +
53 triad(key, root, 5, 4) +
54 triad(key, root, 5, 4) + "|\n" +
59 *** DONE Generate arpeggio
61 #+name: gen_arpeggio(key="c", root="c")
62 #+begin_src ruby :var keys=keys-table :var key_of=keys-table[*,0] :results silent
63 key_id = key_of.index(key)
65 @root_id = @key.index(root)
67 def arpeggio (key, root, ascending)
75 notes += @key.fetch((@root_id + x) % 7) + "16 "
81 "\\relative c {" + arpeggio(key , root, 1 ) + " } | r1 | \
82 \\relative c'' {" + arpeggio(key , root , 0) + " } | r1 | \n"
86 *** DONE Generate Bass Line
88 #+name: generate_bassline(key="c",root="c")
89 #+begin_src ruby :var keys=keys-table :var key_of=keys-table[*,0] :results silent
90 key_id = key_of.index(key)
92 root_id = key.index(root)
93 #third = key.fetch( root_id + 2)
94 #seventh = key.fetch(root_id + 6)
96 " #{root}8 #{root}, #{root}' #{root} " +
97 "#{root} #{root} #{root} #{root}'16 #{root},16 "
99 "\\relative g, { " + "\n" + one_bar + "|\n" + one_bar +
100 "|\n" + one_bar + "|\n" + one_bar + "|\n} "
117 <<gen_arpeggio(key="c",root="c")>>
118 <<gen_arpeggio(key="f",root="c")>>
119 <<gen_arpeggio(key="bes",root="c")>>
120 <<gen_arpeggio(key="ees",root="c")>>
121 <<gen_arpeggio(key="aes",root="c")>>
122 <<gen_arpeggio(key="des",root="c")>>
123 <<gen_arpeggio(key="ges",root="ces")>>
124 <<gen_arpeggio(key="b",root="b")>>
125 <<gen_arpeggio(key="e",root="b")>>
126 <<gen_arpeggio(key="a",root="b")>>
127 <<gen_arpeggio(key="d",root="b")>>
128 <<gen_arpeggio(key="g",root="b")>>
129 <<gen_arpeggio(key="c",root="b")>>
130 <<gen_arpeggio(key="f",root="bes")>>
131 <<gen_arpeggio(key="bes",root="bes")>>
132 <<gen_arpeggio(key="ees",root="bes")>>
133 <<gen_arpeggio(key="aes",root="bes")>>
134 <<gen_arpeggio(key="des",root="bes")>>
135 <<gen_arpeggio(key="ges",root="bes")>>
136 <<gen_arpeggio(key="b",root="ais")>>
137 <<gen_arpeggio(key="e",root="a")>>
138 <<gen_arpeggio(key="a",root="a")>>
139 <<gen_arpeggio(key="d",root="a")>>
140 <<gen_arpeggio(key="g",root="a")>>
141 <<gen_arpeggio(key="c",root="a")>>
142 <<gen_arpeggio(key="f",root="a")>>
143 <<gen_arpeggio(key="bes",root="a")>>
144 <<gen_arpeggio(key="ees",root="aes")>>
145 <<gen_arpeggio(key="aes",root="aes")>>
146 <<gen_arpeggio(key="des",root="aes")>>
147 <<gen_arpeggio(key="ges",root="aes")>>
148 <<gen_arpeggio(key="b",root="gis")>>
149 <<gen_arpeggio(key="e",root="gis")>>
150 <<gen_arpeggio(key="a",root="gis")>>
151 <<gen_arpeggio(key="d",root="g")>>
152 <<gen_arpeggio(key="g",root="g")>>
153 <<gen_arpeggio(key="c",root="g")>>
154 <<gen_arpeggio(key="f",root="g")>>
155 <<gen_arpeggio(key="bes",root="g")>>
156 <<gen_arpeggio(key="ees",root="g")>>
157 <<gen_arpeggio(key="aes",root="g")>>
158 <<gen_arpeggio(key="des",root="ges")>>
159 <<gen_arpeggio(key="ges",root="ges")>>
160 <<gen_arpeggio(key="b",root="fis")>>
161 <<gen_arpeggio(key="e",root="fis")>>
162 <<gen_arpeggio(key="a",root="fis")>>
163 <<gen_arpeggio(key="d",root="fis")>>
164 <<gen_arpeggio(key="g",root="fis")>>
165 <<gen_arpeggio(key="c",root="f")>>
166 <<gen_arpeggio(key="f",root="f")>>
167 <<gen_arpeggio(key="bes",root="f")>>
168 <<gen_arpeggio(key="ees",root="f")>>
169 <<gen_arpeggio(key="aes",root="f")>>
170 <<gen_arpeggio(key="des",root="f")>>
171 <<gen_arpeggio(key="ges",root="f")>>
172 <<gen_arpeggio(key="b",root="e")>>
173 <<gen_arpeggio(key="e",root="e")>>
174 <<gen_arpeggio(key="a",root="e")>>
175 <<gen_arpeggio(key="d",root="e")>>
176 <<gen_arpeggio(key="g",root="e")>>
177 <<gen_arpeggio(key="c",root="e")>>
178 <<gen_arpeggio(key="f",root="e")>>
179 <<gen_arpeggio(key="bes",root="ees")>>
180 <<gen_arpeggio(key="ees",root="ees")>>
181 <<gen_arpeggio(key="aes",root="ees")>>
182 <<gen_arpeggio(key="des",root="ees")>>
183 <<gen_arpeggio(key="ges",root="ees")>>
184 <<gen_arpeggio(key="b",root="dis")>>
185 <<gen_arpeggio(key="e",root="dis")>>
186 <<gen_arpeggio(key="a",root="d")>>
187 <<gen_arpeggio(key="d",root="d")>>
188 <<gen_arpeggio(key="g",root="d")>>
189 <<gen_arpeggio(key="c",root="d")>>
190 <<gen_arpeggio(key="f",root="d")>>
191 <<gen_arpeggio(key="bes",root="d")>>
192 <<gen_arpeggio(key="ees",root="d")>>
193 <<gen_arpeggio(key="aes",root="des")>>
194 <<gen_arpeggio(key="des",root="des")>>
195 <<gen_arpeggio(key="ges",root="des")>>
196 <<gen_arpeggio(key="b",root="cis")>>
197 <<gen_arpeggio(key="e",root="cis")>>
198 <<gen_arpeggio(key="a",root="cis")>>
199 <<gen_arpeggio(key="d",root="cis")>>
200 <<gen_arpeggio(key="g",root="c")>>
201 <<gen_arpeggio(key="c",root="c")>>
212 <<gen-triad(key="c",root="c")>>
213 <<gen-triad(key="f",root="c")>>
214 <<gen-triad(key="bes",root="c")>>
215 <<gen-triad(key="ees",root="c")>>
216 <<gen-triad(key="aes",root="c")>>
217 <<gen-triad(key="des",root="c")>>
218 <<gen-triad(key="ges",root="ces")>>
219 <<gen-triad(key="b",root="b")>>
220 <<gen-triad(key="e",root="b")>>
221 <<gen-triad(key="a",root="b")>>
222 <<gen-triad(key="d",root="b")>>
223 <<gen-triad(key="g",root="b")>>
224 <<gen-triad(key="c",root="b")>>
225 <<gen-triad(key="f",root="bes")>>
226 <<gen-triad(key="bes",root="bes")>>
227 <<gen-triad(key="ees",root="bes")>>
228 <<gen-triad(key="aes",root="bes")>>
229 <<gen-triad(key="des",root="bes")>>
230 <<gen-triad(key="ges",root="bes")>>
231 <<gen-triad(key="b",root="ais")>>
232 <<gen-triad(key="e",root="a")>>
233 <<gen-triad(key="a",root="a")>>
234 <<gen-triad(key="d",root="a")>>
235 <<gen-triad(key="g",root="a")>>
236 <<gen-triad(key="c",root="a")>>
237 <<gen-triad(key="f",root="a")>>
238 <<gen-triad(key="bes",root="a")>>
239 <<gen-triad(key="ees",root="aes")>>
240 <<gen-triad(key="aes",root="aes")>>
241 <<gen-triad(key="des",root="aes")>>
242 <<gen-triad(key="ges",root="aes")>>
243 <<gen-triad(key="b",root="gis")>>
244 <<gen-triad(key="e",root="gis")>>
245 <<gen-triad(key="a",root="gis")>>
246 <<gen-triad(key="d",root="g")>>
247 <<gen-triad(key="g",root="g")>>
248 <<gen-triad(key="c",root="g")>>
249 <<gen-triad(key="f",root="g")>>
250 <<gen-triad(key="bes",root="g")>>
251 <<gen-triad(key="ees",root="g")>>
252 <<gen-triad(key="aes",root="g")>>
253 <<gen-triad(key="des",root="ges")>>
254 <<gen-triad(key="ges",root="ges")>>
255 <<gen-triad(key="b",root="fis")>>
256 <<gen-triad(key="e",root="fis")>>
257 <<gen-triad(key="a",root="fis")>>
258 <<gen-triad(key="d",root="fis")>>
259 <<gen-triad(key="g",root="fis")>>
260 <<gen-triad(key="c",root="f")>>
261 <<gen-triad(key="f",root="f")>>
262 <<gen-triad(key="bes",root="f")>>
263 <<gen-triad(key="ees",root="f")>>
264 <<gen-triad(key="aes",root="f")>>
265 <<gen-triad(key="des",root="f")>>
266 <<gen-triad(key="ges",root="f")>>
267 <<gen-triad(key="b",root="e")>>
268 <<gen-triad(key="e",root="e")>>
269 <<gen-triad(key="a",root="e")>>
270 <<gen-triad(key="d",root="e")>>
271 <<gen-triad(key="g",root="e")>>
272 <<gen-triad(key="c",root="e")>>
273 <<gen-triad(key="f",root="e")>>
274 <<gen-triad(key="bes",root="ees")>>
275 <<gen-triad(key="ees",root="ees")>>
276 <<gen-triad(key="aes",root="ees")>>
277 <<gen-triad(key="des",root="ees")>>
278 <<gen-triad(key="ges",root="ees")>>
279 <<gen-triad(key="b",root="dis")>>
280 <<gen-triad(key="e",root="dis")>>
281 <<gen-triad(key="a",root="d")>>
282 <<gen-triad(key="d",root="d")>>
283 <<gen-triad(key="g",root="d")>>
284 <<gen-triad(key="c",root="d")>>
285 <<gen-triad(key="f",root="d")>>
286 <<gen-triad(key="bes",root="d")>>
287 <<gen-triad(key="ees",root="d")>>
288 <<gen-triad(key="aes",root="des")>>
289 <<gen-triad(key="des",root="des")>>
290 <<gen-triad(key="ges",root="des")>>
291 <<gen-triad(key="b",root="cis")>>
292 <<gen-triad(key="e",root="cis")>>
293 <<gen-triad(key="a",root="cis")>>
294 <<gen-triad(key="d",root="cis")>>
295 <<gen-triad(key="g",root="c")>>
296 <<gen-triad(key="c",root="c")>>
306 bd16 hh16 hh16 hh16 sn16 hh16 hh16 hh16
307 bd16 hh16 hh16 hh16 sn16 hh16 hh16 hh16 |
308 bd16 hh16 hh16 hh16 sn16 hh16 hh16 hh16
309 bd16 hh16 hh16 hh16 sn16 hh16 hh16 bd16 |
310 bd16 hh16 hh16 hh16 sn16 hh16 hh16 hh16
311 bd16 hh16 hh16 hh16 sn16 hh16 hh16 hh16 |
312 bd16 hh16 hh16 hh16 sn16 hh16 hh16 hh16
313 bd16 hh16 hh16 hh16 sn16 hh16 sn16 bd16 |
318 \DrumsFourBars \DrumsFourBars
319 \DrumsFourBars \DrumsFourBars
325 \DrumsSixteenBars \DrumsSixteenBars \DrumsSixteenBars
326 \DrumsSixteenBars \DrumsSixteenBars \DrumsSixteenBars
327 \DrumsSixteenBars \DrumsSixteenBars \DrumsSixteenBars
328 \DrumsSixteenBars \DrumsSixteenBars \DrumsSixteenBars
329 \DrumsSixteenBars \DrumsSixteenBars \DrumsSixteenBars
330 \DrumsSixteenBars \DrumsSixteenBars \DrumsSixteenBars
331 \DrumsSixteenBars \DrumsSixteenBars \DrumsSixteenBars
341 <<generate_bassline(key="c",root="c")>>
342 <<generate_bassline(key="f",root="c")>>
343 <<generate_bassline(key="bes",root="c")>>
344 <<generate_bassline(key="ees",root="c")>>
345 <<generate_bassline(key="aes",root="c")>>
346 <<generate_bassline(key="des",root="c")>>
347 <<generate_bassline(key="ges",root="b")>>
348 <<generate_bassline(key="b",root="b")>>
349 <<generate_bassline(key="e",root="b")>>
350 <<generate_bassline(key="a",root="b")>>
351 <<generate_bassline(key="d",root="b")>>
352 <<generate_bassline(key="g",root="b")>>
353 <<generate_bassline(key="c",root="b")>>
354 <<generate_bassline(key="f",root="bes")>>
355 <<generate_bassline(key="bes",root="bes")>>
356 <<generate_bassline(key="ees",root="bes")>>
357 <<generate_bassline(key="aes",root="bes")>>
358 <<generate_bassline(key="des",root="bes")>>
359 <<generate_bassline(key="ges",root="bes")>>
360 <<generate_bassline(key="b",root="bes")>>
361 <<generate_bassline(key="e",root="a")>>
362 <<generate_bassline(key="a",root="a")>>
363 <<generate_bassline(key="d",root="a")>>
364 <<generate_bassline(key="g",root="a")>>
365 <<generate_bassline(key="c",root="a")>>
366 <<generate_bassline(key="f",root="a")>>
367 <<generate_bassline(key="bes",root="a")>>
368 <<generate_bassline(key="ees",root="aes")>>
369 <<generate_bassline(key="aes",root="aes")>>
370 <<generate_bassline(key="des",root="aes")>>
371 <<generate_bassline(key="ges",root="aes")>>
372 <<generate_bassline(key="b",root="aes")>>
373 <<generate_bassline(key="e",root="aes")>>
374 <<generate_bassline(key="a",root="aes")>>
375 <<generate_bassline(key="d",root="g")>>
376 <<generate_bassline(key="g",root="g")>>
377 <<generate_bassline(key="c",root="g")>>
378 <<generate_bassline(key="f",root="g")>>
379 <<generate_bassline(key="bes",root="g")>>
380 <<generate_bassline(key="ees",root="g")>>
381 <<generate_bassline(key="aes",root="g")>>
382 <<generate_bassline(key="des",root="ges")>>
383 <<generate_bassline(key="ges",root="ges")>>
384 <<generate_bassline(key="b",root="ges")>>
385 <<generate_bassline(key="e",root="ges")>>
386 <<generate_bassline(key="a",root="ges")>>
387 <<generate_bassline(key="d",root="ges")>>
388 <<generate_bassline(key="g",root="ges")>>
389 <<generate_bassline(key="c",root="f")>>
390 <<generate_bassline(key="f",root="f")>>
391 <<generate_bassline(key="bes",root="f")>>
392 <<generate_bassline(key="ees",root="f")>>
393 <<generate_bassline(key="aes",root="f")>>
394 <<generate_bassline(key="des",root="f")>>
395 <<generate_bassline(key="ges",root="f")>>
396 <<generate_bassline(key="b",root="e")>>
397 <<generate_bassline(key="e",root="e")>>
398 <<generate_bassline(key="a",root="e")>>
399 <<generate_bassline(key="d",root="e")>>
400 <<generate_bassline(key="g",root="e")>>
401 <<generate_bassline(key="c",root="e")>>
402 <<generate_bassline(key="f",root="e")>>
403 <<generate_bassline(key="bes",root="ees")>>
404 <<generate_bassline(key="ees",root="ees")>>
405 <<generate_bassline(key="aes",root="ees")>>
406 <<generate_bassline(key="des",root="ees")>>
407 <<generate_bassline(key="ges",root="ees")>>
408 <<generate_bassline(key="b",root="ees")>>
409 <<generate_bassline(key="e",root="ees")>>
410 <<generate_bassline(key="a",root="d")>>
411 <<generate_bassline(key="d",root="d")>>
412 <<generate_bassline(key="g",root="d")>>
413 <<generate_bassline(key="c",root="d")>>
414 <<generate_bassline(key="f",root="d")>>
415 <<generate_bassline(key="bes",root="d")>>
416 <<generate_bassline(key="ees",root="d")>>
417 <<generate_bassline(key="aes",root="des")>>
418 <<generate_bassline(key="des",root="des")>>
419 <<generate_bassline(key="ges",root="des")>>
420 <<generate_bassline(key="b",root="cis")>>
421 <<generate_bassline(key="e",root="cis")>>
422 <<generate_bassline(key="a",root="cis")>>
423 <<generate_bassline(key="d",root="cis")>>
424 <<generate_bassline(key="g",root="c")>>
425 <<generate_bassline(key="c",root="c")>>
430 ** Number of bars to compile (showLastLength)
433 % showLastLength = R1*17
446 \set Staff.midiInstrument = #"acoustic grand"
452 \set Staff.midiInstrument = #"acoustic grand"
459 \set Staff.midiInstrument = #"slap bass 2"
474 tempoWholesPerMinute = #(ly:make-moment 120 4)
486 #(define dump-extents #t)
489 line-width = 200\mm - 2.0 * 0.4\in
491 force-assignment = #""
492 line-width = #(- line-width (* mm 3.000000))
502 title = \markup \center-column {"Modal Cycle"}
503 composer = \markup \center-column { "Music by" \small "Martyn Jago" }
504 poet = \markup \center-column { "ob-lilypond" \small "example 3" }