Subject: Ajout d'une portée de piano en ossia

From: Bernard Meylan <[email-masked]>
Date: Fri, 1 Apr 2022 15:15:11 +0200

Bonjour à toute l'équipe!

J'aimerai ajouter en ossia, au dessus de la main droite d'une portée de 
piano, une portée d'ossia, piano elle aussi.

Lorsque je change le code

\new Staff = "main" \relative {   c''4 b d c   <<     { c4 b d c }     
\new Staff \with {       \remove "Time_signature_engraver"       
alignAboveContext = "main"       \magnifyStaff #2/3       firstClef = 
##f     }     { e4 d f e }   >>   c4 b c2 }

en

\new Staff = "main" \relative {   c''4 b d c   <<     { c4 b d c }     
\new PianoStaff \with {       \remove "Time_signature_engraver"       
alignAboveContext = "main"       \magnifyStaff #2/3       firstClef = 
##f     }     { e4 d f e }   >>   c4 b c2 }

refus complet avec le message suivant:

Interprétation en cours de la 
musique.../usr/share/lilypond/2.22.1/scm/music-functions.scm:2550:19: In 
procedure ly:context-property in expression (ly:context-property Staff 
(quote magnifyStaffValue)):

/usr/share/lilypond/2.22.1/scm/music-functions.scm:2550:19: Wrong type 
argument in position 1 (expecting Context): #f

Arrêté avec le code de retour 1.

Je n'ai trouvé nulle part la possibilité d'ajouter un PianoStaff en 
ossia… Est-ce irréalisable avec la version 2.22.1?

Bernard

---

From: Jean Abou Samra <[email-masked]>
Date: Fri, 1 Apr 2022 16:34:48 +0200

Le 01/04/2022 à 15:15, Bernard Meylan a écrit :
> J'aimerai ajouter en ossia, au dessus de la main droite d'une portée 
> de piano, une portée d'ossia, piano elle aussi.
>
> musique.../usr/share/lilypond/2.22.1/scm/music-functions.scm:2550:19: 
> In procedure ly:context-property in expression (ly:context-property 
> Staff (quote magnifyStaffValue)):
>

Bonjour Bernard,

La commande \magnifyStaff n'est pas faite pour les contextes PianoStaff, 
seulement pour les contextes Staff et apparentés. Il faut la mettre dans 
les Staff, et réduire un peu la distance entre les deux portées à la 
main. Par ailleurs, les accolades de début de système ne sont pas faites 
pour des PianoStaff introduits au milieu de la partition, elle se 
placent au début du système… Voici une solution à la va-vite :

\version "2.22.2"

\new Staff = "main" \relative {
   c''4 b d c
   <<
     { c4 b d c }
     \new PianoStaff \with {
       \remove "Time_signature_engraver"
       alignAboveContext = "main"
       firstClef = ##f
       \override StaffGrouper.staff-staff-spacing =
         #'((basic-distance . 5)
            (minimum-distance . 3))
       \override StaffGrouper.staffgroup-staff-spacing.basic-distance = 5
       \consists
         #(lambda (context)
            (let ((brace #f)
                  (bar #f))
              (make-engraver
                (acknowledgers
                 ((span-bar-interface engraver grob source-engraver)
                    (set! bar grob))
                 ((system-start-delimiter-interface engraver grob 
source-engraver)
                    (set! brace grob)))
                ((stop-translation-timestep engraver)
                   (ly:pointer-group-interface::add-grob brace 
'side-support-elements bar)))))
     }
     <<
       \new Staff \with { \magnifyStaff #5/7 } { e4 d f e }
       \new Staff \with { \magnifyStaff #5/7 } { R1 }
     >>
   >>
   c4 b c2
}

Cordialement,
Jean