Re: Keep alive together - call for use cases

2016-08-21 Thread Mark Knoop
At 21:13 on 19 Aug 2016, David Kastrup wrote:
>Mark Knoop <m...@opus11.net> writes:
>> Hi Mats,
>>
>> How does the attached look to you? Note I have moved the
>> Keep_alive_together_engraver to the GrandStaff level so that the vln
>> I and vln II groups can work independently. The problem now is
>> making the system start braces cooperate.  
>
>I think we should likely have some context with only
>Keep_alive_engraver in it and accepting all sorts of Staff contexts.
>That would likely be more natural than juggling manually with
>Keep_alive_engraver.

I've just submitted an additional patch which I think addresses the
uses raised by Mats, Kieren and Abraham. See attached ly and pdf files. 

Comments, particularly on usability, appreciated.

-- 
Mark Knoop
\version "2.19.45"
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
}

\layout {
  short-indent = 8
  \context {
\StaffGroup
\consists Keep_alive_together_engraver
  }
  \context {
\Staff
\override VerticalAxisGroup.remove-first = ##t
\override VerticalAxisGroup.remove-empty = ##t
  }
}

\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 { \voiceOne \partcombine \sopnotes \altnotes }
  \new Voice { \voiceTwo \partcombine \tennotes \basnotes }
>>
\new Staff = "sopalt" \with {
  instrumentName = "SA"
  shortInstrumentName = "SA"
  \override VerticalAxisGroup.remove-layer = 2
  \override VerticalAxisGroup.keep-alive-group = #'sopalt
  \override VerticalAxisGroup.keep-alive-group-layer = 2
} \partcombine \sopnotes \altnotes
\new Staff = "sop" \with {
  instrumentName = "S"
  shortInstrumentName = "S"
  \override VerticalAxisGroup.remove-layer = 1
  \override VerticalAxisGroup.keep-alive-group = #'sopalt
  \override VerticalAxisGroup.keep-alive-group-layer = 2
} \sopnotes
\new Staff = "alt" \with {
  instrumentName = "A"
  shortInstrumentName = "A"
  \override VerticalAxisGroup.remove-layer = 1
  \override VerticalAxisGroup.keep-alive-group = #'sopalt
  \override VerticalAxisGroup.keep-alive-group-layer = 2
} \altnotes
\new Staff = "tenbas" \with {
  instrumentName = "TB"
  shortInstrumentName = "TB"
  \override VerticalAxisGroup.remove-layer = 2
  \override VerticalAxisGroup.keep-alive-group = #'tenbas
  \override VerticalAxisGroup.keep-alive-group-layer = 2
} \partcombine \tennotes \basnotes
\new Staff = "ten" \with {
  instrumentName = "T"
  shortInstrumentName = "T"
  \override VerticalAxisGroup.remove-layer = 1
  \override VerticalAxisGroup.keep-alive-group = #'tenbas
  \override VerticalAxisGroup.keep-alive-group-layer = 2
} \tennotes
\new Staff = "bas" \with {
  instrumentName = "B"
  shortInstrumentName = "B"
  \override VerticalAxisGroup.remove-layer = 1
  \override VerticalAxisGroup.keep-alive-group = #'tenbas
  \override VerticalAxisGroup.keep-alive-group-layer = 2
} \basnotes
  >>
}


divisiproblem.pdf
Description: Adobe PDF document
\version "2.19.40"

viI = \relative c'' {
   \repeat unfold 8 { c4 d e d | }
   \tag #'viIsolo { \repeat unfold 4 { c16 d e f g f e d } }
   \tag #'viItutti {

Re: Keep alive together - call for use cases

2016-08-19 Thread Mark Knoop
At 18:02 on 19 Aug 2016, Mats Bengtsson wrote:
>I recently typeset a concerto grosso from the baroque period, where
>the solo and tutti parts are identical during long sections and then
>they differ for some bars, every here and there. When entering the
>parts, I used tags to handle the differences so producing the separate
>parts works without problem. However, in the conductors score, I would
>prefer to only use a single stave per instrument when the solo and
>tutti play in unison, but individual staves when they differ. I
>managed to handle this using remove-layer as long as there's only a
>single instrument group that contains and occasional solo part, but if
>for example both violin 1 and violin 2 have a solo plus a tutti, then
>I didn't manage to get it to work correctly. The following example
>shows my current attempt. As can be seen, the split between solo and
>tutti parts happens both for violin 1 and 2 as soon as one of them is
>split. For example, in the second score line, I would like to see Vi I
>solo, Vi I tutti but only one stave with Vi II.

Hi Mats,

How does the attached look to you? Note I have moved the
Keep_alive_together_engraver to the GrandStaff level so that the vln I
and vln II groups can work independently. The problem now is making the
system start braces cooperate.

-- 
Mark Knoop
\version "2.19.40"

viI = \relative c'' {
   \repeat unfold 8 { c4 d e d | }
   \tag #'viIsolo { \repeat unfold 4 { c16 d e f g f e d } }
   \tag #'viItutti { \repeat unfold 2 { c1 } }
   \repeat unfold 24 { c4 d e d | }
}

viII = \relative c' {
   \repeat unfold 16 { g4 c a b | }
   \tag #'viIIsolo { \repeat unfold 4 { g16 c e c g c e c } }
   \tag #'viIItutti { \repeat unfold 2 { g1 } }
   \repeat unfold 16 { g4 c a b | }
}

\paper {
   left-margin = 25\mm
}

\score {
  \new StaffGroup <<
\new GrandStaff <<
  \new Staff = "vlnisolo" \with {
instrumentName = #"Violin I solo"
shortInstrumentName = "Vi I solo"
\override VerticalAxisGroup.remove-empty = ##t
\override VerticalAxisGroup.remove-first = ##t
\override VerticalAxisGroup.remove-layer = 1
  }
  \pushToTag #'viIsolo \unset Staff.keepAliveInterfaces
  \appendToTag #'viIsolo \set Staff.keepAliveInterfaces = #'()
  \keepWithTag #'viIsolo { \set Staff.keepAliveInterfaces = #'() \viI }
  \new Staff = "vlni" \with {
instrumentName = #"Violin I"
shortInstrumentName = "Vi I"
\override VerticalAxisGroup.remove-empty = ##t
\override VerticalAxisGroup.remove-first = ##t
\override VerticalAxisGroup.remove-layer = 1
  }
  \pushToTag #'viItutti \unset Staff.keepAliveInterfaces
  \appendToTag #'viItutti \set Staff.keepAliveInterfaces = #'()
  \keepWithTag #'viItutti { \set Staff.keepAliveInterfaces = #'() \viI }
  \new Staff = "vlnitutti" \with {
instrumentName = #"Violin I tutti"
shortInstrumentName = "Vi I tutti"
\override VerticalAxisGroup.remove-layer = 2
  }
  \pushToTag #'viItutti \unset Staff.keepAliveInterfaces
  \appendToTag #'viItutti \set Staff.keepAliveInterfaces = #'()
  \keepWithTag #'viItutti { \set Staff.keepAliveInterfaces = #'() \viI }
>>
\new GrandStaff <<
  \new Staff = "vlniisolo" \with {
instrumentName = #"Violin II solo"
shortInstrumentName = "Vi II solo"
alignBelowContext = "vlnisolo"
\override VerticalAxisGroup.remove-empty = ##t
\override VerticalAxisGroup.remove-first = ##t
\override VerticalAxisGroup.remove-layer = 1
  }
  \pushToTag #'viIIsolo \unset Staff.keepAliveInterfaces
  \appendToTag #'viIIsolo \set Staff.keepAliveInterfaces = #'()
  \keepWithTag #'viIIsolo { \set Staff.keepAliveInterfaces = #'() \viII }
  \new Staff = "vlnii" \with {
instrumentName = #"Violin II"
shortInstrumentName = "Vi II"
\override VerticalAxisGroup.remove-empty = ##t
\override VerticalAxisGroup.remove-first = ##t
\override VerticalAxisGroup.remove-layer = 1
  }
  \pushToTag #'viIItutti \unset Staff.keepAliveInterfaces
  \appendToTag #'viIItutti \set Staff.keepAliveInterfaces = #'()
  \keepWithTag #'viIItutti { \set Staff.keepAliveInterfaces = #'() \viII }
  \new Staff = "vlniitutti" \with {
instrumentName = #"Violin II tutti"
shortInstrumentName = "Vi II tutti"
\override VerticalAxisGroup.remove-layer = 2
  }
  \pushToTag #'viIItutti \unset Staff.keepAliveInterfaces
  \appendToTag #'viIItutti \set Staff.keepAliveInterfaces = #'()
  \keepWithTag #'viIItutti { \set Staff.keepAliveInterfaces = #'() \viII }
>>
  >>
  \layout {
\context {
  \GrandStaff
  \consists Keep_alive_together_engraver
  \remove System_start_delimiter_engraver
}
  }
}
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Keep alive together - call for use cases

2016-08-18 Thread Mark Knoop
At 20:18 on 16 Aug 2016, Mark Knoop wrote:
>At 12:13 on 16 Aug 2016, tisimst wrote:
>>A great example (better and more likely to happen than mine)! Maybe
>>you'll be able to check this item off you wish-list soon!  
>
>Thanks both for those. I probably won't do anything on this for the
>next couple of days, so feel free to add more thoughts if you have
>them. 

The attached goes some way towards addressing both Kieren's carol and
Abraham's horn problems. Note this is really just an expansion of the
divisi-staves example and works with current lilypond (without my
patch). 

Could you both take a look at this and see (a) if it helps, and (b)
what else needs to be achieved. 

-- 
Mark Knoop
\version "2.19.45"
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
}

\layout {
  short-indent = 8
  \context {
\StaffGroup
\consists Keep_alive_together_engraver
  }
  \context {
\Staff
\override VerticalAxisGroup.remove-first = ##t
\override VerticalAxisGroup.remove-empty = ##t
  }
}

\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 { \voiceOne \partcombine \sopnotes \altnotes }
  \new Voice { \voiceTwo \partcombine \tennotes \basnotes }
>>
\new Staff = "sopalt" \with {
  instrumentName = "SA"
  shortInstrumentName = "SA"
  \override VerticalAxisGroup.remove-layer = 2
} \partcombine \sopnotes \altnotes
\new Staff = "sop" \with {
  instrumentName = "S"
  shortInstrumentName = "S"
  \override VerticalAxisGroup.remove-layer = 1
} \sopnotes
\new Staff = "alt" \with {
  instrumentName = "A"
  shortInstrumentName = "A"
  \override VerticalAxisGroup.remove-layer = 1
} \altnotes
\new Staff = "tenbas" \with {
  instrumentName = "TB"
  shortInstrumentName = "TB"
  \override VerticalAxisGroup.remove-layer = 2
} \partcombine \tennotes \basnotes
\new Staff = "ten" \with {
  instrumentName = "T"
  shortInstrumentName = "T"
  \override VerticalAxisGroup.remove-layer = 1
} \tennotes
\new Staff = "bas" \with {
  instrumentName = "B"
  shortInstrumentName = "B"
  \override VerticalAxisGroup.remove-layer = 1
} \basnotes
  >>
}
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Keep alive together - call for use cases

2016-08-16 Thread Mark Knoop
At 12:13 on 16 Aug 2016, tisimst wrote:
>A great example (better and more likely to happen than mine)! Maybe
>you'll be able to check this item off you wish-list soon!

Thanks both for those. I probably won't do anything on this for the
next couple of days, so feel free to add more thoughts if you have
them. 

-- 
Mark Knoop

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


Keep alive together - call for use cases

2016-08-16 Thread Mark Knoop
I've been working on some patches to enable more flexible uses for the
Keep_alive_together_engraver. Whilst I've achieved my particular use
case, David K is (rightly) keen that any changes might also address (or
at least not rule out) other potential improvements.

(If you're interested in the code, look here:
https://codereview.appspot.com/308910043/)

So if I could ask users for any situations where they can imagine this
engraver helping, that currently don't work, or don't work easily. I'll
start by describing my case, which came up on the list recently.

Duplicating rehearsal, tempo, volta marks etc at multiple vertical
positions in an orchestral score is possible with a custom MarkLine
context (http://lsr.di.unimi.it/LSR/Item?id=1010), however this
technique currently doesn't work in a Frenched score, as there may be
passages where e.g. the brass are tacet so two MarkLines would be shown
together. My fix makes it possible to set a context (Staff or MarkLine)
to be kept alive only while there is another Staff in the group.

See also the temporary divisi staves example here:
http://lilypond.org/doc/v2.19/input/regression/a6/lily-436997bb.ly
as another use of the engraver.

Many thanks for your input.

--
Mark Knoop

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


Re: rehearsal marks: separate from content encoding and display above strings

2016-08-15 Thread Mark Knoop
At 10:32 on 15 Aug 2016, Johan Vromans wrote:
>On Mon, 15 Aug 2016 10:22:14 +0200
>David Kastrup <d...@gnu.org> wrote:
>
>> That's not really surprising.  The "repeats are shown" just by
>> changing the bar line type, ...  
>
>That is the explanation of the current behaviour.
>
>What I want to say is that it would be nice if instead it would
>be like the repeats were actually present in the individual staffs,
>just as the printed output shows it.

So the request is perhaps for \unfoldRepeats (or a new command) to work
across voices/staves:

\version "2.19.46"
withrepeat = { c'1 \repeat volta 2 { d'2 e' } f'1 }
withoutrepeat = { a1 bes1 f }
desired = { a1 bes1 1 f }
\score { << \withrepeat \withoutrepeat >> }
\markup "current \unfoldRepeats"
\score { \unfoldRepeats << \withrepeat \withoutrepeat >> }
\markup "desired \unfoldRepeats in all staves"
\score { \unfoldRepeats << \withrepeat \desired >> }

-- 
Mark Knoop

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


Re: rehearsal marks: separate from content encoding and display above strings

2016-08-12 Thread Mark Knoop
At 16:30 on 12 Aug 2016, Thomas Weber wrote:
>There are two things about rehearsal marks in orchestral scores I'd
>like to know about.
>
>Firstly, how can I separate rehearsal marks (and other structural
>stuff like \break or \pageBreak) from the actual musical content?  Can
>I somehow add a virtual staff to carry the rehearsal mark
>information?  I think I remember seeing something like that before,
>but I can't seem to find any documentation about it.

Yes, the standard solution is to use a global variable which contains
things like rehearsal and tempo marks, meter changes, etc.

>Secondly, how can I make rehearsal marks appear both on the very top
>staff and the top staff of the strings?  As far as I can see,
>rehearsal marks will always be put at the very top staff.

See this snippet http://lsr.di.unimi.it/LSR/Item?id=1010 which defines
a custom context to achieve this. 

Note this currently doesn't work well in a frenched score as the
MarkLine context can't know if the staves below it are still alive.
However I have just submitted a potential fix for this, see here
https://codereview.appspot.com/308910043/ for its progress.

-- 
Mark Knoop

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


Re: LilyPond logo?

2016-08-05 Thread Mark Knoop
At 14:40 on 05 Aug 2016, Phil Holmes wrote:
>- Original Message -
>From: Andrew Bernard
>> I also note that there does not seem to be consistency as to whether
>> lilypond is
>> ‘Lilypond’ or ‘LilyPond’ or ‘Lily Pond’ or ‘lilypond’. That at least
>> needs to be straightened out.
>
>LilyPond.  Check the front page of the website.

$ git grep LilyPond Documentation/ | wc -l
11154
$ git grep Lilypond Documentation/ | wc -l
329
$ git grep "Lily Pond" Documentation/ | wc -l
2

--
Mark Knoop

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


Re: Strange font change in v2.19.45

2016-07-27 Thread Mark Knoop
At 13:27 on 27 Jul 2016, Patrick Karl wrote:
>Consider the following MWE:
> [snip]
>It produces the attached two pdf outputs.  Note the font change for
>composer, poet, instrumentName, and piece in Score2, while the font
>used for those fields looks normal in Score1.
>
>This phenomenon seems to occur for any "book" past the first one.
>
>This phenomenon did not occur in v2.19.38.
>
>Is there a fix?  Is this a bug?

Seems to be fixed in git. I think it was issue 4918.

--
Mark Knoop

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


repeating bar numbers and rehearsal marks in frenched score

2016-07-26 Thread Mark Knoop
Further to this thread from 2013
(https://lists.gnu.org/archive/html/lilypond-user/2013-09/msg00857.html)
I've still not come up with a satisfactory method of duplicating a
dedicated BarNumber/RehearsalMark context at two or more vertical
positions in a frenched score. The context should only stay alive only
while one or more Staff contexts are alive within the same StaffGroup.

I was hoping to solve this by using the newer property
VerticalAxisGroup.remove-layer introduced by David Kastrup in 2014 as a
solution for issue 3518. However I can only get this to solve one
problem - that of making the instrument staves invisible to the
Keep_alive_together_engraver.

Is there any way that the VerticalAxisGroup.keep-alive-with array can be
set directly in scheme?

%
\version "2.19.45"
bars = \repeat unfold 12 { \mark \default R1*2 }
winds = \repeat unfold 96 { c''4 }
brass = \repeat unfold 24 { R1 }
brasstwo = { \repeat unfold 12 c'1 \repeat unfold 12 { R1 } }
strings = \repeat unfold 192 { c''8 }
#(set-global-staff-size 16)

\layout {
  \context {
\Dynamics
\consists Mark_engraver
\consists Bar_number_engraver
  }
  \context {
\Staff
\RemoveEmptyStaves
  }
  \context {
\Score
\remove Mark_engraver
\remove Bar_number_engraver
  }
}

\markup "remove-layer unset for all => bars context behaves correctly,
but b1 staff still alive in 2nd system when we want it dead"
\score {
  <<
\new Dynamics { \bars }
\new Staff = "winds" { \winds }
\new StaffGroup \with {
  \consists Keep_alive_together_engraver
} <<
  \new Dynamics \with {
keepAliveInterfaces = #'()
\override VerticalAxisGroup.remove-empty = ##t
\override RehearsalMark.color = #red
  } { \bars }
  \new Staff = "brass" \with {
shortInstrumentName = "b1"
  } { \brass }
  \new Staff = "brasstwo" \with {
shortInstrumentName = "b2"
  } { \brasstwo }
>>
\new Dynamics { \bars }
\new Staff = "strings" { \strings }
  >>
}

\markup "remove-layer bars=unset or '() or 1 or #f, b1=#f, b2=#f => b1
and b2 staves behave correctly, but bars context dies in 2nd system"
\score {
  <<
\new Dynamics { \bars }
\new Staff = "winds" { \winds }
\new StaffGroup \with {
  \consists Keep_alive_together_engraver
} <<
  \new Dynamics \with {
keepAliveInterfaces = #'()
\override VerticalAxisGroup.remove-empty = ##t
\override RehearsalMark.color = #red
%\override VerticalAxisGroup.remove-layer = 1
%\override VerticalAxisGroup.remove-layer = #'()
%\override VerticalAxisGroup.remove-layer = ##f
  } { \bars }
  \new Staff = "brass" \with {
\override VerticalAxisGroup.remove-layer = ##f
  } { \brass }
  \new Staff = "brasstwo" \with {
    \override VerticalAxisGroup.remove-layer = ##f
  } { \brasstwo }
>>
\new Dynamics { \bars }
\new Staff = "strings" { \strings }
  >>
}

--
Mark Knoop

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


Re: how to override of TextScript.stencil into a tweak

2016-06-03 Thread Mark Knoop
At 00:27 on 03 Jun 2016, Ryan Michael wrote:
>I have the following snippet
>
>%%
>\time 4/4
> \once \override TextScript.stencil =
>#(make-stencil-boxer 0.1 0.3 ly:text-interface::print)
>r1\fermata-\markup{\teeny "wait for viola cue"}\stopTextSpan^"B"
>%%%
>
>However the above applies a stencil boxer to the markup below the
>staff in addition to the string "B". I would only like to add the
>stencil boxer to the letter "B" above the staff. I understand that I
>should use a tweak except when I try the above in the Tweak syntax, I
>get an error. Thanks!

Well, you don't mention what you tried. This seems to work:

{
r1\fermata
-\tweak TextScript.stencil #(make-stencil-boxer 0.1 0.3 
ly:text-interface::print)
-\markup { \teeny "wait for viola cue" }
\stopTextSpan
^"B"
}

--
Mark Knoop

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


Re: footnote counter

2016-05-26 Thread Mark Knoop
At 00:35 on 26 May 2016, Jeffery Shivers wrote:
>I am trying to find the following two things regarding footnotes:
>
>1) How might I retrieve the accumulated number of footnotes either for
>an entire document/section, or at least for a single page?
>
>2) In the notation doc [
>http://lilypond.org/doc/v2.19/Documentation/notation.pdf], pg. 481, the
>'mark' element describes that the count is automatically reset on each
>page that contains a footnote. Where is that function written; and how
>could it be overwritten (specifically to *not* automatically reset
>ever, or (additionally) to only reset when explicitly instructed)?

\paper {
  reset-footnotes-on-new-page = ##f
}

will do the first. I'm afraid I can't help with the other points.

-- 
Mark Knoop

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


Re: Scheme optional arguments, number-list

2016-04-23 Thread Mark Knoop
Thanks David,

At 15:01 on 23 Apr 2016, David Kastrup wrote:
>Mark Knoop <m...@opus11.net> writes:
>> On upgrading to 2.19.32, one of my regular functions no longer works.
>> It seems that a single number as the first argument is now accepted
>> as a number-list whereas before it was not and thus became the second
>> argument.
>>
>> Whilst the new possibility to write lists as 1,2,3,4 is very nice, is
>> there any way to alter my function definition to achieve the old
>> behaviour?
>>
>> myFunction = #(define-void-function
>>   (a b c d)
>>   ((number-list? '()) number? (boolean? #t) fraction?)
>>   (print "\na=~s b=~s c=~s d=~s\n" a b c d))
>>
>> {
>>   % this works when all arguments are specified
>>   \myFunction 1,2,3,4 4 ##t 4/4
>>   % not specifying first argument no longer works
>>   \myFunction 4 4/4
>> }  
>
>You can write your own predicate that will reject lists containing a
>single number.  But it will then also reject an explicit #'(3).  I'm
>afraid that you just created an interface that was too delicate to
>survive further development.

In this instance single number lists are not relevant anyway. So I've
tried this method:

#(define (multi-number-list? x)
  (and (list? x)
   (< 1 (length x))
   (every number? x)))

testfn = #(define-void-function
  (a) (multi-number-list?)
  (print "\na=~s length=~s\n" a (length a)))

{
  % this works
  \testfn #'(1 2 3)
  % this doesn't - why?
  \testfn 1,2,3
  % this fails as expected
  \testfn 1
}

...and was surprised to see that the new list syntax doesn't work in
this instance. It's not clear to me at what point lilypond/guile
decides that something is a list or not.

So this method will work for my old scores which still use #'(1 2 3)
syntax, but can't take advantage of the new 1,2,3 syntax.

>Of course, you can always skip an optional argument using \default, but
>that's likely not what you would want to do.

Yes, still hoping to find a way to avoid that if possible.

-- 
Mark Knoop

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


Scheme optional arguments, number-list

2016-04-23 Thread Mark Knoop
On upgrading to 2.19.32, one of my regular functions no longer works.
It seems that a single number as the first argument is now accepted as a
number-list whereas before it was not and thus became the second
argument.

Whilst the new possibility to write lists as 1,2,3,4 is very nice, is
there any way to alter my function definition to achieve the old
behaviour?

myFunction = #(define-void-function
  (a b c d)
  ((number-list? '()) number? (boolean? #t) fraction?)
  (print "\na=~s b=~s c=~s d=~s\n" a b c d))

{
  % this works when all arguments are specified
  \myFunction 1,2,3,4 4 ##t 4/4
  % not specifying first argument no longer works
  \myFunction 4 4/4
}

I suspect this is related to commit
2a66e23f356503ef916d51efa3f00cae5958dc48 
Issue 4811/1: Allow property paths as scalars and in assignments

--
Mark Knoop

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


Re: 'absolute' pitches do not influence 'relative' ones

2016-04-18 Thread Mark Knoop
At 10:49 on 18 Apr 2016, Leszek Wroński wrote:
>Guys,
>
>if you do this:
>
>\relative c'' {a \absolute {a''} b}
>
>
>then you jump up an octave and down a seventh. Now, suppose you want
>the notes AFTER the absolute one 'borrow' the pitch from it, so that
>in my example the 'b' would actually be absolute b''. How would one do
>this without creating a new \relative expression?

\resetRelativeOctave

-- 
Mark Knoop

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


Re: Horizontal \sustainOn alignment

2016-03-24 Thread Mark Knoop
At 09:29 on 24 Mar 2016, Kieren MacMillan wrote:
>> In all of Gould's examples, it's more the "e" that's centered on the
>> notehead.  
>
>We must have different Goulds: not only are all of the examples I see
>left-aligned with the left edge of the “P” [even using a magnifying
>glass], but Gould explicitly states (in the prose) that this is the
>the correct alignment.

It seems that Gould is not consistent. In the first pedal example at
the end of Chapter 2 (page 73 in my edition) the Ped symbol is centered
on the notehead. But in the more detailed treatment of piano pedalling
in Chapter 11 (page 333 and onwards) Ped is left aligned as Kieren
states.

-- 
Mark Knoop

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


Re: Horizontal \sustainOn alignment

2016-03-24 Thread Mark Knoop
At 15:04 on 24 Mar 2016, Mark Knoop wrote:
>At 09:29 on 24 Mar 2016, Kieren MacMillan wrote:
>>> In all of Gould's examples, it's more the "e" that's centered on the
>>> notehead.
>>
>>We must have different Goulds: not only are all of the examples I see
>>left-aligned with the left edge of the “P” [even using a magnifying
>>glass], but Gould explicitly states (in the prose) that this is the
>>the correct alignment.  
>
>It seems that Gould is not consistent. In the first pedal example at
>the end of Chapter 2 (page 73 in my edition) the Ped symbol is centered
>on the notehead. But in the more detailed treatment of piano pedalling
>in Chapter 11 (page 333 and onwards) Ped is left aligned as Kieren
>states.

In a brief flip through my piano music library there certainly doesn't
seem to be any consistency, even within one work, let alone publication
or edition. Most common is an alignment where the gap between the "P"
and "e" of Ped is roughly centered on the notehead. But this drifts in
both directions. Exact left alignment was relatively uncommon.

-- 
Mark Knoop

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


Re: Beaming over a rest before a subdivision

2016-01-13 Thread Mark Knoop
At 22:57 on 12 Jan 2016, Urs Liska wrote:
>Am 12.01.2016 um 20:59 schrieb Werner LEMBERG:
>>> What should the behavior of the *last* one be here?  
>> No beams over the rest.  
>
>Well, default behaviour is to break the beam at all rests here (see
>attached).

Not sure if this is relevant to your current work on this, but it would
be great to have a global override to create beams over rests WITHOUT
having to manually enter them. The implementation would need quite some
thought as to the kind of parameters needed, e.g. maximum-rest-value,
minimum-beam-count, etc.

-- 
Mark Knoop

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


Re: Beaming over a rest before a subdivision

2016-01-12 Thread Mark Knoop
At 17:15 on 12 Jan 2016, Werner LEMBERG wrote:
>> b) have *no* beamlets at all and let the subdivision be calculated
>>as usual (fourth attachment)  
>
>This is what I prefer.
>

+1. Gould seems to always use stemlets with beamlets when the beam
count > 2.

-- 
Mark Knoop

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


Re: A command-line wrapper for OpenLilyLIb

2015-11-04 Thread Mark Knoop
At 14:59 on 04 Nov 2015, Matteo Ceccarello wrote:
>I just implemented a small command line tool that I hope will simplify
>the use of OpenLilyLib [1] in multiple projects. You can find a
>motivating example in a blog post [2]. The tool itself, together with
>installation instructions and a small tutorial can be found on Github
>[3].

This is very similar to my current approach, thanks for putting this
together.

>Comments and suggestions are very much appreciated :-)

You might consider using the pygit2 python module [1] rather than
calling calling git with subprocess. This could perhaps replace a
substantial part of your OpenLilyLibRepo class.

[1] http://www.pygit2.org/

--
Mark Knoop

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


Re: Eighth Tones (microtonal)

2015-07-30 Thread Mark Knoop
At 19:40 on 30 Jul 2015, Nike Hedges wrote:
Hi Mark,

Thanks! It's nice.

I tried it in eighth tone scale (eighthtones.ly attached) but got the
following warnings, and the same ones in normal quarter tone scale
(quartertones.ly attached) I got. Just my wondering.

This comes from your use of transpose. If you want to use this with
transpose then you'll have to decide/invent accidentals for this
alterations. What accidental would you use for a
one-and-three-eighth-tone-sharp?

Or alternatively, just be careful to prefer eighth-tone alterations
within the semitone (which is usually nicer for the player anyway).


eighthtones.ly:129:1: warning: Could not find glyph-name for
alteration 5/4

bisih
eighthtones.ly:128:1: warning: Could not find glyph-name for
alteration 9/8

bisiq
eighthtones.ly:130:1: warning: Could not find glyph-name for
alteration 11/8

bisqq
eighthtones.ly:131:1: warning: Could not find glyph-name for
alteration 3/2

bisis
eighthtones.ly:57:1: warning: Could not find glyph-name for alteration
5/4

eisih
eighthtones.ly:58:1: warning: Could not find glyph-name for alteration
11/8

eisqq
eighthtones.ly:59:1: warning: Could not find glyph-name for alteration
3/2

eisis
eighthtones.ly:56:1: warning: Could not find glyph-name for alteration
9/8

eisiq

On Thu, Jul 30, 2015 at 5:47 PM, Mark Knoop m...@opus11.net wrote:
 At 17:28 on 30 Jul 2015, Nike Hedges wrote:
 Hi,
 
 I want to write eighth tones, 1/8 rather than 1/4.
 I believe it's possible if I create some file referring makam.ly.
 Or do the dev team have a plan to create 1/8 tone system?

 I use the attached. Use like this:

 \include microtonal.ily
 { cesqq' eiq'' geseq' biseq'' }

--
Mark Knoop

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


Re: Parameterize an event function

2015-07-30 Thread Mark Knoop
At 22:18 on 30 Jul 2015, Andrew Bernard wrote:
Greetings Ponderers,

I have written a function to generate custom metronome marks as I want
them to be. But due to limitations of my understanding, this is
terribly crude - it has a hardwired crotchet for the note displayed.
What I really want to achieve is to be able to pass a duration into
the function as a parameter and be able to have quavers or other note
values a needed. So for example, I’d like to be able to say

\metroMark 8 “ = 56”

to specify a tempo of quaver equals 56. The reason I wrote this
function is that using \note and \note-by-number don’t appear to give
me the control over fonts that I want.

I know how to use Scheme arguments and so on, but when I pass a note
into the function as ly:music it seems to upset all the following
music in the score, so I am somewhat perplexed.

Use ly:duration? (although this seems extraordinarily
over-complicated...)

metroMark = #(define-event-function
  (dur arg) (ly:duration? markup?)
  #{
  ^\markup \concat {
{
  \score {
\new Staff \with {
  \remove Staff_symbol_engraver
  \remove Time_signature_engraver
  \remove Clef_engraver
  \override NoteHead.font-size = -4
  \override Stem.length = 6
  \override Flag.font-size = -4
}
{ \relative c'' { \stemUp c $dur } }
\layout {
  indent = 0
  ragged-right = ##t
}
  }
}
#arg
  }
  #})

{ c' \metroMark 8  = 56 }

-- 
Mark Knoop

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


Re: Eighth Tones (microtonal)

2015-07-30 Thread Mark Knoop
At 17:28 on 30 Jul 2015, Nike Hedges wrote:
Hi,

I want to write eighth tones, 1/8 rather than 1/4.
I believe it's possible if I create some file referring makam.ly.
Or do the dev team have a plan to create 1/8 tone system?

I use the attached. Use like this:

\include microtonal.ily
{ cesqq' eiq'' geseq' biseq'' }

-- 
Mark Knoop


microtonal.ily
Description: Binary data
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: music function with access to context properties like currentBarNumber?

2015-07-18 Thread Mark Knoop
At 20:20 on 15 Jul 2015, Malte Meyn wrote:
Hello list,

I would like to have somthing like

\version 2.19.22
{
   \time 3/4
   % bar 1
   c'2.
   \skipUntil #5 % s2.*4
   % bar 5
   c'2.
   \restUntil #8 % R2.*2
   % bar 8
   c'2.
}

I use the attached which is from this thread from a couple of years
ago. Thanks to Keith OHara.

https://lists.gnu.org/archive/html/lilypond-user/2013-12/msg01296.html

-- 
Mark Knoop


alignTo.ily
Description: Binary data
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Piano pedal lines

2015-07-10 Thread Mark Knoop
At 16:05 on 10 Jul 2015, Andrew Bernard wrote:
Greetings All,

Using bracket style for piano pedals, is it possible to have a dashed
horizontal line instead of solid?

Yes. See below. For more options, note that PianoPedalBracket supports
the line-interface, so you can override any of those properties.

Documentation/internals/pianopedalbracket.html
Documentation/internals/line_002dinterface.html

\version 2.19.21

{
  \override Staff.PianoPedalBracket.style = #'dashed-line
  \set Staff.pedalSustainStyle = #'bracket
  c4\sustainOn g c d
  d\sustainOff\sustainOn g, c2
  \bar |.
}

-- 
Mark Knoop

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


Re: Printing movement titles in page header

2015-07-09 Thread Mark Knoop
Thanks to Jan-Peter's lalily, I now have a working solution, attached.

At 09:05 on 09 Jul 2015, Mark Knoop wrote:
Thanks Jan-Peter,

I'll take a look at this and post back if I make any progress.

Cheers,

Mark

At 09:21 on 09 Jul 2015, Jan-Peter Voigt wrote:
Hi Mark,

I know this issue and wrote and use some code which tracks the
current toc entry.
The bad thing - of course this is a good thing ;) - I am employed in
a full time job with absolutely no relation to lilypond, so I can't
say, when I am able to discover the magic ...

Just for completenes - I don't think this uncommented chaos is
readable ;) In line 217 in the default paper-definition, I call the
property #'toc:current :
https://github.com/jpvoigt/lalily/blob/master/lalily/paper.lalily-default.ly#L196

this property is set in markup-init.scm line 153:
https://github.com/jpvoigt/lalily/blob/master/lalily/lalily/markup-init.scm#L131

So, I don't expect anybody to extract this from lalily, as this might
be quite frustrating. But if you like, you can see, if the use of
lalily conceptually does, what you want. And perhaps there will be
times, when I am able extract this to openlilylib.

Cheers,
Jan-Peter

Am 08.07.2015 um 13:41 schrieb Mark Knoop:
 I'm trying to include the title of the current movement in the page
 header. This works if I use bookparts to seperate the movements, but
 not by setting header:piece in a score block. I don't want to use
 bookparts as I don't want pagebreaks between movements.

 Any ideas on how to achieve this?

 \version 2.19.22

 \header {
title = My Piece
composer = Me
tagline = ##f
% piece only prints in header if set here or in bookpart header
piece = Global Piece
 }

 \paper {
oddHeaderMarkup = \markup
\fill-line {
  \on-the-fly #not-part-first-page \fromproperty #'header:piece
  \on-the-fly #not-part-first-page \fromproperty #'header:title
  \on-the-fly #print-page-number-check-first
\fromproperty #'page:page-number-string
}
evenHeaderMarkup = \oddHeaderMarkup
 }

 \book {
\bookpart {
  % piece only prints in header if set here or in top-level
 header \header { piece = Part 1 }
  \score {
% setting piece here has no effect
\header { piece = Movement 1 }
\repeat unfold 400 c'1
  }
  \score {
% setting piece here has no effect
\header { piece = Movement 2 }
\repeat unfold 400 d'1
  }
}
\bookpart {
  \score {
% setting piece here has no effect,
% even without a bookpart level header
\header { piece = Movement 3 }
\repeat unfold 400 e'1
  }
}
 }



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








-- 
Mark Knoop
\version 2.19.22

% Scheme functions ripped from https://github.com/jpvoigt/lalily
% Thanks to Jan-Peter Voigt

#(define-public (register-markup-producer name proc) #f)
#(define-public (get-markup-producer name) #f)

#(let ((table (list)))
  (set! register-markup-producer (lambda (name proc)
   (set! table (assoc-set! table name proc
  (set! get-markup-producer (lambda (name)
  (assoc-get name table

#(define-markup-command (fromproperties layout props arg)(list?)
  (let ((mup (get-markup-producer fromproperties-markup)))
   (interpret-markup layout props (mup layout props (list arg)

#(register-markup-producer fromproperties-markup (lambda (layout props args)
  (let ((ret (markup)))
   (for-each (lambda (sym)(let ((val (chain-assoc-get sym props)))
  (if (and (or (string? val)(markup? val))
  ( (string-length (markup-string val)) 0))
(set! ret val
 (reverse (car args)))
   ret)))

#(define-markup-command (execMarkup layout props proc)
(procedure?)
  (let ((m (proc layout props)))
(cond ((ly:stencil? m) m)
  ((markup? m) (interpret-markup layout props m))
  (else (interpret-markup layout props (markup (format ~A m)))

#(define-markup-command (delayed layout props mup)
(markup?)
  (let* ((line-part (chain-assoc-get 'line-part props 1))
 (line-width (* (ly:output-def-lookup layout 'line-width) line-part))
 (gauge-stencil (interpret-markup layout props mup)) ; (markup #:super * ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß )))
 (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

 (let* ((table (ly:output-def-lookup layout 'label-page-table))
(cur-page 0)
(current-toc (markup)))
   (set! cur-page (chain-assoc

Re: Printing movement titles in page header

2015-07-09 Thread Mark Knoop
Thanks Jan-Peter,

I'll take a look at this and post back if I make any progress.

Cheers,

Mark

At 09:21 on 09 Jul 2015, Jan-Peter Voigt wrote:
Hi Mark,

I know this issue and wrote and use some code which tracks the current 
toc entry.
The bad thing - of course this is a good thing ;) - I am employed in a 
full time job with absolutely no relation to lilypond, so I can't say, 
when I am able to discover the magic ...

Just for completenes - I don't think this uncommented chaos is
readable ;) In line 217 in the default paper-definition, I call the
property #'toc:current :
https://github.com/jpvoigt/lalily/blob/master/lalily/paper.lalily-default.ly#L196

this property is set in markup-init.scm line 153:
https://github.com/jpvoigt/lalily/blob/master/lalily/lalily/markup-init.scm#L131

So, I don't expect anybody to extract this from lalily, as this might
be quite frustrating. But if you like, you can see, if the use of
lalily conceptually does, what you want. And perhaps there will be
times, when I am able extract this to openlilylib.

Cheers,
Jan-Peter

Am 08.07.2015 um 13:41 schrieb Mark Knoop:
 I'm trying to include the title of the current movement in the page
 header. This works if I use bookparts to seperate the movements, but
 not by setting header:piece in a score block. I don't want to use
 bookparts as I don't want pagebreaks between movements.

 Any ideas on how to achieve this?

 \version 2.19.22

 \header {
title = My Piece
composer = Me
tagline = ##f
% piece only prints in header if set here or in bookpart header
piece = Global Piece
 }

 \paper {
oddHeaderMarkup = \markup
\fill-line {
  \on-the-fly #not-part-first-page \fromproperty #'header:piece
  \on-the-fly #not-part-first-page \fromproperty #'header:title
  \on-the-fly #print-page-number-check-first
\fromproperty #'page:page-number-string
}
evenHeaderMarkup = \oddHeaderMarkup
 }

 \book {
\bookpart {
  % piece only prints in header if set here or in top-level header
  \header { piece = Part 1 }
  \score {
% setting piece here has no effect
\header { piece = Movement 1 }
\repeat unfold 400 c'1
  }
  \score {
% setting piece here has no effect
\header { piece = Movement 2 }
\repeat unfold 400 d'1
  }
}
\bookpart {
  \score {
% setting piece here has no effect,
% even without a bookpart level header
\header { piece = Movement 3 }
\repeat unfold 400 e'1
  }
}
 }



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




-- 
Mark Knoop

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


Printing movement titles in page header

2015-07-08 Thread Mark Knoop
I'm trying to include the title of the current movement in the page
header. This works if I use bookparts to seperate the movements, but
not by setting header:piece in a score block. I don't want to use
bookparts as I don't want pagebreaks between movements.

Any ideas on how to achieve this? 

\version 2.19.22

\header {
  title = My Piece
  composer = Me
  tagline = ##f
  % piece only prints in header if set here or in bookpart header
  piece = Global Piece
}

\paper {
  oddHeaderMarkup = \markup
  \fill-line {
\on-the-fly #not-part-first-page \fromproperty #'header:piece
\on-the-fly #not-part-first-page \fromproperty #'header:title
\on-the-fly #print-page-number-check-first 
  \fromproperty #'page:page-number-string 
  }
  evenHeaderMarkup = \oddHeaderMarkup
}

\book {
  \bookpart {
% piece only prints in header if set here or in top-level header
\header { piece = Part 1 }
\score {
  % setting piece here has no effect
  \header { piece = Movement 1 }
  \repeat unfold 400 c'1
}
\score {
  % setting piece here has no effect
  \header { piece = Movement 2 }
  \repeat unfold 400 d'1
}
  }
  \bookpart {
\score {
  % setting piece here has no effect, 
  % even without a bookpart level header 
  \header { piece = Movement 3 } 
  \repeat unfold 400 e'1
}
  }
}

-- 
Mark Knoop

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


Re: tremolo confusion

2015-06-12 Thread Mark Knoop
At 10:15 on 12 Jun 2015, Damian leGassick wrote:
Dear all

I need to set this tremolo:


{
  \time 3/4
  r4 \scaleDurations #'(2 . 1) \repeat tremolo 4 { e'''!64 c'''! } r4
}


-- 
Mark Knoop

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


Re: point-and-click from PDF viewer to lilypond editor

2015-06-06 Thread Mark Knoop
At 11:37 on 06 Jun 2015, Urs Liska wrote:
Am 6. Juni 2015 11:16:26 MESZ, schrieb Peter Bjuhr:
On 2015-06-06 10:40, Federico Bruni wrote:
 Does anybody here use point-and-click from an external PDF viewer
 (either Evince or Xpdf) to the lilypond editor?
 I find it useful when transcribing from a PDF manuscript, because I
 can organize three different windows (manuscript, PDF preview and
 lilypond editor) to work and compare.

 I've tried several editors but none works correctly:

I did a quick test. I'm on Ubuntu 15.04, Evince is called Document
Viewer. But what I understand it's the same. I'm sure it has worked
in the past, but now I get an error already in the viewer: Unable to
open external link.

I tried the instructions here:
http://www.lilypond.org/doc/v2.19/Documentation/usage/configuring-the-system-for-point-and-click#extra-configuration-for-evince.

But it didn't help.

Same with me (evince on Debian/Gnome). I've given up on this long time
ago.

Works for me on Fedora using my install script here:

https://github.com/markk/textedit-ly

--
Mark Knoop

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


Re: Generate multiple score from a single music expression

2015-06-02 Thread Mark Knoop
At 06:52 on 02 Jun 2015, Gianmaria Lari wrote:
Consider this musical expression

a b c d
e f g a

It is possible whitout rewriting it multiple times and marking
opportunely the
music generate multiple scores like the followings:

1) a b c d 
2) c d e f 
3) a b c d e f g

This (and more) is possible with http://gillesth.free.fr/Lilypond/extractMusic/

-- 
Mark Knoop

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


Re: Automatically inserting bar lines when a line is broken on an empty bar line

2015-05-22 Thread Mark Knoop
At 11:44 on 22 May 2015, Matie Holtzhausen wrote:
Hi,

How can I print a bar line if the line-breaker decides to break at an
empty bar line:

For example:

\paper {
paper-width = 60\mm
}

\relative c' {c8 c c c \bar  c c c c | c c c c}

This causes the line-breaker to break at \bar “”.
If the paper setting is removed, it does not break the line at all.

How can I adapt my music, so that if the paper setting causes the
first measure to be broken at \bar “”, a bar line would be printed (at
the end of the line).  If the paper setting is removed, I do not a bar
line.

I would like to have the flexibility of changing layout variables,
without having to put manual bar lines at line breaks (impractical for
a large book), and I do not want lines to end without bar lines.

Any suggestions would be appreciated.

See _Notation Reference 1.2.5 Bar lines_ for the \defineBarLine command.
You should define and use a barline that is false except for the end of
line.

\defineBarLine  #'(| #f #f)
\repeat unfold 50 { c'1 \bar  }

-- 
Mark Knoop

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


Re: Music function problem

2015-05-14 Thread Mark Knoop
At 14:57 on 14 May 2015, Peter Gentry wrote:
 I have seen the error of my ways...

My previous use of a function needed just a music object this was
simply the following music expression in my case an include file of
notes.

When the function has an additional parameter this must come after the
music not immediately after the \functionname.

I was anticipating some internal Lily magic when the answer was
simple...doh.

Well, you could just change the order of the parameters, viz:

callmyfunction =
#(define-music-function (parser location n m) (number? ly:music?) 
(anotherfunction m n))

-Original Message-
From: Thomas Morley [mailto:thomasmorle...@gmail.com] 
Sent: Thursday, May 14, 2015 1:07 PM
To: Peter Gentry
Cc: lilypond-user
Subject: Re: Music function problem

2015-05-14 13:44 GMT+02:00 Peter Gentry
peter.gen...@sunscales.co.uk:
 I am trying to write an include file that will modify a music
 object dependent on the specified instrument.


music-functions _do_ accept strings or numbers, something else 
must be wrong.
Can't say more without compilable code, though.
Cheers,
  Harm


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




-- 
Mark Knoop

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


Effect of empty chord on spacing

2015-05-09 Thread Mark Knoop
Not sure if this qualifies as a bug, but it's a little unexpected and
annoying. Using an empty chord to attach markup with full-bar rests
seems to change the spacing of the bars, the bar with the  is
significantly shorter. Using a zero-duration skip (s1*0) has the same
effect.

This only seems to happen under certain circumstances: when the line is
full, and the rests are ultimately followed by some music.

\version 2.19.18 % same result with 2.18.2
{
  R1
  ^\markup \column { attached to  }
  R1
  R1
  R1^\markup \column { attached to R1 }
  c'1
  \repeat unfold 16 c'16
}

-- 
Mark Knoop

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


Re: Effect of empty chord on spacing

2015-05-09 Thread Mark Knoop
At 18:06 on 09 May 2015, Mark Knoop wrote:
Not sure if this qualifies as a bug, but it's a little unexpected and
annoying. Using an empty chord to attach markup with full-bar rests
seems to change the spacing of the bars, the bar with the  is
significantly shorter. Using a zero-duration skip (s1*0) has the same
effect.

This only seems to happen under certain circumstances: when the line is
full, and the rests are ultimately followed by some music.

\version 2.19.18 % same result with 2.18.2
{
  R1
  ^\markup \column { attached to  }
  R1
  R1
  R1^\markup \column { attached to R1 }
  c'1
  \repeat unfold 16 c'16
}

This seems to be issue 3232, and indeed the workaround in comment #4
fixes the spacing.

https://code.google.com/p/lilypond/issues/detail?id=3232

-- 
Mark Knoop

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


Re: auto force accidentals

2015-04-20 Thread Mark Knoop
At 19:16 on 20 Apr 2015, Mátyás Seress wrote:
Hi all,

I have a question: do you know any command in Lilypond to automatically
force those accidentals which have been changed in the preceding
measure? Let me give you an example:

See Documentation: Notation Reference 1.1.3 Displaying pitches -
Automatic accidentals, and choose your preferred accidental style.

-- 
Mark Knoop

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


Re: content versus presentation in music and Lilypond (was Re: forcing TimeSignature visibility)

2015-04-13 Thread Mark Knoop
At 13:59 on 13 Apr 2015, Kieren MacMillan wrote:
The “presentation layer” comprises, in part, choices that must be made
to physically represent the content on the page, given the page
geometry, clarity considerations, etc. In this Piano/Conductor
engraving/presentation, m. 4 immediately follows a line break; since
the voice staff appears here for the first time (because of
“frenching” the score), the time signature (2/2) must be included at
the beginning of the system; however, to make it clear that the piano
music is still in 12/8, its time signature must be re-displayed, even
though it hasn’t changed since the last visible time signature (in m.
1); finally, to make it crystal clear that this is not a change but
simply a reminder, the piano time signature should be enclosed in
parentheses (like a “cautionary accidental”). All of these choices
were forced not by the content, but by the presentation requirements.

\set Staff.timeSignatureFraction = 3/2

seems to work when used as an editionMod (see attached). Yes, it would
be nice to not have to know the actual numbers to use, but there's
probably a way extract that from the context. See
http://lilypond.1069038.n5.nabble.com/How-to-extract-the-current-time-signature-td170857.html

-- 
Mark Knoop
\version 2.18.2
\include openlilylib
\include editorial-tools/edition-engraver/definitions.ily

\editionMod score 5 0/8 score.Staff.A \set Staff.timeSignatureFraction = 3/2

uppermusic = \relative c' {
  \time 3/2
  \repeat unfold 8 { c2 c c }
}

lowermusic = \relative c' {
  \time 3/2
  \set Staff.timeSignatureFraction = 18/8
  \scaleDurations 12/18 {
\repeat unfold 8 { \repeat unfold 18 c8 }
  }
}

\addEdition score

\layout {
  \context {
\Voice
\consists \editionEngraver ##f
  }
  \context {
\Staff
\consists \editionEngraver score
  }
  \context {
\Score
\consists \editionEngraver score
  }
}
% score
\score {
  {

  \new Staff = upper { \uppermusic }
  \new Staff = lower { \lowermusic }

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


Re: content versus presentation in music and Lilypond (was Re: forcing TimeSignature visibility)

2015-04-13 Thread Mark Knoop
At 19:58 on 13 Apr 2015, Mark Knoop wrote:
At 13:59 on 13 Apr 2015, Kieren MacMillan wrote:
The “presentation layer” comprises, in part, choices that must be made
to physically represent the content on the page, given the page
geometry, clarity considerations, etc. In this Piano/Conductor
engraving/presentation, m. 4 immediately follows a line break; since
the voice staff appears here for the first time (because of
“frenching” the score), the time signature (2/2) must be included at
the beginning of the system; however, to make it clear that the piano
music is still in 12/8, its time signature must be re-displayed, even
though it hasn’t changed since the last visible time signature (in m.
1); finally, to make it crystal clear that this is not a change but
simply a reminder, the piano time signature should be enclosed in
parentheses (like a “cautionary accidental”). All of these choices
were forced not by the content, but by the presentation requirements.

\set Staff.timeSignatureFraction = 3/2

Ah, sorry, just saw the other thread where you've already discovered
that...

-- 
Mark Knoop

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


Re: Shape function

2015-04-09 Thread Mark Knoop
At 19:16 on 09 Apr 2015, Andrew Bernard wrote:
Where can I find the code for the \shape function mentioned in this
list about 2013?

\shape is in Lilypond

Documentation/notation/modifying-shapes.html

\shapeII is in openlilylib

https://github.com/openlilylib/openlilylib/tree/master/notation-snippets/shaping-bezier-curves


-- 
Mark Knoop

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


Re: Doubled entries with partcombiner

2015-04-08 Thread Mark Knoop
At 09:35 on 08 Apr 2015, Urs Liska wrote:
Am 8. April 2015 08:28:47 MESZ, schrieb Urs Liska u...@openlilylib.org:
Hi all,

what is the most viable approach to suppress all the doubled items
like makuos, 

markups

 dynamics etc. that are produced by the partcombiner?

Perhaps the merge-rests-engraver in OLL is adaptable?

-- 
Mark Knoop

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


Re: Score Layout, several questions

2015-04-06 Thread Mark Knoop
At 14:43 on 06 Apr 2015, N. Andrew Walsh wrote:
Thanks for the snippet. Do you know of any way to set that
*generally*? At the least, a way to set the difference between the
first and last Beam.positions values to be less than some maximum?

Try experimenting with different values of Beam.damping.

Documentation/internals/beam.html

-- 
Mark Knoop

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


Re: string variable for markup

2015-03-30 Thread Mark Knoop
At 14:39 on 30 Mar 2015, Stephen MacNeil wrote:
how would i get the input string to attach to a markup?

eg

\version 2.18.2

acdy =

\markup \pad-markup #.5 \halign #-1.3

{ \combine

\draw-line #'($str . .5) \draw-line #'($str . -.5)

 }

The idea is to be able to assign  a length $str

Looks like you want a number, not a string. Try the following. When you
use the variable you have to quasiquote the pair, thus the syntax
changes slightly. Note the backtick and comma.

\version 2.18.2
#(define str 5)

\markup 
  \pad-markup #.5 \halign #-1.3 
  \combine
\draw-line #`(,str . 0.5) 
\draw-line #`(,str . -0.5)


-- 
Mark Knoop

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


Re: Variables in instrumentName markup?

2015-03-28 Thread Mark Knoop
At 14:13 on 28 Mar 2015, Trevor Bača wrote:
Hi,

Is there a way to do ...

   foo = #12
   \new Staff \with {
  instrumentName = \markup { \hcenter-in \foo Percussion }
   } { ... }
   \new Staff \with {
  instrumentName = \markup { \hcenter-in \foo Violin }
   } { ... }

... or equivalent?

Just write #foo. Or even #(+ foo 3), #(/ foo 2.735), 

-- 
Mark Knoop

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


Re: cadenza_and_accidentals-take2

2015-03-28 Thread Mark Knoop
At 10:49 on 28 Mar 2015, bobr...@centrum.is wrote:
- Original Message -
 From: Andrew Bernard andrew.bern...@gmail.com
Yes, I have accidentals in the cadenza section.  As I stated, however,
in the final measure the cadenza has been ended and a bar line has
been crossed so the key signature is in full force again.  All
accidentals from the previous measure are now null and void.
Obviously, LilyPond is behaving the way it does.  My point and
question still stand:

The reason is because you have forced the barline to appear, but
LilyPond still thinks it is in the same bar for the purpose of
accidentals. It's not a natural barline so you need to tell
LilyPond where it is in the bar. Before \bar |, add the line:

\set Timing.measurePosition = #(ly:make-moment 4/4)

and all will be well without forcing any accidentals.

-- 
Mark Knoop

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


Re: how to move upbow inside the staff?

2015-03-26 Thread Mark Knoop
At 17:14 on 25 Mar 2015, MarcM wrote:
thanks that helped: http://lilybin.com/tvja0h/3

Interesting that moving the fingering alters the tie position also. It
doesn't look like the tie would have collided with the fingering in the
tie's default position.

-- 
Mark Knoop

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


Re: Disappearing barlines with skipBars - possible bug?

2015-03-25 Thread Mark Knoop
At 00:03 on 25 Mar 2015, Thomas Morley wrote:
I disagree.
\set Score.skipBars = ##t _is_ intended to affect notes _and_ useful!
Don't limit your thoughts to modern music.

Below I retyped (quick'n dirty) the last bar from Missa Papae
Marcelli, Sanctus by Palestrina taken from an edition which tries
transforming the original in sort of modern notation.

That is an interesting case. It would seem to me that ideally there
should be two properties (perhaps three?) to control this behaviour for
notes, rests and multimeasure rests respectively.


-- 
Mark Knoop

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


Re: Disappearing barlines with skipBars - possible bug?

2015-03-24 Thread Mark Knoop
At 12:31 on 24 Mar 2015, Kevin Barry wrote:
On Tue, Mar 24, 2015 at 9:01 AM, Mark Knoop m...@opus11.net wrote:
At 18:16 on 23 Mar 2015, Mark Knoop wrote:
Barlines disappear when skipBars is true and a note duration
continues over the bar. I don't think this should happen.

\version 2.18.2

{
  \time 2/4
  r4 c'2 r4
  r4 \tuplet 3/2 { c'2 d'4 } r4
  \set Score.skipBars = ##t
  r4 c'2 r4
  r4 \tuplet 3/2 { c'2 d'4 } r4
}

 Tuplets across barlines are a relatively common notational practice
 and work perfectly well in LilyPond. It is undesirable that they
 should require a workaround for use in parts with skipBars.

If I understand you correctly it seems that skipBars simply shouldn't
apply to notes then? To clarify what I meant: I can't think of any
score where notes that cross barlines would leave any bars empty,

{ \time 2/4 c'4 c'1 c'4 } % 3 bars, 2nd of which is empty

{ \time 2/4 c'4 c'2 c'4 } % 2 bars, neither of which is empty

which begs the question of what exactly skipBars is supposed to do
with notes that cross barlines? My understanding was that it merges
the bars in question.

skipBars is introduced in the Learning Manual (3.4.5 Scores and parts)
as a way of condensing multi-measure rests. Its only references in the
Manuals are regarding this function. I suspect its impact on notes
crossing barlines is either unintended or at least not thought through.

I can't imagine a situation where the current behaviour would be
desirable (silently hiding a barline thus changing the length of a bar)
and it would certainly seem to be a very different use case than
condensing multi-measure rests. If there is a case for keeping the
behaviour, I would suggest a separate property for notes that cross
barlines.

I would be interested in others' opinions on this.

I still think you should send this to the bug list, where it is more
likely to get discussed (some of the developers there are not
subscribed to the user list).


--
Mark Knoop

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


Re: Disappearing barlines with skipBars - possible bug?

2015-03-24 Thread Mark Knoop
At 15:43 on 24 Mar 2015, Kevin Barry wrote:
On Tue, Mar 24, 2015 at 2:38 PM, Mark Knoop m...@opus11.net wrote:

 { \time 2/4 c'4 c'1 c'4 } % 3 bars, 2nd of which is empty

 { \time 2/4 c'4 c'2 c'4 } % 2 bars, neither of which is empty


At best I would consider these to be non-standard notation. At worst
I'd say it's incorrect. It's possible to write a note value longer
than a bar, but I don't think there is an accepted standard for
notating that, except for connecting smaller note values with ties.
And as I said before I have never seen it in a score (do you have any
examples?).

I agree these are contrived examples and am not claiming them to be
standard notation. However tuplets spanning barlines are common in
contemporary music and that is the context where this bug appears.

 skipBars is introduced in the Learning Manual (3.4.5 Scores and
 parts) as a way of condensing multi-measure rests. Its only
 references in the Manuals are regarding this function. I suspect its
 impact on notes crossing barlines is either unintended or at least
 not thought through

It's just used there as an example of a context property. 

Um, no: When printing the part, multi-rests must be condensed. This is
done by setting a run-time variable \set Score.skipBars = ##t

It is in Notation Reference 5.3.2 that it's used as an example of a
context property, although still with reference to its use for
combining multimeasure rests.

I agree that its behaviour for notes rather than rests might not be
thought through (but it /is/ mentioned in the IR so it may not be
unintended). Normally full-bar rests are condensed with
\compressFullBarRests (which probably just sets skipBars to #t, but I
didn't check).

Yes, it's just a shortcut:

ly/property-init.ly:156:compressFullBarRests = \set Score.skipBars = ##t

I can't imagine a situation where the current behaviour would be
 desirable (silently hiding a barline thus changing the length of a
 bar) and it would certainly seem to be a very different use case than
 condensing multi-measure rests.

I think the default behaviour (without touching skipBars) is ok, and
agree that there's no apparent need for it to affect notes (the
possible scenario with long notes and short empty bars seems
implausible). So perhaps skipBars could be changed to only affect
rests, or at the very least a different context property could be used
as an example in the learning manual (or both).

I verified that \compressFullBarRests does indeed affect notes as
well, so if you want to file a bug report then perhaps proceed on that
basis.

cced to bug-lilypond

-- 
Mark Knoop

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


Re: Disappearing barlines with skipBars - possible bug?

2015-03-24 Thread Mark Knoop
At 23:42 on 23 Mar 2015, Kevin Barry wrote:
On Mon, Mar 23, 2015 at 6:16 PM, Mark Knoop m...@opus11.net wrote:
 Barlines disappear when skipBars is true and a note duration
 continues over the bar. I don't think this should happen.

It is consistent with the IR definition of the property: `If set to
true, then skip the empty bars that are produced by
multimeasure /notes/ and rests' [my emphasis]. So it applies to both
notes and rests.

I disagree. The definition states nothing about hiding *barlines*
(although technically the implementation of this will obviously involve
hiding barlines). Also, in the example given, none of the bars are
empty - each bar has an event.

You may be right that the behaviour is undesirable though. I must admit
that I can't think of a score where this would be an issue. 

Tuplets across barlines are a relatively common notational practice and
work perfectly well in LilyPond. It is undesirable that they should
require a workaround for use in parts with skipBars.

If you think this should be changed maybe you should forward your mail
to the bug mailing list: bug-lilyp...@gnu.org

I would be interested in others' opinions on this.

-- 
Mark Knoop

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


Re: layout-set-staff-size: will it ever be fixed?

2015-03-24 Thread Mark Knoop
 Am 23.03.2015 um 21:53 schrieb Nikolai Hedler:
  Would you like to enlighten me, then? Or do you mean to recommend
 that I just use the hackish workaround?


Actually the following works perfectly well in a single file:

\version 2.18.2

#(set-global-staff-size 15)
\book {
\bookOutputName score
\score { ... }
\paper {
#(set-paper-size a3 'portrait)
}
}

#(set-global-staff-size 20)
\book {
\bookOutputName part_1
\score { ... }
\paper {
#(set-paper-size b4 'portrait)
}
}

\book {
\bookOutputName part_2
\score { ... }
\paper {
#(set-paper-size b4 'portrait)
}
}


--
Mark Knoop

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


Add articulation to last note in music

2015-03-13 Thread Mark Knoop
Hi,

I'm trying to make a function to add a glissando to the last note of a
music expression. I've got to a version which works with simple music
expressions. However, I need to use it with transposed and relative
music where the actual notes may be nested within other lists.

How do I recurse into the music to find the SequentialMusic elements?

\version 2.18.2

addGliss = #(define-music-function (parser location music) (ly:music?)
  Add a GlissandoEvent to the last element of music
  (let* ((gliss-note (last (ly:music-property music 'elements
(set! (ly:music-property gliss-note 'articulations)
(cons (make-music 'GlissandoEvent)
  (ly:music-property gliss-note 'articulations)))
  music))

mynotes = { c' d' e' }

{
  % works with above function
  \addGliss { c' d' e' } c'
  \addGliss \mynotes c'
  % doesn't work with more complex music
  %\addGliss \relative c' { c d e } c
  %\addGliss \transpose c e \relative c' { c d e } c
}

--
Mark Knoop

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


Re: Add articulation to last note in music

2015-03-13 Thread Mark Knoop
At 20:08 on 13 Mar 2015, Marc Hohl wrote:
Am 13.03.2015 um 19:32 schrieb Mark Knoop:
 Hi,

 I'm trying to make a function to add a glissando to the last note of
 a music expression. I've got to a version which works with simple
 music expressions. However, I need to use it with transposed and
 relative music where the actual notes may be nested within other
 lists.

 How do I recurse into the music to find the SequentialMusic elements?

 \version 2.18.2

 addGliss = #(define-music-function (parser location music)
 (ly:music?) Add a GlissandoEvent to the last element of music
(let* ((gliss-note (last (ly:music-property music 'elements
  (set! (ly:music-property gliss-note 'articulations)
  (cons (make-music 'GlissandoEvent)
(ly:music-property gliss-note 'articulations)))
music))

 mynotes = { c' d' e' }

 {
% works with above function
\addGliss { c' d' e' } c'
\addGliss \mynotes c'
% doesn't work with more complex music
%\addGliss \relative c' { c d e } c
%\addGliss \transpose c e \relative c' { c d e } c
 }

... but it works with

\relative c' { \addGliss { c d e } c }
\transpose c e \relative c' { \addGliss { c d e } c }

Yes, it does, but unfortunately that's no help in this situation. (The
phrases come from other sections of relative/transposed music filtered
through the extractMusic function. If it were that simple, I would just
type \glissando!)

Thanks,

Mark

-- 
Mark Knoop

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


Re: Staccato

2015-01-20 Thread Mark Knoop
At 22:01 on 19 Jan 2015, Kieren MacMillan wrote:
Hi,

On Jan 19, 2015, at 9:43 PM, Cynthia Karl pck...@mac.com wrote:

 You must have an intimate knowledge of LP source code to be able to
 say that. […] How would anyone know what \dotsDown does?

1. Search the contents of the application for “dotsDown” — find 4
results.

Actually you don't even need to grep the code to discover this.
\dotsDown in the Notation Reference index links to the Durations
page and is introduced as a predefined command at the end of the
section discussing dotted note lengths.

Likewise in section 1.3.1 Expressive marks attached to notes:

The rules for the default placement of articulations are defined in
‘scm/script.scm’. Articulations and ornamentations may be manually
placed above or below the staff; see Direction and placement.

Articulations are Script objects. Their properties are described
more fully in Script.

Cynthia, perhaps you could suggest a way to make this easier to find?

--
Mark Knoop

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


Re: Where is define-line-markup defined/documented?

2014-09-04 Thread Mark Knoop
At 12:48 on 04 Sep 2014, James wrote:
On 04/09/14 12:38, Richard Shann wrote:
 The snippet http://lsr.di.unimi.it/LSR/Item?id=750
 for changing the markup used for chord names makes use of Scheme
 procedures like define-line-markup, define-small-markup ...

I don't see these referenced anywhere in git or in this snippet.

Are you sure you have the correct name?

I think Richard means make-line-markup etc (rather than define). I
too have wondered about these scheme functions - they seem to be
magically generated somewhere. They can mostly be guessed from the
similar \markup commands:

\markup \small text == #(make-small-markup text)

etc.

-- 
Mark Knoop

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


Re: Where is define-line-markup defined/documented?

2014-09-04 Thread Mark Knoop
At 13:41 on 04 Sep 2014, Neil Puttock wrote:
On 4 September 2014 13:18, Richard Shann rich...@rshann.plus.com
wrote:

 this illustrates the meaning, but doesn't hint at how to create a
 variant of the procedure (in my case, make-small-markup is too
 small).

If I recall, it's a scheme macro which generates these.  It only works
for existing markup commands; if you wanted to use this with your own
command you'd first have to create it via define-markup-command.

Aha, I see it in scm/markup-macros.scm. And indeed this works:

\version 2.18.0

#(define-markup-command (smallish layout props text) (markup?)
  Not quite as small...
  (interpret-markup layout props
#{\markup \override #'(font-size . -0.5) { \normal-text #text }#}))

\markup \small test
\markup \smallish test
\header { title = #(make-smallish-markup test) }

-- 
Mark Knoop

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


Re: \transposedCueDuringWithClef

2014-08-27 Thread Mark Knoop
At 09:21 on 27 Aug 2014, Richard Shann wrote:
I have just got to grips with the marvellous cue facilities in
LilyPond.

I can see \cueDuring and \cueDuringWithClef and \transposedCueDuring 
but no \transposedCueDuringWithClef in the 2.18 docs and indeed it
causes an error.
Do I need to create it myself? Or is the idea that you use a suitable
transposition interval to bring the notes into the range of the clef in
use?

I made my own in a recent project:

transposedCueDuringWithClef =
#(define-music-function
   (parser location what dir clef main-music)
   (string? ly:dir? string? ly:music?)
   (_i Combine cueDuringWithClef and transposedCueDuring.)
   (make-music 'QuoteMusic
 'element main-music
 'quoted-context-type 'CueVoice
 'quoted-context-id cue
 'quoted-music-name what
 'quoted-music-clef clef
 'quoted-voice-direction dir
 'quoted-transposition (ly:make-pitch 0 0)))

-- 
Mark Knoop

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


Re: \transposedCueDuringWithClef

2014-08-27 Thread Mark Knoop
At 10:22 on 27 Aug 2014, Richard Shann wrote:
Thanks - I don't quite understand this though:

what dir clef main-music

doesn't seem to have an argument for the transposition and
'quoted-transposition (ly:make-pitch 0 0)
would seem to mean a c c transposition (guessing)
I tried putting it in anyway, putting the clef before the transposition
but got a strange result

\transposedCueDuringWithClef #flute Mvmnt 1#1 bass a { r2 }

where \transpose c a is the intended transposition (to undo a
\transpose c ees which is applied to the whole score).

Yes, sorry, just looking at this again I had no need for the pitch
argument in my project so had hard-coded it... this should work with a
pitch now:

transposedCueDuringWithClef =
#(define-music-function
   (parser location what dir pitch clef main-music)
   (string? ly:dir? ly:pitch? string? ly:music?)
   (_i Combine cueDuringWithClef and transposedCueDuring.)
   (make-music 'QuoteMusic
 'element main-music
 'quoted-context-type 'CueVoice
 'quoted-context-id cue
 'quoted-music-name what
 'quoted-music-clef clef
 'quoted-voice-direction dir
 'quoted-transposition pitch))

So your usage will be:

\transposedCueDuringWithClef #flute Mvmnt 1 #1 a bass { r2 }

(Do you really want the flute cue with a bass clef?)

On Wed, 2014-08-27 at 09:29 +0100, Mark Knoop wrote:
 At 09:21 on 27 Aug 2014, Richard Shann wrote:
 I have just got to grips with the marvellous cue facilities in
 LilyPond.
 
 I can see \cueDuring and \cueDuringWithClef and
 \transposedCueDuring but no \transposedCueDuringWithClef in the
 2.18 docs and indeed it causes an error.
 Do I need to create it myself? Or is the idea that you use a
 suitable transposition interval to bring the notes into the range
 of the clef in use?

 I made my own in a recent project:

 transposedCueDuringWithClef =
 #(define-music-function
(parser location what dir clef main-music)
(string? ly:dir? string? ly:music?)
(_i Combine cueDuringWithClef and transposedCueDuring.)
(make-music 'QuoteMusic
  'element main-music
  'quoted-context-type 'CueVoice
  'quoted-context-id cue
  'quoted-music-name what
  'quoted-music-clef clef
  'quoted-voice-direction dir
  'quoted-transposition (ly:make-pitch 0 0)))

--
Mark Knoop

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


Re: Ottava overlapping fermata

2014-08-20 Thread Mark Knoop
At 13:00 on 20 Aug 2014, Brian Barker wrote:
At 21:14 19/08/2014 +0200, Pierre Perol-Schneider wrote:
2014-08-19 19:54 GMT+02:00 Alf Storm:
Is there any way to tweak the ottava height? Or is this a bug I 
should report?

I don't know what Elaine Gould says about this particular case.
Personally, I'd move the fermata : ...

She disagrees, I'm afraid:
Place the pause further from the stave than other markings stacked 
on the notehead, except for the octave sign (p.188). Her example has 
a tenuto mark, an accent, a fermata and an ottava bassa - in that
order.

This is rather missing the point - lilypond already does the correct
ordering in normal circumstances. The (potential?) bug is that when a
cross-staff beam is involved, the ottava sign collides with the fermata.

\version 2.18.2

upper = \relative c {
  \clef treble
  \key c \major
  \time 2/4
  _\markup correct
  c8[ d'' \ottava #1 e' f'\fermata] \ottava #0

  _\markup bug
  \change Staff = lower
  c8[
  \change Staff = upper
  d''
  \ottava #1 e' f'\fermata] \ottava #0

  _\markup workaround
  \change Staff = lower
  c8[
  \change Staff = upper
  d''
  \once \override Staff.OttavaBracket.extra-offset = #'(0 . 2)
  \ottava #1 e' f'\fermata] \ottava #0
}

lower = \relative {
  \clef bass
  s2*3
}

\score {
   \new PianoStaff
   
 \new Staff = upper \upper
 \new Staff = lower \lower
   
}

-- 
Mark Knoop

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


Re: Ottava overlapping fermata

2014-08-19 Thread Mark Knoop
While inputting my first piece I stumbled across a problem I haven't 
been able to solve. The problem arises when I combine cross staff 
beaming with ottava and fermata. The following example shows that the 
ottava bracket overlaps the fermata sign (at least on my system).

\version 2.18.2

upper = \relative {
   \clef treble
   \key c \major
   \time 2/4

   \change Staff = lower
 c8[

   \change Staff = upper
 d'' \ottava #1 e' f'\fermata]
}

lower = \relative {
   \clef bass

   s2
}

\score {
   \new PianoStaff
   
 \new Staff = upper \upper
 \new Staff = lower \lower
   
}

Is there any way to tweak the ottava height? Or is this a bug I should 
report?

Hi Alf,

Yes, this looks like a bug to me. You can workaround by adding 

\once \override Staff.OttavaBracket.extra-offset = #'(0 . 2)

before the \ottava.


-- 
Mark Knoop

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


overrides in quoted cues

2014-08-02 Thread Mark Knoop
Through experimentation I have discovered that tweaks are effective in
quoted cues, however overrides do not work. It is possible to make
overrides work by adding StreamEvent to quotedCueEventTypes, however
this brings with it additional events such as slurs and dynamics which
are not desired.

Is there any other way to make overrides work in quoted cues? I could
not find an event class that seemed relevant.

\version 2.18.0

voice-i = \relative c' {
  r2 r4 c4
  d(\f
  \once \hide NoteHead e
  \tweak color #red f
  \once \override NoteHead.color = #red g)
}

voice-ii = \relative c' {
  c1
  \new CueVoice { \set instrumentCueName = voice-i }
  \cueDuring #voice_i #DOWN { R1 }
}

\addQuote voice_i \voice-i

\score {
  
\new Staff { \voice-i }
\new Staff { \voice-ii }
  
  \layout {
\context {
  \Score
  quotedCueEventTypes = #'(
; default events
note-event rest-event tie-event beam-event tuplet-span-event
; additional events
;StreamEvent ; this works, but also adds dynamics and slurs
  )
}
  }
}

-- 
Mark Knoop

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


Re: overrides in quoted cues

2014-08-02 Thread Mark Knoop
At 20:10 on 02 Aug 2014, David Kastrup wrote:
Mark Knoop m...@opus11.net writes:

 Through experimentation I have discovered that tweaks are effective
 in quoted cues, however overrides do not work. It is possible to make
 overrides work by adding StreamEvent to quotedCueEventTypes, however
 this brings with it additional events such as slurs and dynamics
 which are not desired.

 Is there any other way to make overrides work in quoted cues? I could
 not find an event class that seemed relevant.

Try with Override and Revert (yes, uppercase, and no -event following
the name).

Brilliant, thank you. I'll look for a place to either document this or
make a snippet.

-- 
Mark Knoop

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


Re: overrides in quoted cues

2014-08-02 Thread Mark Knoop
At 20:10 on 02 Aug 2014, David Kastrup wrote:
Mark Knoop m...@opus11.net writes:

 Through experimentation I have discovered that tweaks are effective
 in quoted cues, however overrides do not work. It is possible to make
 overrides work by adding StreamEvent to quotedCueEventTypes, however
 this brings with it additional events such as slurs and dynamics
 which are not desired.

 Is there any other way to make overrides work in quoted cues? I could
 not find an event class that seemed relevant.

Try with Override and Revert (yes, uppercase, and no -event following
the name).

Brilliant, thank you. I'll look for a place to either document this or
make a snippet.

(Apologies David for replying to you first instead of the list.)

-- 
Mark Knoop

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


Re: compressFullBarRests question (see picture in annex)

2014-07-31 Thread Mark Knoop
At 09:59 on 31 Jul 2014, Nick Alderweireldt wrote:
This is my first day lilypond-frescobaldi. I am really impressed by
the features.

Please have a look to the picture in annex.
Left is what is engraved using :

\compressFullBarRests

R1*4

Right is a scan of a part of a score sheet showing the same 4 full
rests. The bar with 4 above is longer.
What do I need to change to the code to obtain the same as right on
the picture ?

Look further down the page of Notation Reference 1.2.2 Writing rests to
the Selected snippets section. You'll see there is a property
expand-limit which controls the number of bars at which Kirchenpausen
become a simple line rest. You can change this default (10) with:

\override MultiMeasureRest.expand-limit = #3 % or the number you want

-- 
Mark Knoop

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


Re: dotted note in duration-log?

2014-07-14 Thread Mark Knoop
At 10:29 on 14 Jul 2014, Omer Katzir wrote:
nothing much to say, I want the note modified by the duration-log to
be dotted. couldn’t really
understand http://www.lilypond.org/doc/v2.18/Documentation/internals/notehead

%
\version 2.18.2

\once \override NoteHead #'duration-log = 3 d,16 fis' b a a fis8

%

I'm not entirely certain what you are looking for, perhaps one of these
gives your required output?

\version 2.18.2
{ d,16. fis'16 b a a fis8 }

\version 2.18.2
{ d,16.*2/3 fis'16 b a a fis8 }

Please post *compilable* examples (version statement must be quoted,
and music within braces).

-- 
Mark Knoop

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


Re: Optical spacing -- no more?

2014-07-10 Thread Mark Knoop
At 15:15 on 10 Jul 2014, Noeck wrote:
Am 10.07.2014 14:50, schrieb David Kastrup:
 David Kastrup d...@gnu.org writes:
 
 If I write

 \relative c'' { e4 c, f' d, g' e, a' f, }
 % \addlyrics { ! ! ! ! ! ! ! ! }
 
 Obviously, remove the % character for that experiment...
 

That is quite convincing.
So I guess the default spacing is now a bit thighter compared to
http://lilypond.org/doc/v2.14/Documentation/essay/engraving-details#optical-spacing
which reduces the optical impression but the feature is still there.

For some reason (presumably to slightly exaggerate the effect) the
example in the essay includes:

\override NoteSpacing.stem-spacing-correction = #0.6

as opposed to the default of #0.5. Might it be a good idea for the
feature to be illustrated with the default value?

-- 
Mark Knoop

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


Re: outside-staff-priority for markups attached to

2014-06-26 Thread Mark Knoop
At 17:26 on 26 Jun 2014, Richard Shann wrote:
When I generate text to appear above some music using the ^\markup
mytext syntax, I don't seem to be able to control the
outside-staff-priority. In this example despite the second bit of
markup having a lower outside-staff-priority it appears above the
first bit.

\version 2.18.0
\score {
 {  \once \override TextScript.outside-staff-priority = #1000  
 ^\markup Above the next text please \once \override
 TextScript.outside-staff-priority = #0  a'4^below please }
}


Can anyone suggest why this is happening and if there is a solution
that doesn't involve using a different sort of syntax for the markup,
(i.e. not involving the  trick)? (The final target of all this is
scores with markup containing encapsulated postscript to create old
French clavecin ornaments which have to have a low
outside-staff-priority despite being textScript).

Since both events happen at the same moment in time, you have to use
tweak.

\version 2.18.0
\score {
 {
-\tweak outside-staff-priority #1000
^\markup Above the next text please
a'4-\tweak outside-staff-priority #0 ^below please
 }
}

--
Mark Knoop

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


horizontal alignment of custom stencil

2014-06-23 Thread Mark Knoop
Hi,

I'm (mis)using the Measure_counter_engraver to indicate numbers of
repeats, overriding the default stencil with customStencilFromMarkup
from openlilylib.

Is it possible to adjust the horizontal alignment of the stencil such
that it is always centered on the barline? The current situation varies
depending on line breaks and changing time-signatures - see example
below.

Any suggestions?


\version 2.18.2

customStencilFromMarkup =
#(define-music-function (parser location name mrkup) (string? markup?)
   (let* ((name (string-regexp-substitutename))
; remove any spaces
  (name-components (string-split name #\.))
  (context-name Voice)
  (grob-name #f))

 (if ( 2 (length name-components))
 (set! grob-name (car name-components))
 (begin
  (set! grob-name (cadr name-components))
  (set! context-name (car name-components
 #{
   \override $context-name . $grob-name #'stencil =
   #(lambda (grob)
  (grob-interpret-markup
   grob mrkup))
 #}))

repeatBars = #(define-music-function
(parser location times music)
(number? ly:music?)
(_i make a repeat structure)
#{
\customStencilFromMarkup Staff.MeasureCounter
  \markup \whiteout \box \concat {
\vcenter × \vcenter \number #(ly:number-string times)
  }
\startMeasureCount

\repeat volta #times { $music }
{ s16 \stopMeasureCount }

#})

\layout {
  \context {
\Staff
\consists #Measure_counter_engraver
\override MeasureCounter.direction = #UP
\override MeasureCounter.font-encoding = #'latin1
\override MeasureCounter.font-size = #1
  }
}

\new Staff {
  \repeat unfold 8 { c'4 }
  \time 5/4
  \repeatBars 40 { d' e' f' g' a' }
  \time 4/4
  \repeat unfold 8 { c'4 }
  \break
  \time 5/4
  \repeatBars 40 { d' e' f' g' a' }
  \time 4/4
  \repeat unfold 20 { c'4 }
  \break
  \repeatBars 40 { d' e' f' g' }
  \repeat unfold 20 { c'4 }
}


--
Mark Knoop

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


different repeat structures in score

2014-04-18 Thread Mark Knoop
I'm engraving a score where each instrument repeats a different bar. To
achieve this I tried moving the Default_bar_line_engraver to the Staff
context, but now the repeat bar lines don't appear at all.

The metre stays the same, so I don't think I have to move the
Timing_translator also, but the result is the same either way.

Any suggestions?


\version 2.18.0
\layout {
  \context {
\Staff
\consists Default_bar_line_engraver
%\consists Timing_translator
  }
  \context {
\Score
\remove Default_bar_line_engraver
%\remove Timing_translator
  }
}
\score {
  {

  \new Staff {
c'1
c'1
\repeat volta 2 { c'1 }
  }
  \new Staff {
\repeat volta 2 { c'1 }
c'1
c'1
  }

  }
}


-- 
Mark Knoop

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


Repeat bars function

2014-02-05 Thread Mark Knoop
I'm making a music function below to automatically create a repeat
structure. It's useable at the moment, but there are a couple of
improvements that could be made - any suggestions for these would be
very helpful.

1. The main problem is where to revert the bar number visibility
override. This needs to be done *after* the closing barline of the
repeat - the idea being that the bar following a repeat is always
numbered. Is there someway to schedule a delayed revert?

2. Ideally the [x3] markup should be right-aligned to the barline,
however I can't use \mark here since this is likely to coincide with a
real rehearsal mark in practice.

3. It would be nice not to have to specify the endbar as an argument,
however this requires access to the starting bar number and calculation
of the duration of the music. I've tried to incorporate the
\applyContext approach in the docs (Extending 2.6.1) - but I'm not
sure how to access this within a music-function.

Thanks, Mark

%
\version 2.18.0

repeatBars = #(define-music-function
(parser location times endbar music)
(number? number? ly:music?)
(_i make a repeat structure)
#{
\tag #'part {
  \override Score.BarNumber.break-visibility = ##(#t #t #t)
  ^\markup \box \concat { × \number #(ly:number-string times) }
  \repeat volta #times { $music }
  \set Score.currentBarNumber = #endbar
  % can't revert here as then the closing barnumber won't print
  %\revert Score.BarNumber.break-visibility
}
\tag #'score {
  \repeat unfold #times { $music }
}
#})

music = \relative c' {
  \repeat unfold 4 { c1 }
  \mark \default
  \repeatBars 3 8 { c4 d e f }
  \repeat unfold 4 { c1 }
}

\score { \new Staff { \removeWithTag #'score \music } }
\score { \new Staff { \removeWithTag #'part \music } }
%

-- 
Mark Knoop

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


Re: Repeat bars function

2014-02-05 Thread Mark Knoop
At 09:57 on 05 Feb 2014, Mark Knoop wrote:
I'm making a music function below to automatically create a repeat
structure. It's useable at the moment, but there are a couple of
improvements that could be made - any suggestions for these would be
very helpful.

1. The main problem is where to revert the bar number visibility
override. This needs to be done *after* the closing barline of the
repeat - the idea being that the bar following a repeat is always
numbered. Is there someway to schedule a delayed revert?

Ha - funny how actually writing the email helps solve the problem...
I've fixed this first issue by simply using \once \override twice:

repeatBars = #(define-music-function
(parser location times endbar music)
(number? number? ly:music?)
(_i make a repeat structure)
#{
\tag #'part {
  \once \override Score.BarNumber.break-visibility = ##(#t #t #t)
  ^\markup \box \concat { × \number #(ly:number-string times) }
  \repeat volta #times { $music }
  \set Score.currentBarNumber = #endbar
  \once \override Score.BarNumber.break-visibility = ##(#t #t #t)
}
\tag #'score {
  \repeat unfold #times { $music }
}
#})

Suggestions for these others still appreciated.

2. Ideally the [x3] markup should be right-aligned to the barline,
however I can't use \mark here since this is likely to coincide with
a real rehearsal mark in practice.

3. It would be nice not to have to specify the endbar as an argument,
however this requires access to the starting bar number and calculation
of the duration of the music. I've tried to incorporate the
\applyContext approach in the docs (Extending 2.6.1) - but I'm not
sure how to access this within a music-function.

Thanks, Mark

%
\version 2.18.0

repeatBars = #(define-music-function
(parser location times endbar music)
(number? number? ly:music?)
(_i make a repeat structure)
#{
\tag #'part {
  \override Score.BarNumber.break-visibility = ##(#t #t #t)
  ^\markup \box \concat { × \number #(ly:number-string
 times) } \repeat volta #times { $music }
  \set Score.currentBarNumber = #endbar
  % can't revert here as then the closing barnumber won't print
  %\revert Score.BarNumber.break-visibility
}
\tag #'score {
  \repeat unfold #times { $music }
}
#})

music = \relative c' {
  \repeat unfold 4 { c1 }
  \mark \default
  \repeatBars 3 8 { c4 d e f }
  \repeat unfold 4 { c1 }
}

\score { \new Staff { \removeWithTag #'score \music } }
\score { \new Staff { \removeWithTag #'part \music } }
%



--
Mark Knoop

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


Re: Behaviour of TextSpanner dashes

2014-02-05 Thread Mark Knoop
At 14:59 on 05 Feb 2014, Urs Liska wrote:
in the attached image you see a TextSpanner, and I'm having some
issues with it:

- why is the first dash longer than the other(s),
   is this a design decision (if yes, why)?
   can it be modified?
- is it possible to make a TextSpanner always to align
   to the right edge of the score (i.e. the barline)
   and let the dash structure adapt to that?
   (I see the 'right-bound-info' property but didn't
find any helpful information on that alist)

Not sure about those above, but:

- is it possible to tweak
   - the attachment of the first dash to the text and

TextSpanner.bound-details.left.padding = #-0.5

   - the vertical position of the dashes (i.e. raise
 it a little bit relatively to the text)

TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER


-- 
Mark Knoop

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


Re: Behaviour of TextSpanner dashes

2014-02-05 Thread Mark Knoop
At 15:24 on 05 Feb 2014, Urs Liska wrote:
- the vertical position of the dashes (i.e. raise
  it a little bit relatively to the text)

 TextSpanner.bound-details.left.stencil-align-dir-y = #CENTER

unfortunately doesn't help. I'd need something like raise the dashes
by 0.2 ...

Try a number like #-0.5 instead of #CENTER

-- 
Mark Knoop

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


Re: autochange and tuplet brackets

2013-12-20 Thread Mark Knoop
At 08:33 on 20 Dec 2013, Simon Bailey wrote:
i've also included the tweaked output in not-ugly-tuplets.png. this was
fixed by using the following tweak/untweak combination before the
strange sextuplets:

staffChangeSextupletTweak = {
\override TupletBracket.bracket-visibility = ##t
\override TupletBracket.positions = #'(-20 . -20)
\tupletDown
}

In my opinion the tweaked tuplet brackets are too far from the
bass noteheads (particularly in bar 13). In situations like this I've
always had to adjust the positions for each instance.

is this a bug or just unexpected behaviour on a border-case which
doesn't occur in real music? ;)

Yes, it's a bug, the cause of which was discussed recently in this
thread:

http://comments.gmane.org/gmane.comp.gnu.lilypond.devel/56456

-- 
Mark Knoop

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


Re: autochange and tuplet brackets

2013-12-20 Thread Mark Knoop
 yeah, i just realised that. and that the screeny is too big for the
 list:

 http://simon.bailey.at/random/liszt-cross-staff.png


Ah, yes, that's the sort of stuff I had in mind. Although it doesn't 
involve (printed) tuplets.

Musically the example is interestingly uncharacteristic (no clear 
motivic item in two whole systems!). But let me guess: Is this from 
Mazeppa?

Yes, and interestingly in this edition the rfz in the second system is
misplaced. It should be on the LH d' d'' octave.

-- 
Mark Knoop

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


Re: Schikkers List

2013-12-02 Thread Mark Knoop
There seems to be a bug - see attached screenshot. Key signatures are
inserted always as if in treble clef rather than appropriate to the
selected clef.

-- 
Mark Knoop
attachment: bug.png___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Cluster function

2013-11-13 Thread Mark Knoop
Has anyone had success making clusters such as in the attached image?
This is not possible with the builtin \makeClusters function which
removes stems, beams, accidentals, etc. 

Ideally code something like

cis' ais''8. \cluster c' ais''8. 

to produce this example. 

If not, any ideas as to where to start with such a function? I suppose
I just need to get the positions of the two noteheads and draw a thick
line in between.

Many thanks,

Mark

-- 
Mark Knoop
attachment: cluster.png___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


use variable in \markup \override

2013-10-16 Thread Mark Knoop
Is there any way to use a variable in a \markup \override? I'm trying
to find a way to include the same markup in different scores with
different staff sizes, paper sizes, etc. Therefore some distances need
to be scaled, including line-width, baseline-skip, etc.

For commands such as \vspace, this works fine (see example below), and
one can even do scheme maths in place, but the same technique fails for
\override. I know why (because the quote means that gap is not
evaluated as a number), but don't know how to work around this.

\version 2.17.28

gap = 5
bskip = #'(baseline-skip . 5)

\markup {
  \override #bskip   % --- this does work
  %\override #'(baseline-skip . gap) % --- this does not work
  \column {
\line { line one }
\vspace #gap
\line { line two }
\line { line \hspace #(* gap 4) three }
  }
}

Output with second override uncommented:

GNU LilyPond 2.17.28
Processing `combine.ly'
Parsing.../usr/local/lilypond/usr/share/lilypond/current/scm/stencil.scm:70:24:
In procedure ly:stencil-stack in expression (ly:stencil-stack next
Y ...): /usr/local/lilypond/usr/share/lilypond/current/scm/stencil.scm:70:24:
Wrong type argument in position 6 (expecting number): gap



-- 
Mark Knoop

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


Re: use variable in \markup \override

2013-10-16 Thread Mark Knoop
At 16:03 on 16 Oct 2013, David Kastrup wrote:
Mark Knoop m...@opus11.net writes:

 Is there any way to use a variable in a \markup \override?

That has nothing to do with LilyPond, but rather with Scheme.

 gap = 5
 bskip = #'(baseline-skip . 5)

' means: don't evaluate the following expression.  When expressions are
evaluated, lists and symbols are converted into function calls and
variable references, respectively.

An override always consists of a symbol and a value.  5 is a
self-evaluating constant: there is no difference between '5 and 5 at
all.


 \markup {
   \override #bskip   % --- this does work
   %\override #'(baseline-skip . gap) % --- this does not work

The easiest way is to use a backquoted list here:

\override #`(baseline-skip . ,gap)

When you backquote a list, it is quoted as usual _except_ that any
comma expression inside _does_ get evaluated.  Which in this case means
replacing the _symbol_ gap with the value in the _variable_ named gap.

You can also cobble together your (dotted) list manually:

\override #(cons 'baseline-skip gap)

Note that cons is a function for making a dotted pair.  We need to
quote the symbol baseline-skip to keep Scheme from trying to look at
the value of a variable called baseline-skip.  We don't quote gap
since here we _do_ want the variable value instead of a symbol gap.

Thank you David.

-- 
Mark Knoop

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


partcombine texts

2013-10-11 Thread Mark Knoop
Hi all,

I'm using partcombine and am looking for a way to add a text marking
when automatic combining starts. It seems the Part_combine_engraver
only provides text hooks for soloText, soloIIText and aDueText - what I
want is a combinedText (to set to divisi in this instance). Any ideas?

Minimal example:

\version 2.17.27

partone = \relative c' {
  c d e f g a b^combineText c d e r r
}

parttwo = \relative c' {
  r r e f r r g a d e f g
}

\score { 
  \new Staff { \partone }
  \new Staff { \parttwo }
  \new Staff 
\partcombine \partone \parttwo
  
 }

-- 
Mark Knoop

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


Re: partcombine texts

2013-10-11 Thread Mark Knoop
At 08:50 on 11 Oct 2013, James Worlton wrote:
On Fri, Oct 11, 2013 at 8:29 AM, Mark Knoop m...@opus11.net wrote:

 Hi all,

 I'm using partcombine and am looking for a way to add a text marking
 when automatic combining starts. It seems the Part_combine_engraver
 only provides text hooks for soloText, soloIIText and aDueText -
 what I want is a combinedText (to set to divisi in this instance).
 Any ideas?

 Minimal example:

 \version 2.17.27

 partone = \relative c' {
   c d e f g a b^combineText c d e r r
 }

 parttwo = \relative c' {
   r r e f r r g a d e f g
 }

 \score { 
   \new Staff { \partone }
   \new Staff { \parttwo }
   \new Staff 
 \partcombine \partone \parttwo
   
  }

http://lilypond.org/doc/v2.17/Documentation/notation/multiple-voices#index-part-combiner

This part of the manual shows how you can change the part combine text.

James Worlton

Thanks James, but perhaps I was unclear. I know how to change the
existing text, but am looking for a way to automatically add text at the
point that combining happens, i.e. where I've placed the markup in the
above example.

--
Mark Knoop

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


Re: cadenza and bars

2013-10-08 Thread Mark Knoop
At 09:17 on 08 Oct 2013, Mark Stephen Mrotek wrote:
Hello,

In the attached snippette

1.   A bar should not be at the beginning of the cadenza, i.e.,
after the  bes bes' 2.,

2.   A bar should be at the end of the cadenza before the
beginning of a new measure, g8.

3.   Is the set Timing.measurePosition command in the proper
place?

4.   The last measure should be four groups of three 8ths.


1. move \cadenza on to before the ces bes octaves
2. replace \set Timing.measurePosition with \bar |
3. your line \new staff is wrong and gives a warning - change this to
   \new Staff

-- 
Mark Knoop

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


Re: Hairpin with pro/preceeding text

2013-10-02 Thread Mark Knoop
At 02:16 on 02 Oct 2013, EdBeesley wrote:
See example below from Sibelius (just look at those horrible default
slurs, e!)

I've tried just ending a hairpin early and adding markup but the
result is sloppy and needs lots of tweaking. 

If possible I don't want to use the snippet that adds text under the
hairpins as the frequency of this motif would make the all the bonus
text a bit of an eyesore, imo. 

The padding needs some tweaking, but this pretty much works:

pocoMarkup = \markup \normal-text \italic poco
poco = #(make-dynamic-script pocoMarkup)

{ 
  \repeat unfold 32 { c''16 }
  { s4\ s4 s4 s4 s4\!\poco\ s4 s4 s4\! }
 }

-- 
Mark Knoop

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


Re: MIDI output of multiple scores into a single MIDI file?

2013-09-30 Thread Mark Knoop
At 23:15 on 29 Sep 2013, Dossy Shiobara wrote:
On 9/29/13 8:34 PM, Thomas Morley wrote:
 Hi Dossy,

 what David wrote may be illustrated by this example
 [...]

Thanks!   This is interesting ... the voice staff is rendered above the
chord name and fretboards.  In the arrangement I'm working on, I want
the chord names, then freboards, then the voice staff and then the
piano accompaniment.  Specifically, this is right out of my .ly file:

\book {
  \score {
\new PianoStaff 
  \new Staff \PianoRHMusicIntro
  \new Staff \PianoLHMusicIntro

  }

  \score {

  \set Score.currentBarNumber = #5
  \new ChordNames \GuitarChords
  \new FretBoards \GuitarChords
  \new Voice = melody \VoiceMusic
  \new Lyrics \lyricsto melody \VoiceLyrics
  \new PianoStaff 
\new Staff \PianoRHMusic
\new Staff \PianoLHMusic
  

%\layout { \context { \RemoveEmptyStaffContext } }
  }
}

This (visually) gives me *exactly* what I want.  Your example, even if
I rearrange the order of the elements so that ChordNames is first, then
FretBoards, etc., it still renders the first Voice staff first ...

Whether or not you need to do this for the layout you require, you can
always have a separate score block for midi output. i.e. just append to
your file something like:

\score {
  
{ s1*4 \VoiceMusic }
{ \PianoRHMusicIntro \PianoRHMusic }
{ \PianoLHMusicIntro \PianoLHMusic }
  
  \midi { }
}

-- 
Mark Knoop

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


repeating bar numbers and rehearsal marks in frenched score

2013-09-25 Thread Mark Knoop
I'm creating a full orchestra score and want to have the bar numbers
and rehearsal figures display three times vertically. I'm doing this
using a Dynamics context like this:

  \context {
\Dynamics
\consists Mark_engraver
\consists Bar_number_engraver
\consists Text_engraver
  }

and then:

\score {
  
\new Dynamics { \bars }
\new StaffGroup  etc winds
\new Dynamics { \bars }
\new StaffGroup  etc brass
\new Dynamics { \bars }
\new StaffGroup  etc strings
  
}

This all works fine until I use \RemoveEmptyStaves on the intervening
Staffs. Then, for example when the brass are all not playing on one
page, I get two rehearsal figures without a staff in between. 

Is it possible to get the Dynamics contexts to be aware of when the
intervening staffs have been removed?

Minimal example attached and any thoughts appreciated.

--
Mark Knoop
\version 2.17.25

bars = \repeat unfold 12 { \mark \default R1*2 }
winds = \repeat unfold 192 { c''8 }
brass = \repeat unfold 24 { R1 }
strings = \repeat unfold 192 { c''8 }

\layout {
  \context {
\Dynamics
\consists Mark_engraver
\consists Bar_number_engraver
\consists Text_engraver
  }
  \context {
\Staff
\RemoveEmptyStaves
  }
  \context {
\Score
\remove Mark_engraver
\remove Bar_number_engraver
  }
}

\score {
  
\new Dynamics { \bars }
\new Staff = winds { \winds }
\new Dynamics { \bars }
\new Staff = brass { \brass }
\new Dynamics { \bars }
\new Staff = strings { \strings }
  
}
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


bendAfter affected by bar numbers - possible bug?

2013-09-19 Thread Mark Knoop
In the following example the bends are compressed to avoid the bar
numbers. This would seem to be unnecessary. Possible bug? and any
ideas for a workaround?

\version 2.17.26

music = \repeat unfold 16 { c''4\bendAfter #-4 }
sixteens = \repeat unfold 64 { c'16 }

\new Score \with {
} {
   \music \sixteens 
}

\new Score \with {
  % bar number set high to accentuate the problem
  currentBarNumber = #200
  barNumberVisibility = #(every-nth-bar-number-visible 1)
  \override BarNumber.break-visibility = #end-of-line-invisible
} {
   \music \sixteens 
}

-- 
Mark Knoop

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


Re: xpdf broken on ubuntu

2013-04-08 Thread Mark Knoop
At 20:36 on 07 Apr 2013, Orm Finnendahl wrote:
Hi Mark,

Am Sonntag, den 07. April 2013 um 16:48:14 Uhr (+0100) schrieb Mark
Knoop:
 
 https://github.com/markk/textedit-ly

Thanks that was really helpful (especially the apparmor part! Ubuntu
seems to gradually digress into some bugridden version of Windows...).

I adapted everything to work with emacs. As a note for emacs users: In
order to mimic the server-mode of xpdf with evince, I wrote a small
script which starts evince in the background and referred to this
script in the LilyPond Pdf Command setting of the LilyPond group.
Re-evaluation of a source file now doesn't kill evince and will
automatically update the pdf display after rendering. It's even better
than xpdf as it stays on the part of the score upon redisplay.

Let me know if someone needs advice.

If you can send me that script and documentation I'll include it in the
git repo.

Cheers, M

-- 
Mark Knoop

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


Re: xpdf broken on ubuntu

2013-04-08 Thread Mark Knoop
At 10:50 on 08 Apr 2013, Orm Finnendahl wrote:
Am Montag, den 08. April 2013 um 08:47:45 Uhr (+0100) schrieb Mark
Knoop:

 If you can send me that script and documentation I'll include it in
 the git repo.

ok, here you go:

Updated now at https://github.com/markk/textedit-ly

-- 
Mark Knoop

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


Re: xpdf broken on ubuntu

2013-04-07 Thread Mark Knoop
At 10:40 on 07 Apr 2013, Orm Finnendahl wrote:
Am Sonntag, den 07. April 2013 um 09:43:30 Uhr (+0200) schrieb David
Kastrup:
 
 I think I also saw some recipe for getting evince to work with
 pointclick when doing a web search, but it involved meddling with
 the gconf configuration of either evince or GNOME's URI handlers.

That could be a way to go. My mail primarily intended to discuss
alternatives before the xpdf route is completely dead. Can you send
those links? Maybe I can help getting that to work and provide some
documentation.

https://github.com/markk/textedit-ly

Cheers, M

-- 
Mark Knoop

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


Re: evince handling textedit:// -- updated version

2012-10-10 Thread Mark Knoop
There is now a new version of this in Python which should work better
for most people. Now configurable to your favourite editor.

https://github.com/markk/textedit-ly

-- 
Mark Knoop

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


Re: evince handling textedit://

2012-10-08 Thread Mark Knoop
At 21:22 on 07 Oct 2012, Stjepan Horvat wrote:
Hi guys..does anyone has any news on has evince handles textedit..
i found this post
http://lists.gnu.org/archive/html/lilypond-user/2007-06/msg00185.html
from 2007 using gconftool-2 but couldn't get it working..
after i execute the gconftool-2 --install-schema-file=textedit.schemas
i still get -- Unable to open external link Operation not supported
like it didn't remove Evince ignores the embedded textedit:// urls by
default,

i use evince 3.4.0..

Thanks for prompting me to update this. Gnome 3 no longer uses the
gconf key, it's now actually a little easier. I've put the info and
necessary files here:

https://github.com/markk/textedit-ly

Let me know if this works for you.

-- 
Mark Knoop

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


Re: F-flat Key Signature

2012-09-19 Thread Mark Knoop
At 12:43 on 19 Sep 2012, Thomas Morley wrote:
Image:
http://pl.wikipedia.org/wiki/Fes-dur
Theoretical text (in german):
http://books.google.de/books?id=D6ZZFHIuQ54Cpg=PA68lpg=PA68ots=oEy-27k2LKdq=fes-durhl=de

Interestingly, on the english wikipedia page the B double flat is
notated first, I think wrongly. (And with awful spacing in this
Sibelius produced image.)

http://en.wikipedia.org/wiki/File:Db_minor_key_signature.png

I believe the initial B-flat is optional.

-- 
Mark Knoop

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


Re: F-flat Key Signature

2012-09-19 Thread Mark Knoop
At 17:10 on 19 Sep 2012, Urs Liska wrote:
BTW it was also Schumann who stated that Chopin sometimes waited a few 
chord progressions too long before writing the enharmonic change.

Even Chopin chose C# minor rather than D-flat minor for the second
section of Op 28 no 15.

http://www.youtube.com/watch?feature=player_detailpagev=Sh03YXzvDF4#t=89s

-- 
Mark Knoop

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


Re: Repeat volta/alternative with voices

2012-08-20 Thread Mark Knoop
At 13:20 on 20 Aug 2012, Zbyszek Loska wrote:
I am not an experienced user of lilypond, but this seems to me
as bug in parser, or, I do not understand something...

Move your bar checks inside the parentheses, viz:

==
\version 2.15.43

Upper = \relative c' {
   e2 g |
   \repeat volta 2 {
   c2 e |
   }
   \alternative {
 { g, b r | }
 { g b g | }
   }
}

Lower = \relative c {
   c'2 g |
   \repeat volta 2 {
   c2 e |
   }
   \alternative {
 { g, f | }
 { g g | }
   }
 \bar |.
}

\score {
   \new Staff {  \Upper \\ \Lower  }
   \layout { }
}
===

and all will be well.


-- 
Mark Knoop

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


Re: Hauptstimme Brackets?

2012-07-06 Thread Mark Knoop


At 11:38 on 04 Jul 2012, Nathan wrote:
Here's a solution using markup paths and text spanners:

%%%

\version 2.14.2

hauptstimmeStart = \markup {
  \path #0.25 #'((moveto 0 0)
 (lineto 0 -2)
 (moveto 0 -1)
 (lineto 1 -1)
 (moveto 1 0)
 (lineto 1 -2)
 (moveto 1 0)
 (lineto 1.8 0))
}

nebenstimmeStart = \markup {
  \path #0.25 #'((moveto 0 -2)
 (lineto 0 0)
 (lineto 1 -2)
 (lineto 1 0)
 (lineto 1.8 0))
}

hauptstimmeEnd = \markup {
  \path #0.25 #'((moveto 0 0)
 (lineto 0.8 0)
 (lineto 0.8 -0.8))
}

hauptstimme = {
  \once \override TextSpanner #'style = #'none
  \once \override TextSpanner #'(bound-details left text) = \hauptstimmeStart
  \once \override TextSpanner #'(bound-details right text) = \hauptstimmeEnd
}

nebenstimme = {
  \once \override TextSpanner #'style = #'none
  \once \override TextSpanner #'(bound-details left text) = \nebenstimmeStart
  \once \override TextSpanner #'(bound-details right text) = \hauptstimmeEnd
}

\relative c' {
  \hauptstimme
  | c4\startTextSpan c4 c4 c4
  | c4 c4 c4 c4\stopTextSpan
  | c4 c4 c4 c4
  \nebenstimme
  | c4\startTextSpan c4 c4 c4
  | c4 c4 c4 c4\stopTextSpan
}

%%%

This is very nice, but unfortunately repeats the symbols at line
breaks, which is not ideal. To avoid this, you probably want to add:

  \once \override TextSpanner #'(bound-details left-broken text) = ##f
  \once \override TextSpanner #'(bound-details right-broken text) = ##f

--
Mark Knoop

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


Re: -dshow-available-fonts vs. UNIX stdout?

2012-06-20 Thread Mark Knoop
At 16:20 on 20 Jun 2012, James Harkins wrote:
I just encountered something curious while trying to get a list of
fonts on my machine from lilypond. According to the documentation of
font selection:

lilypond -dshow-available-fonts x

This does indeed list of fonts, but the terminal doesn't keep enough
lines to see the entire list. So I thought, the UNIX command line
stdout redirect should help:

lilypond -dshow-available-fonts x
/home/dlm/Documents/ly/show-available-fonts.txt

But the output was not redirected. It still went to the terminal
window and the new file is empty.

Output is to stderr, so:

lilypond -dshow-available-fonts x 2 show-available-fonts.txt

should do the trick.

-- 
Mark Knoop

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


Re: editorial brackets

2012-05-03 Thread Mark Knoop
At 06:49 on 02 May 2012, Vogels, Thijs wrote:
Hello,

Does anyone know if it is possible in LilyPond to add brackets around
an accidental that has been added by the editor of a music piece, but
is not in the original score? I can't find it in the manual.

See cautionary accidentals here:

http://lilypond.org/doc/v2.14/Documentation/notation/writing-pitches#accidentals

-- 
Mark Knoop

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


Re: extra repeat opening bar (related to \hideNotes?)

2012-04-14 Thread Mark Knoop
At 13:36 on 14 Apr 2012, Federico Bruni wrote:
Il 14/04/2012 13:26, James ha scritto:
 So are you_really_  saying if you remove a*single*  line from your
 \global settings the problem goes away? For instance if were to
 remove the \key d \major line or the \time 4/4 line the problem
 'goes away'?

Not any single line, but line 91 of the file I attached.
I wrote that the problem was in bar 20.
I put also a comment in the file, here it is:

\repeat volta 4 {
 % if you comment the line below, no extra repeat opening bar is
 printed \hideNotes \grace { d8\5\glissando } \unHideNotes
 fis4\5  d  fis\5  d |
   %% bar 21
 fis4\5  d  fis\5  d |

See Known issues and warnings here:

http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Special-rhythmic-concerns#Grace-notes

-- 
Mark Knoop

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


Re: wrong beaming

2012-03-15 Thread Mark Knoop
At 13:01 on 15 Mar 2012, luis jure wrote:
on 2012-03-15 at 15:26 James wrote:
Use manual beaming?

yes, manual beaming solved the first quarter note: 

\relative c' {
\time 2/4
c16[ c \times 2/3 { c8 c16] }
\times 2/3 { c8 c16 } c16 c }

but i still don't know how to correct the second quarter note (steven's
suggestion gives beaming by eight notes, that i don't find
satisfactory).

i know i saw once a solution to this, but i can't find where...

\set baseMoment = #(ly:make-moment 1 8)
\set subdivideBeams = ##t

-- 
Mark Knoop

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


Re: number of staff lines

2012-02-09 Thread Mark Knoop
At 12:04 on 09 Feb 2012, David Kastrup wrote:
The old clefs reminiscent of chant notation can sit IIRC on either
lines or in between.  The more modern clefs are rather fixed.  In
practice, anything but the C clef is not seen shifted vertically, and
even the C clef is only seen on anywhere but the middle line mainly in
Baroque music and earlier.

The tenor clef (on the 4th line) is very common in cello, bassoon,
trombone music.

--
Mark Knoop

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


Re: pdf to .ly?

2012-01-20 Thread Mark Knoop
At 20:42 on 19 Jan 2012, Frédéric Bron wrote:
 Does anybody here know of software that could convert a .pdf
 into .ly? Mayber .pdf to .xml first, then to .ly?
 Or  .pdf into .svg, or some sort of image file?  I got some music
 from the IMSLP site, it needs to be rotated and cleaned up a bit.

free command line software:
- pdftk: http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
- convert: http://www.imagemagick.org/

unpaper is ideal for this also
http://unpaper.berlios.de/



-- 
Mark Knoop

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


<    1   2   3   >