Subject: Question sur beat Structure

From: Ben <[email-masked]>
Date: Fri, 21 Jul 2023 11:10:41 +0200

Bonjour, 

Dans l'exemple ci-dessous, pour retrouver le comportement par défaut du \time 3/8, j'aurais trouvé logique d'écrire:

\set Staff.beatStructure = 3

ce qui voudrait dire que l'on veut trois croches ligaturées par mesure. 

Sauf que cela ne fonctionne pas, et curieusement il faut écrire:

\set Staff.beatStructure = 3,3

Est-ce un bug?

\version "2.25.2"

\relative c'
{
  \time 3/8
  c8 d e 
  c16 d e f g a 
  
  \set Staff.beamExceptions = #'()
  c,8 d e 
  c16 d e f g a 
  
  \set Staff.beatStructure = 3,3
  c,8 d e 
  c16 d e f g a 
}

Au plaisir, 

Ben

---

From: Jean Abou Samra <[email-masked]>
Date: Fri, 21 Jul 2023 19:33:52 +0200

> \set Staff.beatStructure = 3,3

C'est purement une question de syntaxe.

beatStructure doit être une liste. LilyPond permet d'écrire des listes en
séparant les éléments par des virgules, mais cela ne fonctionne pas pour une
liste à un seul élément.

Dans certains langages comme Python, un 1-uplet est noté « x, » ou « (x,) »,
avec une virgule à la fin, pour distinguer l'objet de l'objet simple « x ». Cela
n'existe pas dans LilyPond puisque

\set Staff.beatStructure = 3,4

deviendrait alors ambigu, étant donné que cela pourrait également se lire

\set Staff.beatStructure = 3,
4 % note

Donc, pour l'instant, il faut en cas pareil utiliser la syntaxe Scheme pour une
liste à un élément, à savoir

\set Staff.beatStructure = #'(3)

Cordialement,

Jean

---

From: Ben <[email-masked]>
Date: Fri, 21 Jul 2023 20:34:19 +0200

Merci pour l'explication, 

J'ai pensé aussi à utiliser la syntaxe \set Staff.beatStructure = 3,0, car au final j'imagine que dans ce cas, le deuxième élément n'est de toute manière pas interprété…

Au plaisir, 

Ben

> Le 21 juil. 2023 à 19:33, Jean Abou Samra <[email-masked]> a écrit :
> 
> beatStructure doit être une liste. LilyPond permet d'écrire des listes en séparant les éléments par des virgules, mais cela ne fonctionne pas pour une liste à un seul élément.
> 
> Dans certains langages comme Python, un 1-uplet est noté « x, » ou « (x,) », avec une virgule à la fin, pour distinguer l'objet de l'objet simple « x ». Cela n'existe pas dans LilyPond puisque
> 
> Donc, pour l'instant, il faut en cas pareil utiliser la syntaxe Scheme pour une liste à un élément, à savoir
>