Subject: Suite de notes répétées

From: Bernard Meylan <[email-masked]>
Date: Sat, 23 Nov 2019 16:53:13 -0700 (MST)

Bonjour/soir à tout le monde!
 
Dans une pièce, la partie de violon comporte un grand nombre de notes
répétées, par exemple: d d e e g g a a et ceci sur un grand nombre de
mesures. Plutôt que de devoir écrire chaque note deux fois, je cherche le
moyen de les écrire une seule fois pour qu'elles soient, au résultat final,
doublées.

Existe-t-il un code pour ce faire?

-----
Cordialement

Bernard
--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/

---

From: martial <[email-masked]>
Date: Sun, 24 Nov 2019 00:55:20 -0700 (MST)

Bonjour 

Voilà, mais je ne pense pas qu'on y gagne en temps de frappe :-)
%pour version "2.19." 
%==================
\version "2.19.83" 
repeatNote = #(define-music-function (note) (ly:music?)
         (let ((note2 (ly:music-deep-copy note)))
           (set! (ly:music-property note 'NoteEvent)
                 (cons (make-music 'NoteEvent )
                       (ly:music-property note 'NoteEvent)))
           (make-music 'SequentialMusic 'elements (list note note2))))
           
\relative c' { \repeatNote c \repeatNote e \repeatNote g \repeatNote a }      
%==================

-----
♫artial♪

---

From: Olivier Miakinen <[email-masked]>
Date: Sun, 24 Nov 2019 10:57:51 +0100

> Voilà, mais je ne pense pas qu'on y gagne en temps de frappe :-)

Haha ! Je suis persuadé qu'en Scheme il est possible d'écrire une
fonction \repeatNotes que l'on appellerait comme ceci :

\relative c' { \repeatNotes { c e g a } }

---

From: Olivier Geay <[email-masked]>
Date: Sun, 24 Nov 2019 12:20:39 +0100

Bonjour Bernard,

Un autre « truc », mais comme dit précédement, pas sûr qu'il économise
de la frappe :

Il existe la « note » q, qui permet de répéter le dernier accord entré
sous forme <c e g>4. Mais rien n'oblige à mettre plusieurs notes dans
cet accord, ainsi <c>4 q q q répète simplement la note c.

Sinon pour ma part j'ai choisi depuis mes premiers usages de Lilypond
d'utiliser la notation la plus économique en frappes, ainsi mes fichiers
utilisent-ils systématiquement « \include "english.ly" ».

Et enfin, de mon côté je peux très simplement répéter la dernière note
entrée par un raccourci clavier paramétré dans l'éditeur de texte que
j'utilise pour Lilypond (emacs). Voir si cette possibilité existe aussi
sur votre éditeur de texte, je pense que c'est la solution la plus
propre et la plus efficace !

Bonne journée

Olivier

---

From: Bernard Meylan <[email-masked]>
Date: Sun, 24 Nov 2019 04:34:00 -0700 (MST)

Effectivement, le fait de devoir saisir \double c \double e… ralentit
davantage la saisie qu'il ne la facilite. Je pensais exactement à la
solution d'Olivier: une gentille incantation Schème du style:

double = etquejetefaitbégayer

\double {a8 b c d}

ce qui donnerait au final: a8 a b b c c d d

Pour justifier ma flemmingite aigue, le passage à saisir est assez long… 

-----
Cordialement

Bernard

---

From: Valentin Villenave <[email-masked]>
Date: Sun, 24 Nov 2019 13:11:44 +0100

> Pour justifier ma flemmingite aigue, le passage à saisir est assez long…

%%%%%

everythingTwice=
#(define-music-function (m) (ly:music?)
   (make-sequential-music
    (map
     (lambda (ev)
       (make-sequential-music
        (list ev ;; on garde l’événement d’origine
          (music-filter
             (lambda (t)
               (not ;; o va pas répéter les nuances…
                (or (music-is-of-type? t 'span-event)
                    (music-is-of-type? t 'absolute-dynamic-event))))
           (ly:music-deep-copy ev)))))
      ;; à n’appliquer que sur les événements individuels
      ;; (sinon ça va répéter _aussi_ les suites de notes)
     (extract-typed-music m 'rhythmic-event))))

\everythingTwice { b\< a-.\f r\! }

%%%%

---

From: martial <[email-masked]>
Date: Sun, 24 Nov 2019 08:03:03 -0700 (MST)

Merci Valentin,
je suis bourrin en schem ... 

-----
♫artial♪

---

From: Bernard Meylan <[email-masked]>
Date: Sun, 24 Nov 2019 14:29:52 -0700 (MST)

Merci Valentin!

Je comprends pourquoi le code que j'avais inséré

double = #(define-music-function
     (parser location note)
     (ly:music?)
   #{
     $note $note
   #})

me répétait toute la séquence…

-----
Cordialement

Bernard