|
From: | Daniel Bernair |
Subject: | Re : Underline / Lyrics et changement de couleur |
Date: | Tue, 1 Mar 2016 19:22:22 +0100 |
Bonjour Pierre, merci pour ta réponse.
J’ai copié ton code en frescobaldi et l’ai compilé sans problème, cela
fonctionne. ainsi. Cependant mon problème est que si j’utilise un système de
plusieurs portées, une par voix, la première portée fonctionnait bien mais dès
le début de la seconde portée, le deuxième soulignage se plaçait sur la
première portée.
J’ai voulu tester ton code , ai duplicié A_XXXIV = \relative do'' {en
A_XXXIVbis= \relative do'' {
et idem pour
le lyric, j’ai déplacé les \startTextSpan et \stopTextSpan
dans chacune des variables en alternance, pour voir le résultat. Le système se prend les pieds dans les bretelles. avec : Avertissement : cannot find start of underline Avertissement : cannot find start of underline ..... Avertissement : cannot find start of underline Avertissement : cannot find start of underline c:/users/daniel/appdata/local/temp/frescobaldi-wkuw6u/tmpbhiuxw/document.ly:70:30: In procedure setter in _expression_ (setter ly:spanner-bound): c:/users/daniel/appdata/local/temp/frescobaldi-wkuw6u/tmpbhiuxw/document.ly:70:30: Wrong type argument in position 1: #<primitive-procedure ly:spanner-bound> Arrêté avec le code de retour 1. Puis, j’ai supprimé les
instruction \startTextSpan et
\stopTextSpan de la variable de la première portée. Après
compilation, je n’ai pls de rejet du compilateur, mais le soulignage se place
sur la première portée et non la deuxième comme montré dan,s l’image du Capture
d’une partie du résultat.
Amicalement
Daniel
Date : mardi 1 mars 2016 10:16
À : Daniel Bernair
Objet : Re: Re : Underline / Lyrics et changement de
couleur Bonjour Daniel, J'arrive un peu après la bataille..Le 29 février 2016 à 07:44, Daniel Bernair <address@hidden> a écrit :
Merci à vous tous pour votre aide. Le résultat des tests est : le surlignage dans sa forme actuelle pose problèmes. En quoi ?
Le choix typographique en Italic fonctionne très bien, mais n'est pas très visible. L'usage de la couleur fonctionne très bien en alternant \override LyricText #'color = #red et \override LyricText #'color = #black à chaque début et fin de corrections, c'est parfait. Attention : le pendant de \override ... est \revert ... et non
\override (warnings garantis).
Dans ton cas, je mettrai donc \revert LyricText.color Après avoir tout lu moi, pour résumer, j'en suis là :
% File from Neil Puttochk % code adapted from regression test `scheme-text-spanner.ly' #(define (add-bound-item spanner item) (if (null? (ly:spanner-bound spanner LEFT)) (ly:spanner-set-bound! spanner LEFT item) (ly:spanner-set-bound! spanner RIGHT item))) #(define (axis-offset-symbol axis) (if (eq? axis X) 'X-offset 'Y-offset)) #(define (set-axis! grob axis) (if (not (number? (ly:grob-property grob 'side-axis))) (begin (set! (ly:grob-property grob 'side-axis) axis) (ly:grob-chain-callback grob (if (eq? axis X) ly:side-position-interface::x-aligned-side ly:side-position-interface::y-aligned-side) (axis-offset-symbol axis))))) #(define (underline-engraver context) (let ((span '()) (finished '()) (current-event '()) (event-drul '(() . ()))) (list (cons 'listeners (list (cons 'text-span-event (lambda (engraver event) (if (= START (ly:event-property event 'span-direction)) (set-car! event-drul event) (set-cdr! event-drul event)))))) (cons 'acknowledgers (list (cons 'lyric-syllable-interface (lambda (engraver grob source-engraver) (if (ly:spanner? span) (begin (ly:pointer-group-interface::add-grob span 'note-columns grob) (add-bound-item span grob))) (if (ly:spanner? finished) (begin (ly:pointer-group-interface::add-grob finished 'note-columns grob) (add-bound-item finished grob))))))) (cons 'process-music (lambda (trans) (if (ly:stream-event? (cdr event-drul)) (if (null? span) (ly:warning "cannot find start of underline") (begin (set! finished span) (ly:engraver-announce-end-grob trans finished current-event) (set! span '()) (set! current-event '()) (set-cdr! event-drul '())))) (if (ly:stream-event? (car event-drul)) (begin (set! current-event (car event-drul)) (set! span (ly:engraver-make-grob trans 'TextSpanner current-event)) (set-axis! span Y) (set-car! event-drul '()))))) (cons 'stop-translation-timestep (lambda (trans) (if (and (ly:spanner? span) (null? (ly:spanner-bound span LEFT))) (set! (ly:spanner-bound span LEFT) (ly:context-property context 'currentMusicalColumn))) (if (ly:spanner? finished) (begin (if (null? (ly:spanner-bound finished RIGHT)) (set! (ly:spanner-bound finished RIGHT) (ly:context-property context 'currentMusicalColumn))) (set! finished '()) (set! event-drul '(() . ())))))) (cons 'finalize (lambda (trans) (if (ly:spanner? finished) (begin (if (null? (ly:spanner-bound finished RIGHT)) (set! (ly:spanner-bound finished RIGHT) (ly:context-property context 'currentMusicalColumn))) (set! finished '()))) (if (ly:spanner? span) (begin (ly:warning "unterminated underline") (ly:grob-suicide! span) (set! span '())))))))) %%% Fin du fichier "underline.ily" %%%%%%%% %%%%%%%%%%%%%%%%%% Exemple %%%%%%%%%%%%%%%%%%%% \version "2.18.2" \include "italiano.ly" %\include "underline.ily" A_XXXIV = \relative do'' { \clef treble \key mi \major \time 3/4 \autoBeamOff \compressFullBarRests R2.*10 sold8.[(la16] si4) si dod8.[( red16] mi4) mi r8 mi([ red]) dod([ si la]) sold4 la sold la4.( si16[ dod]) si4 red4( mi) la, \grace{sold8} fa2 dod' mi4 red sold, lad2 si r4 la!2 r4 la4 sold r R2.*2 la8.([ si16] dod4) dod si8.[( dod16] re4) re r8 re8[( dod]) si[( la sold]) la4 dod si lad2 si4 r fad mi'4 mi( red) % Page 4 la!2 fad4 sold( la8) si fad2 mi4 sol sol sol2.\fermata r4 fad4 mi' mi( red!) la2 fad4 sold( la8) si fad2 mi r4 R2.*4 r4 sold8[( fad mi)] sold fad si la[( sold fad]) la \slurUp sold[( red mi la]) \slurNeutral sold4 r sold8[( fad mi]) sold8 fad si la[( sold fad]) la \slurUp sold[( red mi la]) \slurNeutral sold4 r la8[( sold la]) dod si mi re[( dod re]) re re[( dod si] re) dod4 r la8[( sold la]) dod8 si mi re[( dod re]) re re[( dod si re]) do4 r do fad, fa2 fad4 sold8.[( la16] si4) sold la lad lad si do2 r4 dod red mi1 red4 lad4 do2. dod!2. } RAL_XXXIV = \lyricmode { O \startTextSpan wie brich -- stu mir das Herz, Je -- su, Je -- su welch ein Schmerz, dich al -- so zu se -- hen? O Je -- su, \stopTextSpan o \startTextSpan wie brich -- stu mir das Herz Je -- su Je -- su welch ein Schmerz dich al -- so zu se -- hen, welch ein Schmerz welch ein Schmerz dich al -- so zu se -- hen. \stopTextSpan War \startTextSpan -- test du beÿ al -- ler Pla -- ge ob nicht je -- mand Wie seid tra -- ge, fin -- det solch ein Jam -- mer Rei -- nen men -- schlich gnug dich zu be -- wri -- nen o dir soll ein Le -- bens lang mei -- ne Thrä -- nen und mein Dank nicht ert -- ste -- hen. \stopTextSpan } \score { \new Staff << \new Voice = "A" { \A_XXXIV } \new Lyrics \lyricsto "A" { \RAL_XXXIV } \new Lyrics \with { \consists #underline-engraver \override TextSpanner.direction = #DOWN \override TextSpanner.style = #'line \override TextSpanner.outside-staff-priority = ##f \override TextSpanner.padding = #0.1 % sets the distance of the line from the lyrics \override TextSpanner.bound-details = #`((left . ((Y . 0) (padding . 0) (attach-dir . ,LEFT))) (left-broken . ((end-on-note . #t))) (right . ((Y . 0) (padding . 0) (attach-dir . ,RIGHT)))) }\lyricsto "A" { \RAL_XXXIV } \new Lyrics \with { \override LyricText.color = #blue }\lyricsto "A" { \RAL_XXXIV } \new Lyrics \with { \override LyricText.font-shape = #'italic }\lyricsto "A" { \RAL_XXXIV } >> \layout {} } ~Pierre |
capture.JPG
Description: JPEG image
[Prev in Thread] | Current Thread | [Next in Thread] |