;;;; This file is part of LilyPond, the GNU music typesetter.
;;;;
-;;;; Copyright (C) 2009--2011 Marc Hohl <marc@hohlart.de>
+;;;; Copyright (C) 2009--2012 Marc Hohl <marc@hohlart.de>
;;;;
;;;; LilyPond is free software: you can redistribute it and/or modify
;;;; it under the terms of the GNU General Public License as published by
;; if stems are drawn, it is nice to have a double stem for
;; (dotted) half notes to distinguish them from quarter notes:
+(define-public (tabvoice::make-double-stem-width-for-half-notes grob)
+ (let ((X-extent (ly:stem::width grob)))
+
+ ;; is the note a (dotted) half note?
+ (if (= 1 (ly:grob-property grob 'duration-log))
+ ;; yes -> return double stem width
+ (cons (car X-extent) (+ 0.5 (* 2 (cdr X-extent))))
+ ;; no -> return simple stem width
+ X-extent)))
+
(define-public (tabvoice::draw-double-stem-for-half-notes grob)
(let ((stem (ly:stem::print grob)))
(left-pitch (ly:event-property (event-cause left-bound) 'pitch))
(right-pitch (ly:event-property (event-cause right-bound) 'pitch)))
- (if (< (ly:pitch-semitones right-pitch) (ly:pitch-semitones left-pitch))
+ (if (< (ly:pitch-tones right-pitch) (ly:pitch-tones left-pitch))
-0.75
0.75)))
(define-public (tab-note-head::print grob)
(define (is-harmonic? grob)
(let ((arts (ly:event-property (event-cause grob) 'articulations)))
- (not (null? (filter (lambda (a)
- (ly:in-event-class? a 'harmonic-event))
- arts)))))
+ (or (pair? (filter (lambda (a)
+ (ly:in-event-class? a 'harmonic-event))
+ arts))
+ (eq? (ly:grob-property grob 'style) 'harmonic))))
(let* ((cautionary (ly:grob-property grob 'display-cautionary #f))
(details (ly:grob-property grob 'details '()))