;;;; This file is part of LilyPond, the GNU music typesetter.
;;;;
-;;;; Copyright (C) 2000--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Copyright (C) 2000--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
;;;;
;;;; LilyPond is free software: you can redistribute it and/or modify
;;;; it under the terms of the GNU General Public License as published by
(define (prefix-modifier->markup mod)
(if (and (= 3 (pitch-step mod))
(= FLAT (ly:pitch-alteration mod)))
- (make-simple-markup (if lowercase-root? "" "m"))
+ (if lowercase-root?
+ empty-markup
+ (ly:context-property context 'minorChordModifier))
(make-simple-markup "huh")))
(define (filter-alterations alters)
(let* ((num-markup (make-simple-markup
(number->string (pitch-step pitch))))
(args (list num-markup))
- (total (if (= (ly:pitch-alteration pitch) 0)
- (if (= (pitch-step pitch) 7)
- (list (ly:context-property context 'majorSevenSymbol))
- args)
+ (major-seven-symbol (ly:context-property context 'majorSevenSymbol))
+ (total
+ (if (and (= (ly:pitch-alteration pitch) 0)
+ (= (pitch-step pitch) 7)
+ (markup? major-seven-symbol))
+ (list major-seven-symbol)
(cons (accidental->markup (step-alteration pitch)) args))))
(make-line-markup total)))
(let* ((sep (ly:context-property context 'chordNameSeparator))
+ (slashsep (ly:context-property context 'slashChordSeparator))
(root-markup (name-root root lowercase-root?))
- (add-markups (map (lambda (x) (glue-word-to-step "add" x))
+ (add-pitch-prefix (ly:context-property context 'additionalPitchPrefix))
+ (add-markups (map (lambda (x) (glue-word-to-step add-pitch-prefix x))
addition-pitches))
(filtered-alterations (filter-alterations alteration-pitches))
(alterations (map name-step filtered-alterations))
suffixes
add-markups) sep))
(base-stuff (if (ly:pitch? bass-pitch)
- (list sep (name-note bass-pitch #f))
+ (list slashsep (name-note bass-pitch #f))
'())))
(set! base-stuff
,exception-markup
.
,(if (ly:pitch? bass-pitch)
- (list (ly:context-property context 'chordNameSeparator)
+ (list (ly:context-property context 'slashChordSeparator)
(name-note bass-pitch #f))
'()))))
(pitches (map (lambda (x) (ly:pitch-diff x root)) (cdr in-pitches)))
(lowercase-root?
(and (ly:context-property context 'chordNameLowercaseMinor)
- (let ((third (get-step 3 pitches)))
- (and third (= (ly:pitch-alteration third) FLAT)))))
+ (let ((third (get-step 3 pitches)))
+ (and third (= (ly:pitch-alteration third) FLAT)))))
(exceptions (ly:context-property context 'chordNameExceptions))
(exception (assoc-get pitches exceptions))
(prefixes '())
;; no exception.
;; handle sus4 and sus2 suffix: if there is a 3 together with
;; sus2 or sus4, then we explicitly say add3.
- (map
+ (for-each
(lambda (j)
(if (get-step j pitches)
(begin
(= 7 (pitch-step main-name))
(is-natural-alteration? main-name)
(pair? (remove-uptil-step 7 alterations))
- (reduce (lambda (x y) (and x y)) #t
- (map is-natural-alteration? alterations)))
+ (every is-natural-alteration? alterations))
(begin
(set! main-name (last alterations))
(set! alterations '())))