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

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

Re: BarNumber et mesure à cheval sur 2 lignes


From: Cécile Huneau
Subject: Re: BarNumber et mesure à cheval sur 2 lignes
Date: Sat, 18 Sep 2010 03:46:06 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.9) Gecko/20100915 Thunderbird/3.1.4

Joli raisonnement. J'apporte ma très maigre contribution :

>Le hasard ayant peu de place en cette matière, ça plante complet à l'utilisation
Dans ta fonction mesureD tu as oublié un bout, c'est pour cela que ça plante, il faut vraiment écrire toutes les lignes ci-dessous, car le 2e make-music est inclus dans le premier, il ne se suffit pas à lui-même. Donc :
        (make-music
          'ContextSpeccedMusic
          'context-type
          'Score
          'element
          (make-music
            'PropertySet
            'value
            50
            'symbol
            'currentBarNumber))



>;question : la variable score et son type sont-ils bon ?

Explication, je reprends le début de ta fonction :

mesureD = #(define-music-function (parser location score)(ly:music?)
    ... )


Que tu utilises comme ceci :
{ do4 do do re mi2 re \mesureD do4 mi re re do1}
Telle qu'elle est écrite ta fonction attend un argument. Cet argument vient tout de suite après le nom de la fonction quand elle est appelée.
Quand tu avais utilisé ta fonction "bravo" elle prenait un argument, dans ton exemple {\bravo c4 c c d e2 d \bar "|."} il s'agissait de ce qui suivait, c'est à dire "c4", et ça tombe bien tu avais besoin d'une note où accrocher ton markup. Cet argument avait été baptisé "event-chord", parce que c'est un nom intelligent qui indique bien ce que contient l'argument, mais on aurait très bien pu lui donner un nom idiot. Cet exemple marche aussi :

bravo = #(define-music-function (parser location nom-idiot)(ly:music?)
(let ((pas-mieux (ly:music-deep-copy nom-idiot)))
  (set! (ly:music-property pas-mieux 'elements)
    (cons (make-music ;ici je copie la partie de display.txt qui m'intéresse
          'TextScriptEvent
          'direction
          1
          'text
          "Bravo !") (ly:music-property pas-mieux 'elements)))
  pas-mieux)
  )
\relative c' {\bravo c4 c c d e2 d \bar "|."}

Donc pour répondre à ta première partie de question, que ta variable s'appelle "score" ou "superqualifragnagnagna" on s'en fout, ce qui compte c'est que tu saches à quoi cela correspond. Pour le type, pas d'erreur, quand tu écris { do4 do do re mi2 re \mesureD do4 mi re re do1} ce qui suit \mesureD, donc dans mon exemple do4, est bien du type ly:music

Ma maigre contribution scheme s'arrête là... je suis trop une crasse.
Par contre si je peux me permettre : la numérotation m'a l'air programmée pour n'être affichable qu'aux changement de mesure effectifs, et non sur les barres de mesures. Donc tu peux forcer tout ce que tu veux avec des \break, indiquer à la main \bar "|" ou autre, ça ne t'affichera pas ton numéro en milieu de mesure.

C'est très porc (encore une fois) mais c'est un porc sioux et ça peut peut-être te dépanner en attendant mieux :

--- fichier partA.ly ---
\relative c'' {
    \time 4/4
    \partial 2
    c4 c c d e2 d c4 e d d c2 ~ \partsMesDeux c2 \bar ":|:" \partsBreak
    \partsMesSix d4 d \bar "|" d d a2 \partsMesQuatre a d4 c b a g2 ~ g2}


--- fichier partB.ly ---
\relative c'' {
    \time 4/4
    \partial 2
    c4 c c d e2 d c4 e d d c2 ~ \partsMesDeux c2 \bar ":|:" \partsBreak
    \partsMesSix d4 d \bar "|" d d a2 \partsMesQuatre a d4 c b a g2 ~ g2}


--- fichier score.ly ---
\version "2.13"

noTime = \once \override Staff.TimeSignature #'stencil = ##f


% Parties séparées
partsMesDeux = {\noTime \time 2/4}
partsMesQuatre = {\noTime \time 4/4}
partsMesSix = {\noTime \time 6/4}
partsBreak = \break

\score { \include "partA.ly" }
\score { \include "partB.ly" }


% Partition complète
partsMesDeux = {}
partsMesQuatre = {}
partsMesSix = {}
partsBreak = {}

\score {
    <<
        \new Staff = "PartA" {\include "partA.ly"}
        \new Staff = "PartB" {\include "partB.ly"}
    >>
}

Comme tu peux le voir, tu touches à la partition... mais la bidouille spéciale parties séparées n'affecte pas le conducteur.
Bon, je retourne à mes Legos, c'est moins compliqué.
Cécile

reply via email to

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