[Top][All Lists]
[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