Introduction à LilyPond/Le rythme
4. Le rythme
Indication des durées.
Les durées sont indiquées par un nombre qui suit la même convention que l'indication de la mesure.
Les durées sont indiquées après la hauteur de la note, accolée à celle-ci. Pour les valeurs pointées, il suffit d'ajouter un point « codice_1 » après la valeur. Pour le double-point, on met deux points l'un après l'autre après la valeur. 
Lorsque des notes sont liées, on met un tildé « codice_2 » entre elles.
Si l'on n'indique pas de durée, c'est la durée de la note précédente qui s'applique.
Les silences sont indiqués par un codice_3 (pour "rest") suivi de la valeur correspondant à leur durée. Si l'on veut que la marque du silence soit centrée sur la mesure, on utilisera la commande codice_4.
Si un silence s'étale sur plusieurs mesures, on utilise l'astérisque codice_5 pour « multiplier » par le nombre de mesures. Par exemple, pour des mesures à 4/4, un silence s'étendant sur cinq mesures s'écrit codice_6
Les triolets sont introduits par l'instruction codice_7, indiquant que l'on met trois notes dans deux unités de temps (chaque note a deux tiers de la valeur indiquée) ; les notes du triolet sont indiquées entre accolades. Par exemple :
\relative c' {
 c'1 
 c2 r2
Un sextuolet est introduit de la même manière, puisque les notes valent toujours les deux-tiers de la valeur indiquée (on peut aussi écrire codice_10, mais cela ne change rien). Pour que les six notes soient ensembles, il faut mettre un crochet ouvrant "après" la première note et un crochet fermant après la dernière, sinon LilyPond affiche deux triolets à la place :
Depuis la version 2.18, le même résultat s'obtient par la commande codice_13.
Les fractions sont alors inversées : codice_14 est équivalent à codice_7.
Les crochets servent en fait à forcer la longueur du lien (barre liant les notes).
\relative c' {
 \time 4/4 
 c8 c c c 
 c[ c] c c 
Exercice.
Créer un fichier reproduisant la chanson "J’ai du bon tabac", dont les notes ont déjà été vue précédemment, avec le rythme :
\version "2.18.2"
\header {
 title = "J'ai du bon tabac"
 composer = "Gabriel-Charles de Lattaignant"
\score {
 \new Staff \relative c' {
 \time 4/4
 c8 d e c d4 d8 e
 f4 f e e
} 
Mesure.
Pour chiffrer la mesure, on utilise la commande codice_16
en indiquant la fraction : le dénominateur indique l'unité de temps (4 pour la noire, 8 pour la croche…) et le numérateur le nombre d'unités par mesure.
Les barres de mesures sont placées automatiquement par LilyPond.
\relative c' {
 \time 2/2 c1 
 \time 2/4 c2 
 \time 3/4 c2. 
 \time 4/4 c1 
 \time 6/8 c2. 
 \time 12/8 c1. 
Lorsque l'on change de mesure au cours d'un morceau, il peut être intéressant de mettre une instruction codice_17 avant le nouveau chiffrage. Cela permet à LilyPond d'ajuster l'espacement entre les notes différemment : en effet, comme les mesures n'ont pas la même durée, il n'y a pas de raison d'ajuster l'espacement de manière globale pour tout le morceau.
Lorsque l'on a une mesure à 5/4 ou 7/4, on peut la couper avec une barre pointillée avec la commande codice_18, typiquement pour séparer la mesure à 5/4 en 3/4+2/4 (ou 2/4+3/4), ou la mesure à 7/4 en 4//4+3/4 (ou 3/4+4/4).
Cadences.
Il est possible de supprimer provisoirement le découpage en mesures, par exemple pour une cadence. Pour cela, on commence la partie concernée par codice_19, et on la termine par codice_20.
Voir aussi.
"La hauteur des notes" < ↑ > "Une ligne mélodique complète"

DOS/Shift
Introduction.
La commande SHIFT permet de faire un décalage des paramètres.
Dans un script, il est possible d'accéder aux paramètres de la ligne de commande en utilisant les variables %0, %1, %2, etc. L'appel de la commande SHIFT décale le contenu des variables dans la variable précédente, ainsi %0 contient ce que contenait %1, %1 contient ce que contenait %2, etc.
Ceci peut être utile pour lister et traiter tous les paramètres. Il suffit de ne lire que la variable %1 et de faire un appel à la commande SHIFT à chaque boucle.
Utilisation.
 SHIFT "["/"n]"
"n" représente un nombre indiquant le paramètre à partir duquel le décalage des paramètres commence.
Exemple.
Le script suivant affiche les informations sur les paramètres de la ligne de commande en bouclant sur ceux-ci.
 @ECHO OFF
 SET /A nbParams=0
 ECHO Nom de la commande : %0
 :debut_boucle
 IF "%1"=="" GOTO fin_boucle
 ECHO Paramètre courant : %1
 SHIFT
 SET /a nbParams+=1
 GOTO debut_boucle
 :fin_boucle
 ECHO Nombre de paramètres : %nbParams%
Dans cet exemple, la boucle s'arrête lorsque le paramètre est un texte vide signifiant qu'il n'y a plus de paramètre.
Si les paramètres attendus par le batch sont des noms de fichier, pour éviter une erreur avec les noms de fichiers contenant des espaces sur la ligne de code
 IF "%1"=="" 
Il faut passer par une variable intermédiaire et un test de l’existence de cette variable
Comme ceci : 
 @ECHO OFF
 SET /A nbParams=0
 ECHO Nom de la commande : %0
 :debut_boucle
 SET ficparam1=%1
 IF NOT DEFINED ficparam1 GOTO fin_boucle
 ECHO Paramètre courant : %1
 SHIFT
 SET /a nbParams+=1
 GOTO debut_boucle
 :fin_boucle