From a57c72d1461560a1d06212808ad10fd63e5ef4d4 Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Sat, 19 Sep 2015 19:26:54 +0200 Subject: [PATCH] Issue 4614/1: Let c:sus be interpreted as c:sus4 --- scm/chord-entry.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scm/chord-entry.scm b/scm/chord-entry.scm index ec95dff287..6351db1a13 100644 --- a/scm/chord-entry.scm +++ b/scm/chord-entry.scm @@ -32,6 +32,7 @@ Entry point for the parser." (inversion #f) (lead-mod #f) (explicit-11 #f) + (explicit-2/4 #f) (start-additions #t)) (define (interpret-inversion chord mods) @@ -66,8 +67,9 @@ Entry point for the parser." "Interpret additions. TODO: should restrict modifier use?" (cond ((null? mods) chord) ((ly:pitch? (car mods)) - (if (= (pitch-step (car mods)) 11) - (set! explicit-11 #t)) + (case (pitch-step (car mods)) + ((11) (set! explicit-11 #t)) + ((2 4) (set! explicit-2/4 #t))) (interpret-additions (cons (car mods) (remove-step (pitch-step (car mods)) chord)) (cdr mods))) ((procedure? (car mods)) @@ -141,6 +143,10 @@ the bass specified. (if start-additions (interpret-additions base-chord flat-mods) (interpret-removals base-chord flat-mods))) + ;; if sus has been given neither 2 or 4, we add 4. + (if (and (eq? lead-mod sus-modifier) + (not explicit-2/4)) + (set! complete-chord (cons (ly:make-pitch 0 4 0) complete-chord))) (set! complete-chord (sort complete-chord ly:pitch