white noise: change tempo earlier.
[music/pretentious.git] / stafftab.ly
1 %% This is a hack. The relative path works when building, say,
2 %% "01-song1", but it fails when building a specific part,
3 %% e.g. "01-song1/parts/keys.pdf". With this expression we try one
4 %% path first and move on to the next relative path if that happens to
5 %% fail. This is really gross, but it works. ¯\_(ツ)_/¯
6 #(or (false-if-exception (load "stafftab-engraver.scm"))
7 (false-if-exception (load "../stafftab-engraver.scm"))
8 (load "../../stafftab-engraver.scm"))
9
10 %% tunings for 12-string Chapman Stick
11 \makeDefaultStringTuning #'stick-classic-tuning
12 \stringTuning <d' a e b, fis, cis, c,, g,, d, a, e b>
13 \makeDefaultStringTuning #'stick-matched-reciprocal-tuning
14 \stringTuning <c' g d a, e, b,, c,, g,, d, a, e b>
15
16 %% MR™ High Bass 4th % TODO: melody note heights are probably wrong
17 %stick-tuning-twelve-mr-high =
18 % \stringTuning <c' g d a e b c,, g,, d, a, e a>
19 %
20 %% 12-String Classic™ High Bass 4th % TODO: melody note heights are probably wrong
21 %stick-tuning-twelve-classic-high =
22 % \stringTuning <d' a e b, fis, cis, c,, g,, d, a, e a>
23 %
24 %% Deep Matched Reciprocal™ % TODO
25 %stick-tuning-twelve-deep-mr =
26 % \stringTuning <bes f c g d a bes,, f,, c, g, d a>
27 %
28 %% Raised Matched Reciprocal™ % TODO
29 %stick-tuning-twelve-classic-high =
30 % \stringTuning <d' a e b, fis, cis, d,, a,, e, b, fis cis>
31 %
32 %% Dual Bass Reciprocal™ % TODO
33 %stick-tuning-twelve-dual-bass-r =
34 % \stringTuning <f' c g d, a, e, b,, fis,, cis, gis, dis ais>
35
36 %% tunings for 10-string Chapman Stick
37 %% Baritone Melody™ % TODO: melody is wrong
38 %stick-tuning-ten-baritone =
39 % \stringTuning <a e b fis cis c,, g,, d, a, e>
40 %
41 %% Deep Baritone Melody™ % TODO: melody is wrong
42 %chapman-stick-ten-deep-baritone =
43 % \stringTuning <g d a e b c,, g,, d, a, e>
44
45 %% tunings for 10-string Alto Stick
46 %% TODO: check them!
47 \makeDefaultStringTuning #'alto-stick-tuning
48 \stringTuning <g d a e b c g d a e>
49 \makeDefaultStringTuning #'alto-stick-gregs-extended-tuning
50 \stringTuning <a e b fis cis c g d a e>
51 \makeDefaultStringTuning #'alto-stick-bobs-expanded-tuning
52 \stringTuning <a' e' b fis cis a,, e, b, fis cis'>
53
54
55 %% convert 12-string Chapman Stick tuning to 10-string tuning
56 ten-string-stick = #(lambda (tuning)
57 (append (list-head tuning 5)
58 (list-head (list-tail tuning 6) 5)))
59
60 %% get either the bass or the melody string group
61 stick-string-group = #(lambda (tuning group)
62 (let ((num (/ (length tuning) 2)))
63 (if (equal? group 'bass)
64 (list-head tuning num)
65 (list-tail tuning num))))
66
67 \layout {
68 \context {
69 \PianoStaff
70 \accepts "StaffTab"
71 }
72 \context {
73 \GrandStaff
74 \accepts "StaffTab"
75 }
76 \context {
77 \Score
78 \accepts "StaffTab"
79 }
80 \context {
81 \Staff
82 \name "StaffTab"
83 \alias "Staff"
84 \denies "Voice"
85 \defaultchild "StickVoice"
86 \accepts "StickVoice"
87 \description "Same as @code{Staff} context, except that it is
88 accommodated for typesetting a piece in StaffTab notation."
89 }
90 \context {
91 \Voice
92 \name "StickVoice"
93 \alias "Voice"
94 \description "Same as @code{Voice} context, except that it is
95 accomodated for typesetting a piece in StaffTab notation."
96 \remove "Fingering_engraver"
97 \remove "New_fingering_engraver"
98 \consists #stafftab-engraver
99 }
100 }
101
102 \midi {
103 \context {
104 \Score
105 \accepts "StaffTab"
106 }
107 \context {
108 \Staff
109 \name "StaffTab"
110 midiInstrument = #"electric guitar (jazz)"
111 \alias "Staff"
112 \denies "Voice"
113 \defaultchild "StickVoice"
114 \accepts "StickVoice"
115 \description "Same as @code{Staff} context, except that it is
116 accommodated for typesetting a piece in StaffTab notation."
117 }
118 \context {
119 \Voice
120 \name "StickVoice"
121 \alias "Voice"
122 \description "Same as @code{Voice} context, except that it is
123 accomodated for typesetting a piece in StaffTab notation."
124 }
125 }