Re: Why the part-combining in American hymnals? (WAS: Beaming, partcombine and pickups)

2016-09-16 Thread Karlin High
On 9/16/2016 5:26 PM, J Martin Rushton wrote:
> 2) How does the "American" style indicate when the voices cross?

In short, it follows the "English" style until the cross-condition ceases.

Here's an example that came to hand: 
https://s3.amazonaws.com/wayne-hooper/quartet-arrangements/alltheway.pdf
See the third staff, end of third measure?

The notes for the voice that is normally on the bottom - SATB alto or 
TTBB second tenor, and bass - will get down-stems.
Voices normally on the top - SATB soprano or TTBB first tenor, and SATB 
tenor or TTBB baritone - will get up-stems.
--
Karlin High
Missouri, USA

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


Re: Using \startTextSpan and \stopTextSpan in separate music functions

2016-09-16 Thread David Kastrup
tisimst  writes:

> On Fri, Sep 16, 2016 at 3:50 PM, Thomas Morley-2 [via Lilypond] <
> ml-node+s1069038n194649...@n5.nabble.com> wrote:
>
>>
>> Your function doesn't integrate \start/stopTextSpan into the
>> 'articulations of the music-arg, which is needed.
>> A most boiled down example would be:
>>
>> mus = c'1
>> { \mus \tenuto }
>>
>>
>> Would be probably nice to have it work, but I seem to remember there
>> are some problems, forgot what exactly though.
>>
>> Your function could be done at the lines of:
>>
>> myStartTextSpan = #(define-music-function (mus) (ly:music?)
>>   (ly:music-set-property! mus 'articulations
>>  (cons #{ \startTextSpan #}
>>(ly:music-property mus 'articulations)))
>>   #{
>> \override TextSpanner.color = #red
>> #mus
>>   #})

That assumes that $mus is an actual expression capable of accepting
articulations (which { c } wouldn't).

I'd rather write

   #{
   <>-\tweak color #red \startTextSpan
   $mus
#}

and then that begs the question why to use a music function in the first
place rather than just writing

myStartTextSpan = <>-\tweak color #red \startTextSpan

-- 
David Kastrup

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


Re: Why the part-combining in American hymnals? (WAS: Beaming, partcombine and pickups)

2016-09-16 Thread J Martin Rushton
On 16/09/16 20:52, Kieren MacMillan wrote:
> Hi Karlin,
> 
>> what exactly causes the attraction to combined voices and
>> the disaffection for separated voices? I'm not sure, but I'll try to answer.
> 
> I think that answer is pretty good, and probably partly true. Related would 
> be the argument that combined voices allow each part to more quickly grasp 
> the relationship (both similarities and dissimilarities) between their own 
> part and the adjacent one on the same staff.
> 
> However, I’m guessing that the most critical reason was far more practical, 
> and driven by space limitations.
> 
> TL;DR summary: Less vertical space is required per page of music with 
> combined voices than with split voicing.
> 
> Details: Combined voices (as you pointed out) have stems that go up from 
> notes near the bottom of the staff, and down from notes near the top of the 
> staff. Hence — and this is the important point — the range of the inner 
> voices (i.e., alto in the upper staff, and tenor in the lower staff) does not 
> force the stems to intrude into the inter-staff space (as they would in split 
> voicing). AND THE INNER-STAFF SPACE IS WHERE THE LYRICS ARE.
> 
> That seems the most likely reason to my mind — though I have no proof that 
> the reasoning is thus (though the truth of the spacing claim is easy enough 
> to demonstrate).
> 
> Best,
> Kieren.
> 
> 
> Kieren MacMillan, composer
> ‣ website: www.kierenmacmillan.info
> ‣ email: i...@kierenmacmillan.info
> 
I also suspect that the real reason is "it's always been done that way".
 The style you learn as a child seems right, even half a century on!
Two points here though:

1) "Hymns Ancient & Modern" of 1868 has about 5% of the hymns with the
words printed between the staves, although it is set in the "English"
tradition with stems pointing into the space.  The old Methodist Hymn
Book (1920s IIRC) also had a minority of hymns set that way.

2) How does the "American" style indicate when the voices cross?

Regards,
Martin



signature.asc
Description: OpenPGP digital signature
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Using \startTextSpan and \stopTextSpan in separate music functions

2016-09-16 Thread tisimst
On Fri, Sep 16, 2016 at 3:50 PM, Thomas Morley-2 [via Lilypond] <
ml-node+s1069038n194649...@n5.nabble.com> wrote:

>
> Your function doesn't integrate \start/stopTextSpan into the
> 'articulations of the music-arg, which is needed.
> A most boiled down example would be:
>
> mus = c'1
> { \mus \tenuto }
>
>
> Would be probably nice to have it work, but I seem to remember there
> are some problems, forgot what exactly though.
>
> Your function could be done at the lines of:
>
> myStartTextSpan = #(define-music-function (mus) (ly:music?)
>   (ly:music-set-property! mus 'articulations
>  (cons #{ \startTextSpan #}
>(ly:music-property mus 'articulations)))
>   #{
> \override TextSpanner.color = #red
> #mus
>   #})
>
> \relative c' {
>   \myStartTextSpan b'1
>   c \stopTextSpan
> }
>

Brilliant, Harm! I figured I just wasn't understanding the mechanism
correctly. Now a similar function is easily created to do the custom
termination:

myStopTextSpan = #(define-music-function (mus) (ly:music?)
  (ly:music-set-property! mus 'articulations
(cons #{ \stopTextSpan #}
  (ly:music-property mus 'articulations)))
  #{
#mus
<>^\markup \italic "a tempo"
  #})

to get

\relative c' {
  \myStartTextSpan b'1
  \myStopTextSpan c1
  d1
}

Thanks for the explanation and a usable solution!

Best,
Abraham




--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Using-startTextSpan-and-stopTextSpan-in-separate-music-functions-tp194647p194650.html
Sent from the User mailing list archive at Nabble.com.___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Lyric tie inside word?

2016-09-16 Thread Thomas Morley
2016-09-16 23:36 GMT+02:00 Knut Petersen :
> Am 16.09.2016 um 21:59 schrieb Thomas Morley:
>>
>> 2016-09-16 13:20 GMT+02:00 Knut Petersen :
>>>
>>> Am 06.05.2015 um 01:08 schrieb Thomas Morley:
>>>
>>> I had a hard time to find that code, I needed some kind of tunable
>>> \undertie
>>>
>>>
>>> Well,
>>>
>>> commit 4e9fd2773a496f31bf6f3a2c1a900fbc4d647487
>>> Author: Thomas Morley thomasmorle...@gmail.com
>>> Date: Tue Nov 3 22:05:50 2015 +0100
>
>
> rotfl ;-)
>
> http://lilypond.org/doc/v2.19/Documentation/notation/common-notation-for-vocal-music#multiple-syllables-to-one-note
> definitely does need an update ;-)

Well, at first the tie-markup-commands are markup-commands and
documented as such.
Ofcourse they can be used in Lyrics as every other markup-command.
Whereas the "~" in lyricmode does indeed something special.

I'm not sure, if the tie-markup-commands should be mentioned in this
section, maybe...

But I'm very bad in writing docs.
Any proposal?

Cheers,
  Harm

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


Re: Using \startTextSpan and \stopTextSpan in separate music functions

2016-09-16 Thread Thomas Morley
2016-09-16 23:20 GMT+02:00 Abraham Lee :
> All,
>
> Going off the of the thread here:
>
> http://lists.gnu.org/archive/html/lilypond-user/2016-09/msg00374.html
>
> and some personal email exchanges, I tried out a few things (found a working
> solution, though not ideal) and ran into something curious. I'd like to do
> something like the following, but it doesn't seem to work:
>
> %
>
> \version "2.19.36"
>
> myStartTextSpan = #(define-music-function (mus) (ly:music?)
> #{
>   \once \override TextSpanner.bound-details.left.text = "rit."
>   $mus \startTextSpan
> #})
>
> myStopTextSpan = #(define-music-function (mus) (ly:music?)
> #{
>   $mus \stopTextSpan
>   <>^\markup \italic "a tempo"
> #})
>
> \relative c' {
>   \myStartTextSpan b'1
>   c1
>   \myStopTextSpan e,1
>   g1
> }
>
> %
>
> This results in "unexpected EVENT_IDENTIFIER" errors at both
>
>   $mus \startTextSpan
>
> and
>
>   $mus \stopTextSpan
>
> When I put everything into a single expression without using music
> functions, it works as expected:
>
> %
>
> \version "2.19.36"
>
> \relative c' {
>   \override TextSpanner.bound-details.left.text = "rit."
>   b'1\startTextSpan
>   c1
>   e,1\stopTextSpan
>   <>^\markup \italic "a tempo"
>   g1
> }
>
> %
>
> This is just a simple example. The real use-case has numerous other
> \override statements that should occur prior to \startTextSpan, but the
> general idea is the same.
>
> Anyone know what's going on here?
>
> Best,
> Abraham


Your function doesn't integrate \start/stopTextSpan into the
'articulations of the music-arg, which is needed.
A most boiled down example would be:

mus = c'1
{ \mus \tenuto }


Would be probably nice to have it work, but I seem to remember there
are some problems, forgot what exactly though.

Your function could be done at the lines of:

myStartTextSpan = #(define-music-function (mus) (ly:music?)
  (ly:music-set-property! mus 'articulations
 (cons #{ \startTextSpan #}
   (ly:music-property mus 'articulations)))
  #{
\override TextSpanner.color = #red
#mus
  #})

\relative c' {
  \myStartTextSpan b'1
  c \stopTextSpan
}

Cheers,
  Harm

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


Re: Lyric tie inside word?

2016-09-16 Thread Knut Petersen

Am 16.09.2016 um 21:59 schrieb Thomas Morley:

2016-09-16 13:20 GMT+02:00 Knut Petersen :

Am 06.05.2015 um 01:08 schrieb Thomas Morley:

I had a hard time to find that code, I needed some kind of tunable \undertie


Well,

commit 4e9fd2773a496f31bf6f3a2c1a900fbc4d647487
Author: Thomas Morley thomasmorle...@gmail.com
Date: Tue Nov 3 22:05:50 2015 +0100


rotfl ;-)

http://lilypond.org/doc/v2.19/Documentation/notation/common-notation-for-vocal-music#multiple-syllables-to-one-note
definitely does need an update ;-)

Cheers,
 Knut

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


Using \startTextSpan and \stopTextSpan in separate music functions

2016-09-16 Thread Abraham Lee
All,

Going off the of the thread here:

http://lists.gnu.org/archive/html/lilypond-user/2016-09/msg00374.html

and some personal email exchanges, I tried out a few things (found a
working solution, though not ideal) and ran into something curious. I'd
like to do something like the following, but it doesn't seem to work:

%

\version "2.19.36"

myStartTextSpan = #(define-music-function (mus) (ly:music?)
#{
  \once \override TextSpanner.bound-details.left.text = "rit."
  $mus \startTextSpan
#})

myStopTextSpan = #(define-music-function (mus) (ly:music?)
#{
  $mus \stopTextSpan
  <>^\markup \italic "a tempo"
#})

\relative c' {
  \myStartTextSpan b'1
  c1
  \myStopTextSpan e,1
  g1
}

%

This results in "unexpected EVENT_IDENTIFIER" errors at both

  $mus \startTextSpan

and

  $mus \stopTextSpan

When I put everything into a single expression without using music
functions, it works as expected:

%

\version "2.19.36"

\relative c' {
  \override TextSpanner.bound-details.left.text = "rit."
  b'1\startTextSpan
  c1
  e,1\stopTextSpan
  <>^\markup \italic "a tempo"
  g1
}

%

This is just a simple example. The real use-case has numerous other
\override statements that should occur prior to \startTextSpan, but the
general idea is the same.

Anyone know what's going on here?

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


Re: Lyric tie inside word?

2016-09-16 Thread Thomas Morley
2016-09-16 13:20 GMT+02:00 Knut Petersen :
> Am 06.05.2015 um 01:08 schrieb Thomas Morley:
>
> I had a hard time to find that code, I needed some kind of tunable \undertie
> for Hugo Distler: Mausfallensprüchlein
> I think that "ratio" should probably be tunable. Any idea why the code  has
> not already been
> incorporated into lilypond?
>
> cu,
>  Knut


Well,

commit 4e9fd2773a496f31bf6f3a2c1a900fbc4d647487
Author: Thomas Morley thomasmorle...@gmail.com
Date: Tue Nov 3 22:05:50 2015 +0100

Implement make-bow-stencil, make-tie-stencil for use in markup-commands
undertie and overtie

issue 3088

In a follow up it is planned to replace make-parenthesis-stencil with
an appropriate setting of make-bow-stencil and to partially rework the
parenthesize-markup-command



Which is in the source since 2.19.33

ratio in make-tie-stencil is hard-coded, though


Cheers,
  Harm

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


Re: Why the part-combining in American hymnals? (WAS: Beaming, partcombine and pickups)

2016-09-16 Thread Kieren MacMillan
Hi Karlin,

> what exactly causes the attraction to combined voices and
> the disaffection for separated voices? I'm not sure, but I'll try to answer.

I think that answer is pretty good, and probably partly true. Related would be 
the argument that combined voices allow each part to more quickly grasp the 
relationship (both similarities and dissimilarities) between their own part and 
the adjacent one on the same staff.

However, I’m guessing that the most critical reason was far more practical, and 
driven by space limitations.

TL;DR summary: Less vertical space is required per page of music with combined 
voices than with split voicing.

Details: Combined voices (as you pointed out) have stems that go up from notes 
near the bottom of the staff, and down from notes near the top of the staff. 
Hence — and this is the important point — the range of the inner voices (i.e., 
alto in the upper staff, and tenor in the lower staff) does not force the stems 
to intrude into the inter-staff space (as they would in split voicing). AND THE 
INNER-STAFF SPACE IS WHERE THE LYRICS ARE.

That seems the most likely reason to my mind — though I have no proof that the 
reasoning is thus (though the truth of the spacing claim is easy enough to 
demonstrate).

Best,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


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


Re: (Automatically) split partcombined voices to temporary staff

2016-09-16 Thread David Kastrup
Urs Liska  writes:

> I have a question regarding complicated orchestral material. Note that I
> don't need a solution right now, only a plausible estimate if that's
> possible to implement at all.
>
> Consider the situation of a staff with two partcombined voices (say,
> flutes). If there are spots (measures or ranges of measures) where the
> voices are so individualized or complex that the part combination
> becomes unreadable I would like to split this range (measure) to two
> individual staves.

[...]

> Any suggestions welcome.

That's what the remove-layer feature is for.  Maybe take a look at
input/regression/divisi-staves.ly for an example.

Note that the various layers don't need to contain the same material, so
you are free to use \partcombine for the combined layer while not
combining layers when split.

-- 
David Kastrup

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


Why the part-combining in American hymnals? (WAS: Beaming, partcombine and pickups)

2016-09-16 Thread Karlin High
   Forwarded Message 
Subject: Re: Beaming, partcombine and pickups
Date: Thu, 15 Sep 2016 23:24:12 -0500
From: David Wright 

...I'm not sure it's wise of me to ask what the attraction is of the 
American convention of part-combining...

 End Forwarded Message Excerpt 

Well, this has been a recurring topic lately. Perhaps an explanation is 
in order. Probably a big part of the motivation for combined parts is 
simply audience expectations. When a certain convention is the only way 
someone has known for a large and early fraction of their life, that 
convention is probably the way they will prefer. And, we can't go back 
150 years or so and change how American hymnals got printed. Until I 
started using LilyPond, I had no idea that two voices on the same staff 
for SATB or TTBB harmony would get separate stems unless communicating 
differences between them in timing or duration or... 
whatever-it's-called when the lower voice goes to a pitch above the 
upper voice.

But back to your question, what exactly causes the attraction to 
combined voices and the disaffection for separated voices? I'm not sure, 
but I'll try to answer. With combined parts, notes on the lower half of 
the staff will tend to have upstems. And, notes on the upper half will 
tend to have downstems. Those accustomed to that arrangement are not 
used to seeing downstems on lower notes or upstems on higher notes. With 
stems only on one side, combined-voice readers are accustomed to reading 
along the "edge" of the row of notes. With stems on both sides, readers 
have to focus on the "middle" of the row instead. Exaggerating a little 
here, the extra stems can feel... uncomfortable. Perhaps like the bird 
repellent spikes sometimes seen on buildings or monuments.

Again, exaggeration there. It's probably not that big of deal, really. 
People COULD get used to having stems on both sides. But LilyPond has a 
software community that writes essays about efforts to capture the 
look-and-feel of favorite sheet music. LilyPond's stylistic focus is not 
American hymnals, of course. It just happens to be the favorite tool for 
the job. And along with discussions and requests regarding Arabic 
Makams, decay-squiggles in contemporary guitar music, French lute 
tablatures, and diatonic accordions, surely there is room for 
American-style part combining? Currently it appears the answer is yes, 
thanks to the upgraded \partcombine command in LilyPond 2.19 that allows 
specifying what intervals to combine or separate.
--
Karlin High
Missouri, USA

PS - Another American tradition is shaped notes, as in the Lilypond 
\aikenHeads command. I think those want combining even more; the 
attached PNG has an example.

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


Re: (Automatically) split partcombined voices to temporary staff

2016-09-16 Thread Mark Knoop
At 18:24 on 16 Sep 2016, Urs Liska wrote:
>Hi all,
>
>thanks so far for the links. When that recent thread went by I didn't
>realize that it might be relevant to me so soon ...

As mentioned, this mostly works at the moment. The additional part I'm
currently working on (well, trying to find time to work on) is allowing
different groups of instruments to combine and separate independently.
See attachments for how this works. NB this code is not yet merged, or
even ready for review. 

>Am 16.09.2016 um 17:29 schrieb Urs Liska:
>>
>> Hi all,
>>
>> I have a question regarding complicated orchestral material. Note
>> that I don't need a solution right now, only a plausible estimate if
>> that's possible to implement at all.
>>
>> Consider the situation of a staff with two partcombined voices (say,
>> flutes). If there are spots (measures or ranges of measures) where
>> the voices are so individualized or complex that the part combination
>> becomes unreadable I would like to split this range (measure) to two
>> individual staves.
>>
>> The attached image shows the (manually constructed) intended result.
>> Let's assume I would consider m. 7 too complex to be combined and
>> therefore want the whole "current" system to be split in two staves.
>>
>> The ideal way would be to have an automatic function that I can call
>> within such a measure (tagging it as "non-combinable") that would:
>>
>>   * Determine in which system I'm currently in and from where to
>> where it spans (i.e. previous and next line break)
>>   * Create a temporary staff for exactly that range
>>   * Copy the music of the second voice to that staff
>>   * remove the second voice from the current staff
>>   * (suppress partcombine texts)
>>
>> In the potential score at hand the music will be maintained in a
>> measure based grid. That means if I could get just the first of these
>> (i.e.. determining the current and previous line breaks) I *might* be
>> able to achieve something. But it would be a great feature (and a
>> "selling point" for LilyPond) if we could integrate it. I got this
>> request from a professional engraver who says it's a problem he's
>> dealing with all the time: manually handling the combination and
>> temporary splitting of voices in a staff - and especially fixing
>> things if the line breaking happens to change. He said it would be a
>> dramatic advantage if LilyPond could do that automatically.
>>
>> Any suggestions welcome.
>>
>> Urs
-- 
Mark Knoop
\version "2.19.49"
targetstaff = #(define-scheme-function
  (ctx) (string?)
  #{
\set Staff.keepAliveInterfaces = #'()
\context Staff = #ctx { \unset Staff.keepAliveInterfaces }
  #})
sopnotes = \relative c'' {
  \targetstaff #"tutti"
  c1 1 1 1 \break
  \targetstaff #"sopalt"
  c4 d e f g f e d c1 R1 \break
  \targetstaff #"sop"
  \repeat unfold 8 { c8 e g e } \break
  \targetstaff #"sopalt"
  c4 d e f g f e d c1 \break
  c4 d e f g f e d c1 R1
  \bar "|."
}
altnotes = \relative g' {
  \targetstaff #"tutti"
  g1 1 1 1
  \targetstaff #"sopalt"
  c4 d e f g f e d c1 R1
  \targetstaff #"alt"
  \repeat unfold 8 { c,8 e g e }
  \targetstaff #"sopalt"
  c4 d e f g f e d c1
  c4 d e f g f e d c1 R1
}
tennotes = \relative e' {
  \targetstaff #"tutti"
  e1 1 1 1
  \targetstaff #"tenbas"
  c4 d e f g f e d c1 R1
  \targetstaff #"ten"
  \repeat unfold 28 { c8 e }
  \targetstaff #"tutti"
  R1*4
}
basnotes = \relative c' {
  \targetstaff #"tutti"
  c1 1 1 1
  \targetstaff #"tenbas"
  c4 d e f g f e d c1 R1
  \targetstaff #"bas"
  \repeat unfold 28 { e,8 g }
  \targetstaff #"tutti"
  R1*4
}
soplyrics = \lyricmode {
  \repeat unfold 4 la
  \repeat unfold 9 la
  \repeat unfold 32 la
  \repeat unfold 18 la
}
altlyrics = \lyricmode {
  \repeat unfold 4 la
  \repeat unfold 9 la
  \repeat unfold 32 hi
  \repeat unfold 18 la
}
tenlyrics = \lyricmode {
  \repeat unfold 4 la
  \repeat unfold 9 di
  \repeat unfold 56 do
}
baslyrics = \lyricmode {
  \repeat unfold 4 la
  \repeat unfold 9 di
  \repeat unfold 56 dum
}

\layout {
  short-indent = 8
  \context {
\StaffGroup
\consists Keep_alive_together_engraver
  }
  \context {
\Staff
\override VerticalAxisGroup.remove-first = ##t
\override VerticalAxisGroup.remove-empty = ##t
  }
  \context {
\Lyrics
\override VerticalAxisGroup.remove-layer = #'above
keepAliveInterfaces = #'()
  }
}

\score {
  \new StaffGroup <<
\new Staff = "tutti" \with {
  instrumentName = "SATB"
  shortInstrumentName = "SATB"
  \override VerticalAxisGroup.remove-first = ##f
  \override VerticalAxisGroup.remove-empty = ##f
  \override VerticalAxisGroup.remove-layer = 3
} <<
  \new Voice { \partcombine \sopnotes \altnotes }
  \new Voice { \partcombine \tennotes \basnotes }
>>
\addlyrics \soplyrics

\new Staff = "sopalt" \with {
  instrumentName = "SA"
  shortInstrumentName = "SA"
  \override VerticalAxisGroup.remove-layer = 2
  \override VerticalAxisGroup.keep-alive-group = 

Re: (Automatically) split partcombined voices to temporary staff

2016-09-16 Thread Urs Liska
Hi all,

thanks so far for the links. When that recent thread went by I didn't
realize that it might be relevant to me so soon ...

I'll have a closer look at everything ASAP.
Urs


Am 16.09.2016 um 17:29 schrieb Urs Liska:
>
> Hi all,
>
> I have a question regarding complicated orchestral material. Note that
> I don't need a solution right now, only a plausible estimate if that's
> possible to implement at all.
>
> Consider the situation of a staff with two partcombined voices (say,
> flutes). If there are spots (measures or ranges of measures) where the
> voices are so individualized or complex that the part combination
> becomes unreadable I would like to split this range (measure) to two
> individual staves.
>
> The attached image shows the (manually constructed) intended result.
> Let's assume I would consider m. 7 too complex to be combined and
> therefore want the whole "current" system to be split in two staves.
>
> The ideal way would be to have an automatic function that I can call
> within such a measure (tagging it as "non-combinable") that would:
>
>   * Determine in which system I'm currently in and from where to where
> it spans (i.e. previous and next line break)
>   * Create a temporary staff for exactly that range
>   * Copy the music of the second voice to that staff
>   * remove the second voice from the current staff
>   * (suppress partcombine texts)
>
> In the potential score at hand the music will be maintained in a
> measure based grid. That means if I could get just the first of these
> (i.e.. determining the current and previous line breaks) I *might* be
> able to achieve something. But it would be a great feature (and a
> "selling point" for LilyPond) if we could integrate it. I got this
> request from a professional engraver who says it's a problem he's
> dealing with all the time: manually handling the combination and
> temporary splitting of voices in a staff - and especially fixing
> things if the line breaking happens to change. He said it would be a
> dramatic advantage if LilyPond could do that automatically.
>
> Any suggestions welcome.
>
> 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: BendSpanner-engraver

2016-09-16 Thread Federico Bruni
Il giorno dom 11 set 2016 alle 11:53, Thomas Morley 
 ha scritto:

as result of my private None-Google-Summer-of-Code, I'd like to
announce a BendSpanner-engraver.

It's based on our scheme-text-spanner.ly from the reg-test and the
fabulous work of Marc Hohl and his bend.ily
Thanks, to Stephen MacNeil who provided a couple of images from
printed editions.


A new grob, BendSpanner, is defined. Line-breaks, skylining, dashed
line for 'pre-bend-hold and a lot more work out of the box.
It's highly customizable. In the demo some possibilities are
demonstrated. More in the test-files.
Currently it works only for TabStaff, coding something for
default-Staff/Voice is on the TODO-list.

Though, currently it's pretty slow in compilation. The reason for this
slugginess
is the feature not to bend open strings and to ex- or include notes 
to bend,
more precisley it's the definiton for 
`bend::remove-certain-tab-note-heads'.


Not sure how to improve this, any hint is highly appreciated.


Ofcourse this is the first time the code is made public.
I expect several not yet noticed bugs or missing features.

Please report back.


I see that microtones are also supported (provided that \layout 
contains supportNonIntegerFret = ##t).


IIUC, this engravers solves the three main limitations of bend.ily, 
listed here:

https://github.com/openlilylib/snippets/tree/master/ly/tablature#limitations

Except for the missing Staff/Voice, I think that this code is already 
doing all that I need. I'll start porting some scores to this syntax 
and see if I find any problem.


This is THE feature I'd always wanted to see implemented in LilyPond 
codebase.

I really hope to see it merged before the end of the year :)

Many thanks Harm! (and thanks Marc for starting this work.. I began 
using LilyPond seven years ago thanks to his work on tablature)





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


Re: (Automatically) split partcombined voices to temporary staff

2016-09-16 Thread Abraham Lee
On Fri, Sep 16, 2016 at 9:41 AM, Abraham Lee 
wrote:

> Urs,
>
> On Fri, Sep 16, 2016 at 9:29 AM, Urs Liska  wrote:
>
>> Hi all,
>>
>> I have a question regarding complicated orchestral material. Note that I
>> don't need a solution right now, only a plausible estimate if that's
>> possible to implement at all.
>>
>> Consider the situation of a staff with two partcombined voices (say,
>> flutes). If there are spots (measures or ranges of measures) where the
>> voices are so individualized or complex that the part combination becomes
>> unreadable I would like to split this range (measure) to two individual
>> staves.
>>
>> The attached image shows the (manually constructed) intended result.
>> Let's assume I would consider m. 7 too complex to be combined and therefore
>> want the whole "current" system to be split in two staves.
>>
>> The ideal way would be to have an automatic function that I can call
>> within such a measure (tagging it as "non-combinable") that would:
>>
>>- Determine in which system I'm currently in and from where to where
>>it spans (i.e. previous and next line break)
>>- Create a temporary staff for exactly that range
>>- Copy the music of the second voice to that staff
>>- remove the second voice from the current staff
>>- (suppress partcombine texts)
>>
>> In the potential score at hand the music will be maintained in a measure
>> based grid. That means if I could get just the first of these (i.e..
>> determining the current and previous line breaks) I *might* be able to
>> achieve something. But it would be a great feature (and a "selling point"
>> for LilyPond) if we could integrate it. I got this request from a
>> professional engraver who says it's a problem he's dealing with all the
>> time: manually handling the combination and temporary splitting of voices
>> in a staff - and especially fixing things if the line breaking happens to
>> change. He said it would be a dramatic advantage if LilyPond could do that
>> automatically.
>>
>> Any suggestions welcome.
>>
> I believe this thread would interest you:
>
> http://lilypond.1069038.n5.nabble.com/Keep-alive-
> together-call-for-use-cases-tp193723.html
>
> Best,
> Abraham
>

Here's the official archived thread start:

http://lists.gnu.org/archive/html/lilypond-user/2016-08/msg00256.html

and a message in that thread that shows a more complex example:

http://lists.gnu.org/archive/html/lilypond-user/2016-08/msg00396.html

What it comes down to is the need to have a staff for all three scenarios:
1. Flute 1 staff
2. Flute 2 staff
3. Flute 1/2 combined staff

The examples demonstrate how to tell LP when/how to keep which staff alive,
which conveniently doesn't require you to know which system the
"non-combinable" passage ends up on. That is all handled automagically
(Thanks, Mark!). You simply add a mark for where the "non-combinable"
section starts and stops and LP handles the frenching.

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


Re: (Automatically) split partcombined voices to temporary staff

2016-09-16 Thread Kieren MacMillan
Hi Urs,

This is very closely related to the oft-discussed topic of “smart divisi” (for 
lack of a better rubric) — see, for example, the threads at 
, the 
more recent 
, and 
the one that may be the oldest in the “modern [Lilypond] era” 
.

> The ideal way would be to have an automatic function that I can call within 
> such a measure (tagging it as "non-combinable") that would:

>   • Determine in which system I'm currently in and from where to where it 
> spans (i.e. previous and next line break)
>   • Create a temporary staff for exactly that range
>   • Copy the music of the second voice to that staff
>   • remove the second voice from the current staff
>   • (suppress partcombine texts)

Short answer: It can be “faked” by loading up the score with lots of individual 
staves that french out when they’re combinable, allowing the [part-]combined 
staves to appear. I put “faked” in quotes, because it requires the preparation 
of lots of hats into and out of which the various musical rabbits are pulled — 
it doesn’t (as you’ve outlined) take a single staff and do the splitting 
automatically.

> He said it would be a dramatic advantage if LilyPond could do that 
> automatically.

Once I get my two current commissions done and out the door**, I want to return 
to my “Wither’s Carol” (the main inspiration for all of my feature requests in 
this regard during the last five years) and use it as a demonstration of this 
advantage.  =)

Hope that helps!
Kieren.

** Perhaps ironically, these two commissions — a wind symphony, and a huge 
piece (requiem kind of thing) for orchestra, choir, and soloist — would benefit 
directly from this framework/mechanism, if it were already state-of-the-art.  =\


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


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


Re: (Automatically) split partcombined voices to temporary staff

2016-09-16 Thread Abraham Lee
Urs,

On Fri, Sep 16, 2016 at 9:29 AM, Urs Liska  wrote:

> Hi all,
>
> I have a question regarding complicated orchestral material. Note that I
> don't need a solution right now, only a plausible estimate if that's
> possible to implement at all.
>
> Consider the situation of a staff with two partcombined voices (say,
> flutes). If there are spots (measures or ranges of measures) where the
> voices are so individualized or complex that the part combination becomes
> unreadable I would like to split this range (measure) to two individual
> staves.
>
> The attached image shows the (manually constructed) intended result. Let's
> assume I would consider m. 7 too complex to be combined and therefore want
> the whole "current" system to be split in two staves.
>
> The ideal way would be to have an automatic function that I can call
> within such a measure (tagging it as "non-combinable") that would:
>
>- Determine in which system I'm currently in and from where to where
>it spans (i.e. previous and next line break)
>- Create a temporary staff for exactly that range
>- Copy the music of the second voice to that staff
>- remove the second voice from the current staff
>- (suppress partcombine texts)
>
> In the potential score at hand the music will be maintained in a measure
> based grid. That means if I could get just the first of these (i.e..
> determining the current and previous line breaks) I *might* be able to
> achieve something. But it would be a great feature (and a "selling point"
> for LilyPond) if we could integrate it. I got this request from a
> professional engraver who says it's a problem he's dealing with all the
> time: manually handling the combination and temporary splitting of voices
> in a staff - and especially fixing things if the line breaking happens to
> change. He said it would be a dramatic advantage if LilyPond could do that
> automatically.
>
> Any suggestions welcome.
>
I believe this thread would interest you:

http://lilypond.1069038.n5.nabble.com/Keep-alive-together-call-for-use-cases-tp193723.html

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


(Automatically) split partcombined voices to temporary staff

2016-09-16 Thread Urs Liska
Hi all,

I have a question regarding complicated orchestral material. Note that I
don't need a solution right now, only a plausible estimate if that's
possible to implement at all.

Consider the situation of a staff with two partcombined voices (say,
flutes). If there are spots (measures or ranges of measures) where the
voices are so individualized or complex that the part combination
becomes unreadable I would like to split this range (measure) to two
individual staves.

The attached image shows the (manually constructed) intended result.
Let's assume I would consider m. 7 too complex to be combined and
therefore want the whole "current" system to be split in two staves.

The ideal way would be to have an automatic function that I can call
within such a measure (tagging it as "non-combinable") that would:

  * Determine in which system I'm currently in and from where to where
it spans (i.e. previous and next line break)
  * Create a temporary staff for exactly that range
  * Copy the music of the second voice to that staff
  * remove the second voice from the current staff
  * (suppress partcombine texts)

In the potential score at hand the music will be maintained in a measure
based grid. That means if I could get just the first of these (i.e..
determining the current and previous line breaks) I *might* be able to
achieve something. But it would be a great feature (and a "selling
point" for LilyPond) if we could integrate it. I got this request from a
professional engraver who says it's a problem he's dealing with all the
time: manually handling the combination and temporary splitting of
voices in a staff - and especially fixing things if the line breaking
happens to change. He said it would be a dramatic advantage if LilyPond
could do that automatically.

Any suggestions welcome.

Urs

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


Re: conditional when-property function not working as intended

2016-09-16 Thread Kieren MacMillan
Hi David,

> But we are not talking about music functions (where the quite different
> "parser location" arguments are now usually passed implicitly) but
> markup commands here.

Ah! That would be the source of my confusion.

Thank you,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


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


Re: conditional when-property function not working as intended

2016-09-16 Thread Kieren MacMillan
Hi David,

> By not specifying a default value?  I have absolutely no idea why you
> put `markp' as the default-value of your call to ly:chain-assoc-get.

Because this is somebody else’s code that I’m using, without (obviously) fully 
understanding what it does.
With your hint, I believe I can now modify the code so that it works as I would 
have expected it to in the first place.

Thanks,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


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


Re: conditional when-property function not working as intended

2016-09-16 Thread David Kastrup
Kieren MacMillan  writes:

> Hi David,
>
>> It's necessary for functions taking "layout props" arguments?  Where
>> would that cause reason for doubt?
>
> I thought I recalled a recent update (say, in the past 2 years) in
> which those arguments were rendered unnecessary when writing certain
> music functions — but apparently, I’m mistaken.

But we are not talking about music functions (where the quite different
"parser location" arguments are now usually passed implicitly) but
markup commands here.

-- 
David Kastrup

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


Re: conditional when-property function not working as intended

2016-09-16 Thread David Kastrup
Kieren MacMillan  writes:

> Hi David,
>
> Thank you for the helpful reply and documentation/explanation.
>
>> -- Function: ly:chain-assoc-get key achain default-value
>>  strict-checking
>> Return value for KEY from a list of alists ACHAIN.  If no entry is
>> found, return DEFAULT-VALUE or ‘#f’ if DEFAULT-VALUE is not
>> specified.  [...]
>> 
>> DEFAULT-VALUE is specified as markp, and a markup is never #f.  So your
>> condition is always true when the specified KEY cannot be found.
>
> So how could I code the when-property function so that it is false
> when the KEY cannot be found?

By not specifying a default value?  I have absolutely no idea why you
put `markp' as the default-value of your call to ly:chain-assoc-get.  It
does not serve any purpose conceivable to me, particularly since you are
only planning to use its value when finding the key, and the purpose of
the default-value is to be substituted when _not_ finding the key.

-- 
David Kastrup

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


Re: conditional when-property function not working as intended

2016-09-16 Thread Kieren MacMillan
Hi David,

Thank you for the helpful reply and documentation/explanation.

> -- Function: ly:chain-assoc-get key achain default-value
>  strict-checking
> Return value for KEY from a list of alists ACHAIN.  If no entry is
> found, return DEFAULT-VALUE or ‘#f’ if DEFAULT-VALUE is not
> specified.  [...]
> 
> DEFAULT-VALUE is specified as markp, and a markup is never #f.  So your
> condition is always true when the specified KEY cannot be found.

So how could I code the when-property function so that it is false when the KEY 
cannot be found?

Thank you,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


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


Re: calculation of the total duration of a score

2016-09-16 Thread Marc Hohl

Hi Jan-Peter,

Am 16.09.2016 um 08:40 schrieb Jan-Peter Voigt:

Hi Marc,

nice to hear, that you have a workflow. For the record I noted two
things in the file. (And if there's some spare time, I might further
work on it.)


Thanks for the continuing work on that issue!



1. The durations are tagged by score and stored in an a-list, so you
can first collect durations in multiple scores and display them later
with a score-unique tag.


The tagging works fine, but as soon as I have a layout block in the
\score creating the exact midi file, lilypond prints it :-(

Moving the callback from \layout {} to \midi {} yields to

Programming error: Cannot find key `scoreBACH' in alist, setting to `0'.

So I still have to use my solution with the auxiliary files, which is no
problem at all.

> 2. There are acknowledgers for volta-brackets and barlines. It should
> be possible to use that information for acknowledging volta repeats
> and ajusting the duration accordingly. Those grobs are created by
> engravers, but if one creates the barlines *not* with \repeat volta,
> but with \bar ".|:", it should be acknowledged too.

This sounds promising, but IMHO it would be easier to get the engraver 
to work somehow on a \score with a \midi { } block only and transferring 
the duration to another \score.



Cheers,

Marc







Cheers Jan-Peter


Am 15.09.2016 um 08:10 schrieb Marc Hohl:

Am 14.09.2016 um 14:24 schrieb Marc Hohl: [...]

I thought of writing the duration to a external file to be read
from within the markup call in the score to be printed, but did
not follow this route any further yet.


Update: a simple test file shows that this works.

I can

- compute the total duration of a file designed for midi output
only by means of your engraver - write the duration to a file and -
read that string while processing the "print-only" file.

Merging that stuff together with some Makefile should be
straightforward, I hope ;-)

And it has the advantage that some MIDI-related changes do not
appear in the printed score, but the duration will be updated
accordingly.

Cheers,

Marc


___ 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




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


Re: conditional when-property function not working as intended

2016-09-16 Thread Kieren MacMillan
Hi David,

> It's necessary for functions taking "layout props" arguments?  Where
> would that cause reason for doubt?

I thought I recalled a recent update (say, in the past 2 years) in which those 
arguments were rendered unnecessary when writing certain music functions — but 
apparently, I’m mistaken.

Thanks,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


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


Re: moving notes in cue-voice must not influence dot after notehead in main voice

2016-09-16 Thread Knut Petersen

Am 16.09.2016 um 13:48 schrieb Malte Meyn:

Ok  it was to M ;-) It's from bar 26/27 of this score. 

Attached: snippet from the original score.

\version "2.19.49"
mezmus = {
  \key c \major
  \autoBeamOff
  \relative b' {
\time 2/4 b4 gis \breathe a2 e4 \breathe
  << \new Voice {\voiceTwo e'4. 8 4}
 \new CueVoice { \voiceOne %\stemDown
\override NoteColumn.force-hshift = 1.0 a,4.
\override NoteColumn.force-hshift = 1.2  8
\override NoteColumn.force-hshift = 0.4 b4} >>
cis a b cis b2 a
  }
}
\score {
  \new Staff = mezzos << \new Voice = "mezzo" { \mezmus } >>
  \layout {
\context {
  \Score \hide BarLine
}
  }
}

cu,
 Knut



mweorig.pdf
Description: Zip archive
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: moving notes in cue-voice must not influence dot after notehead in main voice

2016-09-16 Thread Malte Meyn



Am 16.09.2016 um 13:37 schrieb Knut Petersen:

Hi everybody!

I used

  <<
   \new Voice {\voiceTwo e'4. 8 4}
   \new CueVoice { \voiceOne
  \override NoteColumn.force-hshift = 0.4a,4.
  \override NoteColumn.force-hshift = 1.2  8
  \override NoteColumn.force-hshift = 0.4 h4}
  >>

Any ideas?



Could you please provide a MWE? Your E is M but not W; it misses a 
\language, a \new Staff, probably a \relative and maybe a \clef. And 
it’s unclear why the lower voice is \voiceOne and the upper \voiceTwo, 
this causes the collision but is it really necessary?


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


moving notes in cue-voice must not influence dot after notehead in main voice

2016-09-16 Thread Knut Petersen

Hi everybody!

I used

  <<
   \new Voice {\voiceTwo e'4. 8 4}
   \new CueVoice { \voiceOne
  \override NoteColumn.force-hshift = 0.4a,4.
  \override NoteColumn.force-hshift = 1.2  8
  \override NoteColumn.force-hshift = 0.4 h4}
  >>

to tell lilypond to engrave some alternative notes as a
cue voice. But moving the colliding notes also moves
the dot of the normal voice, giving an unpleasant look.
There seems to be no force-hshift for DotColumn.

\stemDown helps a bit, but to avoid unacceptable space
between notehead and dot in the main voice it's necessary
to use a small force-hshift, and the result is far from
optimal.

Any ideas?

Cheers,
 Knut

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


Re: Lyric tie inside word?

2016-09-16 Thread Knut Petersen

Am 06.05.2015 um 01:08 schrieb Thomas Morley:

I had a hard time to find that code, I needed some kind of tunable \undertie for Hugo 
Distler: Mausfallensprüchlein 

I think that "ratio" should probably be tunable. Any idea why the code  has not 
already been
incorporated into lilypond?

cu,
 Knut


2015-05-06 1:02 GMT+02:00 Tobias Braun :

Never mind. It's working now, thanks a lot!

Good night,
Tobias


Am 06.05.2015 um 00:51 schrieb Simon Albrecht :


So sorry. I should’ve tested the code before posting…
You need to use \line { } instead of a simple string in "". See attachment.


Am 06.05.2015 um 00:41 schrieb Tobias Braun:

I got it to work in \lyricmode now, but it still won't work in the \markup 
section.

If I do it like you say below, I just get the code printed in the lyrics. If I end the string 
before \override and start a new one after "köñiglichen", it works, but then I get line 
breaks around "königlichen". Adding \markup doesn't improve things either.

What exactly do "\override #'(word-space . 0)" and "\tied-lyric" do? When using "\override #'(word-space 
. 0)" inside a \lyricmode expression, "~" won't create a lyric tie (with a blank) anymore, but just literally 
print "~". I have to explicitly use \tied-lyric then.

They are markup commands. \override (the markup command) takes two arguments: a pair and 
a markup. The pair consists of property and value, given in Scheme syntax: #'(word-space 
. 0). The markup is produced using \tied-lyric, which takes a string (a series of 
characters enclosed in "") as its argument, again prefixed with # to make it a 
Scheme expression. And in order to use them in \lyricmode, you have to enclose them in 
\markup explicitly.

I hope that makes it a little clearer. Ein weites Feld…
Good night, :-)
Simon



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

How about:


\version "2.19.18"

%% https://code.google.com/p/lilypond/issues/detail?id=3088
%% extended

%%FIXME: add `\undertie "undertied"' to regression/markup-commands.ly

%% FIXME: c from stencil.scm -- define-public and remove copy
#(define (make-bezier-sandwich-stencil coords thick xext yext)
   (let* ((command-list `(moveto
 ,(car (list-ref coords 3))
 ,(cdr (list-ref coords 3))
 curveto
 ,(car (list-ref coords 0))
 ,(cdr (list-ref coords 0))
 ,(car (list-ref coords 1))
 ,(cdr (list-ref coords 1))
 ,(car (list-ref coords 2))
 ,(cdr (list-ref coords 2))
 curveto
 ,(car (list-ref coords 4))
 ,(cdr (list-ref coords 4))
 ,(car (list-ref coords 5))
 ,(cdr (list-ref coords 5))
 ,(car (list-ref coords 6))
 ,(cdr (list-ref coords 6))
 closepath)))
   (ly:make-stencil
 `(path ,thick `(,@' ,command-list) 'round 'round #t)
 xext
 yext)))

%% FIXME: rewrite generic wrt axes and replace make-parenthesis-stencil
#(define (make-bow-stencil width height thickness angularity)
  "Create a bow stencil.
  @var{width} is the width of the bow markup.
  @var{thickness} is the thickness of the bow.
  @var{height} is the heigth of the bow.
  The higher the value of number @var{angularity},
  the more angular the shape of the bow."
(let* ((line-width 0.1)
   (base-x (if (< width 0) (- width) 0))
   (base-y (if (< height 0) (- height) 0))
   (x-extent (ordered-cons 0 width))
   (y-extent (ordered-cons 0 height))
   (left-x (interval-start x-extent))
   (right-x (interval-end x-extent))
   (inner-y 0)
   (outer-y height)
   (left-end-point (cons left-x inner-y))
   (right-end-point (cons right-x inner-y))
   (outer-control-y (+ inner-y (* 4/3 outer-y)))
   (inner-control-y (+ outer-control-y
  (if (< height 0) thickness (- thickness
   ;; keeping angularity allows for refactoring and
   ;; merging with make-parenthesis-stencil
   (offset-index (- (* 0.6 angularity) 0.8))
   (left-control-x (interval-index x-extent offset-index))
   (right-control-x (interval-index x-extent (- offset-index)))
   (left-outer-control-point
  (cons left-control-x outer-control-y))
   (right-outer-control-point
  (cons right-control-x outer-control-y))
   (right-inner-control-point
  (cons right-control-x inner-control-y))
   (left-inner-control-point
   

Re: \abs-(font)size for \epsfile

2016-09-16 Thread Pierre Perol-Schneider
Hi Malte,

Here is an old thread regarding a similar demand:
http://lilypond.1069038.n5.nabble.com/Absolute-size-for-epsfile-i-e-independent-of-global-staff-size-td161872.html

HTH,
Pierre


2016-09-16 9:41 GMT+02:00 Malte Meyn :

> Hi list,
>
> is there a staff-size indepent version of \epsfile like \abs-fontsize
> instead of \fontsize?
>
> \markup \abs-fontsize #20 \epsfile #X #10 "foo.eps" seems to have no
> effect.
>
> Cheers
> Malte
>
> ___
> 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: Auto Place text after last beat of a Text Spanner

2016-09-16 Thread Simon Albrecht

On 16.09.2016 07:49, Pierre Perol-Schneider wrote:

Hi Dimitris,

I think it was a typo:


Indeed, or rather I should have tested the code…
Sorry!



ot =
#(define-music-function (mus) (ly:music?)
  #{
\ottava #1
$mus
\ottava #0
<>^\markup \italic "loco"
  #})

Cheers,
Pierre


2016-09-16 1:19 GMT+02:00 dtsmarin >:


UPDATE:
This worked for me. Thanks again!

ottavaWithLoco =
#(define-music-function (mus) (ly:music?)
  #{
\set Staff.ottavation = #"8va"
$mus
\unset Staff.ottavation
<>^\markup \italic "loco"
  #})

HTH,
Dimitris



--
View this message in context:

http://lilypond.1069038.n5.nabble.com/Auto-Place-text-after-last-beat-of-a-Text-Spanner-tp194592p194604.html


Sent from the User mailing list archive at Nabble.com.

___
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



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


Re: Beaming, partcombine and pickups

2016-09-16 Thread Rutger Hofman

On 09/16/2016 06:24 AM, David Wright wrote:

On Thu 15 Sep 2016 at 17:15:02 (-0600), David F. wrote:

I have a song in 9/8 time with a pickup of three eighth notes.  I expect 
Lilypond to beam those three eighth notes together, but it does not when I 
combine two voices with partcombine.

Am I doing something wrong?  Is Lilypond doing something wrong?  How might I 
work around this?


Well, it's only last week that you asked "Is there a way to combine
two voices and print both stems (up and down) when the voices share a
note?  \partcombine does not appear to do this by default."

So now you've demonstrated the danger of doing that: it interferes
with the beaming. Isn't the answer just to decide on your priorities?

\partcombine #'(0 . 9)   will combine the unison notes and allow the
flag to become a beam in the appropriate direction.
Manually beaming either of the parts (or both, of course) will do the
opposite: produce beams above and below.
Which do you want?


To selectively disable the double stem for just that unisono note, you 
can adorn that note with \once \partcombineUnisono. You may want to \set 
Staff.aDueText = ##f to disable the 'a2' marking for the unison note.


Rutger

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


\abs-(font)size for \epsfile

2016-09-16 Thread Malte Meyn

Hi list,

is there a staff-size indepent version of \epsfile like \abs-fontsize 
instead of \fontsize?


\markup \abs-fontsize #20 \epsfile #X #10 "foo.eps" seems to have no effect.

Cheers
Malte

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


Re: calculation of the total duration of a score

2016-09-16 Thread Jan-Peter Voigt

Hi Marc,

nice to hear, that you have a workflow.
For the record I noted two things in the file. (And if there's some 
spare time, I might further work on it.)


1. The durations are tagged by score and stored in an a-list, so you can 
first collect durations in multiple scores and display them later with a 
score-unique tag.
2. There are acknowledgers for volta-brackets and barlines. It should be 
possible to use that information for acknowledging volta repeats and 
ajusting the duration accordingly. Those grobs are created by engravers, 
but if one creates the barlines *not* with \repeat volta, but with \bar 
".|:", it should be acknowledged too.


Cheers
Jan-Peter


Am 15.09.2016 um 08:10 schrieb Marc Hohl:

Am 14.09.2016 um 14:24 schrieb Marc Hohl:
[...]

I thought of writing the duration to a external file to be read from
within the markup call in the score to be printed, but did not follow
this route any further yet.


Update: a simple test file shows that this works.

I can

- compute the total duration of a file designed for
  midi output only by means of your engraver
- write the duration to a file and
- read that string while processing the "print-only" file.

Merging that stuff together with some Makefile should be
straightforward, I hope ;-)

And it has the advantage that some MIDI-related changes do not appear in
the printed score, but the duration will be updated accordingly.

Cheers,

Marc


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


\version "2.19.47"

% format seconds as min:sec
#(define-public (format-time dur)
   (let* ((minutes (floor (/ dur 60)))
  (seconds (round (- dur (* 60 minutes)) ) ))
 (format "~2'0d:~2'0d" (inexact->exact minutes) (inexact->exact seconds))
 ))

% complete duration of scores - set after finalizing
duration = #'()

% markup command to display complete time
#(define-markup-command (duration layout props scoretag)(symbol?)
   (let* ((gauge-stencil (interpret-markup layout props "00:00"))
  (x-ext (ly:stencil-extent gauge-stencil X))
  (y-ext (ly:stencil-extent gauge-stencil Y)))
 (ly:make-stencil
  `(delay-stencil-evaluation
,(delay (ly:stencil-expr
 (interpret-markup layout props (format-time (ly:assoc-get scoretag duration 0 #t)))
 )))
  x-ext y-ext)
 ))

calcDuration =
#(define-scheme-function (tag)(symbol?)
   (define (calc-duration context)
 (let ((dur 0) ; duration in seconds
(start (ly:make-moment 0)) ; last calc-time the duration was calculated
)
   ; function to calculate duration in seconds since last calc-time
   (define (calc-dur)
 (let ((diff (ly:moment-sub (ly:context-now context) start) ) ; moment since last calc-time
(tempo (ly:context-property context 'tempoWholesPerMinute (ly:make-moment 60/4)) )) ; current tempo
   (set! start (ly:context-now context)) ; set calc-time
   (set! dur ; add 60*(diff/tempo) to duration
 ; if tempo is 120 BPM and 120/4 elapsed,
 ; we have 60 * 120/4 * 4/120 = 60 seconds
 (+ dur
   (* 60
 (exact->inexact (ly:moment-main (ly:moment-div diff tempo)))
 )))
   dur
   ))
   (make-engraver
(acknowledgers
 ((volta-bracket-interface engraver grob source-engraver)
  (ly:message "saw volta bracket @ ~A" (ly:context-now context)))
 ((bar-line-interface engraver grob source-engraver)
  (let ((bar (ly:context-property context 'whichBar)))
(if (not (equal? "|" bar)) (ly:message "bar ~A" bar))
  ))
 )
(listeners
 ((tempo-change-event engraver event)
  (calc-dur) ; calculate duration on every tempo-change-event (new tempo will be set after we listened to the event)
  (ly:message "duration: ~A" (format-time dur))
  )
 ) ; listeners
((finalize trans)
 (calc-dur) ; last calculation of duration
 (set! duration (assoc-set! duration tag dur)) ; set global duration (for the markup command)
 (ly:message "duration: ~A final" (format-time dur))
 )
)))
   #{ \with { \consists #calc-duration } #}
   )


% example

% TODO repeats are not included !!

meta = { \tempo 4=90 s1*4 | \tempo 4=120 \repeat volta 3 { s1*4 } \alternative { { s1 } { s1*2 } { \tempo 4=100 s1 } } s1*4 }

\score {
  \new Staff <<
\meta
\repeat unfold 32 \relative c'' { bes4 a c b }
  >>
  \layout {
\context {
  \Score
  \calcDuration scoreBACH
}
  }
  \midi { }
}

\markup {
  \box \duration #'scoreBACH
}
___
lilypond-user mailing list
lilypond-user@gnu.org