lilypond-user
[Top][All Lists]
Advanced

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

Re: Multi-measure rests and mark collisions ...


From: Anthonys Lists
Subject: Re: Multi-measure rests and mark collisions ...
Date: Sun, 24 Apr 2016 19:18:01 +0100
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2

On 24/04/2016 03:13, David Wright wrote:
On Sat 23 Apr 2016 at 11:25:05 (+0100), Wols Lists wrote:
On 22/04/16 19:36, David Wright wrote:
On Fri 22 Apr 2016 at 15:47:59 (+0100), Anthonys Lists wrote:
On 22/04/2016 14:31, Kieren MacMillan wrote:
David K wrote:
Hm?  How could you even have a compressed multi-measure rest when there
is anything like an "8-bar phrase" in parallel?
That sounds like a problem that cannot occur.
I assume Wol (like me) has the problem where the compressed rest happens in the 
part, not in the full score — but one wants not to have to use multiple \tag 
constructs just to handle this issue.
Exactly... I write my music with "voiceStaff" to contain all the
score-level stuff eg tempi, tune names, rehearsal marks etc, and
"voiceInstrument" to contain the stuff that varies by instrument, eg
notes, dynamics, anything else like that ...

In the case example, the phrase is eight bars long, commencing with
a two-bar rest. For another instrument, it won't have a rest. And I
don't want the output to change dramatically depending on what's in
the part.

So of course, because voiceStaff is not meant to contain notes, it
uses "s" all the time. And I very rarely produce scores, this case
is absolutely typical for me in that we only have a bass-clef part,
and because while some players in our section can read both, we have
some players who can only read bass or treble clef so transposing is
a regular requirement. So I'll have three parts to do, 1st, 2nd and
bass.
I haven't followed all that. Is this the sort of thing you want?

Pretty much. In your example it's exactly okay - the "poco allegretto"
is to the right of the rehearsal mark, so the four marks take three
lines to display. (Note I tend to use box-barnumber, so my rehearsal
marks can get quite wide :-)

Now, imagine the "poco allegretto" and "This is the army mr jones" were
the other way round - the "This" would collide with the rehearsal mark,
and it would take four lines.
I'm not quite sure why you'd do that. The tempo is part of the
music. The tune titles that you want to include are not. But you can
add spaces to the beginnings of strings to avoid collisions.

Ah - does that mean the rehearsal mark would happily overwrite the blank space at the start of the other markup string?

But as for "why would I want to do that" - to serve as an example maybe. Let's change it then. Get rid of the tempo. The title would still collide with the rehearsal mark, and it would still take three lines - I wouldn't save a line. But shift the title a couple of mill to the right, and it would drop down and save us a line. SAVING VERTICAL SPACE is the point.

I want some semi-automatic way so I can push the other markup to the
right of the rehearsal mark and make sure I only use three lines. Oh -
and if I use "extra-spacing-width" (which iirc works fine with
multi-measure-rests), as soon as I have another part which actually has
some notes in the first bar of the MMR, that first bar will be the same
width as the markup so that then looks awful :-(
A lot in there. Your OP didn't have automation specified. Most people
drop into scheme for that, don't they?

Most people? Most people probably give up and go back to Sibelius, or Finale, or whatever. My day job was programming, and I haven't managed to get to grips with Scheme (it was FORTRAN/C, so Scheme is a bit of a culture shock :-) because time to concentrate and learn is a luxury :-(

Why not push the rehearsal mark left if you want loads of text to the right?
I don't get the bit about notes in a MMR. Isn't that a contradiction?

Not really. My modus operandi is

voiceStaff = ...
voiceInstrument1 = ...
voiceInstrument2 = ...

\score {
  <<
    voiceStaff
    voiceInstrument1
  >>
}
\score {
  <<
    voiceStaff
    voiceInstrument2
  >>
}

The problem is that the contents of voiceInstrumentx has a *major* influence on the way the contents of voiceStaff is displayed :-( Instrument1 may have an MMR, Instrument2 may have notes, they affect the bar spacing in different ways, and I may get markup collisions in one part, and no collisions in the other. Basically, lily is setting the notes, and then fitting the markup over the notes. There are occasions when you want to set the markup and then fit the notes under it.


The problem really is, all I want to do is stick multiple marks on a
barline (which doesn't work, lily doesn't do multiple \mark's :-(, and I
want to be able to move those markups to the right so they don't collide
with the rehearsal mark. \tempo *partly* solves my problem.
Well, that's a relief. BTW you can have multiple marks. My example had
one \tempo and the rest were marks.

The trouble
is, all the tweaks I've come up with (like for example "s1 s1*11") all
have side effects that don't matter in certain cases, and matter
enormously in others.
I haven't yet seen an example of what you want, not anything that
you've produced in the dim and distant past that you barely remember.

As Kieren said, this stuff is generic across all parts, so he and I want
to store it in a generic variable that then gets merged with the notes.
But there doesn't appear to be a syntax that isn't crucially dependent
on the notes being merged, other than filling the generic variable with
a whole bunch of special-case formatting tags, which totally misses the
point of having a generic variable :-( (plus I haven't used tags yet,
another learning curve ...)
Again, isn't that why people use scheme. Then you can see if a given
moment has a note or not, and choose your markup appropriately.
LP never looks very automatic to me. It doesn't even have an "if"
construction to make a decision.

Anyway, I made mr jones into a nonsensical "\tempo". The rehearsal
letter now appears above it of course. I stuck a note in before the
MMR for some reason though nothing is anchored to it; everything but
mr jones is a \mark. I'm just doodling—not sure why I bothered.


And you've given me a wonderful example of what I want :-) Let's say a new tune starts at B, so I put a tune name there. You can't play two tunes at once, can you? But you've got two tune names stacked one above the other ... (Yes I know you can play two tunes at once, but it's not normal :-) And you could get stacking tempi the same way...

At the end of the day, the basic problem is that lily, by default, stacks markup upwards. There is no way to tell it that markup should push sideways (and I seem to remember David Kastrup saying "how the ... do you expect me to code that" or words to that effect, it's a very hard problem). But from my point of view, the cost of that extra wasted line because markup stacks can be astronomical - the cost of a page turn can easily be thirty seconds in a performance, and I've known it be "forever", when a player has tried to do it quickly and lost his music in the process ...

What I want, is to move "This is the army ..." slightly to the right, so it fits next to the A, and it should then push the B to the right out of the way, and the music fit neatly underneath. Because one instrument may have a single MMR between A and B, while another instrument plays the entire tune. And that is my problem in a nutshell - what the instrument has affects how the markup is displayed, when I would rather the markup affect how the instrument is displayed.

This is why, as Kieran said, such a large amount of time can be spent on silly little layout tweaks, and as I say, in my case just letting it spill onto a second page is a very *expensive* option.

Cheers,
Wol



reply via email to

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