lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bug arranger.ly et pitchedTrill


From: Gilles Thibault
Subject: Re: bug arranger.ly et pitchedTrill
Date: Thu, 13 May 2021 09:42:05 +0200
User-agent: Webmail Free/1.3.3

Le 2021-05-12 23:41, Jean Abou Samra a écrit :
Le 12/05/2021 à 23:18, Gilles Thibault a écrit :
Gilles, voudrais-tu proposer un patch ? Jette un œil à
http://lilypond.org/doc/v2.23/Documentation/contributor/working-with-source-code pour savoir comment faire.

Hum, j'ai (péniblement) réussi à cloner le répertoire Lilypond.

Parfait.

Faut-il que je crée un "fork" maintenant ? Ils disent dans l'aide que ce n'est pas utile ! Je ne risque pas de mettre le bazar ?


En effet, c'est comme cela qu'il faut procéder tant
que tu n'a pas le droit d'écriture sur le dépôt principal
(qui est accordé après certain nombre de contributions).
Un fork est justement une copie qui n'appartient qu'à toi,
donc tu ne risques pas de mettre le bazar dans quoi que
ce soit.

Rah, au moment où je commençais à comprendre git, je m'aperçois que music-map a changé d'implémentation dans la 2.23.
C'est maintenant :

%%%%%%%%
(define-public (music-selective-map descend? function music)
  "Apply @var{function} recursively to @var{music}, but refrain
from mapping subexpressions of music that does not satisfy
@var{descend?}."
  (if (descend? music)
      (let ((es (ly:music-property music 'elements))
            (e (ly:music-property music 'element)))
        (if (pair? es)
            (set! (ly:music-property music 'elements)
                  (map (lambda (y)
(music-selective-map descend? function y)) es)))
        (if (ly:music? e)
            (set! (ly:music-property music 'element)
                  (music-selective-map descend? function e)))))
  (recompute-music-length (function music)))

(define-public (music-map function music)
  "Apply @var{function} to @var{music} and all of the music it contains.

First it recurses over the children, then the function is applied to
@var{music}."
  (music-selective-map ly:music? function music))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Il n'y est toujours pas question d'articulations donc la nouvelle implémentation serait le code ci-dessous, mais je ne peux rien tester (je ne souhaite pas passer à la 2.23). En particulier cette version a très bien pu changé la structure des notes et des silences et mis par exemple les articulations dans leur propriétés 'elements qui pour le moment est vide '().

Dans 2.22
\displayMusic { c'2-> }
donne
(make-music
  'SequentialMusic
  'elements
  (list (make-music
          'NoteEvent
          'articulations
          (list (make-music
                  'ArticulationEvent
                  'midi-extra-velocity
                  20
                  'articulation-type
                  "accent"))
          'duration
          (ly:make-duration 1)
          'pitch
          (ly:make-pitch 0 0))))

C'est toujours le cas dans 2.23 ?



%% Proposition de patch %%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

(define-public (music-selective-map descend? function music)
  "Apply @var{function} recursively to @var{music}, but refrain
from mapping subexpressions of music that does not satisfy
@var{descend?}."
  (if (descend? music)
      (let ((es (ly:music-property music 'elements))
            (as (ly:music-property music 'articulations))
            (e (ly:music-property music 'element)))
        (if (pair? es)
            (set! (ly:music-property music 'elements)
                  (map (lambda (y)
(music-selective-map descend? function y)) es)))
        (if (pair? as)
            (set! (ly:music-property music 'elements)
                  (map (lambda (y)
(music-selective-map descend? function y)) as)))
        (if (ly:music? e)
            (set! (ly:music-property music 'element)
                  (music-selective-map descend? function e)))))
  (recompute-music-length (function music)))

(define-public (music-map function music)
  "Apply @var{function} to @var{music} and all of the music it contains.

First it recurses over the children, then the function is applied to
@var{music}."
  (music-selective-map ly:music? function music))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

--
Gilles



reply via email to

[Prev in Thread] Current Thread [Next in Thread]