Subject: maîtrisons l'auto beaming !

From: Editions IN NOMINE <[email-masked]>
Date: Thu, 06 May 2010 16:36:08 +0200

2.13 & Ubuntu

Bonjour à toutes et à tous !

Je crois que j'ai compris l'override de l'auto-beaming, donc je partage 
mes découvertes tellement j'ai galéré sur 2.12. :-D
A mon avis, en 2.13, c'est bcp plus simple ! Voici donc ma vision des 
choses, à partir de la doc 
<http://lilypond.org/doc/v2.13/Documentation/notation/beams.html#Setting-automatic-beam-behavior> 
:

pour modifier le comportement des ligatures automatiques, il faut 
utiliser, à partir de la version 2.13, la fonction suivante :

\overrideBeamSettings #'Score #'(a . b) #'end #'((* . (x y)))

*Il faut renseigner le couple (a . b) et le tuplet (x y)* - je dis 
exprès tuplet parce qu'il peut comporter plus d'éléments que ça)

(a . b)         = les chiffres de la métrique à laquelle cette nouvelle 
règle s'applique
/                    ex : (3 . 4) pour une métrique \time 3/4/

#'end #'     = la règle s'exprime ainsi : "la ligature se *termine" *(je 
suppose que si l'on veut parler de ligature qui "commence" on utilise 
#'begin#', mais ça n'a                         pas vraiment de sens)

(x y)            = entiers désignant des fractions de mesure (nombres 
entiers), à la fin desquelles (#'end#') la ligature s'achève.
                   /ex :  pour une métrique à 3/4, si je souhaite avoir 
2 croches (c'est-à-dire 1 temps dans ce cas) puis 4 croches (2 temps), 
je mets (1 2)
                   mais si je souhaite avoir toutes les croches 
ligaturées par 2 (à chaque temps), je mettrai le tuplet (1 1 1) parce 
que je veux une ligature qui se                                termine à 
la fin du 1er temps, puis du temps suivant, et enfin du dernier. Et si 
je veux toutes les croches ligaturées, j'indique une fin de ligature en 
fin                     de 3 temps : (3)
/

Et comme à l'école, petit exercice d'application : ligature automatique 
des croches par 2 dans une métrique à 4/4 (je l'utilise très souvent) :

\version "2.13"

\relative c'' {
%comportement par défaut = ligature de 4 croches
c8 c c d e e d d c e d d c2 \bar "||" \break
*%comportement souhaité = ligature de 2 croches
\overrideBeamSettings #'Score #'(4 . 4) #'end #'((* . (1 1 1 1)))*
c8 c c d e e d d c e d d c2  \bar "|." \break
%comportement souhaité = ligature par 8 croches (pour le fun)
\overrideBeamSettings #'Score #'(4 . 4) #'end #'((* . (0 4)))
c8 c c d e e d d c e d d c2 \bar "|."
}

Personnellemnt, je trouve cela beaucoup plus intuitif, et très 
graphique. Il faut dire que je n'ai jamais pris la peine de comprendre 
correctement la méthode de la version 2.12... :-[

Enjoy !

JMarc

---

From: Editions IN NOMINE <[email-masked]>
Date: Thu, 06 May 2010 16:41:43 +0200

Un petit oubli :

Dans la séquence \overrideBeamSettings #'Score #'(a . b) #'end #'((* . 
(x y))) ,

le dernier jocker * signifie que la règle correspond à un comportement 
par défaut pour toute la musique qui suit : il est en effet possible, - 
mais n'en ayant pas l'utilité, je zappe :-)    -, de déterminer plus 
finement l'autobeaming, et de définir des règles différentes en fonction 
des arrangements de notes rencontrés en cours de partition...

A propos, si je me suis mis le doigt dans l'oeil dans mes explications, 
purement empiriques, n'hésitez pas à commettre en redressement musical !

A bientôt

Jmarc

Editions IN NOMINE wrote:
> Je crois que j'ai compris l'override de l'auto-beaming, donc je 
> partage mes découvertes tellement j'ai galéré sur 2.12. :-D
> (a . b)         = les chiffres de la métrique à laquelle cette 
> nouvelle règle s'applique
> #'end #'     = la règle s'exprime ainsi : "la ligature se *termine" 
> *(je suppose que si l'on veut parler de ligature qui "commence" on 
> utilise #'begin#', mais ça n'a                         pas vraiment de 
> sens)
>
> que je veux une ligature qui se                                termine 
> à la fin du 1er temps, puis du temps suivant, et enfin du dernier. Et 
> si je veux toutes les croches ligaturées, j'indique une fin de 
> ligature en fin                     de 3 temps : (3)
> /
>
> Et comme à l'école, petit exercice d'application : ligature 
> automatique des croches par 2 dans une métrique à 4/4 (je l'utilise 
> très souvent) :
>
> \version "2.13"
>
> \relative c'' {

---

From: Editions IN NOMINE <[email-masked]>
Date: Thu, 06 May 2010 17:16:09 +0200

Je vous entends me dire : il est gentil, mais en \time 2/2, quand je 
veux des croches en ligatures par 2, le tuplet devient (0.5 0.5 0.5 0. 
5) puisque l'unité de temps est la blanche, et Lily ne veut que des 
entiers ?

Yes, vous avez raison, en fait, et je vous donne la solution de la liste 
internationale :

\relative c'' {
\time 2/2
/%comportement par défaut en 2/2 = ligatures par 4 croches/
c8 c c d e e d d c e d d c2 \bar "||" \break
/%comportement souhaité = ligatures par 2 croches/
\overrideBeamSettings #'Score #'(2 . 2) #'end #'((* . (1 1 1 1)))
*\set Score.beatLength = #(ly:make-moment 1 4) *
/        % qui permet d'indiquer à Lily que OK c'est une règle qui 
s'applique aux passages en 2/2 mais il est gentil, il prend la noire 
comme             %unité de comptage dans le tuplet/
c8 c c d e e d d c e d d c2 \bar "|."
}

Bonne soirée !

JMarc

---

From: Xavier Scheuer <[email-masked]>
Date: Thu, 6 May 2010 19:39:28 +0200

2010/5/6 Editions IN NOMINE <[email-masked]>:

> pour modifier le comportement des ligatures automatiques, il faut utiliser,
> à partir de la version 2.13, la fonction suivante :
>

Salut !

Je suis loin d'être un maître de l' "auto-beaming" mais je tenais à
préciser une chose : la structure avec l'étoile ('*') est une structure
_simplifiée_, généraliste.
On peut aller bien plus loin, créer des règles bien plus "pointues",
en fonction du type de ligature (croche, double-croches, ...).

Le '*' veut dire que le type de groupement (x y) s'appliquera à toutes
les ligatures !!
Mais si on souhaite par exemple en 4/4 ligaturer :
  – les croches par 4 (toutes les blanches) ;
  – les doubles-croches par 4 aussi (toutes les noires) ;

ce ne sera pas possible avec '*'.

En effet si on met
  \overrideBeamSettings #'Score #'(4 . 4) #'end #'((* . (2 2)))
les croches seront bien par 4 mais les doubles-croches seront par 8
(et non par 4),

tandis que si on met
  \overrideBeamSettings #'Score #'(4 . 4) #'end #'((* . (1 1 1 1)))
les croches seront par 2 (toutes les noires), les doubles-croches
seront bien par 4 (toutes les noires).

C'est pourquoi on peut ajouter des règles en fonction du type de
ligature, en remplaçant l' '*' par :

  – (1 . 8) pour les ligatures de croches,
  – (1 . 16) pour celles de doubles-croches,
  – etc.

J'ai donné un exemple complet, avec la démarche suivie pour élaborer la
règle, il y a 3 jours ici :
http://lilypond-french-users.1298960.n2.nabble.com/override-auto-beam-setting-tp4871642p4999993.html

> *Il faut renseigner le couple (a . b) et le tuplet (x y)* - je dis exprès
> tuplet parce qu'il peut comporter plus d'éléments que ça)
>

NON !  (enfin je crois pas)  ;D

** D'après ce que j'ai compris...**

(x y) représente le _nombre de temps_ quand on est dans le cas '*',
autrement dit la somme de (x y) donne le numérateur du chiffrage
(i.e. 3 si on est en 3/4).

Par contre dans le cas "non '*' " c'est le nombre de notes du type
ligature "d" qui seront groupées ensemble.

  \overrideBeamSettings #'Score #'(a . b) #'end #'((c d) . (x y))

Dans ce cas, la somme (x y) doit être : le nombre de notes "d" qu'il y
a dans une mesure complète de a/b.
En pratique c = 1 toujours, il me semble.

Exemple : en 3/4, les croches par 6 (toute la mesure), les
doubles-croches par 4 (par temps, par noire) :

  \overrideBeamSettings #'Staff #'(3 . 4) #'end #'((* . (3))
      ((1 . 8) . (6))
      ((1 . 16) . (4 4 4))

J'ai laissé (* . (3)) pour dire que tout ce qui n'est pas spécifié
(les triples-croches, les triolets, ...) seront ligaturés par mesure :
une mesure = 3 temps (3 noires).

Pour ajouter une règle spécifique à une ligature tout en gardant les
autres règles définies par défaut, lire la méthode que j'ai expliqué
ici :
http://lilypond-french-users.1298960.n2.nabble.com/override-auto-beam-setting-tp4871642p4999993.html

Cordialement,
Xavier

--
Xavier Scheuer <[email-masked]>

---

From: Editions IN NOMINE <[email-masked]>
Date: Fri, 07 May 2010 08:28:19 +0200

Merci pour ces précisions, qui me montrent que si cela fonctionnait, ce 
n'était pas pour les raisons que j'invoquais !

Bon, je vais devoir repotasser le sujet qui semble plus complexe que 
prévu...

A bientôt

JMarc