Hello Clément,

> I am looking to make recorder fingering charts using Lilypond. Current
> documentation does not list recorder as available for woodwind fingering
> diagrams:
> 
> https://lilypond.org/doc/v2.24/Documentation/notation/woodwind-diagrams.html
> 
> However, I checked the github repository and there are issues and 
documentation
> mentioning a recorder fingering chart :
> 
> https://gitlab.com/lilypond/lilypond/-/blob/master/Documentation/snippets/
record
> er-fingering-chart.ly
> 
> Is the documentation simply not updated?

No, the codepath does not contain any recorder-related stuff. The github link 
simply gives text markings.

> On top of the baroque recorder fingering chart (thumb hole, 7 finger holes
> including 2 double holes, bell hole), I would like to add charts for keyed
> recorders. Not only the well established keyed tenor recorders (thumb hole, 
6
> finger holes including 1 double hole, C# and C keys, bell hole). I would also
> like to make diagrams that fit keyed recorders, such as the Helder 
instruments
> by Mollenhauer. I attached in this email a screenshot of a baroque recorder
> fingerging chart, and that of the Helder instruments.
> 
> I would also like to be able to make my own diagrams. Notably for the Helder
> alto with extra C# and D# keys. To my knowledge, Mollenhauer has never
> published a fingering chart for this instrument. And who knows what recorder
> models will be developed in 10, 20 or 50 years?

The issue here is that while the code is written in such a way that it could be 
extended it is very underdocumented and complex solution (~3000 loc).

I have spend a lot of time trying to understand the design and have managed to 
create a "minimal" custom fingering chart.

That is not yet fully there, but it should be a starting point.

Cheers,
Tina
%#(display (assoc-get 'flute (@@ (lily) woodwind-data-alist)))

% Function of (radius thick fill layout props) returning a stencil
#(define testkey-stencil
  ((@@ (lily) standard-path-stencil)
   '((0 1.3)
     (0 1.625 -0.125 1.75 -0.25 1.75)
     (-0.55 1.75 -0.55 0.95 -0.25 0.7)
     (0 0.4 0 0.125 0 0)
     (0 0.125 0 0.4 0.25 0.7)
     (0.55 0.95 0.55 1.75 0.25 1.75)
     (0.125 1.75 0 1.625 0 1.3))
   2.0
   1.3))

#(module-set!
  (resolve-module '(lily))
  'woodwind-data-alist
  (assoc-set!
   (@@ (lily) woodwind-data-alist)
   'recorder
   `(
      (keys
       (central-column
        (thumb
         (offset -3.0 . -0.5)
         (stencil . ,(@@ (lily) ring-column-circle-stencil))
         (text? . #f)
         (complexity . ring))
        (one
         (offset 0.0 . 0.0)
         (stencil . ,(@@ (lily) ring-column-circle-stencil))
         (text? . #f)
         (complexity . ring))
        (two
         (offset 0.0 . -1.0)
         (stencil . ,(@@ (lily) ring-column-circle-stencil))
         (text? . #f)
         (complexity . ring))
        (three
         (offset 0.0 . -2.0)
         (stencil . ,(@@ (lily) ring-column-circle-stencil))
         (text? . #f)
         (complexity . ring))
        (four
         (offset 0.0 . -3.0)
         (stencil . ,(@@ (lily) ring-column-circle-stencil))
         (text? . #f)
         (complexity . ring))
        (five
         (offset 0.0 . -4.0)
         (stencil . ,(@@ (lily) ring-column-circle-stencil))
         (text? . #f)
         (complexity . ring))
        (six
         (offset 0.0 . -5.0)
         (stencil . ,(@@ (lily) ring-column-circle-stencil))
         (text? . #f)
         (complexity . ring))
        (seven
         (offset 0.0 . -6.0)
         (stencil . ,(@@ (lily) ring-column-circle-stencil))
         (text? . #f)
         (complexity . ring)))
       (left-hand)
       (right-hand
        (testkey
         (offset 0.0 . 0.0)
         (stencil . ,testkey-stencil)
         (text? . ("test" . 0))
         (complexity . trill)))
       (hidden)
       )
      (graphical-commands
       (stencil-alist
        (stencils
          ((stencils
            (central-column . thumb)
            (central-column . one)
            (central-column . two)
            (central-column . three)
            (central-column . four)
            (central-column . five)
            (central-column . six)
            (central-column . seven))
           (xy-scale-function ,(@@ (lily) identity) . ,(@@ (lily) identity))
           (textual? . #f)
           (offset 0.0 . 0.0))
          ((stencils
            (right-hand . testkey))
           (xy-scale-function ,(@@ (lily) return-1) . ,(@@ (lily) return-1))
           (textual? . #f)
           (offset 3 . -6)))
        (xy-scale-function ,(@@ (lily) identity) . ,(@@ (lily) identity))
        (textual? . #f)
        (offset 0.0 . 0.0))
       (draw-instructions
        (,(@@ (lily) group-automate-rule)
         ((central-column . thumb)
          (central-column . one)
          (central-column . two)
          (central-column . three)
          (central-column . four)
          (central-column . five)
          (central-column . six)
          (central-column . seven))))
       (extra-offset-instructions
        (,(@@ (lily) uniform-extra-offset-rule) (0.0 . 0.0))))
      (text-commands)
    )))

\markup \woodwind-diagram #'recorder #'((cc . (thumb one two three four five six seven1h)) (lh) (rh . (testkey)))

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to