|
From: | David Nalesnik |
Subject: | Re: Directional NoteHead Stencil Support |
Date: | Sat, 21 Mar 2015 22:06:06 -0500 |
David,You are a genius! I've almost got it, but I'm not sure how to handle rests. Here's my current function:#(define (flipnotes grob)(let ((notes (ly:grob-array->list (ly:grob-object grob 'note-heads))))(for-each(lambda (note)(let* ((pitch (ly:event-property (event-cause note) 'pitch))(stem (ly:grob-object note 'stem))(dir (ly:grob-property stem 'direction))(offset (ly:grob-relative-coordinate note grob X)))(if (eq? dir DOWN)(if (and (< offset 0.1) (> offset -0.1))(ly:grob-set-property! note 'rotation '(180 0 0))(ly:grob-set-property! note 'rotation '(0 0 0)))(if (and (< offset 0.1) (> offset -0.1))(ly:grob-set-property! note 'rotation '(0 0 0))(ly:grob-set-property! note 'rotation '(180 0 0))))))notes)))This works perfectly when there are NO rests, but I get this error when there is a rest in the NoteColumn:In procedure ly:grob-array->list in _expression_ (ly:grob-array->list (ly:grob-object grob #)): Wrong type argument in position 1 (expecting Grob_array): ()
[Prev in Thread] | Current Thread | [Next in Thread] |