Passage noires à blanches

Bonjour à tous,

Je dispose de musique déjà tapée sur deux temps constituée principalement de noires. J'aimerais ne conserver que la première note de chaque mesure et la transformer en blanche. Est-ce facilement faisable de manière automatique ?

Exemple

musique = \relative c' {a4 b c d e f g a}
\new Staff {\time 2/4 \musique}

% S'il y avait une commande magique permettant de faire
% musiqueVoulue = \fonctionMagique \musique
% qui ait le même effet que
musiqueVoulue = \relative c' {a2 c e g}
\new Staff {\time 2/4 \musiqueVoulue}

Question subsidiaire: de temps en temps, il y a des passages sous formes de 4 croches, peut-on les garder inchangés ?

Merci pour votre aide,

···

JJ Fleck
Physique et Informatique
PCSI1 Lycée Kléber

Bonjour,

avec Frescobaldi sélectionner la partie concernée puis menu Outils ->
Rythme -> Doubler les durées

Bonne semaine et joyeuses fêtes.

···

Le 23/12/2019 à 09:24, Jean-Julien Fleck a écrit :

Je dispose de musique déjà tapée sur deux temps constituée
principalement de noires. J'aimerais ne conserver que la première note
de chaque mesure et la transformer en blanche.

--
Vincent Gay
Envoyé depuis mon saxo-phone :slight_smile:
http://blog.vintherine.org/ - http://photos.vintherine.org/

Bonjour Vincent,

···

JJ Fleck
Physique et Informatique
PCSI1 Lycée Kléber

Voir éventuellement : http://lilypond-french-users.1298960.n2.nabble.com/reecrire-en-changeant-le-temps-td2967000.html#a2969027
Cordialement,
Pierre

···

Le lun. 23 déc. 2019 à 09:59, Jean-Julien Fleck <****@****> a écrit :

Bonjour Vincent,

Le lun. 23 déc. 2019 à 09:48, Vincent Gay <****@****> a écrit :

Le 23/12/2019 à 09:24, Jean-Julien Fleck a écrit :

Je dispose de musique déjà tapée sur deux temps constituée
principalement de noires. J'aimerais ne conserver que la première note
de chaque mesure et la transformer en blanche.

Bonjour,

avec Frescobaldi sélectionner la partie concernée puis menu Outils ->
Rythme -> Doubler les durées

Merci pour la réponse (qui m'a fait découvrir le menu "Outils") mais malheureusement c'est plus compliqué que cela: je ne veux pas juste doubler les durée de toutes les notes mais doubler les durées et n'en prendre qu'une sur deux (de sorte que la durée totale soit conservée).

Je pensais qu'une fonction scheme pourrait faire une chose pareille, mais je bien incapable d'en écrire pour le moment.
Je vais donc plonger du côté du code de Frescobaldi pour voir si je peux plus facilement adapter le script Python qui permet de doubler toutes les durées.

Merci pour l'idée et bonnes fêtes aussi !

--

JJ Fleck
Physique et Informatique
PCSI1 Lycée Kléber

Facilement, c’est certain pour quelqu’un qui s’y connaît vraiment (ce
qui, hélas, n’est toujours pas mon cas).

J’ai essayé de faire ça de façon sophistiquée et intelligente, mais je
ne parviens qu’à donner un grand coup de massue à la fin avec un code
qui fonctionne mais qui génère tout plein d’erreurs. (La chose
élégante à faire serait d’utiliser 'void, mais pour une raison bizarre
ça ne marche pas.)

Voici :

%%%%

% Pompé sur Gilles:
% http://gillesth.free.fr/Lilypond/extractMusic/extractMusic.ly

#(define (moment->rhythm moment)
   "Try to convert moment to a duration suitable for displaying a note
or a rest,
so in the following form : (ly:make-duration k dots 1 1)
Note that, if moment=5/8, for example, no duration of this form is possible."
   (let* ((p (ly:moment-main-numerator moment))
          (q (ly:moment-main-denominator moment))
          (k (- (ly:intlog2 q) (ly:intlog2 p))))
     (if (< (ash p k) q) (set! k (1+ k)))
     (if (> k 6)
         (ly:make-duration 6 0)
         (let loop ((p1 (- (ash p k) q))
                    (dots 0))
           (let ((p2 (ash p1 1)))
             (if (>= p2 q)
                 (loop (- p2 q) (1+ dots))
                 (let* ((dur (ly:make-duration k dots))
                        (dur-len (ly:duration-length dur))
                        (frac (ly:moment-div moment dur-len)))
                   (ly:make-duration k dots
                     (ly:moment-main-numerator frac)
                     (ly:moment-main-denominator frac)))))))))

simplify =
#(define-music-function (dur m) ((ly:duration? '()) ly:music?)
   (music-map
    (lambda (ev)
      (make-sequential-music
       (list
        (make-apply-context
         (lambda (ctx)
           (let ((pos (ly:moment-main
                       (ly:context-property ctx 'measurePosition)))
                 (len (ly:context-property ctx 'measureLength)))
             (if (and
                  (ly:moment? len)
                  (music-is-of-type? ev 'rhythmic-event))
                 (if (eq? pos 0)
                     (ly:music-set-property! ev 'duration
                       (if (null? dur)
                           (moment->rhythm len)
                           dur))
   ;; Moche, mais efficace…
                     (ly:music-set-property! ev 'name 'portnawak))))))
        ev)))
    m))

\relative {
  \time 2/4
  \simplify {
    a8\f b c b
    r8 a b4~
    \time 3/4
    b a8 b c d
    e4 e e
  }
  \time 5/8
% Pour des mesures plus compliquées,
% indiquer la valeur rythmique souhaitée :
  \simplify 2.*5/6 {
    c8 d e d e f4. e8 d c2*5/4
  }
}

%%%%

V.

···

On 12/23/19, Jean-Julien Fleck <****@****> wrote:

Est-ce facilement faisable de manière automatique ?