Subject: Evénements "mark simultanés"

From: julien <[email-masked]>
Date: Tue, 12 Sep 2017 14:10:44 -0700 (MST)

Bonjour, 
au même changement de section d'une partition, il y a un segno.

<http://lilypond-french-users.1298960.n2.nabble.com/file/t395454/marzia.jpg> 
Je reçois l'avertissement suivant :

*Avertissement : Deux événements mark simultanés, rejet de celui-ci
       \mark  \markup {\bold {Tempo di marzia}}
 Avertissement : Événement mark précédent ici
  \mark \markup { \musicglyph #"scripts.segno" }*

Comment écrire les deux indications sans que la compilation les rejette ?
Merci pour vos conseils.
Cordialement.

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

---

From: Vincent Gay <[email-masked]>
Date: Tue, 12 Sep 2017 23:17:26 +0200

> Comment écrire les deux indications sans que la compilation les rejette ?

Arf... ce problème revient périodiquement

voici une fonction dont j'ai oublié (si je ne l'ai jamais su) l'auteur
et que j'ai trouvé, je crois, ici même. Colle-la en début de fichier ou
mieux encore dans un fichier inclus.

> ----
> \version "2.18.2"
>
> #(define-public (string-or-markup-or-boolean? e)
> (or (string? e) (markup? e) (boolean? e)))
>
> #(define (double-rehearsalmark-stencil grob)
> (let*
> ((grobs-event (ly:grob-property grob 'cause '()))
>
> (left-label (ly:event-property grobs-event 'left-label))
> (right-label (ly:event-property grobs-event 'right-label))
> (gap (ly:grob-property grob 'gap 1.4)))
> (case (ly:item-break-dir grob)
> ((-1)
> (if (boolean? left-label) empty-stencil
> (grob-interpret-markup grob
> (make-right-align-markup left-label))))
> ((1)
> (if (boolean? right-label) empty-stencil
> (grob-interpret-markup grob
> (make-left-align-markup right-label))))
> (else
> (if (boolean? left-label)
> (grob-interpret-markup grob
> (if left-label
> (make-center-align-markup right-label)
> (make-left-align-markup right-label)))
> (if (boolean? right-label)
> (grob-interpret-markup grob
> (if right-label
> (make-center-align-markup left-label)
> (make-right-align-markup left-label)))
> (ly:stencil-add
> (ly:stencil-translate
> (grob-interpret-markup grob
> (make-right-align-markup left-label))
> (cons (* -0.5 gap) 0.0))
> (ly:stencil-translate
> (grob-interpret-markup grob
> (make-left-align-markup right-label))
> (cons (* 0.5 gap) 0.0)))))))))
>
> doubleMark =
> #(define-music-function
> (parser location left-string right-string)
> (string-or-markup-or-boolean? string-or-markup-or-boolean?)
> (if (and (boolean? left-string) (boolean? right-string))
> (ly:warning "~a \\doubleMark - at least one string or markup required"
> location))
> (make-music 'SequentialMusic
> 'elements (list
>
> (make-music 'ContextSpeccedMusic
> 'context-type 'Score
> 'element
> (make-music 'OverrideProperty
> 'symbol 'RehearsalMark
> 'grob-value double-rehearsalmark-stencil
> 'grob-property-path (list 'stencil)
> 'pop-first #t
> 'once #t))
> (make-music 'ContextSpeccedMusic
> 'context-type 'Score
> 'element
> (make-music 'OverrideProperty
> 'symbol 'RehearsalMark
> 'grob-value #f
> 'grob-property-path (list 'self-alignment-X)
> 'pop-first #t
> 'once #t))
> (make-music 'ContextSpeccedMusic
> 'context-type 'Score
> 'element
> (make-music 'OverrideProperty
> 'symbol 'RehearsalMark
> 'grob-value `#(,(not (boolean? left-string))
> #t
> ,(not (boolean? right-string)))
> 'grob-property-path (list 'break-visibility)
> 'pop-first #t
> 'once #t))
> (make-music 'MarkEvent
> 'label #f
> 'left-label (if (string? left-string)
> (make-simple-markup left-string)
> left-string)
> 'right-label (if (string? right-string)
> (make-simple-markup right-string)
> right-string)
> 'origin location))))
> ----

Il suffit maintenant de faire appel à la fonction par \doubleMark

exemple:
\once\override Score.RehearsalMark.break-visibility = #end-of-line-visible
\once\override Score.RehearsalMark.self-alignment-X = #RIGHT
\doubleMark
\markup {\bold "D.S. al Coda"}
\markup { \box \fontsize #2 \musicglyph #"scripts.coda" }

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

---

From: julien <[email-masked]>
Date: Tue, 12 Sep 2017 14:17:50 -0700 (MST)

Même problème avec les changements de tempo à l'intérieur de la partition
(surtout pour les rendus Midi) :
*Avertissement : Deux événements tempo-change simultanés, rejet de celui-ci
 \tempo 4=100 <a, a'>1 \ff ~  4 r r2
 Avertissement : Événement tempo-change précédent ici
   \tempo "Andante-Récitatif" % mouvement et tempo général*

(Je viens de passer de la version 2.14 à la 2.18, c'est sans doute une
première explication.)
Merci pour vos conseils.