Subject: [LilyPond] Raccourcis pour les « flas »

From: Denis Bitouzé via LilyPond <[email-masked]>
Date: Sun, 26 Oct 2025 18:24:28 +0000

Bonjour,

en mode « drum », un « fla » sur la caisse claire (CC) se note `\appoggiatura sn16 sn8` et, lorsque ce coup est à saisir fréquemment, cela devient un peu pénible. Y a-t-il moyen d'avoir un raccourci, disons `\fla` pour cela ?

Bien sûr, après, on a forcément envie de faire des flas sur autre chose que la CC, par exemple sur le tom aigu (`tomh`), etc. Y aurait-il possibilité de créer, comme en LaTeX, des commandes à argument optionnel, disons donc ici `\fla`, qui par défaut serait un fla sur la CC mais qui, utilisée ainsi `\fla[tomh]`, serait un fla sur `tomh` ?

Merci d'avance.

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/raccourcis-pour-les-flas/5999/1).

Pour créer un nouveau sujet, écrivez à [[email-masked]](mailto:[email-masked]) ou visitez la [page d'accueil de lilypond.community](https://lilypond.community).

---

From: Olivier Miakinen via LilyPond <[email-masked]>
Date: Sun, 26 Oct 2025 21:07:07 +0000

Bonjour,

> en mode « drum », un « fla » sur la caisse claire (CC) se note `\appoggiatura sn16 sn8` et, lorsque ce coup est à saisir fréquemment, cela devient un peu pénible. Y a-t-il moyen d'avoir un raccourc…

Probablement :
fla = { \appoggiatura sn16 sn8 }

> Bien sûr, après, on a forcément envie de faire des flas sur autre chose que la CC, par exemple sur le tom aigu (`tomh`), etc. Y aurait-il possibilité de créer, comme en LaTeX, des commandes à argum…

Là je laisse répondre les spécialistes, mais c'est certainement
possible, soit avec une fonction Scheme, soit avec \etc :

https://lilypond.org/doc/v2.24/Documentation/notation/substitution-function-examples.fr.html

Cordialement,
-- 
Olivier Miakinen

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/raccourcis-pour-les-flas/5999/2).

---

From: Denis Bitouzé via LilyPond <[email-masked]>
Date: Sun, 26 Oct 2025 22:11:56 +0000

Mimypond est très vexante :

> error: wrong type for argument 1.  Expecting music, found "sn"
> 
> ```
> fla = { \appoggiatura 
>                       sn16 sn4 }
> ```

Comme si le son d'une caisse claire, ça n'était pas de la musique ?! :wink: 

Question subsidiaire : serait-il possible que la durée du fla soit précisée, non pas à sa définition, mais à son emploi : `\fla4`, `\fla8`, etc. ?

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/raccourcis-pour-les-flas/5999/3).

---

From: Jean Abou Samra via LilyPond <[email-masked]>
Date: Sun, 26 Oct 2025 23:47:40 +0000

Comme `sn` n'est pas une note normale, il faut placer le fragment dans `\drummode`.

```
\version "2.24.4"

fla = \drummode { \appoggiatura sn16 sn8 }

\drums { \fla \fla \fla }
```

Pour faire de la durée un argument :

```
\version "2.24.4"

fla =
#(define-music-function (d) (ly:duration?)
   #{ \drummode { \appoggiatura sn16 sn$d } #})

\drums { \fla4 \fla8 \fla8 }
```

On peut aussi faire du type de percussion un argument, mais c'est un peu plus compliqué. De plus, les commandes LilyPond ne peuvent pas prendre d'arguments optionnels comme avec `\command[option]` en LaTeX. Il faut créer une commande séparée.

```
\version "2.24.4"

flaa =
#(define-music-function (d s) (ly:duration? ly:music?)
   #{ \drummode { \appoggiatura #(make-music 'NoteEvent s 'duration (ly:make-duration 4))
                  #(make-music 'NoteEvent s 'duration d) } #})

\drums { \flaa 4 sn \flaa 2 sn \flaa 8 tomh }
```

(J'ai mis la durée en premier, sans quoi `\flaa sn 4` est compris comme [`\flaa`] [`sn4`] plutôt que [`\flaa`] [`sn`] [`4`].)

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/raccourcis-pour-les-flas/5999/4).

---

From: Denis Bitouzé via LilyPond <[email-masked]>
Date: Mon, 27 Oct 2025 07:26:47 +0000

Merci Jean, ça fonctionne impeccablement !

Comme ces « flas » et autres « ras » sont très courants en percussion, il serait selon moi souhaitable d'ajouter de telles définitions à Lilypond. Penses-tu que c'est une requête que je puisse raisonnablement soumettre aux actuels développeurs ?

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/raccourcis-pour-les-flas/5999/5).

---

From: Denis Bitouzé via LilyPond <[email-masked]>
Date: Mon, 27 Oct 2025 07:32:58 +0000

En revanche, ce qui est un peu bogogène, c'est que dans :
```
sn8 sn \flaa 4 sn sn
```
le dernier `sn` n'a pas la durée d'une noire comme la note précédente (`\flaa 4 sn`) mais une croche comme la note précédant le fla.

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/raccourcis-pour-les-flas/5999/6).

---

From: Denis Bitouzé via LilyPond <[email-masked]>
Date: Mon, 27 Oct 2025 08:47:52 +0000

> le dernier `sn` n'a pas la durée d'une noire comme la note précédente (`\flaa 4 sn`) mais d'une croche comme la note précédant le fla.

D'ailleurs, peut-être est-ce lié, mais même la commande plus simple `\fla` ne bénéficie pas de la durée de la note précédente :
```
\version "2.24.4"

fla =

\drums { sn4 \fla \fla8 \fla8 }
```
conduit à l'erreur suivante :
> /tmp/frescobaldi-kz2w82zg/tmpm4f1xicp/document.ly:7:19: error: wrong type for argument 1.  Expecting duration, found `(make-music (quote SequentialMusic) (quote elements) (list (make-music (quote GraceMusic) (quote element) (make-music (quote SequentialMusic) (quote elements) (list (make-music (quote SequentialMusic) (quote elements) (list (make-music (quote EventChord) (quote elements) (list (make-music (quote SlurEvent) (quote spanner-id) (quote grace) (quote span-direction) -1))))) (make-music (quote NoteEvent) (quote drum-type) (quote snare) (quote duration) (ly:make-duration 4)) (make-music (quote SequentialMusic) (quote elements) (list (make-music (quote EventChord) (quote elements) (list (make-music (quote SlurEvent) (quote spanner-id) (quote grace) (quote span-direction) 1)))))))) (make-music (quote NoteEvent) (quote drum-type) (quote snare) (quote duration) (ly:make-duration 3))))`
> `\drums { sn4 \fla` 
>  `                   \fla8 \fla8 }`

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/raccourcis-pour-les-flas/5999/7).

---

From: Jean Abou Samra via LilyPond <[email-masked]>
Date: Wed, 29 Oct 2025 18:00:35 +0000

Tu as raison, je n'y avais pas pensé. La durée par défaut change à chaque note qui porte une durée explicite, mais pas avec une durée qui n'est pas attachée à une note (un argument à une fonction en l'occurrence). Finalement, le mieux est sans doute

```
\version "2.24.4"

fla =
#(define-music-function (note) (ly:music?)
   (let* ((app-note (make-music 'NoteEvent note 'duration (ly:make-duration 4))))
     #{ \appoggiatura #app-note #note #}))

\drums { \fla sn4 \fla sn \fla tomh2 \fla 2 \fla sn4 \fla 4 }
```

Cette fonction prend une note et rajoute simplement dessus une appogiature est identique excepté pour sa durée, qui est d'une double croche. Il n'y a pas de paramètre optionnel pour le type de percu, mais comme illustré dans l'exemple, si c'est le même que la note précédente, tu peux saisir simplement sa durée, comme d'habitude.

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/raccourcis-pour-les-flas/5999/8).