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

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

RE: nom des variables utilisant des chiffres ?


From: daniel.bernair
Subject: RE: nom des variables utilisant des chiffres ?
Date: Sun, 10 Nov 2019 11:11:21 +0100

Bonjour Valentin,
Contrairement à ce que j'ai compris ta fonction ne s'exécute pas bien. 
Voici ta fonction adaptée : 
%{
voici la fonction que j’utilise ; elle me permet d’enlever toutes les nuances 
sauf celles que j’ai tagguées (ici avec le mot-clé 'ici) et celles pour 
lesquelles 
j’ai indiqué une direction explicite (c’est-à-dire avec _\ff ou ^\ff plutôt que 
\ff tout seul).
Il est également possible de procéder en sens inverse :
garder toutes les nuances sauf celles préselectionnées (il suffit d’enlever le 
"not"
dans le code, avec la parenthèse correspondante).


%}

#(define (dynamic? x)
   (let ((name (ly:music-property x 'name)))
     (or
      (eq? name 'DynamicEvent)
      (eq? name 'AbsoluteDynamicEvent)
      (eq? name 'CrescendoEvent)
      (eq? name 'DecrescendoEvent)
      (eq? name 'SpanDynamicEvent))))

garderNuances =
#(define-music-function (m) (ly:music?)
   (music-filter
    (lambda (x)
      (let ((tags (ly:music-property x 'tags))
            (dir (ly:music-property x 'direction)))
        (not (and
              (dynamic? x)
              (not (memq 'garder tags))
              (null? dir)))))
    m))

enleverNuances =
#(define-music-function (m) (ly:music?)
   (music-filter
    (lambda (x)
      (let ((tags (ly:music-property x 'tags))
            (dir (ly:music-property x 'direction)))
        (not (and
              (dynamic? x)
               (memq 'garder tags)
              (null? dir)))))
    m))
%{ exécution : 
{
  \enleverNuances \musique
}
{
  \garderNuances \musique
}

Et voici le code utilisé 
scoreAPiccoloPart = \new Staff \with {
  instrumentName = "Pic."
  shortInstrumentName = "Pic."
  midiInstrument = "piccolo"
}
%{\removeWithTag #' (sqmenFA sqsigCrA sqsigCrB sqsigCrC sqsigCrD sqsigCrE 
sqsigCrF sqsigCrG sqsigCrH
                      sqsigCrJ sqsigCrK sqsigDcA sqsigDcB sqsigDcC sqsigDcD 
sqFFA sqFFB sqSFA sqSFB sqSFC
                      sqSFD sqSFE sqFsFA sqCreCA sqCreCB sqsempre)
%}
    <<  \scoreAPiccolo << \garderNuances \squelinst >> >> %%%%%%%% inorer 
nuances du squelette

J'ai essayé \garderNuances, \enleverNuances , placés avant le premier << , 
après le premier << , devant ScoreAPiccolo, après \scoreAPiccolo , 
\enleverNuances et \squelinst entre { } ou << >> rien à faire. Le nom des 
fonctions \enleverNuances et \garderNuances sont reconnus.
J'ai peut-être compris à l'enevers garder et enlever, mais rien à faire. 
Voici un extrait du squelette :
   \tag garder s2*7 \myBreakO %8 

  s2*7 \myBreakO %15 
  s2-\tag sqFFA _\ff
  s2*7 \myBreakO %23
  
  \repeat volta2 { 
  s2*5 \myBreakO %28 reprise mesures 23 à 42 
  s2*3 %31
  s2 %32
  s2*3 %35
  s2 \myBreakO  %36
  s2*3  %39
  s2*4 \myBreakO %43 ou 23 ? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  }
  
%%% \set Score.skipTypesetting = ##f %% reprendre les lignes jusqu'au ##f 
  s2 %44
  s2*7 \myBreakO %51
  s2*8 \myBreakO %59
  s8-\tag sqmenFA -\tweak self-alignment-X #0.5 _\menoF s4. %60
  s2*3 %63
  s2 %64
%%%%%%%%%%%%%%%%%%%%%%%%%%
Merci de votre aide à Toi et Pierre
Daniel Bernair
-----Message d'origine-----
De : address@hidden <address@hidden> De la part de Valentin Villenave
Envoyé : vendredi 8 novembre 2019 20:02
À : Pierre Perol-Schneider <address@hidden>
Cc : Daniel Bernair <address@hidden>; lilypond-user-fr <address@hidden>
Objet : Re: nom des variables utilisant des chiffres ?

On 11/8/19, Pierre Perol-Schneider <address@hidden> wrote:
> C'est malin ça, bravo Valentin.
> En revanche, ça ne compile pas bien, peut-être :

Hello Pierre,
je ne comprends pas, chez moi les deux lignes compilent aussi bien :

%%%%%%%%%%%

\version "2.21.0"

#(define (dynamic? x)
   (let ((name (ly:music-property x 'name)))
     (or
      (eq? name 'DynamicEvent)
      (eq? name 'AbsoluteDynamicEvent)
      (eq? name 'CrescendoEvent)
      (eq? name 'DecrescendoEvent)
      (eq? name 'SpanDynamicEvent))))

enleverNuances =
#(define-music-function (m) (ly:music?)
   (music-filter
    (lambda (x)
      (let ((tags (ly:music-property x 'tags))
            (dir (ly:music-property x 'direction)))
        (not (and
              (dynamic? x)
              (not (memq 'ici tags))
              (null? dir)))))
    m))

musique = { c'1\< c'\f c'_\pp c'\fff c' \tag #'ici \sfz }

musiquePPS = { c'1\< c'\f c'_\pp c'\fff c' -\tag ici \sfz }

{  \enleverNuances \musique }

{ \enleverNuances \musiquePPS }

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

D’ailleurs je ne connaissais pas cette syntaxe et je ne la comprends pas très 
bien : \tag peut prendre un simple_string plutôt qu’un scm_symbol maintenant ? 
Et ce tiret, à quoi sert-il ? J’ai d’abord cru que c’était pour utiliser \tag 
comme un post-event mais un petit coup de \displayMusic me montre qu’il ne 
s’applique qu’à l’événement qui suit (AbsoluteDynamic) et non à la note qui le 
précède…

V.


This email has been scanned by BullGuard antivirus protection.
For more info visit www.bullguard.com





reply via email to

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