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

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

fonction qui marche plus / quand on passe d'une version à une autre…


From: Loïc Chahine
Subject: fonction qui marche plus / quand on passe d'une version à une autre…
Date: Fri, 26 Apr 2013 11:29:10 +0200
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130328 Thunderbird/17.0.5

Bonjour à tous,

Je dois dire que je suis un peu agacé. J’avais écrit une magnifique fonction en version 2.15.38, pour les blocs score qui sont identiques. Je comptais généraliser ce genre de procédé (au bout d’un moment, réécrire pour la 59e fois le même \score { gnia gnia gnia… }…), sauf que évidemment en version 2.16 ça compile, mais en fait ça marche pas. J’ai pas de partition, au bout, juste les titre.
(Et je découvre aussi que dans Frescobaldi, pour copier-coller la sortie avec les erreurs, bah c’est simple, ça marche pas… C’est mon jour, décidément.)

Voici la fonction en question :

#(define (add-toc-item parser markup-symbol text)

(collect-music-for-book parser

(add-toc-item! markup-symbol text)))

#(define-public fable-number 0)

fableScore =

#(define-music-function

(parser location leTitre laMorale lAir laClef leLivre laFable)

(string? string? string? string? number? number?)

(define laStructure

(string-append (format #f "~a" leLivre)

(string-append "/"

(string-append (format #f "~a" laFable) "/structure.ly"))))

(define leDessus

(string-append (format #f "~a" leLivre)

(string-append "/"

(string-append (format #f "~a" laFable) "/voix.ly"))))

(define laBasse

(string-append (format #f "~a" leLivre)

(string-append "/"

(string-append (format #f "~a" laFable) "/basse.ly"))))

(define lesChiffres

(string-append (format #f "~a" leLivre)

(string-append "/"

(string-append (format #f "~a" laFable) "/chiffres.ly"))))

(define lesParoles

(string-append (format #f "~a" leLivre)

(string-append "/"

(string-append (format #f "~a" laFable) "/paroles.ly"))))

(define lesCouplets

(string-append (format #f "~a" leLivre)

(string-append "/"

(string-append (format #f "~a" laFable) "/couplets.ly"))))

(define laRef

(string-append (format #f "address@hidden" leLivre)

(string-append ":" (format #f "~a" laFable))))

(set! fable-number (1+ fable-number))

(add-text parser #{

\markup {

\column {

\vspace #1

\line {

\fill-line {

\override #'(font-name . "Adobe Caslon Pro")

\fontsize #1 #(format #f "Fable address@hidden" fable-number) }

}

\line {

\fill-line {

\override #'(font-name . "Adobe Caslon Pro Italic")

\fontsize #4 $leTitre }

}

\line {

\fill-line {

\override #'(font-name . "Adobe Caslon Pro")

\fontsize #1.5 $laMorale }

}

\line {

\fill-line {

\null

\override #'(font-name . "Adobe Caslon Pro Italic")

\fontsize #1 $lAir

\override #'(font-name . "Adobe Caslon Pro")

$laRef

}

}

}

}

#})

(add-toc-item parser 'tocFableMarkup leTitre)

(add-toc-item parser 'tocAirMarkup lAir)

;; ajout du \noPageBreak au top-level

(add-music parser

(make-music 'Music

'page-marker #t

'page-break-permission 'forbid))

#{\new ChoirStaff

<<

\new Staff {

\autoBeamOff

% \tempo $leChemin

\clef $laClef %\staffStart

<< \include $laStructure \include $leDessus >>

}

\addlyrics {

\set stanza = "1."

\include $lesParoles

}

\new Staff {

\autoBeamOff

\clef basse \staffStart

<< \include $laStructure \include $laBasse >>

}

\figures {

\include $lesChiffres

}

>>

#}

)


Un exemple d’utilisation :

\fableScore #"La Fourmi et la Sauterelle" #"L’Oisiveté" #"Sur l’air « Qui l’entend mieux »"

#"soprano" #1 #2

(ça allait chercher parfaitement bien dans le dossier 1/2/ ce qu’il fallait, etc.)

Comment mettre ça à jour pour que ça compile à nouveau ?


---

Derrière ce problème, il y a, à mon sens, un problème récurrent : celui de tous ceux qui comme moi galèrent à écrire des fonctions de ce genre, en réfléchissant beaucoup et en agglomérant du code trouvé çà et là, sans forcément faire ça régulièrement, et sans avoir une compréhension immédiate et très avisée des détails, et qui du coup pour mettre à jour les fonctions de ce genre d’un passage de version à l’autre, galèrent ou abandonnent.

Par exemple, les fameuses fonctions que j’avais co-écrites avec B. Bordage pour les ornements et doigtés spécifiques à la viole de gambe, ça fonctionne plus. Ça compile, mais ça ne donne pas le résultat, et pour savoir pourquoi, il faut avoir bien l’habitude, être versé là-dedans, etc.
Je pense ne pas être le seul qui n’aie pas le temps (ni vraiment l’envie d’ailleurs puisque de toute façon c’est hors de portée et je ne comprendrais rien les 3/4 du temps) de lire tout le détail des modifications d’une version à l’autre.

C’est peut-être pas très constructif dit comme ça, mais ça peut, peut-être, le devenir au fil d’éventuels échanges à ce propos…
Bien à vous tous,
L.C.

reply via email to

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