[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Centrer une note entre deux portées
From: |
Bigane |
Subject: |
Re: Centrer une note entre deux portées |
Date: |
Fri, 16 Jan 2009 23:46:12 +0100 |
User-agent: |
Thunderbird 2.0.0.19 (Windows/20081209) |
Gilles THIBAULT a écrit :
Ben là,on ne voit que la couverture du livre ... Dommage.
J'ai cherché une page du livre mais sans succès.
Il sagit de l'objet LedgerLineSpanner
(c'est pas du tout facile à trouver, d'autant que même la traduction
de Ledger (= moise) necessite un dictionnaire français (pour moi en
tout cas qui ne suis pas charpentier...)).
Merci du renseignement, j'avais beau cherché je n'arrivait pas à trouver
le nom de cet objet.
La suite semble encore plus complexe que je ne le pensais : l'objet n'a
pas de référence claire avec la note (les notes) pour laquelle il a été
créé.
L'évaluation des Ledgers commence au début de l'écriture d'une portée
(qui peut être multiple). Au bout de la ligne c'est au tour des notes.
Puis on recommence pour la portée suivante.
Aucune des propriétés de l'objet ne fait référence à une note précise
(ce qui est normal en fait, puis qu'il peut être généré pour plusieurs
notes). Sa position est connue mais impossible de savoir si elle se
situe sous une portée ou au dessus, donc c'est encore négatif de ce
côté. Reste une piste : l'objet LedgerLineSpanner supporte l'interface
ledger-line-spanner-interface qui possède comme propriété interne une
liste de notes (note-heads).
On pourrait donc prendre la première note de cette liste et utiliser sa
position ou son nom pour déplacer le LedgerLineSpanner.
Seulement, mes connaissances en LilyPond sont bien trop faibles pour
envisager une telle manipulation.
Autre solution, on peut forcer le do' à toujours provenir de la clé de
Sol. Ainsi chaque LedgerLineSpanner est connu d'avance et peut être
décalé vers le bas.
Là je me heurte à la commande \autochange qui distribue la position du
do' en fonction de la note précédente...grr ... le seul moyen serait
donc de me passer de cette commande bien sympathique.
Pour ce soir je joue la facilité : je rend invisible le trait alors que
je pouvais le déplacer et le colorier. On verra bien pour la solution
finale.
Fait nous quand même part de ta solution finale, car elle peut être
instructive pour nous.
Voici donc une solution intermédiaire sans LedgerLineSpanner en
attendant le remplacement de \autochange.
à bientôt,
Yves
%%%%%%%%%%%%%%
\version "2.12.1"
\include "italiano.ly"
#(ly:set-option 'point-and-click #f) % supprime le clic http sur les notes
\paper{
%paper-width = 2\cm
top-margin = 3\cm
bottom-margin = 3\cm
ragged-last-bottom = ##t
indent = #0 % évite le retrait de la première portée
%between-system-padding = #2.0 % espace entre les portées
}
#(define (deplacer grob)
"Calcule un déplacement de la note si c'est un do"
(let* ((p (modulo (ly:grob-property grob 'staff-position) 7) ))
(cond
((= p 1) '(0 . -1.25))
((= p 6) '(0 . 1.25))
(else '(0 . 0))
)
)
)
#(define (colorier grob)
"Colorie la note do en rouge... ne fonctionne que partiellement."
(let ((mod-position (modulo (ly:grob-property grob 'staff-position) 7) ))
(case mod-position
;; Retourne une couleur selon la position
((1) (x11-color 'red )) ; do
((2) (x11-color 'black )) ; re
((3) (x11-color 'black )) ; mi
((4) (x11-color 'black )) ; fa
((5) (x11-color 'black )) ; sol
((6) (x11-color 'red )) ; la ou do sur clef de Fa
((0) (x11-color 'black )) ; si
)
)
)
presentation = {
\override Staff.NoteHead #'color = #colorier
\override Staff.NoteHead #'extra-offset = #deplacer
}
\header {
% au centre
%dedication = ""
title = \markup { \italic Entrainement }
subtitle = ""
%instrument = ""
%year = ""
% invisible
%enteredby = "Moi"
% a gauche
%piece = "nom"
% a droite
%composer = ""
% en bas de page
%copyright = "public domain"
% tag de lilypond :
tagline = ""
}
un = {
do' si si do' do' re' re' do' do' si do' do' \break
do' re' re' do' re' do' si re' si re' do' re' \bar "|."
}
deux = {
do' re' do' si si do' re' do' do' re' do' re' \break
do' re' do' si re' si re' re' do' si do' si \bar "|."
}
\layout {
ragged-right = ##f
\context { \Score
\remove Bar_number_engraver % suppression des numéro de Bar
}
\context { \Staff
% tentative de déplacement de LedgerLineSpanner
%\override LedgerLineSpanner #'color = #red
%\override LedgerLineSpanner #'extra-offset = #'(0 . -1.25)
\override LedgerLineSpanner #'stencil = ##f
\override TimeSignature #'stencil = ##f
\override Stem #'transparent = ##t
}
}
\score {
\new PianoStaff <<
\set PianoStaff.instrumentName = \markup { \bold \huge "1 " }
\set Score.defaultBarType = #""
\new Staff = "up" {
\clef treble
\presentation
\autochange { \un }
}
\new Staff = "down" {
\clef bass
\presentation
}
>>
}
\score {
\new PianoStaff <<
\set PianoStaff.instrumentName = \markup { \bold \huge "2 " }
\set Score.defaultBarType = #""
\new Staff = "up" {
\clef treble
\presentation
\autochange { \deux }
}
\new Staff = "down" {
\clef bass
\presentation
}
>>
}
- Centrer une note entre deux portées, Bigane, 2009/01/14
- Re: Centrer une note entre deux portées, Gilles THIBAULT, 2009/01/14
- Re: Centrer une note entre deux portées, Bigane, 2009/01/14
- Re: Centrer une note entre deux portées, Gilles THIBAULT, 2009/01/15
- Re: Centrer une note entre deux portées, Bigane, 2009/01/15
- Re: Centrer une note entre deux portées, Gilles THIBAULT, 2009/01/16
- Re: Centrer une note entre deux portées,
Bigane <=
- Re: Centrer une note entre deux portées, Bigane, 2009/01/21
- Re: Centrer une note entre deux portées, Gilles THIBAULT, 2009/01/22