Subject: Question sur le layout et l'objet score

From: Bernard Barbier <[email-masked]>
Date: Tue, 21 May 2019 11:22:08 +0200

Bonjour,

Quelqu'un pourrait-il m'expliquer la relation entre :

\set Score./propriété/

/et/

\layout {
   \context {
     \Score
       \override /propriété
/  }
}

Je m'explique : je suis dans la doc 
(http://lilypond.org/doc/v2.19/Documentation/notation/bars#rehearsal-marks), 
en bas et je lis sur la modification de l'aspect des indications de 
repère :

\set Score.markFormatter = #format-mark-circle-alphabet

Ma 1ère question (mais peut-être que j'ai rien compris) :

Est-ce que je peux inclure ce modificateur dans le bloc layout :

\layout {
   \context {
     \Score
       \override /markformatter//
/  }
}

Mais... beuh... comme ça marche pas, c'est qu'il y a un truc qui 
m'échappe...

Ma 2e question : dans quel coin de la doc je pourrais trouver un truc du 
style :

\set Score.markFormatter = #with-color=red

...Parce qu'un grep ne solutionne pas tout !

Et que j'ai écrit une fonction... qui ressemble quand même à de l'eau 
tiède, et que je suis en train de réinventer le fil à couper le beurre !

Merci et très belle journée à tous !

Bernard

------------------------------------------------------------------------

Ma fonction (qui fonctionne (!) au demeurant...) :

\version "2.19.80"
\language "italiano"

#(define-markup-command (rep-bb layout props text) (markup?)
    "Ecrit un repère rouge dans un cercle."
    (interpret-markup layout props
      #{\markup \tiny \bold {\with-color #red \override 
#'(circle-padding . 0.8) \circle { #text }} #}))

rep =
#(define-music-function
   (parser location arg1)
   (string?)
   #{
     \mark \markup { \rep-bb #arg1 }
   #})

\relative do' {
   \rep #"A" do1
}

---

From: Valentin Villenave <[email-masked]>
Date: Tue, 21 May 2019 17:02:20 +0200

> Quelqu'un pourrait-il m'expliquer la relation entre :

Bonjour,
à un détail près, c’est exactement équivalent ! La seule différence
est que le bloc \layout s’appliquera partout, alors que le \set (ou
\override au milieu d’une expression musicale) s’appliquera uniquement
à partir du moment où on l’ajoute.

http://lilypond.org/doc/latest/Documentation/notation/set-versus-override.fr.html

Le détail, c’est que pour
\override Contexte.propriété = valeur
il faut remettre \override dans le bloc \layout, comme ceci :

\layout {
  \context {
    \Contexte
    \override propriété = valeur
  }
}

… alors que pour \set, il faut uniquement mettre le nom de la propriété :

\layout {
  \context {
    \Contexte
    propriété = valeur
  }
}

(dans tout ce qui précède, vous pouvez remplacer Contexte par Score
dans votre cas).

>        \override /markformatter//

C’est presque exactement ça, sauf qu’il faut utiliser seulement
\layout {
  \context {
    \Score
    markFormatter = #format-mark-circle-alphabet
  }
}

> \set Score.markFormatter = #with-color=red

Ah, c’est un peu différent, la solution la plus simple (de loin) serait :

\override Score.RehearsalMark.color = #red

ou (comme je l’expliquais)

\layout {
  \context {
    \Score
    \override RehearsalMark.color = #red
  }
}

> tiède, et que je suis en train de réinventer le fil à couper le beurre !

Jolie fonction, ça pourrait quasiment marcher mais il y a plus simple là aussi :

% Pompé sans vergogne du fichier scm/translation-functions.scm

#(define-public (format-mark-red mark context)
   (make-with-color-markup red
    (make-bold-markup (make-markalphabet-markup (1- mark)))))

\layout {
  \context {
    \Score
    markFormatter = #format-mark-red
  }
}

… ou bien, comme nous disions,

\new Staff {
  \set Score.markFormatter = #format-mark-red
  \mark \default
  c'2 c'4 c' c'1
}

Cordialement,
V.

---

From: Bernard Barbier <[email-masked]>
Date: Tue, 21 May 2019 18:27:20 +0200

Bonjour Valentin,

Merci pour ces explications... et d'avoir eu la gentillesse de ne pas me 
répondre "/RTFM/" (*)...

C'est impressionnant le contenu de la doc... je remercie au passage tous 
les contributeurs pour la traduction.

Par contre, quand vous dites : "% Pompé sans vergogne du fichier 
scm/translation-functions.scm" il va falloir que j'aille y faire un tour :

*bernard@spic:~$ ls /usr/share/lilypond/2.18.2/scm**
**accreg.scm define-music-callbacks.scm        editor.scm 
lily-sort.scm               ps-to-png.scm**
**auto-beam.scm define-music-display-methods.scm  encoding.scm 
ly-syntax-constructors.scm  safe-lily.scm**
**autochange.scm define-music-properties.scm       file-cache.scm 
markup-macros.scm           safe-utility-defs.scm**
**backend-library.scm define-music-types.scm            flag-styles.scm 
markup.scm                  scheme-engravers.scm**
**bar-line.scm define-note-names.scm             font.scm 
memory-trace.scm            script.scm**
**bezier-tools.scm define-stencil-commands.scm       framework-eps.scm 
midi.scm                    skyline.scm**
**chord-entry.scm define-woodwind-diagrams.scm      framework-null.scm 
modal-transforms.scm        song.scm**
**chord-generic-names.scm display-lily.scm                  
framework-ps.scm music-functions.scm         song-util.scm**
**chord-ignatzek-names.scm display-woodwind-diagrams.scm     
framework-scm.scm output-lib.scm              standalone.scm**
**chord-name.scm documentation-generate.scm        framework-socket.scm 
output-ps.scm               stencil.scm**
**clip-region.scm documentation-lib.scm             framework-svg.scm 
output-socket.scm           tablature.scm**
**coverage.scm document-backend.scm              fret-diagrams.scm 
output-svg.scm              text.scm**
**c++.scm document-context-mods.scm         graphviz.scm 
page.scm                    time-signature-settings.scm**
**define-context-properties.scm document-functions.scm            
guile-debugger.scm paper.scm                   titling.scm**
**define-event-classes.scm document-identifiers.scm          
harp-pedals.scm paper-system.scm            to-xml.scm**
**define-grob-interfaces.scm document-markup.scm               
layout-beam.scm parser-clef.scm             translation-functions.scm**
**define-grob-properties.scm document-music.scm                
layout-slur.scm parser-ly-from-scheme.scm   x11-color.scm**
**define-grobs.scm document-translation.scm          lily-library.scm 
part-combiner.scm**
**define-markup-commands.scm document-type-predicates.scm      lily.scm 
predefined-fretboards.scm**
**bernard@spic:~$ *

J'ai de la lecture en perspective, et à réviser mon lisp (qui date de 
1986) euh... scheme ! Mais c'est une bonne source pour commencer à faire 
du grep ! Merci !

*bernard@spic:~$ grep -i markformatter /usr/share/lilypond/2.18.2/scm/***
**/usr/share/lilypond/2.18.2/scm/define-context-properties.scm: 
(markFormatter ,procedure? "A procedure taking as arguments the**
**/usr/share/lilypond/2.18.2/scm/define-context-properties.scm: 
(metronomeMarkFormatter ,procedure? "How to produce a metronome**
**bernard@spic:~$ *

Un grand merci, je suppose à bientôt pour continuer mes questions 
insupportables...  et m'aider à lire la doc !

Bien cordialement,

Bernard.

(*) /Read The Friendy Manuel/... traduction très polie pour les non 
initiés !

---

From: Christophe Pochon <[email-masked]>
Date: Tue, 21 May 2019 18:53:37 +0200

Bonjour,

Ça doit faire bien 10 ans que je suis membre de cette liste. Jamais
personne, contrairement à ce qui se passe dans d'autres listes ou forums,
n'a répondu RTFM. A peine parfois, lit-on un : ça se trouve dans la doc,
ici : (lien). Et c'était dans des cas extrêmes, où quelqu'un n'avait
visiblement même pas lu le didacticiel de base de Lilypond.

Cette liste est admirable, adorable, passionnante et passionnée, attachante
etc....

Allez-y, Bernard, posez vos questions sans honte, nous avons tous débuté.
Et mon expérience de prof de musique m'a démontré très souvent qu'on
apprend beaucoup en expliquant.

A+

Christophe Pochon

Le mar. 21 mai 2019 à 18:27, Bernard Barbier <[email-masked]> a
écrit :

> répondre "*RTFM*" (*)...
> *bernard@spic:~$ ls /usr/share/lilypond/2.18.2/scm*
> *accreg.scm                     define-music-callbacks.scm
> editor.scm            lily-sort.scm               ps-to-png.scm*
> *auto-beam.scm                  define-music-display-methods.scm
> encoding.scm          ly-syntax-constructors.scm  safe-lily.scm*
> *autochange.scm                 define-music-properties.scm
> file-cache.scm        markup-macros.scm           safe-utility-defs.scm*
> *backend-library.scm            define-music-types.scm
> flag-styles.scm       markup.scm                  scheme-engravers.scm*
> *bar-line.scm                   define-note-names.scm
> font.scm              memory-trace.scm            script.scm*
> *bezier-tools.scm               define-stencil-commands.scm
> framework-eps.scm     midi.scm                    skyline.scm*
> *chord-entry.scm                define-woodwind-diagrams.scm
> framework-null.scm    modal-transforms.scm        song.scm*
> *chord-generic-names.scm        display-lily.scm
> framework-ps.scm      music-functions.scm         song-util.scm*
> *chord-ignatzek-names.scm       display-woodwind-diagrams.scm
> framework-scm.scm     output-lib.scm              standalone.scm*
> *chord-name.scm                 documentation-generate.scm
> framework-socket.scm  output-ps.scm               stencil.scm*
> *clip-region.scm                documentation-lib.scm
> framework-svg.scm     output-socket.scm           tablature.scm*
> *coverage.scm                   document-backend.scm
> fret-diagrams.scm     output-svg.scm              text.scm*
> *c++.scm                        document-context-mods.scm
> graphviz.scm          page.scm
> time-signature-settings.scm*
> *define-context-properties.scm  document-functions.scm
> guile-debugger.scm    paper.scm                   titling.scm*
> *define-event-classes.scm       document-identifiers.scm
> harp-pedals.scm       paper-system.scm            to-xml.scm*
> *define-grob-interfaces.scm     document-markup.scm
> layout-beam.scm       parser-clef.scm             translation-functions.scm*
> *define-grob-properties.scm     document-music.scm
> layout-slur.scm       parser-ly-from-scheme.scm   x11-color.scm*
> *define-grobs.scm               document-translation.scm
> lily-library.scm      part-combiner.scm*
> *define-markup-commands.scm     document-type-predicates.scm
> lily.scm              predefined-fretboards.scm*
> *bernard@spic:~$ *
>
> 1986) euh... scheme ! Mais c'est une bonne source pour commencer à faire du
> grep ! Merci !
>
> *bernard@spic:~$ grep -i markformatter /usr/share/lilypond/2.18.2/scm/**
> */usr/share/lilypond/2.18.2/scm/define-context-properties.scm:
> (markFormatter ,procedure? "A procedure taking as arguments the*
> */usr/share/lilypond/2.18.2/scm/define-context-properties.scm:
> (metronomeMarkFormatter ,procedure? "How to produce a metronome*
> *bernard@spic:~$ *
>
> (*) *Read The Friendy Manuel*... traduction très polie pour les non
> initiés !
> On 5/21/19, Bernard Barbier <[email-masked]> <[email-masked]> wrote:
>
> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>

---

From: Éditions IN NOMINE <[email-masked]>
Date: Tue, 21 May 2019 19:02:51 +0200

J'adore cette liste, ne serait-ce que pour ce type de message !

JMarc

Le 21/05/2019 à 18:53, Christophe Pochon a écrit :
> personne, contrairement à ce qui se passe dans d'autres listes ou
> forums, n'a répondu RTFM. A peine parfois, lit-on un : ça se trouve
> dans la doc, ici : (lien). Et c'était dans des cas extrêmes, où
> quelqu'un n'avait visiblement même pas lu le didacticiel de base de
> Lilypond.
>
> Cette liste est admirable, adorable, passionnante et passionnée,
> attachante etc....
>
> Allez-y, Bernard, posez vos questions sans honte, nous avons tous
> débuté. Et mon expérience de prof de musique m'a démontré très souvent
> qu'on apprend beaucoup en expliquant.
>
> A+
>
> Christophe Pochon
>
>
>
> Le mar. 21 mai 2019 à 18:27, Bernard Barbier
> <[email-masked] <mailto:[email-masked]>> a écrit :
>
>     Bonjour Valentin,
>
>     Merci pour ces explications... et d'avoir eu la gentillesse de ne
>     pas me répondre "/RTFM/" (*)...
>
>     C'est impressionnant le contenu de la doc... je remercie au
>     passage tous les contributeurs pour la traduction.
>
>     **accreg.scm                     define-music-callbacks.scm       
>     editor.scm            lily-sort.scm               ps-to-png.scm**
>     **auto-beam.scm                  define-music-display-methods.scm 
>     encoding.scm          ly-syntax-constructors.scm  safe-lily.scm**
>     **autochange.scm                 define-music-properties.scm      
>     file-cache.scm        markup-macros.scm          
>     safe-utility-defs.scm**
>     **backend-library.scm            define-music-types.scm           
>     flag-styles.scm       markup.scm                 
>     scheme-engravers.scm**
>     **bar-line.scm                   define-note-names.scm            
>     font.scm              memory-trace.scm            script.scm**
>     **bezier-tools.scm               define-stencil-commands.scm      
>     framework-eps.scm     midi.scm                    skyline.scm**
>     **chord-entry.scm                define-woodwind-diagrams.scm     
>     framework-null.scm    modal-transforms.scm        song.scm**
>     **chord-name.scm                 documentation-generate.scm       
>     framework-socket.scm  output-ps.scm               stencil.scm**
>     **clip-region.scm                documentation-lib.scm            
>     framework-svg.scm     output-socket.scm           tablature.scm**
>     **coverage.scm                   document-backend.scm             
>     fret-diagrams.scm     output-svg.scm              text.scm**
>     **c++.scm                        document-context-mods.scm        
>     graphviz.scm          page.scm                   
>     time-signature-settings.scm**
>     **define-grobs.scm               document-translation.scm         
>     lily-library.scm      part-combiner.scm**
>     **define-markup-commands.scm     document-type-predicates.scm     
>     lily.scm              predefined-fretboards.scm**
>     **bernard@spic:~$ *
>
>     J'ai de la lecture en perspective, et à réviser mon lisp (qui date
>     de 1986) euh... scheme ! Mais c'est une bonne source pour
>     commencer à faire du grep ! Merci !
>
>     (*) /Read The Friendy Manuel/... traduction très polie pour les
>     non initiés !
>
>>     On 5/21/19, Bernard Barbier <[email-masked]> <mailto:[email-masked]> wrote:
>     [email-masked] <mailto:[email-masked]>

---

From: Valentin Villenave <[email-masked]>
Date: Tue, 21 May 2019 19:14:05 +0200

> les contributeurs pour la traduction.

En général, "les contributeurs" s’appellent Jean-Charles Malahieude…
(mais il faut pas le dire trop fort car "ils" sont modeste).

> scm/translation-functions.scm" il va falloir que j'aille y faire un tour :

C’était le but…

> 1986) euh... scheme ! Mais c'est une bonne source pour commencer à faire

Scheme est, à plus d’un titre, nettement plus élégant que le Common
Lisp. (Enfin, je trouve.)
Vous pouvez commencer par là, par exemple :
http://lilypond.org/doc/latest/Documentation/extending/index.fr.html
et aussi
http://lilypondblog.org/category/using-lilypond/advanced/scheme-tutorials/
et sinon j’entends dire du bien de
https://scheme-book.ursliska.de/

> visiblement même pas lu le didacticiel de base de Lilypond.

Je n’ai rien contre les réponses de type RTFM, à condition
effectivement qu’elles s’accompagnent d’un lien. On a quand même dans
les 2000 pages de doc (dont 800 de NR), ça ne me surprend pas que des
gens pas forcément habitués à se repérer dans de tels pavés (ou pas
habitués à notre manière d’organiser tout ça) n’aient pas le courage
de se débrouiller sans quelqu’un pour leur tenir la main.

Après le reste est une question d’enrobage, mais là on entre dans les
goûts et les styles de chaque personnalité ; sur les listes
anglophones David Kastrup est le moins poli et le plus brutal de
toutes les personnes qui répondent, mais à chaque fois ou peu s’en
faut, ce sont ses réponses qui sont objectivement les plus utiles et
les plus pertinentes. (C’est sûr que les premières fois, ça décoiffe
méchant, et ça en a fait fuir plus d’un… et pourtant c’est lui qui
porte la communauté et le programme à bout de bras depuis six ou sept
ans.)

V.

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Wed, 22 May 2019 09:42:08 +0200

> Bonjour,
Bonjour à tous,
> apprend beaucoup en expliquant.

Ce message me donne l'occasion de vous signaler la signature de mon fils
dans ses messages :

As you teach, you learn.  Jewish Saying

sans commentaires

-- 

JJG

---

From: Bernard Barbier <[email-masked]>
Date: Wed, 22 May 2019 10:56:15 +0200

Hello vous tous,

C'est super sympa de se sentir accueilli dans une communauté au bout 
d'une petite semaine !

Wow !!!

Alors, très belle journée à tous et à bientôt,

Bien cordialement,

Bernard.

/P.S. Peut-être qu'un jour je posterai non pas des questions, mais des 
réponses !/