summaryrefslogtreecommitdiff
path: root/ly
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2015-02-23 23:00:54 +0100
committerRicardo Wurmus <rekado@elephly.net>2016-10-11 08:32:39 +0200
commitde854cda6ca1344345863102054c018a5750df57 (patch)
tree068cd9b8b8255a98bbfeebf684112ae774062736 /ly
parent3735e6eea531a3d2110679a24817c633c725cf9b (diff)
Add scheme engraver for StaffTab notation
The StaffTab notation is a system combining graphic elements of tablature with standard music notation and Emmett Chapman's finger symbols for notating tapping on a Chapman Stick.
Diffstat (limited to 'ly')
-rw-r--r--ly/stafftab.ly50
-rw-r--r--ly/string-tunings-init.ly20
2 files changed, 70 insertions, 0 deletions
diff --git a/ly/stafftab.ly b/ly/stafftab.ly
new file mode 100644
index 0000000000..b0387d6eff
--- /dev/null
+++ b/ly/stafftab.ly
@@ -0,0 +1,50 @@
+\layout {
+ \context {
+ \Score
+ \accepts "StaffTab"
+ }
+ \context {
+ \Staff
+ \name "StaffTab"
+ \alias "Staff"
+ \denies "Voice"
+ \defaultchild "StickVoice"
+ \accepts "StickVoice"
+ \description "Same as @code{Staff} context, except that it is
+accommodated for typesetting a piece in StaffTab notation."
+ }
+ \context {
+ \Voice
+ \name "StickVoice"
+ \alias "Voice"
+ \description "Same as @code{Voice} context, except that it is
+accomodated for typesetting a piece in StaffTab notation."
+ \remove "Fingering_engraver"
+ \remove "New_fingering_engraver"
+ \consists #stafftab-engraver
+ }
+}
+
+\midi {
+ \context {
+ \Score
+ \accepts "StaffTab"
+ }
+ \context {
+ \Staff
+ \name "StaffTab"
+ \alias "Staff"
+ \denies "Voice"
+ \defaultchild "StickVoice"
+ \accepts "StickVoice"
+ \description "Same as @code{Staff} context, except that it is
+accommodated for typesetting a piece in StaffTab notation."
+ }
+ \context {
+ \Voice
+ \name "StickVoice"
+ \alias "Voice"
+ \description "Same as @code{Voice} context, except that it is
+accomodated for typesetting a piece in StaffTab notation."
+ }
+}
diff --git a/ly/string-tunings-init.ly b/ly/string-tunings-init.ly
index 927bbae6b2..d2089ea126 100644
--- a/ly/string-tunings-init.ly
+++ b/ly/string-tunings-init.ly
@@ -85,8 +85,28 @@ for documentation purposes.")
\makeDefaultStringTuning #'cello-tuning \stringTuning <c, g, d a>
\makeDefaultStringTuning #'double-bass-tuning \stringTuning <e,, a,, d, g,>
+%% tunings for 12-string Chapman Stick
+\makeDefaultStringTuning #'stick-classic-tuning
+ \stringTuning <d' a e b, fis, cis, c,, g,, d, a, e b>
+\makeDefaultStringTuning #'stick-matched-reciprocal-tuning
+ \stringTuning <c' g d a, e, b,, c,, g,, d, a, e b>
+
+
defaultStringTunings = #(reverse! defaultStringTunings)
%% convert 5-string banjo tuning to 4-string by removing the 5th string
four-string-banjo = #(lambda (tuning)
(take tuning 4))
+
+%% convert 12-string Chapman Stick tuning to 10-string tuning
+ten-string-stick = #(lambda (tuning)
+ (append (list-head tuning 5)
+ (list-head (list-tail tuning 6) 5)))
+
+%% get either the bass or the melody string group
+stick-string-group = #(lambda (tuning group)
+ (let ((num (/ (length tuning) 2)))
+ (if (equal? group 'bass)
+ (list-head tuning num)
+ (list-tail tuning num))))
+