Subject: portée additionnelle

From: "P.E. Brame" <[email-masked]>
Date: Mon, 23 Apr 2007 20:56:26 +0200

Bonsoir,

Je soumets à votre sagacité le problème suivant :

J'ai une partition de chant choral SATB sur 2 portées, schéma classique.
Pendant quelques mesures les alti quittent la ligne rythmique générale 
pour assurer un contre-chant avec des notes tenues, donc des paroles 
différentes.
Je voudrais que ces mesures soient sur une portée temporaire.
J'ai essayé avec l'exemple extra-staff de la doc : la portée en clef de 
fa se retrouve en haut du système !
Je suppose que lilypond n'arrive pas à gérer le décalage vertical induit 
par cette "verrue" temporaire.

Quelqu'un aurait-il déjà utilisé cette fonctionnalité ?

Je fait un schéma de ce que j'aimerais avoir (une ligne de "=" : une 
portée, une ligne de "-" : paroles)

|================================| S A
|        |======|                | A
|         ------                 |
|--------------------------------|
|--------------------------------|
|================================| T B

le fichier .ly :

\include "italiano.ly"
\version "2.10.10"

Haut = {
\stemUp \slurUp \tieUp \phrasingSlurUp
}

Bas = {
\stemDown \slurDown \tieDown \phrasingSlurDown
}

StaffBeam = {
    #(override-auto-beam-setting '(end 1 8 * * ) 1 4 'Staff)
    #(override-auto-beam-setting '(end 1 8 * * ) 2 4 'Staff)
    #(override-auto-beam-setting '(end 1 8 * * ) 3 4 'Staff)
}
ScoreBeam = {
    #(override-auto-beam-setting '(end 1 8 * * ) 1 4 'Score)
    #(override-auto-beam-setting '(end 1 8 * * ) 2 4 'Score)
    #(override-auto-beam-setting '(end 1 8 * * ) 3 4 'Score)
}

global = {
    \key sib \major
    \time 3/4
    \ScoreBeam
}

\paper {
    %line-width = 18.0 \cm
    ragged-bottom =##t    % ne pas justifier sur la page
    print-first-page-number = ##t
    indent = 0
}
\header {
    title = "Mariages"
    poet = "J.M. Vincent"
    composer = "A. Langrée"
    subtitle = "L'amour comme une danse"
}

PsopCI = \lyricmode {
\set stanza = "1."
Je t'ai -- me ma ten -- dres -- se mon ray -- on de dou -- ceur
Je t'ai -- me mon i -- vres -- se le so -- leil de mon coeur
Je t'ai -- me mon i -- ma -- ge, le re -- flet de mes yeux
Je t'ai -- me ton vi -- sa -- ge vient d'un an -- ge des cieux
}
PsopCII = \lyricmode {
\set stanza = "2."
Je t'ai -- me ma co -- lè -- re, tu me cries ton a -- mour
Je t'ai -- me car la ter -- re tourne en -- core et tou -- jours
Je t'ai -- me dans le dou -- te, au de -- là du soup -- çon
Je t'ai -- me vent en pou -- pe loin des qu'en di -- ra -- t-on
}
Palt = \lyricmode {
L'amour L'amour
}
Phom = \lyricmode {
L'amour qui fait battre les coeurs
La la oh oui
}

NsopC = \context Voice \relative do' { \Haut
    \partial 4 * 1 sib4 re re mib8 fa re4 re sib8 do re4 mib fa fa2 \breathe
    mib4 mib mib fa8 sol mib4 mib do8 re mib4 fa sol la2  \breathe
    fa4 re' re do8 sib re4 re do8 sib re4 do sib sol2 \breathe
    sol4 sol sol la8 sib fa4 fa sol8 la sib4 do re do2
    \bar "|."
}
NaltC = \context Voice \relative do' { \Bas
    re4 sib sib do8 re sib4 sib sib8 do sib4 do re la2
    mib'4 do do re8 mib do4 do do8 re do4 re mib fa2
    fa4 \new Staff { fa2. fad sol sol2 s4 }
    fa4 mib mib mib8 mib re4 re re8 re mi4 mi mi mib2
}
NhomC = \context Voice \relative do' { \Bas
    r4 sol2. fad fa2 fa4 fa8 ( mib ) re4
    do4 do'2. si sib2 sib4 fa sol
    la4 sib sib do8 re sib4 sib do8 re sib4 do re mib2
    re4 mib do do8 do re4 sib sib8 sib sol4 la sib fa ( sol )
}
\score {
    \context ChoirStaff
    {
    <<
        \context StaffGroup {
        <<
            \context Staff = F
            <<
                \set Staff.instrumentName = \markup { \column { S A } }
                \clef violin
                \global
                \context Voice = Vsop { \NsopC }
                \context Voice = Valt { \NaltC }
            \new Lyrics \lyricsto "Vsop" \PsopCI
            \new Lyrics \lyricsto "Vsop" \PsopCII
        }
        \context Staff = H
        {
            \set Staff.instrumentName = \markup { \column { H } }
            \clef bass
            \global
            \context Voice = Vten { \NhomC }
        }
    }
    \header {
        piece = "Couplets"
    }
}

Merci d'avance

P.E. Brame
Kubuntu feisty - lilypond 2.10.14

---

From: Jean-Charles <[email-masked]>
Date: Tue, 24 Apr 2007 14:23:35 +0200

Le 23.04.2007 20:56, P.E. Brame disait :
> [...] 

Le problème tient principalement au fait que chaque pupitre est traité 
dans un contexte VOIX, alors que tu veux ajouter temporairement un 
contexte supérieur (PORTÉE), ce qui n'est pas très logique.
J'ai cependant réussi à obtenir un résultat satisfaisant en ajoutant une 
portée pour cette « ossia », tout en ayant recours à la notion 
d'hara-kiri (RemoveEmptyStaff).

Ton option pourrait être cependant utilisée dans la mesure où chaque 
voix était traitée sur une portée distincte (genre divisi pour les alti).

Je te laisse apprécier les quelques modifications que j'ai apportées au 
fichier original.

@+
Jean-Charles
\include "italiano.ly"
\version "2.10.10"

Haut = {

Bas = {

StaffBeam = {

global = {
    \key sib \major
    \time 3/4
    \ScoreBeam
    \partial 4 s4
    \skip 2.*4 \break
    \skip 2.*4 \break
}

\paper {
%    line-width = 18.0 \cm

PsopCI = \lyricmode {
\set stanza = "1."

PsopCII = \lyricmode {
\set stanza = "2."

Palt = \lyricmode { \override LyricText #'font-shape = #'italic
		    \override LyricText #'font-size =#-0.5
L'a -- mour L'a -- mour
}

Phom = \lyricmode {
L'a -- mour qui fait bat -- tre les cœurs
La la oh oui
}

NsopC = \relative do' { \Haut
    sib4 re re mib8 fa re4 re sib8 do re4 mib fa fa2 \breathe
    mib4 mib mib fa8 sol mib4 mib do8 re mib4 fa sol la2 \breathe
    fa4 re' re do8 sib re4 re do8 sib re4 do sib sol2 \breathe
    sol4 sol sol la8 sib fa4 fa sol8 la sib4 do re do2
    \bar "|."
}

NaltC = \relative do' { \Bas
    re4 sib sib do8 re sib4 sib sib8 do sib4 do re la2
    mib'4 do do re8 mib do4 do do8 re do4 re mib fa2
    fa4 s2.*3 s2
    fa4 mib mib mib8 mib re4 re re8 re mi4 mi mi mib2
}

AltSup = \relative do' {
  \skip 4 \skip 2.*8
  fa2. fad sol sol2
}

NhomC = \relative do' { \Bas

\score {
    \context ChoirStaff
    <<
      \override Score.VerticalAxisGroup #'remove-first = ##t %pas de 1re ligne
      \context Staff = F
        <<
	  \set Staff.instrumentName = \markup { \column { S A } }
	  \clef violin
	  \context Voice = Vsop { <<\global \NsopC >> }
	  \context Voice = Valt { <<\global \NaltC >>}
      \context Staff = SupAlt    \with {
	fontSize = #-2                                      %pour tester
	\override StaffSymbol #'staff-space = #(magstep -2) %pour tester
	}
        <<    
	  \context Voice = ASup {\AltSup}

      \new Lyrics \lyricsto "ASup" \Palt
      \new Lyrics \lyricsto "Vsop" \PsopCI
      \new Lyrics \lyricsto "Vsop" \PsopCII

      \context Staff = H
        <<
	  \set Staff.instrumentName = \markup { \column { H } }
	  \clef bass
	  \context Voice = Vten { <<\global \NhomC >>}
	  \new Lyrics \lyricsto "Vten" \Phom

    \layout {
      \context { \RemoveEmptyStaffContext } %hara-kiri
    }

    \header {
        piece = "Couplets"
    }
}