gnu-music-discuss
[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: David Petrou
Subject: Re: Q: Typesetting 4 parts with a 2 staff reduction
Date: Mon, 2 Apr 2001 21:10:26 -0400
User-agent: Mutt/1.2.5i

> > 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.

yup, that's what i wanted.

> 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}
>      >
>      ...
>   >  
> >}
[...]

I used a similar suggestion from another user and got it working
great.  thanks...

> >   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.

See my recent post.  I normally need to make many minor adjustments
that the collision detection stuff doesn't handle.

> >   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.

I want the piano part to be easy for a piano player.  So I'd like to
change the staff when reasonable.  (reasonable != autochange.)

> >   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

thanks.  that works great.  there may be some times that i need
non-lyric-related slurs in the piano part, though.  like if i want to
note something like: ds2( )ds8 b cs d within a measure.  i think i'll
need to get Mats suggestion working for this type of hackery.

> >   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 don't see what problems this solves that can't be solved by the
other suggestions to my problems.  By conditional, I mean something
within a \notes that would do "if i'm in the piano staff, add these
horizontal and vertical shifts, etc.".

> > - 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;

This almost works.  First, I was more interested in reducing the size
of the piano staff, not the other 4 staves.  But I tried reducing the
four voices anyway to see how it would look.  Unfortunately, there's
some weird reaction with the lyrics and I got lots of barcheck
failures and unfeasible line breaks.  I'm too much of a lily butthead
to figure out the problem.  If it would help, I could provide my music
source.

So, I tried making it work for the piano staff by \StaffContext above
to \PianoStaffContext.  It almost works.  I need to figure out how to
get one piano brace for both staves instead of individual braces.

Also, whole rests seem to be in the original (unshrunken) size.

> > - 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

great.  thanks.

> >   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)

thanks!  i actually figured out the extra-offset part after mats
advised me on moving it down in a previous message.

> -Rune

thanks again,
david



reply via email to

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