lilypond-user
[Top][All Lists]

## Re: Letters as note heads

 From: Aaron Hill Subject: Re: Letters as note heads Date: Tue, 08 Jan 2019 02:23:05 -0800 User-agent: Roundcube Webmail/1.3.8

```On 2019-01-08 12:24 am, Gloops wrote:
```
Indeed it's what I wanted "ly: pitch-semitones" but there is a mistake at
```the change of octave …

[ . . . ]

%No good
\relative c' {
(let* ((cause (ly:grob-property grob 'cause))
(pitch (ly:event-property cause 'pitch))
```
(notenames '("C" "C+" "D" "D+" "E" "F" "F+" "G" "G+" "A" "A+"
```"B"))
(notename (list-ref notenames (ly:pitch-semitones pitch))))
(grob-interpret-markup grob #{ \markup
\halign #0 \vcenter \fontsize #-2 \sans \bold \$notename #})))
\hide Stem
c4 cis d dis e f fis g gis a ais b c
}
```
```
The output from LilyPond exactly explains the issue:

```
```In procedure list-ref in expression
(list-ref notenames (ly:pitch-semitones pitch)):
Argument 2 out of range: 12
```
```
```
ly:pitch-semitones is returning 12 as opposed to 0. I'm not sure why this is expected behavior, but a simple modulus operation would be good enough to patch it:
```
(modulo (ly:pitch-semitones pitch) 12)

```
By the way, you should remove the "\halign #0" as it overly compresses the spacing on the left side of a note, resulting in uneven spacing of notes within the measure.
```

-- Aaron Hill

```