On 04/12/2022 17:46, J Martin Rushton wrote:
Hi all,

Our handbell team rings some pieces from normal scores, and some from a tablature notation. I had a go at converting one of our favourite pieces from tablature to scores, but some of the bars become so complex that I'm not sure this helps at all.

Has anyone else done handbells on Lilypond? As a supplementary question, does anyone know of any software that can generate handbell tablatures?

Bit late to the party, but I attach the following piece I did for our Rainbow Bells. We got the full set, the 8-bell octave, the 5 accidentals, and the 7 extenders. So that's, what, a range of a 12th?

It could be improved :-)

Cheers,
Wol
\include "english.ly"

%Association list of pitches to colors.
#(define color-mapping
  (list
    (cons (ly:make-pitch 0 0 0) (x11-color 'red))
    (cons (ly:make-pitch 0 1 0) (x11-color 'orange))
    (cons (ly:make-pitch 0 2 0) (x11-color 'yellow))
    (cons (ly:make-pitch 0 3 0) (x11-color 'green))
    (cons (ly:make-pitch 0 4 0) (x11-color 'turquoise))
    (cons (ly:make-pitch 0 5 0) (x11-color 'blue))
    (cons (ly:make-pitch 0 6 0) (x11-color 'plum))

    (cons (ly:make-pitch 0 6 -1/2) (x11-color 'blue))
    (cons (ly:make-pitch 0 3 1/2) (x11-color 'green))))

%    (cons (ly:make-pitch 0 0 1/2) (x11-color 'red))
%    (cons (ly:make-pitch 0 1 -1/2) (x11-color 'red))
%    (cons (ly:make-pitch 0 2 1/2) (x11-color 'green))
%    (cons (ly:make-pitch 0 3 -1/2) (x11-color 'red))
%    (cons (ly:make-pitch 0 4 1/2) (x11-color 'red))
%    (cons (ly:make-pitch 0 5 -1/2) (x11-color 'red))
%    (cons (ly:make-pitch 0 6 1/2) (x11-color 'red))
%    (cons (ly:make-pitch 0 3 1/2) (x11-color 'green))
%    (cons (ly:make-pitch 0 4 -1/2) (x11-color 'blue))
%    (cons (ly:make-pitch 0 5 1/2) (x11-color 'blue))

%Compare pitch and alteration (not octave).
#(define (pitch-equals? p1 p2)
  (and
    (= (ly:pitch-alteration p1) (ly:pitch-alteration p2))
    (= (ly:pitch-notename p1) (ly:pitch-notename p2))))

#(define (pitch-to-color pitch)
  (let ((color (assoc pitch color-mapping pitch-equals?)))
    (if color
      (cdr color))))

#(define (color-notehead grob)
  (pitch-to-color
    (ly:event-property (event-cause grob) 'pitch)))

#(set-default-paper-size "a4" 'landscape)
#(set-global-staff-size 52)

\score {
  \new Staff \relative c' {
    \override NoteHead #'color = #color-notehead
    \easyHeadsOn
    \time 3/4
    \key f \major
    \partial 8
    c8 | f8. f16 f4. g8 | a8. a16 a4. a8 | g a bf4 e, | g f r8 c |
    \break
    f8. f16 f4. g8 | a8. a16 a4.  a8 | g a bf4 e, | g f r8 c' |
    \break
    c a d4. c8 | c bf bf4. bf8 | bf g c4. bf8 | bf g c4. bf8 | bf a a4 c, |
    \break
    f8. f16 f4. g8 | a8. a16 a4. a8 | g a bf4 e, | g f4. \bar "||"
   }
}

Reply via email to