;;;; This file is part of LilyPond, the GNU music typesetter.
;;;;
-;;;; Copyright (C) 2000--2011 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; Copyright (C) 2000--2012 Jan Nieuwenhuizen <janneke@gnu.org>
;;;; Han-Wen Nienhuys <hanwen@xs4all.nl>
;;;;
;;;; LilyPond is free software: you can redistribute it and/or modify
(alist (map chord-to-exception-entry elts)))
(filter (lambda (x) (cdr x)) alist)))
-(define-public (capo-handler pitches bass inversion context)
- (let ((chord-function
- (ly:context-property context 'chordNameFunction 'jazz-chord-names))
- (capo-pitch (ly:context-property context 'capoPitch #f)))
- (if (not capo-pitch)
- (chord-function pitches bass inversion context) ;; call the chordNameFunction as of old
- (let* ((new-pitches ;; else transpose the pitches and do the chord twice
- (map (lambda (p)
- (ly:pitch-transpose p capo-pitch))
- pitches))
- (new-bass
- (if (ly:pitch? bass)
- (ly:pitch-transpose bass capo-pitch)
- '()))
- (new-inversion
- (if (ly:pitch? inversion)
- (ly:pitch-transpose inversion capo-pitch)
- '()))
- (capo-markup
- (make-parenthesize-markup
- (chord-function new-pitches new-bass new-inversion context)))
- (name-markup (chord-function pitches bass inversion context))
- (capo-vertical (ly:context-property context 'capoVertical #f)))
- (if capo-vertical
- (make-column-markup (list name-markup capo-markup))
- (make-line-markup (list name-markup
- (make-hspace-markup 1)
- capo-markup)))))))