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

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

Re: Bars


From: Juergen Reuter
Subject: Re: Bars
Date: Tue, 24 Apr 2001 11:42:00 +0200

Rune wrote:
> AFAIU, he doesn't wan't barlines on the staff, only between the staves:
>
> ---------
> ---------
> ---------
> ---------
> --+----+-
>   |    |
>   |    |
>   |    |
>   |    |
> --+----+-
> ---------
> ---------
> ---------
> ---------

Exactly.  This is a very commonly used style of notation when
transcribing music of roughly the 15th to 17th century.

Han-Wen wrote:
...
> \paper  {
> \translator {
>   \LyricsVoiceContext
>   \consists Bar_engraver
>   % need procedure, since lyrics doesn't have a staff_sym engraver.
>   BarLine \override #'bar-size-procedure = #(lambda (x) 3.0)
> }
>
> \translator {
>   \LyricsContext
>   \consists "Span_bar_engraver"
> }
> \translator{
>   \StaffGroupContext
>   \remove "Span_bar_engraver"
> }
> }
...

Han-Wen, your suggestion unfortunately produces on 1.3.149 something like:

----+-----+----
----+-----+----
----+-----+----
----+-----+----
----+-----+----

bla   die   bla
foo | bar | foo
foo | bar | foo

----+-----+----
----+-----+----
----+-----+----
----+-----+----
----+-----+----

(Note that only the second and third line of text are accompanied with
bar lines, but not the first line of text.  And there is still an
empty space between the lyrics and the staff.  And there are still
bar lines on the staves.)

But I played a little bit around with it, and finally got
to this one:

\paper {
\translator {
  \StaffContext
  \remove Bar_engraver
}
\translator {
  \LyricsVoiceContext
  \consists "Bar_engraver"
  % need procedure, since lyrics doesn't have a staff_sym engraver.
  BarLine \override #'bar-size-procedure = #(lambda (x) 3.0)
}
\translator {
  \LyricsContext
  \consists "Bar_engraver" % Span_bar_engraver does not span first text line
}
}

This gives me something like:

    ---------------
    ---------------
    ---------------
    ---------------
    ---------------

    bla | die | bla
    foo | bar | foo
    foo | bar | foo

    ---------------
    ---------------
    ---------------
    ---------------
    ---------------

At a first look, this comes close to what I have in mind, but there is
still the empty space between the lyrics and the staff.  However, it
screws up when I use lyrics on more than a single staff.  Then I get
something like:

    ---------------
    ---------------
    ---------------
    ---------------
    ---------------

    bla | die | bla
    foo | bar | foo
    foo | bar | foo
        |     |
    ----+-----+----
    ----+-----+----
    ----+-----+----
    ----+-----+----
    ----+-----+----
        |     |
    bla | die | bla
    foo | bar | foo
    foo | bar | foo

Instead of:

    ---------------
    ---------------
    ---------------
    ---------------
    ----+-----+----
        |     |
    bla | die | bla
    foo | bar | foo
    foo | bar | foo
        |     |
    ----+-----+----
    ---------------
    ---------------
    ---------------
    ---------------

    bla   die   bla
    foo   bar   foo
    foo   bar   foo

The idea is to put bar lines only between the staffs, regardless of
where lyrics or whatever additional context else appear.  Hence,
adding a Bar_engraver globally to *any* instance of a
Lyrics(Voice)Context is not an option; effectively, it must be added
to exactly only those Lyrics instances that are surrounded by staffs
above *and* below.  That's why I proposed to introduce individual
context instances rather than only having a single global shared
instance for each context.  But if I get the transparent property
thing to work, that would also fine with me.  (Heck, I am just
noticing that I forgot to try the transparent property on BarLine
instead of Bars, as you proposed.  I will try it this evening.)

Or, yet in other words, think of the graphical delta between bar lines
in a StaffGroup and those in a ChoirStaff (as they are engraved by
default, i.e. without removing or adding something to the context).  I
just want this delta (call it e.g. "between-staff bar lines") to be
printed as bar lines.  StaffGroup bar lines then could be implemented
just as the direct graphical sum of between-staff bar lines and
on-staff bar lines as in a ChoirStaff.

Greetings,
           Juergen



reply via email to

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