Re: Condensing single-bar rests into a multi-measure rest

2015-01-04 Thread Urs Liska


Am 04.01.2015 um 02:13 schrieb Kieren MacMillan:

Hi Urs,


I'm not sure about that because that wasn't the problem at hand.
My problem was that I have to merge multimeasure rests that were written as e.g.

R1*4 {} R1*6

The empty expression is a music function that can return a \break (- no rest 
merging) or an empty expression.
The linked function is able to merge consecutive rests when they are of the 
same type.

As I didn't look too close into the thread you linked I don't know if my 
problem is related to yours, but I suspect it's rather something different.

My problem was

\version 2.19.15

\new Staff \with { \compressFullBarRests }
  { R1*8 } { \repeat unfold 8 {s1} } 

Keith’s \mergeSkips deals with that, but (if I understand correctly) not your 
empty-expression problem.


My function also merges skips but it fails on the \repeat construct.
So R1 R1 s1 s1 gives the attached result, but when you use \repeat 
multiple empty bars are printed.
This is because \repeat unfold is a completely different representation 
than explicitly repeated music. I think it could be included if that's 
the issue, but I assume it's over my head so far. Principally it's a 
quite simple thing (just adding another conditional and taking the 
expression apart) but I don't have experience with this.


See the attached -- now self-contained -- file for some examples.

Urs



Cheers,
Kieren.
___

Kieren MacMillan, composer
www:  http://www.kierenmacmillan.info
email:  i...@kierenmacmillan.info



\version 2.16.0

% Taken from improved version from
% http://lilypond.1069038.n5.nabble.com/new-snippet-combine-multimeasure-rests-td144688.html
% Improved by Urs Liska to also merge over empty music expressions


#(define (add-durations dur1 dur2)
   (let* ((len1 (ly:duration-length dur1))
  (len2 (ly:duration-length dur2))
  (mult (ly:moment-div (ly:moment-add len1 len2) len1)))
 (ly:make-duration (ly:duration-log dur1)
   (ly:duration-dot-count dur1)
   (* (ly:duration-scale dur1) (ly:moment-main mult)

#(define (combinable-rest? rest)
   (and (ly:music? rest)
(or (eq? 'MultiMeasureRestMusic (ly:music-property rest 'name))
(eq? 'SkipEvent (ly:music-property rest 'name)))
(null? (ly:music-property rest 'articulations

#(define (combine-rests rest1 rest2)
   ;; create one rest/skip with the sum of both lengths
   (make-music (ly:music-property rest1 'name)
 'duration (add-durations (ly:music-property rest1 'duration)
 (ly:music-property rest2 'duration))
 'articulations '()))

#(define (consolidator curr rest)
   ;; determine ir we have consecutive MultimeasureRests or skips
   (if (and (combinable-rest? curr)
(not (null? rest)))
   ;; - we have a combinable rest left and 'something' right
   (if (and (combinable-rest? (car rest))
(eq? (ly:music-property curr 'name) (ly:music-property (car rest) 'name)))
   ;; - we also have a combinable rest right and both are the same type,
   ;; recurse by first merging rests and then looking for the next item
   (consolidator (combine-rests curr (car rest))
 (cdr rest))
   ;; - right is either no combinable rest or one of different type.
   (if (or (eq? 'BarCheck (ly:music-property (car rest) 'name))
   (eq? 'Music (ly:music-property (car rest) 'name)))
   ;; - right is one of the 'skippable' types,
   ;; so recurse using left and the next one to the right
   (consolidator curr (cdr rest))
   ;; just return left followed by righ
   (cons curr rest)))
   ;; - no combinable rest to the left
   ; But what happens when rest *is* null?
   (cons curr rest)))

#(define (accumulate-result output input)
   ;; recurse over the elements of 'music', appending consolidated
   ;; items (i.e. the item or a merged rest) to 'output'
   (if (null? input)
   output
   (let ((done output)
 (curr (car input))
 (rest (cdr input)))
 (if (null? rest)
 (append done (list curr))
 (let ((prev (consolidator curr rest)))
   (accumulate-result (append done (list (car prev))) (cdr prev)))

#(define (condense music)
   ;; recurse over the music list and condense consecutive rests
   (let* ((output music)
  (elts (ly:music-property output 'elements))
  (elt (ly:music-property output 'element)))
 (if (pair? elts)
 (ly:music-set-property! output 'elements (map condense (accumulate-result '() elts
 (if (ly:music? elt)
 (ly:music-set-property! output 'element (condense elt)))
 output))

combineMMRests =
#(define-music-function (parser location music) (ly:music?)
   ;; process the 'music' argument and merge consecutive MultimeasureRests
   (condense music))

\combineMMRests {
  \compressFullBarRests
  c''1 \repeat 

Re: Condensing single-bar rests into a multi-measure rest

2015-01-04 Thread Urs Liska


Am 4. Januar 2015 01:16:23 MEZ, schrieb David Sumbler da...@aeolia.co.uk:
From: Urs Liska u...@openlilylib.org
To: lilypond-user@gnu.org
Subject: Re: Condensing single-bar rests into a multi-measure rest
Date: Sat, 03 Jan 2015 18:59:17 +0100
  
Am 03.01.2015 um 18:45 schrieb David Sumbler:
 From: Urs Liska u...@openlilylib.org
 To: lilypond-user@gnu.org
 Subject: Re: Condensing single-bar rests into a multi-measure rest
 Date: Sat, 03 Jan 2015 16:45:27 +0100

 Am 03.01.2015 um 16:36 schrieb David Sumbler:
 I have now finished setting the saxophone quartet, which is the
first
 substantial multi-instrument piece I have attempted with Lilypond.

 I am very pleased with the result, and I am now at the stage of
tweaking
 the appearance of the output.

 Searching in the Lilypond documentation, one problem I have not
been
 able to find a solution to is this: in the piece there are a few
places
 where one instrument is silent for several consecutive bars.  In
the
 score these obviously appear as single bar rests, but in the
relevant
 instrumental part I should like them to appear as a multi-measure
 rest.

 The problem may be that I have used \parallelMusic for the whole
score:
 this seems an obvious way of doing things for a piece such as this
with
 a small number of instruments.  It has certainly been far easier to
find
 my way around the file than in my previous Lilypond efforts (e.g. a
 piece for flute and piano), even though they were a lot shorter
than
 this one.

 But looking at the documentation, I can only see multi-measure
rests
 appearing if they are entered as multi-measure quantities - e.g.
R1*6.
 If this is true, then the only way I can see to get the result I
want,
 would be to deconstruct my whole file and reassemble it as 4
separate
 sections, one for each instrument.  This in itself will be a
tedious
 chore, but it also means the resulting file(s) will be much less
easily
 navigable when I make further additions and modifications.

 Is there any way to get the result I want whilst still keeping the
 \parallelMusic layout?
 LilyPond by default only interprets single entities as combinable
rests
 (i.e. R1*6), while consecutive rests (e.g. R1 R1) are separated by
 \compressFullBarRests.

 I recently had the same problem and got a file from the list which I
 tweaked to work well in a quite similar case.
 You can find the file at

https://git.ursliska.de/beautifulscores/das-trunkne-lied/blob/master/library/ly/to-lilylib/combineMultimeasureRests.ily

 I'm not sure if it is really straightforward to use in other
contexts
 but I suspect you should be able to use it.
 You have to remove the conditional expression in the last function
 \combineMMRests (because that's project specific), but I expect the
file
 to work smoothly once you've done that.

 To use it include the file and surround your music by
\combineMMRests
 \yourMusic.

 HTH
 Urs
 Thanks for that.  I have tried the file, and although it does not
 produce any errors, it does not seem to change the output at all.  So
it
 may be that I am doing something wrong.  Here is what I have done.

 Firstly, the final function now reads:

 combineMMRests =
 #(define-music-function (parser location music) (ly:music?)
 (condense music)
 music)

 I'm not entirely sure I have got this right!

No, that's not right. The result of a Scheme function is the result
of 
the last expression, and that is music in your case, so you're 
returning the unaltered music argument.

I think (without testing) that

combineMMRests =
#(define-music-function (parser location music) (ly:music?)
(condense music))

should be right.


 Secondly, in the section of my main file which produces a part for a
 instrument, I have:

 \score {
  \combineMMRests {
  \myMusic
  }
  \layout {
  }
 }

 Is this correct?

That looks correct, although you don't need the curly braces around 
\myMusic in this case.

However, I don't know if parallelMusic is interfering here
additionally.

HTH
Urs

I have now corrected my version of the combineMMRests function, but
unfortunately it still leaves my output unaffected.

I can see how something like this could work - unfortunately my
understanding at this stage of Scheme and Lilypond internals is
insufficient for me to see where the problem might be or to write
something similar from scratch.

I can't see why \parallelMusic should cause a problem: presumably it
just returns exactly what the individual parts would produce if they
were not interleaved in the parallelMusic structure.

David



But you do have the \compressFullBarRests somewhere? 

Urs 
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Condensing single-bar rests into a multi-measure rest

2015-01-04 Thread David Sumbler
On Sun, 2015-01-04 at 09:26 +0100, Urs Liska wrote:
 I have now corrected my version of the combineMMRests function, but
 unfortunately it still leaves my output unaffected.
 
 I can see how something like this could work - unfortunately my
 understanding at this stage of Scheme and Lilypond internals is
 insufficient for me to see where the problem might be or to write
 something similar from scratch.
 
 I can't see why \parallelMusic should cause a problem: presumably it
 just returns exactly what the individual parts would produce if they
 were not interleaved in the parallelMusic structure.
 
 David
 
 
 
 But you do have the \compressFullBarRests somewhere? 
 
 Urs 

Oops!  No, I hadn't, and now that I have included it things appear to
work perfectly.

I'm delighted to see that I can simply include \compressFullBarRests in
each individual instrument's Staff without it adversely affecting the
output of the score, which obviously needs the rests to be shown
individually (unless all instruments are 'tacet' for 2 or more bars).

Sincere thanks for all your help.

David


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Condensing single-bar rests into a multi-measure rest

2015-01-03 Thread David Sumbler
 From: Urs Liska u...@openlilylib.org
 To: lilypond-user@gnu.org
 Subject: Re: Condensing single-bar rests into a multi-measure rest
 Date: Sat, 03 Jan 2015 16:45:27 +0100
 
 Am 03.01.2015 um 16:36 schrieb David Sumbler:
  I have now finished setting the saxophone quartet, which is the first
  substantial multi-instrument piece I have attempted with Lilypond.
 
  I am very pleased with the result, and I am now at the stage of tweaking
  the appearance of the output.
 
  Searching in the Lilypond documentation, one problem I have not been
  able to find a solution to is this: in the piece there are a few places
  where one instrument is silent for several consecutive bars.  In the
  score these obviously appear as single bar rests, but in the relevant
  instrumental part I should like them to appear as a multi-measure
  rest.
 
  The problem may be that I have used \parallelMusic for the whole score:
  this seems an obvious way of doing things for a piece such as this with
  a small number of instruments.  It has certainly been far easier to find
  my way around the file than in my previous Lilypond efforts (e.g. a
  piece for flute and piano), even though they were a lot shorter than
  this one.
 
  But looking at the documentation, I can only see multi-measure rests
  appearing if they are entered as multi-measure quantities - e.g. R1*6.
  If this is true, then the only way I can see to get the result I want,
  would be to deconstruct my whole file and reassemble it as 4 separate
  sections, one for each instrument.  This in itself will be a tedious
  chore, but it also means the resulting file(s) will be much less easily
  navigable when I make further additions and modifications.
 
  Is there any way to get the result I want whilst still keeping the
  \parallelMusic layout?
 
 LilyPond by default only interprets single entities as combinable rests 
 (i.e. R1*6), while consecutive rests (e.g. R1 R1) are separated by 
 \compressFullBarRests.
 
 I recently had the same problem and got a file from the list which I 
 tweaked to work well in a quite similar case.
 You can find the file at
 https://git.ursliska.de/beautifulscores/das-trunkne-lied/blob/master/library/ly/to-lilylib/combineMultimeasureRests.ily
 
 I'm not sure if it is really straightforward to use in other contexts 
 but I suspect you should be able to use it.
 You have to remove the conditional expression in the last function 
 \combineMMRests (because that's project specific), but I expect the file 
 to work smoothly once you've done that.
 
 To use it include the file and surround your music by \combineMMRests 
 \yourMusic.
 
 HTH
 Urs

Thanks for that.  I have tried the file, and although it does not
produce any errors, it does not seem to change the output at all.  So it
may be that I am doing something wrong.  Here is what I have done.

Firstly, the final function now reads:

combineMMRests =
#(define-music-function (parser location music) (ly:music?)
   (condense music)
   music)

I'm not entirely sure I have got this right!

Secondly, in the section of my main file which produces a part for a
instrument, I have:

\score {
\combineMMRests {
\myMusic
}
\layout {
}
}

Is this correct?

At the top of my file, of course, I have:

\include combineMultimeasureRests.ily

David


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Condensing single-bar rests into a multi-measure rest

2015-01-03 Thread Urs Liska


Am 03.01.2015 um 16:36 schrieb David Sumbler:

I have now finished setting the saxophone quartet, which is the first
substantial multi-instrument piece I have attempted with Lilypond.

I am very pleased with the result, and I am now at the stage of tweaking
the appearance of the output.

Searching in the Lilypond documentation, one problem I have not been
able to find a solution to is this: in the piece there are a few places
where one instrument is silent for several consecutive bars.  In the
score these obviously appear as single bar rests, but in the relevant
instrumental part I should like them to appear as a multi-measure
rest.

The problem may be that I have used \parallelMusic for the whole score:
this seems an obvious way of doing things for a piece such as this with
a small number of instruments.  It has certainly been far easier to find
my way around the file than in my previous Lilypond efforts (e.g. a
piece for flute and piano), even though they were a lot shorter than
this one.

But looking at the documentation, I can only see multi-measure rests
appearing if they are entered as multi-measure quantities - e.g. R1*6.
If this is true, then the only way I can see to get the result I want,
would be to deconstruct my whole file and reassemble it as 4 separate
sections, one for each instrument.  This in itself will be a tedious
chore, but it also means the resulting file(s) will be much less easily
navigable when I make further additions and modifications.

Is there any way to get the result I want whilst still keeping the
\parallelMusic layout?


LilyPond by default only interprets single entities as combinable rests 
(i.e. R1*6), while consecutive rests (e.g. R1 R1) are separated by 
\compressFullBarRests.


I recently had the same problem and got a file from the list which I 
tweaked to work well in a quite similar case.

You can find the file at
https://git.ursliska.de/beautifulscores/das-trunkne-lied/blob/master/library/ly/to-lilylib/combineMultimeasureRests.ily

I'm not sure if it is really straightforward to use in other contexts 
but I suspect you should be able to use it.
You have to remove the conditional expression in the last function 
\combineMMRests (because that's project specific), but I expect the file 
to work smoothly once you've done that.


To use it include the file and surround your music by \combineMMRests 
\yourMusic.


HTH
Urs



David


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Condensing single-bar rests into a multi-measure rest

2015-01-03 Thread David Sumbler
I have now finished setting the saxophone quartet, which is the first
substantial multi-instrument piece I have attempted with Lilypond.

I am very pleased with the result, and I am now at the stage of tweaking
the appearance of the output.

Searching in the Lilypond documentation, one problem I have not been
able to find a solution to is this: in the piece there are a few places
where one instrument is silent for several consecutive bars.  In the
score these obviously appear as single bar rests, but in the relevant
instrumental part I should like them to appear as a multi-measure
rest.

The problem may be that I have used \parallelMusic for the whole score:
this seems an obvious way of doing things for a piece such as this with
a small number of instruments.  It has certainly been far easier to find
my way around the file than in my previous Lilypond efforts (e.g. a
piece for flute and piano), even though they were a lot shorter than
this one.

But looking at the documentation, I can only see multi-measure rests
appearing if they are entered as multi-measure quantities - e.g. R1*6.
If this is true, then the only way I can see to get the result I want,
would be to deconstruct my whole file and reassemble it as 4 separate
sections, one for each instrument.  This in itself will be a tedious
chore, but it also means the resulting file(s) will be much less easily
navigable when I make further additions and modifications.

Is there any way to get the result I want whilst still keeping the
\parallelMusic layout?

David


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Condensing single-bar rests into a multi-measure rest

2015-01-03 Thread Urs Liska


Am 03.01.2015 um 18:45 schrieb David Sumbler:

From: Urs Liska u...@openlilylib.org
To: lilypond-user@gnu.org
Subject: Re: Condensing single-bar rests into a multi-measure rest
Date: Sat, 03 Jan 2015 16:45:27 +0100

Am 03.01.2015 um 16:36 schrieb David Sumbler:

I have now finished setting the saxophone quartet, which is the first
substantial multi-instrument piece I have attempted with Lilypond.

I am very pleased with the result, and I am now at the stage of tweaking
the appearance of the output.

Searching in the Lilypond documentation, one problem I have not been
able to find a solution to is this: in the piece there are a few places
where one instrument is silent for several consecutive bars.  In the
score these obviously appear as single bar rests, but in the relevant
instrumental part I should like them to appear as a multi-measure
rest.

The problem may be that I have used \parallelMusic for the whole score:
this seems an obvious way of doing things for a piece such as this with
a small number of instruments.  It has certainly been far easier to find
my way around the file than in my previous Lilypond efforts (e.g. a
piece for flute and piano), even though they were a lot shorter than
this one.

But looking at the documentation, I can only see multi-measure rests
appearing if they are entered as multi-measure quantities - e.g. R1*6.
If this is true, then the only way I can see to get the result I want,
would be to deconstruct my whole file and reassemble it as 4 separate
sections, one for each instrument.  This in itself will be a tedious
chore, but it also means the resulting file(s) will be much less easily
navigable when I make further additions and modifications.

Is there any way to get the result I want whilst still keeping the
\parallelMusic layout?

LilyPond by default only interprets single entities as combinable rests
(i.e. R1*6), while consecutive rests (e.g. R1 R1) are separated by
\compressFullBarRests.

I recently had the same problem and got a file from the list which I
tweaked to work well in a quite similar case.
You can find the file at
https://git.ursliska.de/beautifulscores/das-trunkne-lied/blob/master/library/ly/to-lilylib/combineMultimeasureRests.ily

I'm not sure if it is really straightforward to use in other contexts
but I suspect you should be able to use it.
You have to remove the conditional expression in the last function
\combineMMRests (because that's project specific), but I expect the file
to work smoothly once you've done that.

To use it include the file and surround your music by \combineMMRests
\yourMusic.

HTH
Urs

Thanks for that.  I have tried the file, and although it does not
produce any errors, it does not seem to change the output at all.  So it
may be that I am doing something wrong.  Here is what I have done.

Firstly, the final function now reads:

combineMMRests =
#(define-music-function (parser location music) (ly:music?)
(condense music)
music)

I'm not entirely sure I have got this right!


No, that's not right. The result of a Scheme function is the result of 
the last expression, and that is music in your case, so you're 
returning the unaltered music argument.


I think (without testing) that

combineMMRests =
#(define-music-function (parser location music) (ly:music?)
   (condense music))

should be right.



Secondly, in the section of my main file which produces a part for a
instrument, I have:

\score {
\combineMMRests {
\myMusic
}
\layout {
}
}

Is this correct?


That looks correct, although you don't need the curly braces around 
\myMusic in this case.


However, I don't know if parallelMusic is interfering here additionally.

HTH
Urs



At the top of my file, of course, I have:

\include combineMultimeasureRests.ily

David


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Condensing single-bar rests into a multi-measure rest

2015-01-03 Thread David Sumbler
From: Urs Liska u...@openlilylib.org
To: lilypond-user@gnu.org
Subject: Re: Condensing single-bar rests into a multi-measure rest
Date: Sat, 03 Jan 2015 18:59:17 +0100
  
Am 03.01.2015 um 18:45 schrieb David Sumbler:
 From: Urs Liska u...@openlilylib.org
 To: lilypond-user@gnu.org
 Subject: Re: Condensing single-bar rests into a multi-measure rest
 Date: Sat, 03 Jan 2015 16:45:27 +0100

 Am 03.01.2015 um 16:36 schrieb David Sumbler:
 I have now finished setting the saxophone quartet, which is the first
 substantial multi-instrument piece I have attempted with Lilypond.

 I am very pleased with the result, and I am now at the stage of tweaking
 the appearance of the output.

 Searching in the Lilypond documentation, one problem I have not been
 able to find a solution to is this: in the piece there are a few places
 where one instrument is silent for several consecutive bars.  In the
 score these obviously appear as single bar rests, but in the relevant
 instrumental part I should like them to appear as a multi-measure
 rest.

 The problem may be that I have used \parallelMusic for the whole score:
 this seems an obvious way of doing things for a piece such as this with
 a small number of instruments.  It has certainly been far easier to find
 my way around the file than in my previous Lilypond efforts (e.g. a
 piece for flute and piano), even though they were a lot shorter than
 this one.

 But looking at the documentation, I can only see multi-measure rests
 appearing if they are entered as multi-measure quantities - e.g. R1*6.
 If this is true, then the only way I can see to get the result I want,
 would be to deconstruct my whole file and reassemble it as 4 separate
 sections, one for each instrument.  This in itself will be a tedious
 chore, but it also means the resulting file(s) will be much less easily
 navigable when I make further additions and modifications.

 Is there any way to get the result I want whilst still keeping the
 \parallelMusic layout?
 LilyPond by default only interprets single entities as combinable rests
 (i.e. R1*6), while consecutive rests (e.g. R1 R1) are separated by
 \compressFullBarRests.

 I recently had the same problem and got a file from the list which I
 tweaked to work well in a quite similar case.
 You can find the file at
 https://git.ursliska.de/beautifulscores/das-trunkne-lied/blob/master/library/ly/to-lilylib/combineMultimeasureRests.ily

 I'm not sure if it is really straightforward to use in other contexts
 but I suspect you should be able to use it.
 You have to remove the conditional expression in the last function
 \combineMMRests (because that's project specific), but I expect the file
 to work smoothly once you've done that.

 To use it include the file and surround your music by \combineMMRests
 \yourMusic.

 HTH
 Urs
 Thanks for that.  I have tried the file, and although it does not
 produce any errors, it does not seem to change the output at all.  So it
 may be that I am doing something wrong.  Here is what I have done.

 Firstly, the final function now reads:

 combineMMRests =
 #(define-music-function (parser location music) (ly:music?)
 (condense music)
 music)

 I'm not entirely sure I have got this right!

No, that's not right. The result of a Scheme function is the result of 
the last expression, and that is music in your case, so you're 
returning the unaltered music argument.

I think (without testing) that

combineMMRests =
#(define-music-function (parser location music) (ly:music?)
(condense music))

should be right.


 Secondly, in the section of my main file which produces a part for a
 instrument, I have:

 \score {
   \combineMMRests {
   \myMusic
   }
   \layout {
   }
 }

 Is this correct?

That looks correct, although you don't need the curly braces around 
\myMusic in this case.

However, I don't know if parallelMusic is interfering here additionally.

HTH
Urs

I have now corrected my version of the combineMMRests function, but
unfortunately it still leaves my output unaffected.

I can see how something like this could work - unfortunately my
understanding at this stage of Scheme and Lilypond internals is
insufficient for me to see where the problem might be or to write
something similar from scratch.

I can't see why \parallelMusic should cause a problem: presumably it
just returns exactly what the individual parts would produce if they
were not interleaved in the parallelMusic structure.

David


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Condensing single-bar rests into a multi-measure rest

2015-01-03 Thread Kieren MacMillan
Hi Urs,

On Jan 3, 2015, at 10:45 AM, Urs Liska u...@openlilylib.org wrote:
 I recently had the same problem and got a file from the list which I tweaked 
 to work well in a quite similar case.
 You can find the file at
 https://git.ursliska.de/beautifulscores/das-trunkne-lied/blob/master/library/ly/to-lilylib/combineMultimeasureRests.ily

Was that inspired by 
http://lists.gnu.org/archive/html/lilypond-user/2013-12/msg01085.html?

If so, does what is the final result?
That is to say, is there a single function which one can use to merge skips AND 
rests?

Thanks,
Kieren.
___

Kieren MacMillan, composer
www:  http://www.kierenmacmillan.info
email:  i...@kierenmacmillan.info


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Condensing single-bar rests into a multi-measure rest

2015-01-03 Thread Urs Liska


Am 04.01.2015 um 01:16 schrieb Kieren MacMillan:

Hi Urs,

On Jan 3, 2015, at 10:45 AM, Urs Liska u...@openlilylib.org wrote:

I recently had the same problem and got a file from the list which I tweaked to 
work well in a quite similar case.
You can find the file at
https://git.ursliska.de/beautifulscores/das-trunkne-lied/blob/master/library/ly/to-lilylib/combineMultimeasureRests.ily

Was that inspired by 
http://lists.gnu.org/archive/html/lilypond-user/2013-12/msg01085.html?


No. I got that from
http://lists.gnu.org/archive/html/lilypond-user/2013-04/msg00531.html



If so, does what is the final result?
That is to say, is there a single function which one can use to merge skips AND 
rests?


I'm not sure about that because that wasn't the problem at hand.
My problem was that I have to merge multimeasure rests that were written 
as e.g.


R1*4 {} R1*6

The empty expression is a music function that can return a \break (- no 
rest merging) or an empty expression.
The linked function is able to merge consecutive rests when they are of 
the same type.


As I didn't look too close into the thread you linked I don't know if my 
problem is related to yours, but I suspect it's rather something different.


Best
Urs



Thanks,
Kieren.
___

Kieren MacMillan, composer
www:  http://www.kierenmacmillan.info
email:  i...@kierenmacmillan.info




___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Condensing single-bar rests into a multi-measure rest

2015-01-03 Thread Kieren MacMillan
Hi Urs,

 I'm not sure about that because that wasn't the problem at hand.
 My problem was that I have to merge multimeasure rests that were written as 
 e.g.
 
 R1*4 {} R1*6
 
 The empty expression is a music function that can return a \break (- no rest 
 merging) or an empty expression.
 The linked function is able to merge consecutive rests when they are of the 
 same type.
 
 As I didn't look too close into the thread you linked I don't know if my 
 problem is related to yours, but I suspect it's rather something different.

My problem was

\version 2.19.15

\new Staff \with { \compressFullBarRests }
 { R1*8 } { \repeat unfold 8 {s1} } 

Keith’s \mergeSkips deals with that, but (if I understand correctly) not your 
empty-expression problem.

Cheers,
Kieren.
___

Kieren MacMillan, composer
www:  http://www.kierenmacmillan.info
email:  i...@kierenmacmillan.info


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user