Re: misuse of chords

2020-02-11 Thread Joe McCool
OnTue, Feb 11, 2020 at 10:17 PM David Kastrup  wrote:


> You need to place the volta/repeat structure in every Staff/Voice to
> have \unfoldRepeats do its work successfully.
>

Sigh!

Yes David, I had only just pressed the send button and I twigged to that.

Sorry for taking up your time and thanks a lot for super Lilypond.  In my
case it is probably using a sledge hammer to crack a nut, but I love it to
bits :-)

-- 
Thanks.

Joe McCool CEng, MIMarEST, SMIEEE
www.tangentengineering.co. uk
(44)7802572441


Re: MultiMeasureRest length

2020-02-11 Thread Kevin Barry
On Wed, Feb 12, 2020 at 07:46:54AM +0100, Marco Bagolin wrote:
> Hello all,
> how is possible to set or modify the length of a MultiMeasureRest ?

You can change its minimum-length. Does the below code do what you want?

{
  \compressFullBarRests
  R1 * 11
  \override MultiMeasureRest.minimum-length = #30
  R1 * 12
  \time 2/4
  s2
}



Re: Cheat sheets and LilyPond documentation

2020-02-11 Thread Henning Hraban Ramm


> Am 2020-02-11 um 23:11 schrieb David Kastrup :
> 
> It _is_ the source format if I understand you correctly.

Yes, Inkscape’s SVG is "rich" but completely valid and displayable in browsers.

Inkscape can import/export other formats, but SVG is its native format.

It can also use SVGZ (compressed SVG) to save some disk space, but with a text 
(XML) format like SVG we’re on the save side.

There are already tools to e.g. replace text in SVG (might become handy for 
translations), but I guess manual intervention would be necessary to keep the 
layout.

> At any rate, it seems I apparently need to add some redundancy or I'll
> never get anywhere without losing all company on the way.

There, there.
David, your input is valuable and appreciated. (And I’m sorry you couldn’t 
survive on working for LilyPond!)

In nerd & geek zones like this we are (or at least should be) used to and often 
can’t survive without autistic characters and their not always cordial 
interactions. (Being on the spectrum myself.)

All the best,
Hraban
---
fiëé visuëlle
Henning Hraban Ramm
https://www.fiee.net







Re: Page numbers with text

2020-02-11 Thread Marco Bagolin
Perfect, thank you.

Il giorno mar 11 feb 2020 alle 21:53 Kevin Barry  ha
scritto:

> On Sun, Feb 09, 2020 at 09:01:48AM +0100, Marco Bagolin wrote:
> > Thank you all,
> > all solutions are good, but I don't know why the copyright field on the
> > first page does not appear.
>
> Because your code redefines footers, they no longer include the
> copyright field, so it has to be added back in. Does this code do what
> you want?
>
> \version "2.21.0"
>
> \paper {
>   print-first-page-number = ##t
>   oddHeaderMarkup = ##f
>   evenHeaderMarkup = ##f
>   oddFooterMarkup = \markup {
> \overlay {
>   \line {
> \on-the-fly \print-page-number-check-first \fromproperty
> #'page:page-number-string
> \on-the-fly \print-page-number-check-first \italic "- My Song -
> arr. by M. Bagolin (2020)"
>   }
>   \fill-line { \on-the-fly #part-first-page \fromproperty
> #'header:copyright }
> }
>   }
>   evenFooterMarkup = \oddFooterMarkup
> }
>
> \header {
>   title = \markup \override #'(font-name . "Arial Black") \fontsize #+4 {
> \bold  "My song" }
>   copyright = \markup
>   \override #'(font-name . "Palatino Linotype")
>   \override #'(baseline-skip . 2)
>   \center-column {
> \fontsize #-4
> { \bold
>   {
> \line { " " }
> "Arranged by M. B. (2020)"
> "ALL RIGHTS RESERVED"
>   }
> }
>   }
> }
>
>
> \score {
>   \repeat unfold 800 c'2
> }
>
> Kevin
>


Re: An alternative outside-staff spacing method (new version)

2020-02-11 Thread Paolo Prete
I just fixed the typo highlighted by Aaron. It was responsible of the
hairpin problem.
I also added these two lines, which strengthen the snippet in case of slurs
and hairpins

\override Staff.TextScript.avoid-slur = #'ignore
\override Staff.DynamicLineSpanner.outside-staff-padding = 0

Now all seems to work. Attached to this post there's the updated version.

HTH
P
%
%% SCHEME CODE %%
%

\version "2.19.83"

#(define PADDER_RECT_DEF_W (cons -3 3))
#(define OSPadderColor grey)
#(define OSPadderThickness 0.1)
#(define posIdxUp 0)
#(define posListUp '())
#(define posIdxDown 0)
#(define posListDown '())
#(define OSBox #{ \markup " " #})

#(define (box-stencil stencil thickness padding color expand?)
   "Add a box around @var{stencil}, producing a new stencil."
   (define (css-style-padding padding)
 ;; padding => (top right bottom left)
 (cond
   ((or (null? padding) (eqv? #f padding)) '(0 0 0 0))
   ((number? padding) (make-list 4 padding))
   ((number-pair? padding)
 (list (car padding) (cdr padding)
   (car padding) (cdr padding)))
   ((and (number-list? padding) (<= (length padding) 4))
 (case (length padding)
   ((1) (make-list 4 (first padding)))
   ((2) (list (first padding) (second padding)
  (first padding) (second padding)))
   ((3) (list (first padding) (second padding)
  (third padding) (second padding)))
   (else padding)))
   (else
 (begin (ly:warning "Ignoring invalid padding: ~a" padding)
'(0 0 0 0)
  (let* ((padding (css-style-padding padding))
 (padding-top (first padding))
 (padding-right (second padding))
 (padding-bottom (third padding))
 (padding-left (fourth padding))

  (x-ext-orig (ly:stencil-extent stencil X))
  (y-ext-orig (ly:stencil-extent stencil Y))
  (x-ext-inner
(cons (- (interval-start x-ext-orig) padding-left)
  (+ (interval-end x-ext-orig) padding-right)))
  (y-ext-inner
(cons (- (interval-start y-ext-orig) padding-bottom)
  (+ (interval-end y-ext-orig) padding-top)))
  (x-ext-outer (interval-widen x-ext-inner thickness))
  (y-ext-outer (interval-widen y-ext-inner thickness))
  (x-ext-new (if expand? x-ext-outer x-ext-orig))
  (y-ext-new (if expand? y-ext-outer y-ext-orig))

  (x-rule (make-filled-box-stencil (cons 0 thickness) y-ext-inner))
  (y-rule (make-filled-box-stencil x-ext-outer (cons 0 thickness)))
  (box (stencil-with-color
(ly:stencil-add
  (ly:stencil-translate-axis y-rule (interval-end y-ext-inner) Y)
  (ly:stencil-translate-axis x-rule (interval-end x-ext-inner) X)
  (ly:stencil-translate-axis y-rule (interval-start y-ext-outer) Y)
  (ly:stencil-translate-axis x-rule (interval-start x-ext-outer) X))
color)))
 (ly:make-stencil
   (ly:stencil-expr (ly:stencil-add stencil box))
   x-ext-new y-ext-new)))

#(define* (make-stencil-boxer thickness padding
#:optional (callback #f) (color OSPadderColor) (expand? #t))
   "Return function that adds a box around the grob passed as argument."
   (if (procedure? callback)
 (lambda (grob)
   (box-stencil (callback grob) thickness padding color expand?))
 (grob-transformer 'stencil (lambda (grob orig)
   (box-stencil orig thickness padding color expand?)

#(define (next-not-in-list n list) 
  (let ((s (+ 1 n))) 
(if (memv s list) 
  (next-not-in-list s list) s)))

resetOSPositions  =  #(define-scheme-function () () 
  (set! posIdxUp 0)
  (set! posListUp '())
  (set! posIdxDown 0)
  (set! posListDown '()))

#(define (symbol-list-or-music? x) (or (symbol-list? x) (ly:music? x)))

OSOObj = #(define-music-function (arg) (ly:music?)
  (let ((posIdx 0)
(name (ly:music-property arg 'name)))
  (if (eq? (ly:music-property arg 'direction) UP)
(begin
  (set! posIdxUp (next-not-in-list posIdxUp posListUp))
  (set! posListUp (cons posIdxUp posListUp))
  (set! posListUp (sort! posListUp <))
  (set! posIdx posIdxUp))
(begin
  (set! posIdxDown (next-not-in-list posIdxDown posListDown))
  (set! posListDown (cons posIdxDown posListDown))
  (set! posListDown (sort! posListDown <))
  (set! posIdx posIdxDown)))
(cond
  ((eq? name 'AbsoluteDynamicEvent)
#{ -\tweak DynamicLineSpanner.outside-staff-priority #(* 100 posIdx) #arg #}) 
  ((eq? name 'SustainEvent)
#{ -\tweak SustainPedalLineSpanner.outside-staff-priority #(* 100 posIdx) #arg #})
  ((eq? name 'SostenutoEvent)
#{ -\tweak SostenutoPedalLineSpanner.outside-staff-priority #(* 100 posIdx) #arg #})
  ((eq? name 'UnaCordaEvent)
   

Re: misuse of chords

2020-02-11 Thread Karlin High

On 2/11/2020 1:24 PM, Joe McCool wrote:
Please, as a niave user I struggling to understand chords in traditional 
music.


...


Joe McCool CEng, MIMarEST, SMIEEE
www.tangentengineering.co.uk



I've seen a Joe McCool mentioned before in relation to LilyPond, ABC 
Notation, traditional music, and boats.




Was that you, or a different one?
--
Karlin High
Missouri, USA



Re: misuse of chords

2020-02-11 Thread David Kastrup
Joe McCool  writes:

> Please, as a niave user I struggling to understand chords in traditional
> music.
>
> Why is it that timidity plays these chords OK in the first tune part, but
> only the first chord in the 2nd part:
>
> \version "2.18.2"
>  %lilypond - to keep the midi.bash happy\version "2.7.40"
> \header {
> composer = "Andrew Swaine"
> crossRefNumber = "1"
> footnotes = ""
> tagline = "Lily was here 2.18.2 -- automatically converted from ABC"
> title = "Easter Snow Mazurka (ly)"
> }

> melody = {
> \repeat volta 2 {
> }
> \repeat volta 2 {
> }
> \alternative{
>   { b8. cis16 dis8. b16 dis8. fis16 }
>   { b,4 r8. fis16 ( g8. fis16 ^>)}
> }
>   }
> }

> harmonies = \chordmode {
>b2.:min
>g:maj
>fis
>g4 r a
>b2.:min
>e:min
>fis
>b:min
>
>e:min
>a
>d
>g
>e:min
>f
>b:min
> % alternatives
>b
>b:min
> }

> \score {
>   \unfoldRepeats
>   {
> \final
>   }
>   \midi{}
> }

The thing is that in the visual layout, repeat voltas are not
represented by any actual repetitions but by repeat barlines and similar
stuff.  So it is sufficient to add the volta/repeat structure to one
Staff/Voice/whatever.

However, \unfoldRepeats does not work at the music "iteration" stage but
changes the music expression directly.  So its effect does not extend to
\harmonies .

You need to place the volta/repeat structure in every Staff/Voice to
have \unfoldRepeats do its work successfully.

-- 
David Kastrup
My replies have a tendency to cause friction.  To help mitigating
damage, feel free to forward problematic posts to me adding a subject
like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".



Re: An alternative outside-staff spacing method (new version)

2020-02-11 Thread Paolo Prete
On Tue, Feb 11, 2020 at 9:15 PM Aaron Hill  wrote:

> On 2020-02-11 8:05 am, Paolo Prete wrote:
> > thanks to the _great_ support of Aaron and Harm, I implemented this new
> > version of the outside-staff spacing method I proposed some days ago.
>
> I am getting quite a few errors and warnings compiling the code pasted
> in the email.  I wonder if the email process has mangled something.  It
> might be worth attaching the original source, so that formatting can be
> preserved.
>
>
Here's an attachment of a new version, with your last suggestions.
I left unchanged the sorting method (I have to investigate better what you
said), but I wonder, meanwhile, if
is it possible to add a hairpin to the dynamic below the staff ( mf <  ff )
with all the positions preserved.

Thanks!
P
%% SCHEME CODE %%

\version "2.19.83"
#(define PADDER_RECT_DEF_W (cons -3 3))
#(define OSPadderColor grey)
#(define OSPadderThickness 0.1)
#(define posIdxUp 0)
#(define posListUp '())
#(define posIdxDown 0)
#(define posListDown '())
#(define OSBox #{ \markup " " #})

#(define (box-stencil stencil thickness padding color expand?)
   "Add a box around @var{stencil}, producing a new stencil."
   (define (css-style-padding padding)
 ;; padding => (top right bottom left)
 (cond
   ((or (null? padding) (eqv? #f padding)) '(0 0 0 0))
   ((number? padding) (make-list 4 padding))
   ((number-pair? padding)
 (list (car padding) (cdr padding)
   (car padding) (cdr padding)))
   ((and (number-list? padding) (<= (length padding) 4))
 (case (length padding)
   ((1) (make-list 4 (first padding)))
   ((2) (list (first padding) (second padding)
  (first padding) (second padding)))
   ((3) (list (first padding) (second padding)
  (third padding) (second padding)))
   (else padding)))
   (else
 (begin (ly:warning "Ignoring invalid padding: ~a" padding)
'(0 0 0 0)
  (let* ((padding (css-style-padding padding))
 (padding-top (first padding))
 (padding-right (second padding))
 (padding-bottom (third padding))
 (padding-left (fourth padding))

  (x-ext-orig (ly:stencil-extent stencil X))
  (y-ext-orig (ly:stencil-extent stencil Y))
  (x-ext-inner
(cons (- (interval-start x-ext-orig) padding-left)
  (+ (interval-end x-ext-orig) padding-right)))
  (y-ext-inner
(cons (- (interval-start y-ext-orig) padding-bottom)
  (+ (interval-end y-ext-orig) padding-top)))
  (x-ext-outer (interval-widen x-ext-inner thickness))
  (y-ext-outer (interval-widen y-ext-inner thickness))
  (x-ext-new (if expand? x-ext-outer x-ext-orig))
  (y-ext-new (if expand? y-ext-outer y-ext-orig))

  (x-rule (make-filled-box-stencil (cons 0 thickness) y-ext-inner))
  (y-rule (make-filled-box-stencil x-ext-outer (cons 0 thickness)))
  (box (stencil-with-color
(ly:stencil-add
  (ly:stencil-translate-axis y-rule (interval-end y-ext-inner) Y)
  (ly:stencil-translate-axis x-rule (interval-end x-ext-inner) X)
  (ly:stencil-translate-axis y-rule (interval-start y-ext-outer) Y)
  (ly:stencil-translate-axis x-rule (interval-start x-ext-outer) X))
color)))
 (ly:make-stencil
   (ly:stencil-expr (ly:stencil-add stencil box))
   x-ext-new y-ext-new)))

#(define* (make-stencil-boxer thickness padding
#:optional (callback #f) (color OSPadderColor) (expand? #t))
   "Return function that adds a box around the grob passed as argument."
   (if (procedure? callback)
 (lambda (grob)
   (box-stencil (callback grob) thickness padding color expand?))
 (grob-transformer 'stencil (lambda (grob orig)
   (box-stencil orig thickness padding color expand?)

#(define (next-not-in-list n list) 
  (let ((s (+ 1 n))) 
(if (memv s list) 
  (next-not-in-list s list) s)))

resetOSPositions  =  #(define-scheme-function () () 
  (set! posIdxUp 0)
  (set! posListUp '())
  (set! posIdxDown 0)
  (set! posListDown '()))

#(define (symbol-list-or-music? x) (or (symbol-list? x) (ly:music? x)))

OSOObj = #(define-music-function (arg) (ly:music?)
  (let ((posIdx 0)
(name (ly:music-property arg 'name)))
  (if (eq? (ly:music-property arg 'direction) UP)
(begin
  (set! posIdxUp (next-not-in-list posIdxUp posListUp))
  (set! posListUp (cons posIdxUp posListUp))
  (set! posListUp (sort! posListUp <))
  (set! posIdx posIdxUp))
(begin
  (set! posIdxDown (next-not-in-list posIdxDown posListDown))
  (set! posListDown (cons posIdxDown posListDown))
  (set! posListDown (sort! posListUp <))
  (set! posIdx posIdxDown)))
(cond
  ((eq? name 'AbsoluteDynamicEvent)
#{ -\tweak DynamicLineSpanner

Re: Cheat sheets and LilyPond documentation [was Re: Clef "treble_8"]

2020-02-11 Thread David Kastrup
Noeck  writes:

> Hi David,
>
>> Is SVG the file format Inkscape saves in?
>
> Yes, SVG is the Inkscape file format. Inkscape adds some Inkscape
> specific name spaces but within the spec of SVG. To quote the website¹:
>
>   Perfectly compliant SVG format file generation and editing
>
>
>> Or is it only an export format for it?
>
> No.
>
>> Either way it does not sound like the "provide the
>> source" vibe should be hard to meet in order to inspire followup work.
>
> I am not sure I understand. You mean it is close to what you want as a
> source format?

It _is_ the source format if I understand you correctly.  Not merely
close.  So the principal question is how to get it into our
documentation in a useful manner.  The text-editing thing might provide
some pointers.

>> At some point of time I have to reread the collected devastating
>> dissings of dreadlord David.  This is not the first helpful project
>> these days that has mentioned getting discouraged by the initial
>> reaction.
>
> I’ve read a lot of mails the last days. That’s why I wanted to give
> some positive feedback. I honestly appreciate it.

Thanks.  It turns out that speaking up only when you have some
improvement to suggest amounts to the maxim "if you cannot say anything
bad, don't say anything at all" which somewhat surprisingly does not
result in overwhelming popularity.  Though it appears to work for
becoming president.

At any rate, it seems I apparently need to add some redundancy or I'll
never get anywhere without losing all company on the way.

-- 
David Kastrup
My replies have a tendency to cause friction.  To help mitigating
damage, feel free to forward problematic posts to me adding a subject
like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".



Re: Cheat sheets and LilyPond documentation [was Re: Clef "treble_8"]

2020-02-11 Thread Noeck
Hi David,

> Is SVG the file format Inkscape saves in?

Yes, SVG is the Inkscape file format. Inkscape adds some Inkscape
specific name spaces but within the spec of SVG. To quote the website¹:

Perfectly compliant SVG format file generation and editing


> Or is it only an export format for it?

No.

> Either way it does not sound like the "provide the
> source" vibe should be hard to meet in order to inspire followup work.

I am not sure I understand. You mean it is close to what you want as a
source format?

> At some point of time I have to reread the collected devastating
> dissings of dreadlord David.  This is not the first helpful project
> these days that has mentioned getting discouraged by the initial
> reaction.

I’ve read a lot of mails the last days. That’s why I wanted to give some
positive feedback. I honestly appreciate it.

Best,
Joram


¹: https://inkscape.org/about/features



misuse of chords

2020-02-11 Thread Joe McCool
Please, as a niave user I struggling to understand chords in traditional
music.

Why is it that timidity plays these chords OK in the first tune part, but
only the first chord in the 2nd part:

\version "2.18.2"
 %lilypond - to keep the midi.bash happy\version "2.7.40"
\header {
composer = "Andrew Swaine"
crossRefNumber = "1"
footnotes = ""
tagline = "Lily was here 2.18.2 -- automatically converted from ABC"
title = "Easter Snow Mazurka (ly)"
}
melody = {
  \override Score.BarNumber.break-visibility = ##(#t #t #t)
  \set Score.currentBarNumber = #1
  \time 3/4
  \tempo 4 = 120
  %\autobeam on
  \relative c' {
\key d \major
\time 3/4
\repeat volta 2 {
  b'8.[ cis16~] cis8. d16 ~ d8. fis16 %% \bar "|"
  e8. fis16 e8. d16 cis8. b16 %% \bar "|"
  ais8. b16 ~ b8. cis16 ~ cis8. fis,16 %% \bar "|"
  d'8. cis16 b8.  d16 cis8. ^A fis,16 %% \bar "|"
  b8. cis16 ~ cis8. d16 ~ d8. fis16 %% \bar "|"
  e8. fis16 e8. d16 cis8. e16 %% \bar "|"
  fis8. g16 fis8. e16 d8. cis16 %% \bar "|"
  b4 b'4 -. r4
}
\repeat volta 2 {
  g8. fis16~ fis8. e16 e8. d16 %% \bar "|"
  cis8.  d16 e8. g16 fis8. e16  %% \bar "|"
  fis8.  e16 ~ e8. d16 ~ d8. cis16 %% \bar "|"
  b8.  cis16 d8. fis16 e8. d16 %% \bar "|"
  e8. d16 ~ d8. cis16 ~ cis8. b16 %% \bar "|"
  ais8. b16 cis8. e16 d8. cis16 %% \bar "|"
  b8. ais16 b8. d16 cis8. ais16
}
\alternative{
  { b8. cis16 dis8. b16 dis8. fis16 }
  { b,4 r8. fis16 ( g8. fis16 ^>)}
}
  }
}

harmonies = \chordmode {
   b2.:min
   g:maj
   fis
   g4 r a
   b2.:min
   e:min
   fis
   b:min

   e:min
   a
   d
   g
   e:min
   f
   b:min
% alternatives
   b
   b:min
}

final = {
  <<
\new ChordNames {
  \set chordChanges = ##t
  \harmonies
}
\new Voice = "one" { \melody }
  >>
}

\score {
  \final
  \layout { }
}

\score {
  \unfoldRepeats
  {
\final
  }
  \midi{}
}

-- 
Thanks.

Joe McCool CEng, MIMarEST, SMIEEE
www.tangentengineering.co. uk
(44)7802572441


Re: Cheat sheets and LilyPond documentation [was Re: Clef "treble_8"]

2020-02-11 Thread David Kastrup
Noeck  writes:

> Hi David,
>
>> Is there a source?  Or is it hand-written SVG?  If we are trying to
>> follow the spirit of the GPL, source is defined as "preferred form for
>> modification".  For a cobbled-together version, that is tricky to
>> define, but we would not want to make it harder than necessary to come
>> up with updated versions.
>
> The SVG is the source in the sense "preferred form of modification" – at
> least preferred by me :). It is created with Inkscape. I guess it could
> be done in LilyPond or TeX or sth else but probably with a similar
> amount of complexity (except some text replacement perhaps).
> Personally, I would update it via Inkscape (and export to PDF
> additionally). The cheat sheet is 8000 lines as SVG (with the line
> breaks Inkscape introduces, but you get a feeling). The spacing sheet
> 3600 lines.

Is SVG the file format Inkscape saves in?  Or is it only an export
format for it?  Either way it does not sound like the "provide the
source" vibe should be hard to meet in order to inspire followup work.

>>> Maybe this can be re-evaluated...  An alternative is to add links to
>>> to the documentation.
>>
>> Or from the web page, but then people might have a harder time finding
>> it.  We have some diagrams with arrows in our web presence if I am not
>> mistaken.  They must have been created in some kind of manner.  Of
>> course something fitting well into the Texinfo creation process would be
>> nice since we have a lot of output formats for our documentation.
>
> You mean this? http://lilypond.org/text-input.html Well, yes, there
> seems to be a place for that. I don’t know the Texinfo stuff enough to
> tell if there is a way. For the ly code of the visual index perhaps.
>
> Btw, I appreciate your friendly reaction very much.

At some point of time I have to reread the collected devastating
dissings of dreadlord David.  This is not the first helpful project
these days that has mentioned getting discouraged by the initial
reaction.

-- 
David Kastrup
My replies have a tendency to cause friction.  To help mitigating
damage, feel free to forward problematic posts to me adding a subject
like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".



Cheat sheets and LilyPond documentation [was Re: Clef "treble_8"]

2020-02-11 Thread Noeck
Hi David,

> Is there a source?  Or is it hand-written SVG?  If we are trying to
> follow the spirit of the GPL, source is defined as "preferred form for
> modification".  For a cobbled-together version, that is tricky to
> define, but we would not want to make it harder than necessary to come
> up with updated versions.

The SVG is the source in the sense "preferred form of modification" – at
least preferred by me :). It is created with Inkscape. I guess it could
be done in LilyPond or TeX or sth else but probably with a similar
amount of complexity (except some text replacement perhaps).
Personally, I would update it via Inkscape (and export to PDF
additionally). The cheat sheet is 8000 lines as SVG (with the line
breaks Inkscape introduces, but you get a feeling). The spacing sheet
3600 lines.

>> Maybe this can be re-evaluated...  An alternative is to add links to
>> to the documentation.
>
> Or from the web page, but then people might have a harder time finding
> it.  We have some diagrams with arrows in our web presence if I am not
> mistaken.  They must have been created in some kind of manner.  Of
> course something fitting well into the Texinfo creation process would be
> nice since we have a lot of output formats for our documentation.

You mean this? http://lilypond.org/text-input.html Well, yes, there
seems to be a place for that. I don’t know the Texinfo stuff enough to
tell if there is a way. For the ly code of the visual index perhaps.

Btw, I appreciate your friendly reaction very much.

Best,
Joram


¹: Inkscape: free vector graphics editor https://inkscape.org



Re: Clef "treble_8"

2020-02-11 Thread Noeck
Dear Michael,

Am 10.02.20 um 22:14 schrieb Michael Käppler:
> Would you share the source code for the visual index?

Yes, sure. I setup a small repository for it:
https://github.com/joram-berger/visualindex/blob/master/visualindex.ly

The code is not beautiful. It's 700 lines. I just got it to a stage
where it roughly did what I wanted. The positioning is not always
optimal and there are some open issues, some of which I mentioned in a
comment. But here it is. Comments and improvements are welcome.

Best,
Joram



Re: Page numbers with text

2020-02-11 Thread Kevin Barry
On Sun, Feb 09, 2020 at 09:01:48AM +0100, Marco Bagolin wrote:
> Thank you all,
> all solutions are good, but I don't know why the copyright field on the
> first page does not appear.

Because your code redefines footers, they no longer include the
copyright field, so it has to be added back in. Does this code do what
you want?

\version "2.21.0"

\paper {
  print-first-page-number = ##t
  oddHeaderMarkup = ##f
  evenHeaderMarkup = ##f
  oddFooterMarkup = \markup {
\overlay {
  \line {
\on-the-fly \print-page-number-check-first \fromproperty 
#'page:page-number-string
\on-the-fly \print-page-number-check-first \italic "- My Song - arr. by 
M. Bagolin (2020)"
  }
  \fill-line { \on-the-fly #part-first-page \fromproperty 
#'header:copyright }
}
  }
  evenFooterMarkup = \oddFooterMarkup
}

\header {
  title = \markup \override #'(font-name . "Arial Black") \fontsize #+4 { \bold 
 "My song" }
  copyright = \markup
  \override #'(font-name . "Palatino Linotype")
  \override #'(baseline-skip . 2)
  \center-column {
\fontsize #-4
{ \bold
  {
\line { " " }
"Arranged by M. B. (2020)"
"ALL RIGHTS RESERVED"
  }
}
  }
}


\score {
  \repeat unfold 800 c'2
}

Kevin



Re: An alternative outside-staff spacing method (new version)

2020-02-11 Thread Aaron Hill

On 2020-02-11 8:05 am, Paolo Prete wrote:

thanks to the _great_ support of Aaron and Harm, I implemented this new
version of the outside-staff spacing method I proposed some days ago.


I am getting quite a few errors and warnings compiling the code pasted 
in the email.  I wonder if the email process has mangled something.  It 
might be worth attaching the original source, so that formatting can be 
preserved.





1) I could not find a way to add a box around piano pedals (and ask to
the gurus which  ly:xxx::print interface should I use). Obviously, you 
can
easily compensate this by adding two padding boxes above and below 
pedals,

as the following snippet shows.


The Internals Reference lists ly:piano-pedal-bracket::print for the 
PianoPedalBracket, ly:sustain-pedal::print for the SustainPedal and 
ly:text-interface::print for both SostenutoPedal and UnaCordaPedal.


But before going down that path, are you committed to supporting only 
2.19 and newer?  grob-transformer can make it easier to override the 
stencil for a grob without needing to know what the original procedure 
is:



#(define* (make-stencil-boxer thickness padding
   #:optional (callback #f) (color red) (expand? #t))
  "Return function that adds a box around the grob passed as argument."
  (if (procedure? callback)
(lambda (grob)
  (box-stencil (callback grob) thickness padding color expand?))
(grob-transformer 'stencil (lambda (grob orig)
  (box-stencil orig thickness padding color expand?)


The above should be a drop-in replacement for the existing definition.  
It makes callback optional, defaulting to using grob-transformer.  But 
if one does need to specify a procedure, they can get the original 
behavior.


Then you should only need to use...


  -\tweak stencil #(make-stencil-boxer thickness padding #f color)


...for anything.  That might clean up a little bit of logic.



3) Note too that the Scheme code is somewhat redundant. Any suggestion 
from

the Scheme gurus, for cleaning it, will be obviously greatly accepted.


member? should not be needed.  Scheme already provides memq, memv, and 
member where the difference is which form of equality is used--eq?, eqv? 
and equal?, respectively.


There appears to be a typo where your logic is sorting the "up" list 
where it should be sorting the "down" list.  This exists in both OSOObj 
and OSOPadder.  Even with the correction, the duplication of logic and 
the number of globals to maintain these lists suggests it would be 
better to encapsulate this logic.


Assuming I understood your intention, here is one way to do it:


\version "2.19.83"

#(define (make-indexer)
  (define ((less y) x) (< x y))
  (let ((indices '()) (prev 0))
(lambda* (#:optional (index (1+ prev)) (keep-prev? #f) )
  (let loop ((lst (drop-while (less index) indices)) (idx index))
(if (or (null? lst) (< idx (car lst)))
  (call-with-values
(lambda () (span (less idx) indices))
(lambda (before after)
  (set! indices (append before (list idx) after))
  (or keep-prev? (set! prev idx)) idx))
  (loop (cdr lst) (1+ idx)))

#(define foo (make-indexer))
#(define baz (make-indexer))

#(format #t "\n (foo)  : expecting 1, got ~a" (foo))
#(format #t "\n (foo 3): expecting 3, got ~a" (foo 3))
#(format #t "\n (foo 1): expecting 2, got ~a" (foo 1))
#(format #t "\n (foo)  : expecting 4, got ~a" (foo))

#(format #t "\n (baz 2): expecting 2, got ~a" (baz 2))
#(format #t "\n (baz 5 #t) : expecting 5, got ~a" (baz 5 #t))
#(format #t "\n (baz)  : expecting 3, got ~a" (baz))


Invoking make-indexer will return a procedure for generating unique 
indices on demand.  Each instance tracks its own returned indices to 
avoid duplicates.  The generator function follows your original logic to 
return the numerically next unused index based on the most recently 
returned value.  The first optional argument is a number requesting a 
specific index; though, if already used, the next available index is 
returned.  The second optional argument is a boolean indicating the 
generator should preserve the prior recently returned value.



-- Aaron Hill



Re: [OT] Identification of a bagpipe embellishment?

2020-02-11 Thread Guo Brian

Hello all,

Thanks for the info, but I know that I could just \include “bagpipe.ly” and use 
the command defined there \pgrace{g32[ f d]}; I was wondering if there was a 
conventional name for the embellishment (even if it is not defined in 
bagpipe.ly), for example, gracenotes HighGDE (followed by the main note D) is a 
doubling on D, gracenotes LowGDC is a throw on D, GDG is a grip/leumluath, GDGE 
is a taorluath, and so on.

Kind regards,
Brian Guo

Slava Novieji Vieti Dielienieji

发件人: lilypond-user  代表 J 
Martin Rushton via LilyPond user discussion 
发送时间: Wednesday, February 12, 2020 3:51:29 AM
收件人: lilypond-user@gnu.org 
主题: Re: [OT] Identification of a bagpipe embellishment?

I hesitated in replying since I started to learn the Highland Pipes a
__long__ time ago, and never really stuck with them.  In "Logans
Complete Tutor for the Highland Bagpipe"* from page X onwards they are
consistently referred to as gracenotes.  They can be single or up to
five gracenotes (though I counted up to 7 in some exercises).  They are
essential between repeated notes or where there are awkward fingering
changes because the bagpipe cannot be tongued as for other wind instruments.

HTH,
Martin

*My version is undated, revised by Captain John MacLellan of the Army
School of Piping

On 11/02/2020 14:11, Mark Stephen Mrotek wrote:
> Brian,
>
> Not being a piper I am not sure of nomenclature, yet Lilypond has the
> command “\grace”.
>
> Your example would be notated
>
> \version "2.19.84"
>
> \relative c'' {
>
>\grace {g'32 f d} g4
>
> }
>
> Mark
>
> *From:*lilypond-user
> [mailto:lilypond-user-bounces+carsonmark=ca.rr@gnu.org] *On Behalf
> Of *Guo Brian
> *Sent:* Tuesday, February 11, 2020 2:48 AM
> *To:* lilypond-user@gnu.org
> *Subject:* [OT] Identification of a bagpipe embellishment?
>
> Hello all,
>
> I am certain that the LilyPond community has a number of bagpipe
> players, and I hope that I do not bother you with the following problem
> that I have come across:
>
> I am transcribing a bagpipe piece written in Bb major into
> “conventional” notation (where the scale is based on A), and come across
> the following embellishment:
>
> In conventional notation it would be written as:
>
> In case Mailman refuses to send the images, the embellishment consists
> of what appears to be the beginning of a F doubling (written as the
> grace notes High G and F), then a strike to D, then the main note
> becomes a High G. Putting aside the possibility of the fingering, the
> sequence is gfdG, where lowercase letters are grace notes and the
> uppercase letter is the main note.
>
> However, I am having trouble finding the name of the embellishment. I
> have tried searching it by the notes, but without luck.
>
> The embellishment in question is from the transcription of an
> avant-garde piece: /The Most Unwanted Music/ by Dave Soldier. In the
> score, the transcriber makes a note that “[t]he score cannot reflect
> accurately all the music, and the performers should also
>
> listen to the CD”, so it is also possible that this embellishment is
> actually the result of a transcription error.
>
> I am by no means a professional bagpipe player, so any advice would be
> much appreciated.
>
> Kind regards,
>
> Brian Guo
>

--
J Martin Rushton MBCS



Re: Ornaments in MIDI

2020-02-11 Thread Hans Åberg
Yes, that is what I was looking for. Thanks!


> On 11 Feb 2020, at 17:35, Knute Snortum  wrote:
> 
> I don't know about compact, but this is how I would realize a trill:
> 
> %%% Start %%%
> \version "2.19.84"
> 
> theMusic = {
>   c''4 
>   \tag layout { c''2 }
>   \tag midi { \repeat unfold 16 { c''64 d''64 } }
>   c''4 |
> }
> 
> % Typeset only
> \score {
>   \keepWithTag layout
>   << \theMusic >>
>   \layout { }
> }
> 
> % Midi only
> \score {
>   \keepWithTag midi
>   << \theMusic >>
>   \midi { }
> }
> %%% End %%%
> 
> ---
> Knute Snortum
> (via Gmail)




Re: Ornaments in MIDI

2020-02-11 Thread Knute Snortum
I don't know about compact, but this is how I would realize a trill:

%%% Start %%%
\version "2.19.84"

theMusic = {
  c''4
  \tag layout { c''2 }
  \tag midi { \repeat unfold 16 { c''64 d''64 } }
  c''4 |
}

% Typeset only
\score {
  \keepWithTag layout
  << \theMusic >>
  \layout { }
}

% Midi only
\score {
  \keepWithTag midi
  << \theMusic >>
  \midi { }
}
%%% End %%%

---
Knute Snortum
(via Gmail)


On Tue, Feb 11, 2020 at 5:37 AM Hans Åberg  wrote:

> Is there a compact way to expand the ornaments by hand in the MIDI output.
> (The command \articulate does not produce what I wish.)
>
>
>
>


An alternative outside-staff spacing method (new version)

2020-02-11 Thread Paolo Prete
Hello all,

thanks to the _great_ support of Aaron and Harm, I implemented this new
version of the outside-staff spacing method I proposed some days ago.
Please note that in this way you can order and pad outside staff objects in
*any* combination you want, in a very easy way. And you can obtain complex
layouts of objects.
You can easily switch the positions, you can add padding empty boxes and
you can pad boxes around grobs in any direction (so to bypass the
limitation of the outside-staff-padding property that bottom and top
padding must be the same)

TODO:

1) I could not find a way to add a box around piano pedals (and ask to
the gurus which  ly:xxx::print interface should I use). Obviously, you can
easily compensate this by adding two padding boxes above and below pedals,
as the following snippet shows.

2) Note too that you don't have to specify any position for the "inline"
grobs (-\tweak method). But I had to specify this position for
TupletBracket as well as for Staff.OttavaBracket. I ask the Scheme gurus if
is there a way to put them inline as well.

3) Note too that the Scheme code is somewhat redundant. Any suggestion from
the Scheme gurus, for cleaning it, will be obviously greatly accepted.

HTH!
P

%% SCHEME CODE %%

\version "2.19.83"
#(define PADDER_RECT_DEF_W (cons -3 3))
#(define OSPadderColor grey)
#(define OSPadderThickness 0.1)
#(define posIdxUp 0)
#(define posListUp '())
#(define posIdxDown 0)
#(define posListDown '())
#(define OSBox #{ \markup " " #})

#(define (box-stencil stencil thickness padding color expand?)
   "Add a box around @var{stencil}, producing a new stencil."
   (define (css-style-padding padding)
 ;; padding => (top right bottom left)
 (cond
   ((or (null? padding) (eqv? #f padding)) '(0 0 0 0))
   ((number? padding) (make-list 4 padding))
   ((number-pair? padding)
 (list (car padding) (cdr padding)
   (car padding) (cdr padding)))
   ((and (number-list? padding) (<= (length padding) 4))
 (case (length padding)
   ((1) (make-list 4 (first padding)))
   ((2) (list (first padding) (second padding)
  (first padding) (second padding)))
   ((3) (list (first padding) (second padding)
  (third padding) (second padding)))
   (else padding)))
   (else
 (begin (ly:warning "Ignoring invalid padding: ~a" padding)
'(0 0 0 0)
  (let* ((padding (css-style-padding padding))
 (padding-top (first padding))
 (padding-right (second padding))
 (padding-bottom (third padding))
 (padding-left (fourth padding))

  (x-ext-orig (ly:stencil-extent stencil X))
  (y-ext-orig (ly:stencil-extent stencil Y))
  (x-ext-inner
(cons (- (interval-start x-ext-orig) padding-left)
  (+ (interval-end x-ext-orig) padding-right)))
  (y-ext-inner
(cons (- (interval-start y-ext-orig) padding-bottom)
  (+ (interval-end y-ext-orig) padding-top)))
  (x-ext-outer (interval-widen x-ext-inner thickness))
  (y-ext-outer (interval-widen y-ext-inner thickness))
  (x-ext-new (if expand? x-ext-outer x-ext-orig))
  (y-ext-new (if expand? y-ext-outer y-ext-orig))

  (x-rule (make-filled-box-stencil (cons 0 thickness) y-ext-inner))
  (y-rule (make-filled-box-stencil x-ext-outer (cons 0 thickness)))
  (box (stencil-with-color
(ly:stencil-add
  (ly:stencil-translate-axis y-rule (interval-end y-ext-inner)
Y)
  (ly:stencil-translate-axis x-rule (interval-end x-ext-inner)
X)
  (ly:stencil-translate-axis y-rule (interval-start
y-ext-outer) Y)
  (ly:stencil-translate-axis x-rule (interval-start
x-ext-outer) X))
color)))
 (ly:make-stencil
   (ly:stencil-expr (ly:stencil-add stencil box))
   x-ext-new y-ext-new)))

#(define* (make-stencil-boxer thickness padding callback
#:optional (color OSPadderColor) (expand? #t))
   "Return function that adds a box around the grob passed as argument."
   (lambda (grob)
 (box-stencil (callback grob) thickness padding color expand?)))

#(define (member? x list)
  (cond
((null? list) #f)
  ((eqv? x (car list)))
(else (member? x (cdr list)

#(define (next-not-in-list n list)
  (let ((s (+ 1 n)))
(if (member? s list)
  (next-not-in-list s list) s)))

resetOSPositions  =  #(define-scheme-function () ()
  (set! posIdxUp 0)
  (set! posListUp '())
  (set! posIdxDown 0)
  (set! posListDown '()))

#(define (symbol-list-or-music? x) (or (symbol-list? x) (ly:music? x)))

OSOObj = #(define-music-function (arg) (ly:music?)
  (let ((posIdx 0)
(name (ly:music-property arg 'name)))
  (if (eq? (ly:music-property arg 'direction) UP)
(begin
  (set! posIdxUp (next-not-in-list posIdxUp posListUp))
 

Re: [OT] Identification of a bagpipe embellishment?

2020-02-11 Thread J Martin Rushton via LilyPond user discussion
I hesitated in replying since I started to learn the Highland Pipes a 
__long__ time ago, and never really stuck with them.  In "Logans 
Complete Tutor for the Highland Bagpipe"* from page X onwards they are 
consistently referred to as gracenotes.  They can be single or up to 
five gracenotes (though I counted up to 7 in some exercises).  They are 
essential between repeated notes or where there are awkward fingering 
changes because the bagpipe cannot be tongued as for other wind instruments.


HTH,
Martin

*My version is undated, revised by Captain John MacLellan of the Army 
School of Piping


On 11/02/2020 14:11, Mark Stephen Mrotek wrote:

Brian,

Not being a piper I am not sure of nomenclature, yet Lilypond has the 
command “\grace”.


Your example would be notated

\version "2.19.84"

\relative c'' {

   \grace {g'32 f d} g4

}

Mark

*From:*lilypond-user 
[mailto:lilypond-user-bounces+carsonmark=ca.rr@gnu.org] *On Behalf 
Of *Guo Brian

*Sent:* Tuesday, February 11, 2020 2:48 AM
*To:* lilypond-user@gnu.org
*Subject:* [OT] Identification of a bagpipe embellishment?

Hello all,

I am certain that the LilyPond community has a number of bagpipe 
players, and I hope that I do not bother you with the following problem 
that I have come across:


I am transcribing a bagpipe piece written in Bb major into 
“conventional” notation (where the scale is based on A), and come across 
the following embellishment:


In conventional notation it would be written as:

In case Mailman refuses to send the images, the embellishment consists 
of what appears to be the beginning of a F doubling (written as the 
grace notes High G and F), then a strike to D, then the main note 
becomes a High G. Putting aside the possibility of the fingering, the 
sequence is gfdG, where lowercase letters are grace notes and the 
uppercase letter is the main note.


However, I am having trouble finding the name of the embellishment. I 
have tried searching it by the notes, but without luck.


The embellishment in question is from the transcription of an 
avant-garde piece: /The Most Unwanted Music/ by Dave Soldier. In the 
score, the transcriber makes a note that “[t]he score cannot reflect 
accurately all the music, and the performers should also


listen to the CD”, so it is also possible that this embellishment is 
actually the result of a transcription error.


I am by no means a professional bagpipe player, so any advice would be 
much appreciated.


Kind regards,

Brian Guo



--
J Martin Rushton MBCS



Re: [OT] Identification of a bagpipe embellishment?

2020-02-11 Thread Hans Åberg


> On 11 Feb 2020, at 11:47, Guo Brian  wrote:
> 
> I am certain that the LilyPond community has a number of bagpipe players, and 
> I hope that I do not bother you with the following problem that I have come 
> across:
> 
> I am transcribing a bagpipe piece written in Bb major into “conventional” 
> notation (where the scale is based on A), and come across the following 
> embellishment: <5DA7133284F3465EB0BE9810BF3AA654.png>
> 
> In conventional notation it would be written as: 
> 
> 
> In case Mailman refuses to send the images, the embellishment consists of 
> what appears to be the beginning of a F doubling (written as the grace notes 
> High G and F), then a strike to D, then the main note becomes a High G. 
> Putting aside the possibility of the fingering, the sequence is gfdG, where 
> lowercase letters are grace notes and the uppercase letter is the main note.
> 
> However, I am having trouble finding the name of the embellishment. I have 
> tried searching it by the notes, but without luck.

In other types of music, one can combine ornaments. So for example, as in 
bagpipe.ly, a \hslurg followed by a \grd.





RE: [OT] Identification of a bagpipe embellishment?

2020-02-11 Thread Mark Stephen Mrotek
Brian,

 

Not being a piper I am not sure of nomenclature, yet Lilypond has the
command "\grace".

Your example would be notated

 

\version "2.19.84"

\relative c'' {

  \grace {g'32 f d} g4

}

 

Mark

 

From: lilypond-user
[mailto:lilypond-user-bounces+carsonmark=ca.rr@gnu.org] On Behalf Of Guo
Brian
Sent: Tuesday, February 11, 2020 2:48 AM
To: lilypond-user@gnu.org
Subject: [OT] Identification of a bagpipe embellishment?

 

Hello all,

 

I am certain that the LilyPond community has a number of bagpipe players,
and I hope that I do not bother you with the following problem that I have
come across:

I am transcribing a bagpipe piece written in Bb major into "conventional"
notation (where the scale is based on A), and come across the following
embellishment: 

In conventional notation it would be written as: 

In case Mailman refuses to send the images, the embellishment consists of
what appears to be the beginning of a F doubling (written as the grace notes
High G and F), then a strike to D, then the main note becomes a High G.
Putting aside the possibility of the fingering, the sequence is gfdG, where
lowercase letters are grace notes and the uppercase letter is the main note.

However, I am having trouble finding the name of the embellishment. I have
tried searching it by the notes, but without luck.

 

The embellishment in question is from the transcription of an avant-garde
piece: The Most Unwanted Music by Dave Soldier. In the score, the
transcriber makes a note that "[t]he score cannot reflect accurately all the
music, and the performers should also

listen to the CD", so it is also possible that this embellishment is
actually the result of a transcription error.

 

I am by no means a professional bagpipe player, so any advice would be much
appreciated.

 

Kind regards,

Brian Guo

 



Ornaments in MIDI

2020-02-11 Thread Hans Åberg
Is there a compact way to expand the ornaments by hand in the MIDI output. (The 
command \articulate does not produce what I wish.)





[OT] Identification of a bagpipe embellishment?

2020-02-11 Thread Guo Brian
Hello all,

I am certain that the LilyPond community has a number of bagpipe players, and I 
hope that I do not bother you with the following problem that I have come 
across:
I am transcribing a bagpipe piece written in Bb major into “conventional” 
notation (where the scale is based on A), and come across the following 
embellishment: [cid:image001.png@01D5E132.0BE63BB0]
In conventional notation it would be written as: 
[cid:image002.png@01D5E132.25A59280]
In case Mailman refuses to send the images, the embellishment consists of what 
appears to be the beginning of a F doubling (written as the grace notes High G 
and F), then a strike to D, then the main note becomes a High G. Putting aside 
the possibility of the fingering, the sequence is gfdG, where lowercase letters 
are grace notes and the uppercase letter is the main note.
However, I am having trouble finding the name of the embellishment. I have 
tried searching it by the notes, but without luck.

The embellishment in question is from the transcription of an avant-garde 
piece: The Most Unwanted Music by Dave Soldier. In the score, the transcriber 
makes a note that “[t]he score cannot reflect accurately all the music, and the 
performers should also
listen to the CD”, so it is also possible that this embellishment is actually 
the result of a transcription error.

I am by no means a professional bagpipe player, so any advice would be much 
appreciated.

Kind regards,
Brian Guo



Re: Clef "treble_8"

2020-02-11 Thread David Kastrup
Werner LEMBERG  writes:

>> thank you for your positive reaction. There are 3 files¹:
>> 
>> - a cheat sheet: https://joramberger.de/files/lilypond_sheet_2.18_en.pdf
>> - “visual index”: https://joramberger.de/files/lilypond_visualindex.pdf
>> - spacing overview: https://joramberger.de/files/LilypondSpacing.pdf
>
> All of them are *very* helpful!
>
>> I once tried to get them in an appropriate place in the official
>> documentation.  But they were not accepted.  For the cheat sheet,
>> main objections were:
>> 
>> - not source code (even though SVG is an open and text based format)

Is there a source?  Or is it hand-written SVG?  If we are trying to
follow the spirit of the GPL, source is defined as "preferred form for
modification".  For a cobbled-together version, that is tricky to
define, but we would not want to make it harder than necessary to come
up with updated versions.

>> - needs updates for new versions (well, those basic things did not
>>   change for at least 7 years now and even if they did…)
>> - does not fit into the texinfo documentation creation process (ok)
>
> Maybe this can be re-evaluated...  An alternative is to add links to
> to the documentation.

Or from the web page, but then people might have a harder time finding
it.  We have some diagrams with arrows in our web presence if I am not
mistaken.  They must have been created in some kind of manner.  Of
course something fitting well into the Texinfo creation process would be
nice since we have a lot of output formats for our documentation.

-- 
David Kastrup



Re: Clef "treble_8"

2020-02-11 Thread Werner LEMBERG

> thank you for your positive reaction. There are 3 files¹:
> 
> - a cheat sheet: https://joramberger.de/files/lilypond_sheet_2.18_en.pdf
> - “visual index”: https://joramberger.de/files/lilypond_visualindex.pdf
> - spacing overview: https://joramberger.de/files/LilypondSpacing.pdf

All of them are *very* helpful!

> I once tried to get them in an appropriate place in the official
> documentation.  But they were not accepted.  For the cheat sheet,
> main objections were:
> 
> - not source code (even though SVG is an open and text based format)
> - needs updates for new versions (well, those basic things did not
>   change for at least 7 years now and even if they did…)
> - does not fit into the texinfo documentation creation process (ok)

Maybe this can be re-evaluated...  An alternative is to add links to
to the documentation.


Werner