|
From: | Remy CLAVERIE |
Subject: | Re: Double barre de mesure suvie d'une reprise |
Date: | Tue, 24 Mar 2020 12:43:28 +0100 (CET) |
Bonjour Gérard,
À partir des solutions suggérées par Valentin, voici une proposition qui me semble te convenir.
Bonne journée,
Rémy
% ####################################################################
% Début du fichier
% ####################################################################
\version "2.18.2"
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Code provenant de http://lsr.di.unimi.it/LSR/Item?id=1032
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#(define (define-grob-property symbol type? description)
(if (not (equal? (object-property symbol 'backend-doc) #f))
(ly:error (_ "symbol ~S redefined") symbol))
(set-object-property! symbol 'backend-type? type?)
(set-object-property! symbol 'backend-doc description)
symbol)
#(for-each
(lambda (x)
(apply define-grob-property x))
`((tip
,symbol?
"Which bracket tip should be printed for certain BarLines?")))
%% If other symbols than 'up or 'down are used for `BarLine.tip' an
%% automatic procedure takes over trying to choose the correct BarLine, which
%% may work. If not, use 'up and 'down at appropriate place.
%% Limitation:
%% `CertainBracketTipsBarLines' will only work for the default repet-bar-lines,
%% i.e. ":..:", ":|.", ".|:"
CertainBracketTipsBarLines =
\override Score.BreakAlignGroup.after-line-breaking =
#(lambda (grob)
(let* ((elts (ly:grob-object grob 'elements))
(bar-lines
(if (null? elts)
'()
(filter
(lambda (g) (grob::has-interface g 'bar-line-interface))
(ly:grob-array->list elts))))
(possible-relevant-bar-lines
(filter
(lambda (b) (not (null? (ly:grob-property b 'tip))))
bar-lines)))
(if (and (>= (length bar-lines) 2)
(not (null? possible-relevant-bar-lines))
(member
(ly:grob-property (car bar-lines) 'glyph-name)
'(":..:" ":|." ".|:")))
(let* ((possible-top-bar-lines
(filter
(lambda (b) (eq? (ly:grob-property b 'tip) 'up))
bar-lines))
(top-bar-lines
(if (null? possible-top-bar-lines)
(list (car bar-lines))
possible-top-bar-lines))
(bar-lines-list-length (length top-bar-lines))
(possible-bottom-bar-lines
(filter
(lambda (b) (eq? (ly:grob-property b 'tip) 'down))
bar-lines))
(bottom-bar-lines
(if (null? possible-bottom-bar-lines)
(list (last bar-lines))
possible-bottom-bar-lines))
(top-stil
(ly:grob-property (car top-bar-lines) 'stencil))
(bottom-stil
(ly:grob-property (car bottom-bar-lines) 'stencil))
(layout (ly:grob-layout grob))
(props
(ly:grob-alist-chain
grob
(ly:output-def-lookup layout 'text-font-defaults)))
(font
(ly:paper-get-font
layout
(cons '((font-encoding . feta)) props)))
(tip (ly:font-get-glyph font "brackettips.up"))
(top-glyph-name
(ly:grob-property (car top-bar-lines) 'glyph-name))
(up-tip
(cond ((string=? top-glyph-name ":|.")
(ly:stencil-translate-axis
(ly:stencil-scale tip -1 1)
(cdr (ly:stencil-extent top-stil X))
X))
((string=? top-glyph-name ":..:")
(let ((kern
(/ (ly:grob-property (car top-bar-lines)
'kern)
10))
(top-stil-ext (ly:stencil-extent top-stil X)))
(ly:stencil-translate-axis
(ly:stencil-combine-at-edge
(ly:stencil-scale tip -1 1)
X RIGHT
tip
kern)
(- (interval-center top-stil-ext) (/ kern 2))
X)))
(else tip)))
(down-tip (ly:stencil-scale up-tip 1 -1)))
(for-each
(lambda (grobb bar-stil dir tip-style)
(ly:grob-set-property! grobb 'stencil
(ly:stencil-combine-at-edge
bar-stil
Y
dir
tip-style
0)))
(append top-bar-lines bottom-bar-lines)
(append
(make-list bar-lines-list-length top-stil)
(make-list bar-lines-list-length bottom-stil))
(append
(make-list bar-lines-list-length 1)
(make-list bar-lines-list-length -1))
(append
(make-list bar-lines-list-length up-tip)
(make-list bar-lines-list-length down-tip)))))))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%
% Définition de la nouvelle bar
\defineBarLine "||-.|:" #'("||" ".|:" "!")
%%%%%%%%%%%%%%%%%%%%
\header {
title = "Ronde des Valses"
subtitle = "N° 3"
instrument = "Accordéon"
poet = "E. Basile"
%% Je me permets d’ajouter un lien
%% cliquable dans le PDF -vv
tagline = \markup {
Gravé avec LilyPond, un logiciel gratuit et libre
\concat { ( \with-url #"http://lilypond.org" http://lilypond.org ) }
}
}
\paper {
date = #(strftime "%d %b %Y" (localtime (current-time)))
oddFooterMarkup = \markup \fill-line {
\fontsize #-4 { \fromproperty #'header:title }
{ \on-the-fly #last-page
\fontsize #-1 \fromproperty #'header:tagline
% dernière page
\center-column {
\line \italic \fontsize #-1 {GR le \date }}
}
}
}
\layout {
\override Score.BarNumber #'color = #'(0.5 0 0)
\override Score.BarNumber #'font-shape = #'italic
\override Score.BarNumber #'font-size = #1
}
global = {
\key d \major
\time 3/4
\tupletUp
\set Score.markFormatter = #format-mark-circle-numbers
}
right = \relative c' {
\global
a8\f b cis\< d e fis
g fis e fis g a
b a g a b d
cis b a b cis d
%% Le crescendo s’arrête sur la note
%% plutôt que sur le silence;
%% mais cela requiert l’option suivante -vv
\override Hairpin.to-barline = ##f
e4^^\! r r
%% il manque une des deux double-notes -vv
<a, a'>^^ r r
<a, a'>^^ r r
%% R1*3/4 est correct, mais il y a plus
%% simple : -vv
R2.*5\break
\mark \default
%% Hm. Les crochets ne couvrent qu’une portée
%% à la fois. Soit ne pas utiliser \bar du tout,
%% soit utiliser l’astuce décrite sur
%% http://lsr.di.unimi.it/LSR/Item?id=1032
\bar "||-.|:"
%% C’est plutôt comme ceci
%% qu’on va faire : -vv
\repeat volta 2 {
%% Il y a une grande liaison de phrasé -vv
fis'4\p\< (
%% Je me permets de suggérer un rouge
%% qui fait moins mal aux yeux -vv
^\markup \with-color #'(0.5 0 0) { \small \bold TESORO \small \bold MIO \small \bold (E. \small \bold BECCUCCI)} a cis
e2\! d4
%% C’est plutôt une liaison de tenue
%% que de legato -vv
fis2.\> ~
%% Même remarque pour le decrescendo -vv
fis4 )\! r\! \tuplet 3/2 {e8 ( d cis)}
e4 r \tuplet 3/2 {d8 ( cis b)}
d4 r \tuplet 3/2 {cis8 ( b a)}
\bar "||"
} %% fin de la partie invariante de
%% la reprise, maintenant voici 1 et 2 -vv
\alternative {
{
%% Il manque d’autres liaisons -vv
cis2. (
g4) r r
cis,( e g
b2 a8 g
%% Une autre note tenue -vv
fis2. ~
fis4) r r
gis( b d
fis2) e8 d
%% vous pouvez utiliser "q"
%% gagner du temps -vv
cis4 <g cis g'>4. q8 q2 r4
} %% fin du 1 ; voici le 2 -vv
{
cis2. b4 r r
}
}
}
%% Je me permets de compléter
%% la main gauche -vv
left = \relative c' {
\clef bass
\key d \major
<a, a'>4 r r R2.
<e e'>4 r r <a a'> r r
e r r a r r a r r
R2.
d4^\f d' d a, d' d
d,^\mf^\> d' d a, d' d
%% Première reprise
d,\! d' d a, d' d
d, d' d a, d' d
d, d' d a, d' d
e,, a' a a, a' a
e, a' a a, a' a
b, b' b b, b' b
e,, e' e gis, e' e
%% à partir de là j’invente
%% parce que ce n’est pas
%% sur l’image... -vv
a, <a a'>4. q8 q2 r4
s1.
}
%% Et maintenant on met tout ça ensemble,
%% sur deux portées et dans un PianoStaff -vv
\score {
\new PianoStaff
<<
\new Staff \right
\new Staff \left
>>
\layout {
indent = 0\cm
\context {
\Score
\CertainBracketTipsBarLines
}
\context {
\Staff
\override BarLine.tip = #'auto
}
}
}
% ####################################################################
% Fin du fichier
% ####################################################################
> Message du 24/03/20 10:00
> De : "gegeours" <address@hidden>
> A : address@hidden
> Copie à :
> Objet : Re: Double barre de mesure suvie d'une reprise
>
> Bonjour vvillenave,
>
> Ce matin j'ai repris toutes les indications mentionnées sur le déroulement
> de la partition;
>
> 1°) j'ai corrigé la reprise avec \repeat volta2 et \alternative (ce qui
> permet de ne pas mettre les signes de reprises),
>
> 2°) pour les accords j'ai utilisé comme indiqué q8 et q 2 (ce qui permet en
> effet de ne pas répéter les accords lorsqu'ils sont de même nature
>
> 3°) au début de la partition je ne suis pas arrivé à mettre le lien url
> cliquable dans le PDF (\concat (\with_url "http://lilypond etc....). J'ai
> du rater quelque chose.
>
> J'abandonne la reprise avec crochet.
>
> Encore merci pour toutes les précisions ou compléments apportés.
>
>
>
> --
> Sent from: http://lilypond-french-users.1298960.n2.nabble.com/
>
>
[Prev in Thread] | Current Thread | [Next in Thread] |