help-gnu-music
[Top][All Lists]
Advanced

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

Re: Q: Typesetting 4 parts with a 2 staff reduction


From: Rune Zedeler
Subject: Re: Q: Typesetting 4 parts with a 2 staff reduction
Date: Mon, 02 Apr 2001 18:44:32 +0200

David Petrou wrote:

> I want to typeset four staves for the soprano, alto, tenor, and bass
> parts.  Directly underneath these staves, I want to have a "piano
> reduction" (two staves, treble and bass clef).

You don't mention how you want them compined into the two staves - but
usually they just go two voices on each staff, one with stems up and one
with stems down.
This is really easy to do, just but your voices into variables

sop = \notes {bla blab bla},

etc,
\score { \notes <
  \context Staff=alts {clef G; \alt}
  \context Staff=alts {clef G; \alt}
  ...
  \context GrandStaff <
     \context Staff=up < clef G;
        {\stemUp \tieUp \sop }
        {\stemDown \tiwDown \alt}
     >
     ...
  >  
>}


>   This seems difficult, because ordinarily when I typeset something
>   for one version, I need to make a lot of adjustments that are
>   irrelevant to the other version.  For the piano version, I need to:
>   (1) make horizontal and vertical shifts to prevent collisions; (2)

I think lily handles this automatically.

>   set the stems of the soprano and tenor parts pointed up, and the
>   alto and bass parts pointed down; (3) set the slur directions for
>   the voices similarly; (4) change voices from one staff to another
>   when they go out of the treble or bass clef ranges.  For the four

This is not normal when transcribing choir music in two staves.
AFAIK Lily do not support easy notation of voices changing staves.

>   staff version, since this is a choral fugue, I need to use slurs to
>   indicate melismas, but I want no slurs on the piano version, unless
>   of course I'm extending a note past a bar.

     \context Staff=up < clef G; \property Staff.Slur \override
#'transparent = ##t


>   Maybe I can define commands for the above adjustments with a
>   conditional, so that it's active depending on whether it's in the 4
>   staff or piano staff version.

Lilypond don't support conditionals at the moment, just do the
changesindividually and put the common parts in variables.
If you really need the conditionals, you can save the common parts in
another file include it twice with different settings:

\staffup = \notes {}
...
\include "thenotes.ly"
\sopa = \sop
\alta = \alt
...
\staffup = \notes {\stemDown \translator Staff=up }
...
\include "thenotes.ly"

> - I want the piano staff to be in a smaller font.  I've asked this
>   question before to this list (Mats mentioned that this was an
>   outstanding problem and referred me to
>   http://mail.gnu.org/pipermail/bug-gnu-music/2001-January/000122.html.)
>   Has this problem been resolved?

I don't really know. Of course you can do

  \paper {
    \translator {
        \StaffContext
        \name SmallStaff;
        StaffSymbol \override #'staff-space = #(/ 16 20)
        NoteHead \override #'font-relative-size = #-1
        Stem \override #'font-relative-size = #-1
        Beam \override #'font-relative-size = #-1
        TextScript \override #'font-relative-size = #-1
        Slur \override #'font-relative-size = #-1
        Accidentals \override #'font-relative-size = #-1

        Beam \override #'thickness = #(* 0.48 (/ 16 20))

        Beam \override #'space-function = #(lambda (x) (* (/ 16 20)
(default-beam-space-function x)))
        Clef \override #'font-relative-size = #-1
        TimeSignature \override #'font-relative-size = #-1

        KeySignature \override #'font-relative-size = #-1
        Script \override #'font-relative-size = #-1
        Rest \override #'font-relative-size = #-1
        Dots \override #'font-relative-size = #-1
    }
    \translator { 
      \GrandStaffContext
      \accepts SmallStaff;
    }
    \translator { 
      \ScoreContext
      \accepts SmallStaff;
    }
  }

This is only correct when using 20 pt. paper.
If you are using i.e. 16 pt, replace (/ 16 20) with (/ 13 16) - all
three places. If you want 20 pt but greater difference replace with
(/ 13 20) and replace -1 with -2.
And then ofcource, use SmallStaff instead of Staff in the GrandStaff:

  \context GrandStaff <
     \context SmallStaff=up < clef G;

> - The bar number collides with the staff group symbol.  Also, is there

Add

       BarNumber \override #'padding = #2.0

to the ScoreContext translator in the paper block

>   a way to move the bar numbers down to the piano reduction staves
>   instead of at the top of all the staves?  (I'm trying to copy the
>   Dover Art of Fugue style.)

Add

     \remove Bar_number_engraver;

to the ScoreContext translator (instead of the above) and add

     \consists Bar_number_engraver;
     BarNumber \override #'extra-offset = #'(2 . 2)

to the grandstaff-translator.

(Change the 2 . 2 until you get the desired position of the numbers)


-Rune



reply via email to

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