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

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

Re: Fonte pour basse chiffrée


From: Bernard Meylan
Subject: Re: Fonte pour basse chiffrée
Date: Wed, 21 Dec 2022 20:05:08 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2

La solution que vous proposez marche avec un petit bémol (si j'ose dire):

lorsqu'on utilise un chiffrage comme celui-ci <4+> le rendu est parfait (4#); mais lorsqu'on utilise l'altération seule <_+> (#) Lilypond donne un rendu exact, mais accompagné de ce message d'erreur:

/mnt/Linux-Cagibi/Lily/Strozzi/Sacri_musicali_affetti/probleme.ly:79:47: Erreur : n'est pas un « markup »

\align-on-other #Y #CENTER

#fig-markup #CENTER

/home/bameylan/lilypond-2.24.0/share/lilypond/2.24.0/ly/init.ly:65:2: Erreur : erreur dans #{ ... #}

#

(let ((book-handler (if (defined? 'default-toplevel-book-handler)

Voici le fichier «probleme.ly»

\version "2.24.0" #(set-global-staff-size 20) \header { % Supprimer le pied de page par défaut tagline = ##f } #(define figbass-accidental-alist '((-1 . "accidentals.flatflat") (-1/2 . "accidentals.flat") (0 . "accidentals.natural") (1/2 . "accidentals.sharp") (1 . "accidentals.doublesharp"))) #(define (modified-format-bass-figure figure event context) (let* (;; User properties controlling the figured bass layout. (large-number-alignment (ly:context-property context 'figuredBassLargeNumberAlignment)) (figbass-alist (ly:context-property context 'figuredBassPlusStrokedAlist)) (alt-dir (ly:context-property context 'figuredBassAlterationDirection)) (plus-dir (ly:context-property context 'figuredBassPlusDirection)) (augmented (ly:event-property event 'augmented)) ;; The digit(s), horizontally positioned, or #f. (fig-markup (if (number? figure) ((if (<= 10 figure) (lambda (y) (make-align-on-other-markup X large-number-alignment (make-number-markup "1") large-number-alignment y)) identity) (cond ((eq? #t (ly:event-property event 'diminished)) (make-slashed-digit-markup figure)) ((eq? #t (ly:event-property event 'augmented-slash)) ;; Use specially stroked digit if available and wanted. (or (and-let* (((<= 6 figure 9)) (glyph (assv-ref figbass-alist figure))) (make-musicglyph-markup glyph)) (make-backslashed-digit-markup figure))) ((eq? #t augmented) ;; Use special digit with plus if available and wanted. (or (and-let* (((>= 5 figure 2)) ((eqv? plus-dir RIGHT)) (glyph (assv-ref figbass-alist figure))) (set! augmented #f) (make-musicglyph-markup glyph)) (make-number-markup (number->string figure 10)))) (else (make-number-markup (number->string figure 10))))) #f)) (alt (ly:event-property event 'alteration)) (alt-bracket (ly:event-property event 'alteration-bracket #f)) ;; The alteration, probably bracketed but not positioned yet, ;; or #f. (alt-markup (if (number? alt) ((if alt-bracket make-bracket-markup identity) (let ((glyph (or (assv-ref figbass-accidental-alist alt) (begin (ly:warning (G_ "no accidental glyph found for alteration ~a") alteration) #\?)))) ;;; ====== À ajuster ========== #{ \markup \override #'(font-name . #f) \fontsize #-3 \align-on-other #Y #CENTER #fig-markup #CENTER \musicglyph #glyph #})) #f)) (plus-markup (if (eq? #t augmented) (make-number-markup "+") #f))) (if (and (not alt-markup) alt-bracket) (ly:programming-error "Cannot put brackets around non-existent bass figure alteration.")) ;; We treat a solitary alteration similarly to digits. (if (and (not fig-markup) alt-markup) (begin (set! fig-markup (make-align-on-other-markup X CENTER (make-number-markup "1") CENTER alt-markup)) (set! alt-markup #f))) ;; We treat a solitary plus similarly to digits (but enlarged). (if (and (not fig-markup) plus-markup) (begin (set! fig-markup (make-align-on-other-markup Y CENTER (make-number-markup "1") CENTER (make-align-on-other-markup X CENTER (make-number-markup "1") CENTER (make-fontsize-markup 3 plus-markup)))) (set! plus-markup #f))) ;; The alteration gets attached either to the left or the right of ;; the digit(s). (if alt-markup (set! fig-markup (make-put-adjacent-markup X (if (number? alt-dir) alt-dir LEFT) fig-markup (make-pad-x-markup 0.1 alt-markup)))) ;; Ditto for the plus mark. (if plus-markup (set! fig-markup (if fig-markup (make-put-adjacent-markup X (if (number? plus-dir) plus-dir LEFT) fig-markup plus-markup) plus-markup))) (if (markup? fig-markup) (make-fontsize-markup 0 fig-markup) (make-null-markup)))) global = { \key c \major \time 4/4 } bcMusic = \relative c { \global c4 c c d e2 d } bcFigures = \figuremode { \global \set figuredBassAlterationDirection = #RIGHT \override BassFigure.font-name = #"Garamond Premier Pro" % \override BassFigure.font-size = #2 <4>4 <4+> <_-> } \score { << \new FiguredBass \bcFigures \new Staff { \clef bass \bcMusic } >> \layout { \context { \Score figuredBassFormatter = #modified-format-bass-figure } } }

En résumé: le chiffre seul fonctionne, le chiffre avec une altération quelle qu'elle soit aussi, mais l'altération seule provoque le message d'erreur; mais je le répète, le rendu est parfait.

Bernard


reply via email to

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