Re: Early (very early) project: The Celtic Song Book (c) 1928

2021-10-27 Thread Jay Anderson
On Wed, Oct 27, 2021 at 12:32 PM Kevin Cole  wrote:

> I've mentioned before that I (a) don't read music, and (b) am pretty
> much a beginner with LilyPond.
>
...

> I'm really only concerned here with how to better grok LilyPond.
>
>
- For full measure rests I saw you use 'r2.' In the song of the heather.
Instead use 'R2.' (capital 'R') for full measure rests.
- I'll echo David Wright's comment on using correct lyric extenders.
- In older music with lyrics it was common to see beams broken for each
syllable. Today it's common practice to not do that. I'll leave it up to
you to decide which style you want to follow. It sounds like you're using
an older edition for a source.
- I'm not sure how the sphinx lilypond plugin works, but lilypond by
default doesn't unfold repeats. Look at the docs for \unfoldRepeats:
https://lilypond.org/doc/v2.22/Documentation/notation/using-repeats-with-midi.
The general recommendation is to have a score block for the pdf/image
output and a separate block for the midi output with the repeats unfolded.

-Jay


Re: Spacing between clef and first note without time signature

2021-01-03 Thread Jay Anderson
On Fri, Jan 1, 2021 at 3:27 AM Xavier Scheuer  wrote:

> The space between Clef and first-note is documented in the Internals
> References manual,
> IR 3.1.26 Clef
> http://lilypond.org/doc/v2.20/Documentation/internals/clef
>
> You can modify the space-alist property for the first-note item. Either by
> changing the spacing-style to a stretchable (or semi-fixed) space or by
> reducing the value of minimum-fixed-space.
>

Thanks for pointing that out. It worked perfectly. Here's what I finally
had:

  \score {
\new Staff { c''2 r }
\layout {
  ragged-right = ##t
  indent = 0\cm
  line-width = 1.5\cm
  \context {
\Staff
\omit TimeSignature
\override Clef.space-alist.first-note = #'(minimum-fixed-space
. 3.0)
  }
  #(layout-set-staff-size 14)
}

-Jay


Spacing between clef and first note without time signature

2020-12-31 Thread Jay Anderson
Not a great title, but here's what I'm wanting to achieve:

=
\version "2.20.0"

\score {
  \new Staff { c''2 r }
  \layout {
\context {
  \Staff
  \omit TimeSignature
}
  }
}
=

This looks mostly correct until I reduce the staff size and squeeze it
horizontally:

=
\version "2.20.0"

\score {
  \new Staff { c''2 r }
  \layout {
line-width = 15\mm
\context {
  \Staff
  \omit TimeSignature
}
#(layout-set-staff-size 14)
  }
}
=

The space between the clef and the first note is not compressible (almost
as if it's still leaving space for the time signature). Is there a way to
squeeze this? I'm wanting this in a footnote and it needs to be reduced
in size to look right. Thanks for the help.

-Jay Anderson


Re: tie across voices

2018-12-23 Thread Jay Anderson
On Sun, Dec 23, 2018 at 2:40 PM Mark Stephen Mrotek 
wrote:

> Please see attached snippet.
>
> In measure 3 the two e flats should be tied.
>
> I have looked at using transparent as given in
>
> http://lsr.di.unimi.it/LSR/Snippet?id=8
>
> yet that would “collide” with the quarter rest.
>

My favorite way to deal with this is to switch the voices.

=
\score {
  \relative c' {
\time 6/8
\clef bass
<<
  \new Voice {
\voiceOne
bes,8-5 bes'-1 d-2~ d8 c-1 bes-2 |
c4. r4 f,8-2 |
g4.
\voiceTwo
r4 a,8-4~ |
a g bes'-1~ bes a-2 g-3 |
  }
  \new Voice {
\voiceTwo
s4. r4 g8-4~ |
g f-5 aes-2~ aes g-1 d-4~ |
d c ees-3~
\voiceOne
ees8 d-1 c-2 |
d4. s |
  }
>>
\oneVoice
  }
}
=

There's also the spanner-id, but I don't believe that works for ties.

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


Re: Merge_rests_engraver broken?

2018-12-18 Thread Jay Anderson
On Mon, Dec 17, 2018 at 7:45 PM Brent Annable 
wrote:

> Is the Merge_rests_engraver broken? I just copied and pasted the example
> from the Lilypond manual into Frescobaldi (Lilypond version 2.19.65), and
> the rests did not merge like they do on the relevant page of the manual
> 
> :
>

What result are you seeing? Please describe the breakage you're seeing.
Also consider using a newer version of lilypond. 2.19.82 is the latest
version on the 2.19.x line.

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


Re: Transposing Keyless Brass Parts

2018-03-14 Thread Jay Anderson
On Wed, Mar 14, 2018 at 2:48 PM, Glassmenagerie 
wrote:

> Here are a few measures of the 1st trumpet part in F of the 3rd dance of
> the
> Dvorak Slavonic Dances, Op46.  The Bb trumpet player would need to
> transpose
> up 7 intervals on the fly.  There is no key signature.  Quite a challenge
> for amateur players.  The concert key starts out in Ab, changes to C at mm.
> 66, then back to Ab at mm. 110.  I'd like the best way to arrive at the
> correct notes and key signature for the Bb trumpet.
>

The docs are always a good starting point:
http://lilypond.org/doc/v2.18/Documentation/notation/displaying-pitches#instrument-transpositions


Without looking at your example there are a few ways:

1) Write out the notes you want (Frescobaldi can transpose the notes in the
source).
2) Use /transpose to move the notes to what you want the players to read.
3) Use /transposition f in conjunction with some auto-transposition
libraries:
https://github.com/openlilylib/openlilylib/tree/master/editorial-tools/auto-transpose
.

I would suggest not using a key signature in either the original or the
transposed version for a trumpet part, but if you really want that you
could use tags (or the fancy edition engraver that's all the rage these
days: https://github.com/openlilylib/edition-engraver).

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


Re: Tempo Alignment Questions

2018-01-17 Thread Jay Anderson
On Mon, Jan 15, 2018 at 1:46 AM, Xavier Scheuer  wrote:

> On 14 January 2018 at 16:36, Jay Anderson  wrote:
> >
> >  Right. I want a more general solution. It gets annoying to have to
> > tweak the same tempo in the score and different parts. With the
> > accidental issue for instance the object is on the page so I assume
> > there is some way to tell it to align with that object.
>
> Hi Jay,
>
> There are several opened issues related to tempo, MetronomeMark
> alignment.
>
> https://sourceforge.net/p/testlilyissues/issues/1276/
> https://sourceforge.net/p/testlilyissues/issues/712/
>
>
Thanks. When I find the time I'll poke around in the C++ side of things.

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


Re: Tempo Alignment Questions

2018-01-14 Thread Jay Anderson
On Sat, Jan 13, 2018 at 9:53 PM, Shane Brandes  wrote:

> \override Score.MetronomeMark.extra-offset = #'(x . -y)  that will do
> it you will have to iterate a few guesses to get what you want.
>

 Right. I want a more general solution. It gets annoying to have to tweak
the same tempo in the score and different parts. With the accidental issue
for instance the object is on the page so I assume there is some way to
tell it to align with that object.

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


Tempo Alignment Questions

2018-01-13 Thread Jay Anderson
I'm unable to find them at the moment, but I've seen threads discussing
general overrides for tempo marks to make them work better (e.g. avoid
stacking, better horizontal alignment with other objects). What are the
current recommend overrides that you use to get better tempo behavior? The
suggestion from Gould is:
- Align with the time signature
- If no time signature then align with the first notation element (that's
not the starting clef or key signature)

Here are some things I'm looking to solve:

(1) Align with repeat sign at the beginning of a system. I haven't found
the right overrides to make that work.

=
\version "2.19.80"
\score {
  \new Staff \transpose c c' {
c1 | \break

%RehearsalMarks align where the tempo should in this case
\override Score.RehearsalMark.self-alignment-X = #LEFT
\mark "RehearsalMark"

%Not sure how to make MetronomeMarks align. Here's what I've tried:
\override Score.MetronomeMark.break-align-symbols = #'(staff-bar)
\override Score.MetronomeMark.non-break-align-symbols = #'()
\tempo "MetronomeMark"

\repeat volta 2 { c1 |}
  }
}
=

(2) Align with accidentals. The default lilypond behavior is to align with
the notehead. Like the above I haven't found the right overrides to make
this work.

=
\score {
  \new Staff \transpose c c' {
cis1 |
%Not sure how to make MetronomeMarks align. Here's what I've tried:
\override Score.MetronomeMark.non-break-align-symbols =
#'(accidental-interface)
\tempo "Accidental Alignment"

cis1 |
  }
}
=

(3) Alignment with multimeasure rests. I haven't found any definitive
source for how these should behave. It isn't addressed directly in Gould
though there are some examples on page 565 where they appear to be just to
the left of the bar line. Lilypond does this mostly, but it leaves more
horizontal space between the bar line and the start of the tempo than I'd
like.

\override Score.MetronomeMark.non-break-align-symbols =
#'(paper-column-interface multi-measure-rest-interface)

The above is very close except after a break the tempo indication left
aligns with the left edge of the system instead of right after the clef.
I'm not sure how to fix that.

=
\score {
  \new Staff \transpose c c' {
\compressFullBarRests
\markLengthOn
\override Score.MetronomeMark.non-break-align-symbols =
#'(paper-column-interface multi-measure-rest-interface)
\tempo "Somewhat long tempo"
R1*20 |
% Align to bar line
\tempo "Another long tempo"
c1 | \noBreak
R1*20 |
%Misaligned after break
\tempo "Yet another long tempo"
R1*20 |
\tempo "Final long tempo"
R1*20 |
\markLengthOff
  }
}
=

In conjunction with the above, to nudge it slight to the left of the bar
line with multi measure rests the override below seems to work well and I
like it better than directly aligning with the bar.

=
#(define (is-bar-aligned grob)
  (and (grob::has-interface grob 'break-aligned-interface)
(eqv? 'staff-bar (ly:grob-property grob 'break-align-symbol

#(define (callback mm)
  (let ((parent (ly:grob-parent mm X)))
(if (is-bar-aligned parent)
  '(1 . 0)
  '(0 . 0

...

\override Score.MetronomeMark.extra-offset = #callback
=

(4) Alignment after rehearsal marks. My preference here would be to have
the rehearsal mark followed by tempo mark instead of stacking. Most of the
time this isn't a big problem. However when music gets a bit compressed
they stack (even using \markLengthOn). Also if I manage to make the above
(3) work for alignment with multimeasure rests this will also occur. This
would be worth thinking about after the above.

Any suggestions for the above would be welcome. Thanks.

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


Re: Adding \noPageBreak Programatically

2017-11-24 Thread Jay Anderson
I'm coming back to this again. Here's the example below updated and a bit
smaller:

===
\version "2.19.80"

makeStuff =
#(define-void-function () ()
  (add-text #{\markup "fill some space" #})
  (add-score #{ \score { \new Staff { c'1 } } #})
  (add-text #{\markup "Keep with next"#})
  ; This doesn't work:
  (add-score #{ \noPageBreak #})
  (add-score #{ \score { \new Staff { c'1 } } #}))

\makeStuff
===

Compiling the above results in this error:
===
GNU LilyPond 2.19.80
Processing `test.ly'
Parsing...
Interpreting music...
Preprocessing graphical objects...lilypond:
/home/gub/NewGub/gub/target/linux-64/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.20/lily/book.cc:258:
void Book::process_score(SCM, Paper_book*, Output_def*): Assertion `0'
failed.
Aborted
===

The regular written out way is somehow adding the \noPageBreak directive
differently which I haven't tracked down yet. (Using "(add-score #{ \score
{ \noPageBreak } #})" avoids the above error, but of course creates a blank
staff.)

Essentially I have some functions which generate scores and markup
(music/text is passed in and applied to a score template), but I don't have
a way to control the page breaking between them. (E.g. explanatory text
before an etude shouldn't have a line break). The main alternative I see is
external code generation. This would solve some other issues with this
method of generating scores (mostly bad line numbers in compile errors),
but I'd prefer to not add another tool in the compile chain for the scores
if possible.

Thanks.

-Jay

On Tue, Dec 16, 2014 at 10:31 PM, Jay Anderson  wrote:

> I'm putting in some text before a score and I don't want a page break
> between them. I know how to do this manually. Here's an example:
>
> ===
> \version "2.19.15"
>
> \book
> {
>   \markup "fill some space"
>   \score
>   {
> \new Staff \relative c'
> {
>   \repeat unfold 13 {c1 | \break}
> }
> \layout
> {
>   ragged-right = ##t
> }
>   }
>   \markup "Keep with next"
>
>   \noPageBreak %%% <  What I want to do programatically.
>
>   \score
>   {
> \new Staff \relative c'
> {
>   c1 |
> }
> \layout
> {
>   ragged-right = ##t
> }
>   }
> }
> ===
>
>
> I want to do this programatically. Something like this:
> ===
> \version "2.19.15"
>
> makeStuff =
> #(define-void-function (parser loc) ()
>   (add-text parser #{\markup "fill some space" #})
>   (add-score parser #{
> \score
> {
>   \new Staff \relative c'
>   {
> \repeat unfold 13 {c1 | \break}
>   }
>   \layout
>   {
> ragged-right = ##t
>   }
> }
>   #})
>   (add-text parser #{\markup "Keep with next"#})
>   ; This doesn't work:
>   (add-score parser #{ \noPageBreak #})
>   (add-score parser #{
> \score
> {
>   \new Staff \relative c'
>   {
> c1 |
>   }
>   \layout
>   {
> ragged-right = ##t
>   }
> }
>   #}))
>
> \makeStuff
> ===
>
> Unfortunately I can't get the \noPageBreak to work here. Any ideas on
> the difference? Thanks.
>
> -Jay
>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: OpenType in LilyPond

2017-08-11 Thread Jay Anderson
On Fri, Aug 11, 2017 at 7:10 AM, Malte Meyn  wrote:
>
> if I understand correctly LilyPond already supports OpenType features and
> this will be documented in the next version (changes already have been
> pushed to master). Is this only for use in markup \overrides or can you
> select features document-wide? This would be nice:
>
> \paper {
>   #(define fonts
> (set-global-fonts
> #:music "cadence"
> #:brace "cadence"
> #:roman "Vollkorn" % Can this be Vollkorn with OT feature ss13?
> #:factor (/ staff-height pt 20)
>   ))
> }
>

I did some of the work on that feature. It currently can't be globally
enabled. I'd need to explore a bit more to figure it out how to make it
available globally, but seems like it should be doable. I can't promise
anything soon though.

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


Re: lilyvim

2017-08-10 Thread Jay Anderson
On Thu, Aug 10, 2017 at 12:41 AM, Christian Meyerolbersleben <
chr.meyerolbersle...@freenet.de> wrote:

> I got used typesetting my musical scores with lilypond using the wonderful
> vim.
>
> Some time ago I used the lilyvim package designed by Heikki Junis
> respectively Aaron Mehl. Badly some of these files disappeared from my
> computers.
>
> I tried to contact Aaron and Heikki to get the lilyvim package from them.
> But all of the mail addresses I tried failed.
>
> Does anyone of you happen to have this package or would you be so kind to
> send me a working mail address of Heikki or Aaron?
>


How did these differ from the vim support included with lilypond?
http://lilypond.org/doc/v2.19/Documentation/usage/text-editor-support.html#vim-mode

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


Re: Allow dynamic + span bar line collision

2017-08-06 Thread Jay Anderson
On Sun, Aug 6, 2017 at 5:51 PM, Jay Anderson  wrote:

> I believe the default behavior in this case used to be for the dynamics to
> collide with the bar line. These days it is creating a bit more space for
> the dynamic. That's the right behavior in most cases, but not the one
> below. How do I allow the collision in this case and let the 'sempre' hang
> to the left over the bar line? I haven't figured out the right override to
> let this happen yet. Thanks.
>
> Example:
> =
> \version "2.19.63"
>
> sempreFF = #(let ((dynamic (make-dynamic-script #{ \markup { \whiteout {
> \normal-text \italic sempre \dynamic ff }} #})))
>  (ly:music-set-property! dynamic 'tweaks (acons 'X-offset -8.5
> (ly:music-property dynamic 'tweaks)))
>  (ly:music-set-property! dynamic 'tweaks (acons
> 'self-alignment-X LEFT (ly:music-property dynamic 'tweaks)))
>  dynamic)
>
> % Looks good
> \score {
>   \new Staff {
> c4 c c c |
> c\sempreFF c c c |
>   }
> }
>
> % creates empty space
> \score {
>   \new GrandStaff <<
> \new Staff {
>   c4 c c c |
>   c\sempreFF c c c |
> }
> \new Staff {
>   c4 c c c |
>   c\sempreFF c c c |
> }
>   >>
> }
> =
>
> -Jay
>


sempreFF = #(let ((dynamic (make-dynamic-script #{ \markup { \whiteout {
\normal-text \italic sempre \dynamic ff }} #})))
 (ly:music-set-property! dynamic 'tweaks (acons 'X-offset -8.5
(ly:music-property dynamic 'tweaks)))
 (ly:music-set-property! dynamic 'tweaks (acons
'self-alignment-X LEFT (ly:music-property dynamic 'tweaks)))
 (ly:music-set-property! dynamic 'tweaks (acons
'extra-spacing-width '(7.5 . 0) (ly:music-property dynamic 'tweaks)))
 dynamic)

extra-spacing-width with a carefully chosen value seems to be one way to
make it happen. This is good enough for what I'm doing right now. I'm still
interested in a more general solution.

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


Allow dynamic + span bar line collision

2017-08-06 Thread Jay Anderson
I believe the default behavior in this case used to be for the dynamics to
collide with the bar line. These days it is creating a bit more space for
the dynamic. That's the right behavior in most cases, but not the one
below. How do I allow the collision in this case and let the 'sempre' hang
to the left over the bar line? I haven't figured out the right override to
let this happen yet. Thanks.

Example:
=
\version "2.19.63"

sempreFF = #(let ((dynamic (make-dynamic-script #{ \markup { \whiteout {
\normal-text \italic sempre \dynamic ff }} #})))
 (ly:music-set-property! dynamic 'tweaks (acons 'X-offset -8.5
(ly:music-property dynamic 'tweaks)))
 (ly:music-set-property! dynamic 'tweaks (acons
'self-alignment-X LEFT (ly:music-property dynamic 'tweaks)))
 dynamic)

% Looks good
\score {
  \new Staff {
c4 c c c |
c\sempreFF c c c |
  }
}

% creates empty space
\score {
  \new GrandStaff <<
\new Staff {
  c4 c c c |
  c\sempreFF c c c |
}
\new Staff {
  c4 c c c |
  c\sempreFF c c c |
}
  >>
}
=

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


Re: Rests in polyphonic and simple music in the same staff in LilyPond version 2.18.2.

2016-12-23 Thread Jay Anderson
On Fri, Dec 23, 2016 at 2:30 PM, Alexander Kobel  wrote:
> it seems that there is some interest in integrating your scheme engraver for
> merged rests into Lilypond core. Do you mind this idea? If not, are you
> interested in submitting a patch for review yourself, or do you want someone
> to take care of it?

That'd be great as long as its behavior is acceptable for general use
and it has a few regression tests. I believe there were still some
outstanding questions around killing some of the rest grobs (the
solution I had was to overlap them). Any attached text would need to
be re-parented to the surviving grob. That said, I don't think
handling this will affect the ending result of what's visible on the
page. It's a performance/cleanliness issues which could be fixed
later.

I'm not sure I'm up for getting the patch through (I've never gone
through the process). I'll most likely have some next week time to
refresh my memory how it works, clean it up, document it, and create
some tests. Beyond that I'd need some guidance.

> Thanks and merry holidays,
> Alexander

Thanks and same to you.

-Jay

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


Re: Making a Hairpin end close to the end of a Score

2016-10-30 Thread Jay Anderson
On Sun, Oct 30, 2016 at 5:35 PM, Christopher Heckman
 wrote:
> I stumbled on this hack, and it doesn't appear to be anywhere online.
>
> As is, you can't have a hairpin run until the very end of a score; it
> will stop before the last note. You also can't add \! to a \bar;
> Lilypond complains that it is not a musical event.
>
> The idea is to use \afterGrace, with an invisible grace note.
>
> \absolute {
> c'2\> \afterGrace d' { s16\! } |
> }
>
> MIDI translates this as you would expect, without an extra note at the end.
>
> However, this will not work if the hairpin starts on the last printed note.

I tend to use this:

c1\> s1*0\! |

-Jay

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


Re: problem with lyric extender line

2016-05-15 Thread Jay Anderson
On Sun, May 15, 2016 at 4:38 PM, Craig Dabelstein
 wrote:
> I have a score that requires the players to also sing. Can anyone tell me
> how I can get the vocal extender line in the 2nd oboe to stop at the end of
> bar 5?  I've tried both \skip and "  " but neither gives the right output.

Remove the \skip in `oboeIIWordsScore` and change the voice names so
they don't collide. Something like this:

<<
  \new Staff {
\new Voice = "flutes" { ... }
  }
  \new Lyrics \lysicsto "flutes" { ... }

  \new Staff {
\new Voice = "oboe1" { ... }
  }
  \new Lyrics \lysicsto "oboe1" { ... }

  \new Staff {
\new Voice = "oboe2" { ... }
  }
  \new Lyrics \lysicsto "oboe2" { ... }
>>

-Jay

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


Re: Rehearsal mark/tempo collision

2015-11-27 Thread Jay Anderson
There have been some discussions about this in the past (e.g.
https://lists.gnu.org/archive/html/lilypond-user/2013-11/msg00930.html,
https://lists.gnu.org/archive/html/lilypond-user/2013-12/msg00040.html). I
can't find a thread with a good resolution though.

In any case the main two simple options I'd suggest:
- Option 1: Manually move the tempo
\override Score.MetronomeMark.X-offset = #3
- Option 2: Don't align to `time-signature`. This will align to the note.
\override Score.MetronomeMark.break-align-symbols = #'()

-Jay

On Fri, Nov 27, 2015 at 1:10 PM, Craig Dabelstein <
craig.dabelst...@gmail.com> wrote:

> [image: Screen Shot 2015-11-28 at 6.06.47 am.png]
> Hi Lilyponders,
>
> Any idea how I can prevent the rehearsal marks from being pushed upwards
> by the tempo indication, and get the tempo marks to be moved a little to
> the right.
>
> I have been experimenting with:
>
> \override MetronomeMark.extra-spacing-width = #'(-2.0 . 0.5)
>
> in my Layout/Context/Score block but it doesn't seem to be having any
> effect.
>
> All the best,
>
> Craig
>
> *Craig Dabelstein*
> e:craig.dabelst...@gmail.com
> 
> 
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>
>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Combined marks (rehearsal mark, fermata) + break

2015-11-12 Thread Jay Anderson
I know I can do this to combine marks:

  \mark \markup { \override #'(baseline-skip . 3) \center-column {
\line { \box \bold "P" }
\line { \musicglyph #"scripts.ufermata" }
  } }

This produces a rehearsal mark over a fermata over a bar line. However
when this occurs at a line break I want the fermata over the barline
before the break and the rehearsal mark at the beginning of the line
after the break. Is there a good way to do this currently? (the
lilypond web site appears unreachable again so I haven't done my
usually scouring there.)


If there's not a good way to do this today, one feature that I think
would solve this cleanly is adding a fermata barline type. So the
above would be:

\bar "(|"
\mark \markup { \box \bold "P" }

Where '(' in the bar means a fermata above the bar. We could include
"(|", "|)", and "(|)" for fermatas above, below, and above and below
(and of course variations with different actual bar types). What do
you think? Is it too strange to put this as part of the bar line?

-Jay

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


Re: 2.19.24 'add-score' + \noPageBreak

2015-08-05 Thread Jay Anderson
On Wed, Aug 5, 2015 at 10:48 AM, David Kastrup  wrote:
> Jay Anderson  writes:
>> #(add-score #{ \noPageBreak #})
>
> Which version should that ever have worked in?

I haven't figured out when it changed (git bisect), but it at least
worked in 2.19.15. (With the added parser attribute "#(add-score
parser #{ \noPageBreak #})")

It's building scores, titles, and other text in scheme. I want to
prevent a break between some markup before the score. If there's a
better mechanism I'll gladly switch.

-Jay

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


2.19.24 'add-score' + \noPageBreak

2015-08-05 Thread Jay Anderson
===
\version "2.19.24"

#(add-score #{ \noPageBreak #})


This used to work in previous verisions, but now give an assertion
error: 'book.cc:247: failed assertion `0''. I'm not in a good position
to debug more in depth. Any suggestions on getting the same effect?
Thanks.

-Jay

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


Re: Windows performance

2015-04-18 Thread Jay Anderson
On Sat, Apr 18, 2015 at 10:08 AM, Paul Morris  wrote:
> Hi Trevor,
>
>> On Apr 18, 2015, at 11:07 AM, Trevor Daniels  wrote:
>>
>> But wouldn't this show a speed-up on systems other than Windows?
>
> There are similar speed-ups on macs (see earlier in this thread).  I don’t 
> think we’ve had anyone corroborate the results on GNU/Linux yet.

http://lists.gnu.org/archive/html/lilypond-user/2015-04/msg00482.html

That was on linux (64-bit). A speed-up there as well. So there are
speed-ups across the board.

-Jay

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


Re: (hypothetical) Availability of LilyPond engravers

2015-04-16 Thread Jay Anderson
On Thu, Apr 16, 2015 at 11:03 AM, Urs Liska  wrote:
> If I should be asked to engrave a big score (as fast as possible) in a
> commercial context and wouldn't want to reply "well, I will ask around and
> see how many people I can get together", what could I say? Would it be
> realistic to say that we could (at any time) provide a team of 10 quailfied
> engravers working full time on a project? Or 15-20 working half time?
> And what if it were a request for continuous work? Is it realistic to say
> there are always enough engravers at hand to accept work?

Considering the public responses there seems to be quite a few people
qualified and able. We'll see if you get 20 responses. The liedboek
team did sometime similar. They may have good insights.

> I feel that one aspect that makes publishers hesitate to consider LilyPond
> is exactly this question: They know that there will always be a sufficient
> number of available and qualified Finale and Sibelius users, and presumably
> even Score users, but they don't have an idea about this with LilyPond.
>
> Any opinions or estimates?

Sounds like a great idea. I'd be very willing, though I most likely
wouldn't be able to work full time.

Jay

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


Re: Survey: Large scores

2015-04-16 Thread Jay Anderson
Not one big score, but lots of smaller ones bundled:
http://horndude77.github.io/horn-solos/. About 700 total pages
(10x13in horn part, 9x12in piano).

2.19.17 - 9m39s
2.19.18 - 7m00s (a nice speed bump here.)

Both max out around 6.5gb. I recall past versions required more memory.

-Jay

On Thu, Apr 16, 2015 at 10:43 AM, Urs Liska  wrote:
> Hey all,
>
> this is not related to the discussion about the recently improved processing
> speed, although it may sound related:
> I'd like to have an idea how many people have already or are regularly
> dealing with "big" scores, and maybe I'd like to know what might be the
> biggest score anyone has successfully created with LilyPond.
>
> Urs
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user

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


Re: parts for natural horns and trumpets

2015-04-04 Thread Jay Anderson
On Wed, Apr 1, 2015 at 12:22 AM, Urs Liska  wrote:

> You may have a look at
> https://github.com/openlilylib/openlilylib/tree/master/editorial-tools/auto-transpose
>

That's pretty awesome. Unfortunately it doesn't behave like I'd expect by
default. Here's an example:

\version "2.19.15"

\include "auto-transpose.ily"

music = \relative c'
{
  \transposition f
  c1 |
}

\score
{
  \new Staff \with { \autoTranspose } \music
}

Playing a middle C with an F transposition I'd expect the output to be a
fifth down instead it results in a fifth up. There are two variable which
control this: 'music-concert-pitch' - is the music entered in concert
pitch, and 'print-concert-pitch' - should the output music be concert pitch
(as opposed to the transposition pitch). By default it's set to the music
being entered in concert pitch and to output the music in the transposed
pitch. This is the opposite of what lilypond's 'transposition' means.
Switching these around works great, but the default seems wrong.

Anyway, this is a _very_ useful function. Functionality like this should be
part of liliypond itself. Thanks.

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


Re: Highlight or Cross out measures

2015-03-16 Thread Jay Anderson
On Mon, Mar 16, 2015 at 8:48 AM, Klaus Blum  wrote:
> maybe this could help you:
>
> %
> -
> \version "2.18.2"
>
> bgColor =
> #(define-music-function (parser location y-lower y-upper color) (number?
> number? color?)
>#{\stopStaff
>  \override Staff.StaffSymbol $'stencil =
>  $(lambda (grob)
> (let* ((staff (ly:staff-symbol::print grob))
>(X-ext (ly:stencil-extent staff X))
>(Y-ext (ly:stencil-extent staff Y)))
>   (set! Y-ext (cons
>(+ (car Y-ext) (+ y-lower 2))
>(+ (cdr Y-ext) (- y-upper 2
>   (ly:grob-set-property! grob 'layer -10)
>   (ly:stencil-add
>(ly:make-stencil (list 'color color
>   (ly:stencil-expr (ly:round-filled-box X-ext
> Y-ext 0))
>   X-ext Y-ext))
>staff)))
>  \startStaff
>#})
>
> \relative c' {
>   c1
>   \bgColor #-2 #2 #yellow
>   c1
>   \stopStaff \revert Staff.StaffSymbol $'stencil \startStaff
>   c1
>   \bgColor #-3 #2 #green
>   c1
> }
> %
> -
>
> It's based on the code of snippet 726 which you've already found.
> There has been another thread about that:
> http://lilypond.1069038.n5.nabble.com/scheme-problem-colored-background-layers-td169023.html
> 
>

Awesome. That worked great. Thanks.

-Jay

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


Highlight or Cross out measures

2015-03-15 Thread Jay Anderson
I want to be able to highlight sections (just a few measures).

Some past work:
- http://lsr.di.unimi.it/LSR/Snippet?id=699 - manual markup
  - http://lists.gnu.org/archive/html/lilypond-user/2008-09/msg00083.html
- http://lsr.di.unimi.it/LSR/Snippet?id=726 - colors whole staff

Has there been any other work on this in the intervening years? My
other thoughts are to use analysis brackets or draw custom bar lines
to denote the sections.

-Jay

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


Re: Peer review

2015-02-17 Thread Jay Anderson
On Tue, Feb 17, 2015 at 7:30 PM, Craig Dabelstein
 wrote:
> I'm not sure if this is an appropriate request for the group, but I was
> wondering if anybody had the time to look at a sample part I have typeset
> and make any comments regarding the typesetting. There may be many things
> here that an experienced typesetter may see that need improvement, but my
> eyes don't pick up.

It looks pretty clean to me. I'm not an expert either, but here are a
few things:
- 'attaca' should be placed below the staff.
- The rest at the end on page 3 looks a little short for a page turn
(maybe not). It's certainly doable, but it's worth playing around.
Moving the page turn will most likely cause it to flow onto more
pages.
- Mvt. I measure 59 has an A natural. The following measure has an
A-flat? Add the cautionary accidental. There are similar issues like
this as well (Mvt. I measures 89-90, 91-92 with f-flat, f-natural - I
didn't check further.).

> I do think the part looks a little bit compressed, but I have used the page
> turn engraver (which I think is one of the greatest inventions of the modern
> world!) for instrumental parts such as these.

A4 is fairly narrow which could be part of the problem as well.

-Jay

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


Re: centering full-measure objects (notes and/or rests)

2015-02-03 Thread Jay Anderson
On Tue, Feb 3, 2015 at 9:30 PM, Kieren MacMillan
 wrote:
> 2. Why is this not Lilypond’s default behaviour? As I understand it, 
> traditional engraving practice is to centre full-measure objects (notes 
> and/or rests) in *any* measure of a piece, as long as all staves in the 
> current system consist of only full-measure objects (notes and/or rests).

Gould says that a bar containing a single note is placed left of
center. Full measure rests are centered. So lilypond is behaving
correctly from what I can tell, but I agree at times it'd be nice to
be able to adjust the off-centered-ness of the note. It's never
bothered me enough to try and fix it though. I'd definitely be
interested in being able to tweak it if it were available.

-Jay

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


Re: staccato dots and slurs in second voice

2015-01-25 Thread Jay Anderson
On Sun, Jan 25, 2015 at 5:14 PM, David Nalesnik
 wrote:
> It's definitely possible!  Using a pointer to a ScriptColumn, the X-offset
> callback for Script can be modified to (1) center staccatos over the stem if
> no other articulations are present; (2) center them over the note head if
> multiple articulations are present.  I'll go over this some more, and if all
> goes well I should have a patch up for discussion.

>From another recent message:
http://lists.gnu.org/archive/html/lilypond-user/2015-01/msg00509.html.
Is toward-stem-shift not the right thing to change instead of
X-offset?

Making something like this the default behavior would be great (the
above I think is a modified version of something you, David, created
in the past). The current lilypond default of 0.5 for toward-stem-shif
for staccato doesn't make much sense to me. A fix for this should also
take into account other articulations that behave like staccato
(staccatissimo, stopped (I've seen this one both ways), etc.)

-Jay

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


Re: Staccato

2015-01-19 Thread Jay Anderson
On Mon, Jan 19, 2015 at 11:45 AM, Cynthia Karl  wrote:
> Section 1.285 "staccato" of the 2.19.15 LilyPond Music Glossary says:  
> Staccato is indicated by a dot above or below the note head.  Gardner Read 
> ("Music Notation:  A Manual of Modern Practice") agrees with this and has a 
> little picture showing a stem-up note with a dot just beneath the note-head 
> and a stem-down note with a dot just above the note-head.
>
> Ordinarily, LP follows both Read's and its own guideline on the placement of 
> the dot, e.g., the following snippet:
> ...
>
> However, the following snippet:
> ...
>
> Besides being pretty ugly, this violates LP's own guidelines.
>
> Is there a way to get the second snippet to produce regular staccato dots?

Lilypond is behaving correctly. In multi-voice situations the
articulation should be be placed on the stem side (Gould page 117 says
that in this situation articulations should _never_ be placed on the
notehead side so it is absolutely clear to which voice the
articulation belongs).

Another comment about this example: I'd prefer to see staccato
markings centered on the stem in this case. There is an enhancement
for this: https://code.google.com/p/lilypond/issues/detail?id=2535 and
a discussion a few years back:
http://lists.gnu.org/archive/html/bug-lilypond/2012-05/msg00098.html.
It can be used to somewhat clean this situation up:


\version "2.19.15"

#(define stacc-corrector
  (lambda (ctx)
(let ((articulations '())
  (staccato '()))
  (make-engraver
(acknowledgers ((script-interface engraver grob source-engraver)
  (set! articulations (cons grob articulations))
  (if (string= (ly:prob-property (event-cause grob)
'articulation-type) "staccato")
(set! staccato grob
((stop-translation-timestep trans)
  (cond ((and (ly:grob? staccato) (= 1 (length articulations)))
  (set! (ly:grob-property staccato 'toward-stem-shift) 1.0))
((ly:grob? staccato)
  (set! (ly:grob-property staccato 'toward-stem-shift) 0.0)))
  (set! articulations '())
  (set! staccato '()))


music = \relative c''
{
  <<
{
  \voiceOne
  g8-. a-. b-. c-. d-. e-. f-. g-.-- |
  a4-. b-. c-. b-. |
}
\new Voice
{
  \voiceTwo
  g,2~ g2~ |
  g2~ g2 |
}
  >> \oneVoice
  g8-. a-. b-. c-. d-. e-. f-. g-.-- |
}

\score
{
  \new Staff \music
}

\score
{
  \new Staff \music
  \layout
  {
\context
{
  \Voice
  \consists #stacc-corrector
}
  }
}


The default toward-stem-shift for staccato marks is 0.5 (I'm not quite
sure why). The above also moves the staccato back to the default
position if other articulations are present.

-Jay

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


Re: Grand Advanced Stylesheet Project (GASP)

2015-01-18 Thread Jay Anderson
On Sun, Jan 18, 2015 at 8:44 PM, Kieren MacMillan
 wrote:
> Let’s start making a list of the “big picture” targets:
> piano solo
> instrument solo/part
> orchestra score
> choir, a cappella
> choir plus piano
> piano + voice, art song
> piano + voice + guitar chords, popular
> chamber score (2-4 players)
> piano chamber score with cue staves
> pipe organ solo
> lead sheet
>
> Other obvious ones?

- solo instrument + solo instrument (solo part is cue staff)

I assume the goal is mostly for setting sensible defaults for a
specific type of score and less about building the structure. So you'd
still need to manually build the scores and staves. Correct?

-Jay

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


Re: Getting pitch out of a pair

2015-01-16 Thread Jay Anderson
On Fri, Jan 16, 2015 at 4:02 PM, and...@andis59.se  wrote:
> I store two pitches in a pair variable
> x = #'(b . cis')
>
> But then I want to retrieve each one as a  pitch in a music-function
> foo = #(define-music-function (parser location bar) (ly:music?)
> (define from (car x))
> (define to (cdr x))
> #{
> \transpose $from $to $bar
> #}
>
> but when I use this
> \foo a
>
> I get Expecting pitch, found (quote b)
>
> So what am I doing wrong and how can I do it right?
>
> // Anders
> PS! The foo function is just a snippet the real function does a bit more...

pitches = #(cons #{ b #} #{ cis' #})
#(display (ly:pitch? (car pitches)))  => #t

Notes:
- It needs to be lilypond and not scheme which interprets the pitches.
The #{ #} do that inside a scheme expression.
- It won't work within a quoted list (e.g. #'(#{ b #} . #{ cis' #})
won't get you pitches.)

-Jay

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


Re: Question about \afterGrace

2015-01-15 Thread Jay Anderson
On Thu, Jan 15, 2015 at 12:21 PM, Pierre Perol-Schneider
 wrote:
> ...
>
> Does anybody knows what Elaine Gould says about that?

I assume you're talking about whether the trill should extend over the
finishing grace notes. The answer is no. The examples on page 138 end
the trill line before the grace notes. Gould also says "the trill line
continues right up to the following notehead or its accidental (if it
has one)", or it "stops at the barline".

-Jay

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


Re: Question about \afterGrace

2015-01-15 Thread Jay Anderson
On Thu, Jan 15, 2015 at 11:22 AM, Cynthia Karl  wrote:
> The following snippet is based on the afterGrace snippet on p.136 of the 
> 2.19.15 Notation manual:
>
> \version "2.19.15"
>
> \score {
>   <<
>   \new Staff \relative c'' {
>  d1~\afterGrace
>  d1\startTrillSpan { c32[ d]\stopTrillSpan }
>  c2 r2
>   }
>   \new Staff \relative c'' {
>  \repeat unfold 16 d8
>  d8 r8 r4 r2
>   }
>   >>
>   \layout {}
>   \midi {}
> }
>
> This snippet produces the attached output, showing that the two grace notes 
> occur after beat 3 and before beat 4 of the second measure; the midi file 
> also shows this.  This doesn't seem right to me.  I think they should occur 
> much later in the second measure.  Is this output correct?  Is there a way to 
> slide them to just before the bar line at the end of measure 2?


It's in the docs (look for afterGraceFraction):
http://lilypond.org/doc/v2.19/Documentation/notation/special-rhythmic-concerns

Essentially the implementation of afterGrace is a workaround to make
the grace show before the bar line (see music-functions-init.ly).

-Jay

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


Adding \noPageBreak Programatically

2014-12-16 Thread Jay Anderson
I'm putting in some text before a score and I don't want a page break
between them. I know how to do this manually. Here's an example:

===
\version "2.19.15"

\book
{
  \markup "fill some space"
  \score
  {
\new Staff \relative c'
{
  \repeat unfold 13 {c1 | \break}
}
\layout
{
  ragged-right = ##t
}
  }
  \markup "Keep with next"

  \noPageBreak %%% <  What I want to do programatically.

  \score
  {
\new Staff \relative c'
{
  c1 |
}
\layout
{
  ragged-right = ##t
}
  }
}
===


I want to do this programatically. Something like this:
===
\version "2.19.15"

makeStuff =
#(define-void-function (parser loc) ()
  (add-text parser #{\markup "fill some space" #})
  (add-score parser #{
\score
{
  \new Staff \relative c'
  {
\repeat unfold 13 {c1 | \break}
  }
  \layout
  {
ragged-right = ##t
  }
}
  #})
  (add-text parser #{\markup "Keep with next"#})
  ; This doesn't work:
  (add-score parser #{ \noPageBreak #})
  (add-score parser #{
\score
{
  \new Staff \relative c'
  {
c1 |
  }
  \layout
  {
ragged-right = ##t
  }
}
  #}))

\makeStuff
===

Unfortunately I can't get the \noPageBreak to work here. Any ideas on
the difference? Thanks.

-Jay

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


Re: Colors in alists

2014-11-04 Thread Jay Anderson
On Tue, Nov 4, 2014 at 3:48 AM, Urs Liska  wrote:
> I want to store colors in an alist like
>
> #(define types
> '(("one" . "red")
> ("two" . "blue")))
>
> I can retrieve and display the values with assoc-ref but I don't know how to
> turn the returned string into a color to be used in an override.

Try quasiquote + unquote:

#(define types
  `(("one" . ,red)
("two" . ,blue)))

#(display types) => ((one 1.0 0.0 0.0) (two 0.0 0.0 1.0))

-Jay

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


Re: Merge Rests Engraver

2014-10-04 Thread Jay Anderson
On Fri, Oct 3, 2014 at 8:30 AM, Peter Crighton
 wrote:
> Sorry for reviving this old conversation …
>
> \new Staff <<
>   \new Voice {
> \voiceOne r2. r4
>   }
>   \new Voice {
> \voiceTwo r2. r4
>   }
>>>
>
> \layout {
>   \context {
> \Staff
> \consists #merge-rests-engraver
>   }
> }
>
> I found that dotted rests don’t behave quite satisfyingly with this code –
> there are two dots appearing.
> How can this be fixed?

I've noticed this as well. At some point there was an enhancement to
lilypond for better dot placement that caused this. One option is to
use \override Dots #'stencil = ##f in one of the voices. Not great. Or
use the other solution (http://lsr.di.unimi.it/LSR/Item?id=336). My
main complaint with it is that it doesn't handle multi-measure rests
(and at times in the past it caused segfaults--I'm not sure if this is
still true).

-Jay

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


Re: [openlilylib] Discuss restructuring

2014-07-03 Thread Jay Anderson
On Thu, Jul 3, 2014 at 1:06 AM, Urs Liska  wrote:
> Our repository has now lived for some time, and I think it is a good thing
> to have and maintain. The recent renaming was partially intended to stress
> its nature as an _includable_ library (as opposed to the official LSR). But
> to make that work for a longer time and to make it scale with an increasing
> amount of content I think we now need a fundamental restructuring of its
> directory structure.

One thing that would be useful is a way to define dependencies which
would be automatically downloaded from some repository. Modern build
systems do this (e.g. maven for java). This type of functionality is
becoming standard with newer programming languages.

I imagine something as simple as:
=
\library "lilyjazz"


=

At compile-time it would download the snippet or load it from its local cache.

Even something which takes an extra step to request a download would
still be useful. In this case the above would give a compile error
until you do something like:

$  install lilyjazz

Of course it can get complicated (versioning, caching, etc.). Just a thought.

-Jay

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


Re: lilypond-user Digest, Vol 139, Issue 116

2014-06-29 Thread Jay Anderson
On Sun, Jun 29, 2014 at 7:40 PM, Patrick or Cynthia Karl  wrote:
> Second, it seems to me that this topic is much more complicated that it ought 
> to be.

Many seemingly simple things become complicated when you finally dig
into the details. The goal is to control the complexity.

> Finally, I still think that the following statement in section 1.4 of the 
> Notation documentation:
>
> volta   ... If the repeat is at the beginning of a piece, a repeat bar line 
> is only printed at the end of
> the repeat.
>
> needs modification because it is misleading.  It implies that if the repeat 
> is not at the beginning of
> a piece, a repeat bar will be printed at the beginning of the repeat.  That 
> implication is evidently false.

It's not false, but you'd need a deeper understanding of the system to
know why in this case it behaved differently than expected. I can see
how one might expect the different behavior:

First try: \musicA \break \repeat volta 2 { \musicB }
-> Result: Hmm I want a double bar instead of a single bar before the
break. I'll add it in.
Second try: \musicA \bar "||" \break \repeat volta 2 { \musicB }
-> Result: The double bar worked, but where did my initial repeat bar
go? This is very surprising.

One way to think of the '\repeat volta' command is as a short hand for
adding in the correct bar lines around a section of music (it does a
bit more than that as well). If you manually override the bar at one
end of the repeat then you get the overridden bar.

-Jay

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


Re: Repeat volta not at beginning of piece doesn't get initial repeat bar line

2014-06-26 Thread Jay Anderson
On Thu, Jun 26, 2014 at 2:05 PM, James  wrote:
> On 26/06/14 16:53, Jay Anderson wrote:
>> You're right that the \bar "||" is overriding the repeat bar. I assume
>> you're wanting a double bar before the break. Use \bar ".|:-||"
>> instead. You can lookup valid bar strings in bar-line.scm.
>>
>> -Jay
>>
> So does the documentation need changing as it is not clear here; and if
> so can you let me know what it should be?

To me the bar line situation is pretty clear here:
http://www.lilypond.org/doc/v2.19/Documentation/notation/bars

and here:
http://www.lilypond.org/doc/v2.19/Documentation/notation/long-repeats

When I'm looking for a specific bar line I tend to look directly in
bar-line.scm.

-Jay

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


Re: Repeat volta not at beginning of piece doesn't get initial repeat bar line

2014-06-26 Thread Jay Anderson
On Thu, Jun 26, 2014 at 8:37 AM, Patrick or Cynthia Karl  wrote:
> Section 1.4 of the Notation Manual says about volta repeats:
>
> volta   The repeated music is not written out but enclosed between 
> repeat bar lines. If the repeat is at the 
> beginning of a piece, a repeat bar line is only printed at the end of the 
>  repeat.
>
> But the following snippet does not generate the initial repeat bar line, 
> apparently because of the "||" bar line.  But the "||" bar line does not 
> indicate the end of a piece.
>
> I have tried several things to get the inital repeat bar line to appear 
> without success.  I suspect it's not very difficult.  Can anyone please tell 
> me how to do it?  And if I'm correct about the problem being caused by the 
> "||" bar line, the documentation should probably be changed.
>
> \version "2.18.2"
>
> music = \relative b' {
> a1 a a a
> \bar "||"
>
> \break
>
> \repeat volta 2 { a4 b c d }
> }

You're right that the \bar "||" is overriding the repeat bar. I assume
you're wanting a double bar before the break. Use \bar ".|:-||"
instead. You can lookup valid bar strings in bar-line.scm.

-Jay

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


Re: BreathingSigns and automatic beams

2014-06-24 Thread Jay Anderson
On Tue, Jun 24, 2014 at 4:06 AM, Werner LEMBERG  wrote:
> I fully understand what you say, and similar symbols are used for
> singers, too, however, I think this somehow contradicts what lilypond
> is intended to do: engraving well-formatted music.  It's not
> lilypond's job to imitate hand-written marks!  In other words, I want
> to see some *printed* editions with such entries so that we can adjust
> lilypond accordingly, if necessary.

* 
http://imslp.org/wiki/200_%C3%89tudes_nouvelles_m%C3%A9lodiques_et_progressives_pour_cor_(Alphonse,_Maxime)
- Book 4 #3 has some examples of breaths over bar lines (though it
isn't very consistent).

* http://imslp.org/wiki/Adagio_for_Horn_and_Piano,_Op.31_(Draeseke,_Felix)
- The solo part has breath marks. None right over the bar line.
(http://imslp.org/wiki/Romanze_for_Horn_and_Piano,_Op.32_(Draeseke,_Felix)
is similar)

* http://imslp.org/wiki/Nocturno,_Op.7_(Strauss,_Franz) - The breath
marks are quite small in this one.

* http://imslp.org/wiki/60_Etudes_for_Low-Horn,_Op.6_(Kopprasch,_Georg)
- In the Gumbert edition he uses two different marks to indicate short
quick breaths and bigger breaths. Many of these marks are directly
over a bar line (see #13).

-Jay

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


Re: BreathingSigns and automatic beams

2014-06-23 Thread Jay Anderson
On Mon, Jun 23, 2014 at 10:24 PM, David Kastrup  wrote:
> You don't say which frustration.  You apparently want to have automatic
> beams across breath marks.  To me, that does not make a lot of sense.

Sorry, I took out too much context from the original message. It's
pretty common in horn music (etudes especially - probably other wind
music as well) for a breath mark to suggest a possible place to take a
breath. (It doesn't necessarily indicate a short pause or break.)
Perhaps lilypond's breathe isn't quite right for what I need. Here's
how the breath I'm wanting behaves:
- The mark generally doesn't affect the music spacing or beaming in any way.
- Horizontally it is at the end of a note's duration before the
following note (or possibly over a bar line in tight situations).
- Vertically it floats above beams and articulations, but below text
and tempo markings. Generally you don't see breath marks and slurs
together. I'm sure depending on the context it could go either inside
or outside the slur.

A regular text markup will get most of this except the horizontal
positioning. Maybe I'll play with that to see if I can make it work.

> But since the beam engraver sits at Voice level, that's sort of easy to
> cheat around:
> ...
> breathe = \new Voice \breathe
> ...
> Of course, this does not follow \voiceOne/\voiceTwo settings.

That's a creative workaround. For what I'm looking for there's only
one voice so this would work fine. Thanks.

-Jay

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


Re: BreathingSigns and automatic beams

2014-06-23 Thread Jay Anderson
On Wed, Mar 6, 2013 at 6:00 PM, Thomas Morley
 wrote:
> Well, nowadays we have the 'collision-interfaces-property but adding
> breathing-sign-interface to it seems to have no effect.
>
> \version "2.17.12"
>
> respectBS = {
>   \override Beam #'collision-interfaces =
> #'(beam-interface
>clef-interface
>breathing-sign-interface
>flag-interface
>inline-accidental-interface
>key-signature-interface
>note-head-interface
>octavate-eight-interface
>stem-interface
>time-signature-interface)
> }
>
> \relative c' {
>   \respectBS
>   c8 d e f b[ a \breathe g f]
> }

Reviving this old thread. I was trying to do this today and found the
same frustration. It looks like it requires a simple change to the
code:

=
diff --git a/lily/auto-beam-engraver.cc b/lily/auto-beam-engraver.cc
index 8b55b44..92bc796 100644
--- a/lily/auto-beam-engraver.cc
+++ b/lily/auto-beam-engraver.cc
@@ -353,7 +353,8 @@ void
 Auto_beam_engraver::acknowledge_breathing_sign (Grob_info /* info */)
 {
   check_bar_property ();
-  if (stems_)
+  bool breathBreaksBeam = to_boolean (get_property
("breathingSignBreaksBeam"));
+  if (stems_ && breathBreaksBeam)
 end_beam ();
 }

diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly
index ebfff6a..322db5f 100644
--- a/ly/engraver-init.ly
+++ b/ly/engraver-init.ly
@@ -638,6 +638,7 @@ automatically when an output definition (a @code{\\score} or
   beamHalfMeasure = ##t

   autoBeaming = ##t
+  breathingSignBreaksBeam = ##t
   autoBeamCheck = #default-auto-beam-check

   completionFactor = #unity-if-multimeasure
diff --git a/scm/define-context-properties.scm
b/scm/define-context-properties.scm
index 2d38188..3e5510d 100644
--- a/scm/define-context-properties.scm
+++ b/scm/define-context-properties.scm
@@ -115,6 +115,7 @@ arguments, @var{context}, @var{dir} [start/@/stop
(-1 or 1)], and
 starts or stops the auto beam.")
  (autoBeaming ,boolean? "If set to true then beams are generated
 automatically.")
+ (breathingSignBreaksBeam ,boolean? "Indicates that a breathing
sign causes beams to break.")
  (autoCautionaries ,list? "List similar to @code{autoAccidentals},
 but it controls cautionary accidentals rather than normal ones.  Both
 lists are tried, and the one giving the most accidentals wins.  In
=

Is this an appropriate approach? Ideally it'd be nice to give it a
list of things that cause beams to end (e.g. breathing sign, manual
beam, bar line, etc.).

-Jay

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


Re: Convert Lilypond syntax to Scheme list

2014-06-21 Thread Jay Anderson
On Sat, Jun 21, 2014 at 6:36 PM, Thorsten Jolitz  wrote:
> How do I get this list/parse-tree representation of a lilypond file
> (without any further processing, just the Lisp representation as
> output to stdout or into a file)?

http://lilypond.org/doc/v2.18/Documentation/notation/available-music-functions#index-displayMusic

You'll need to modify your file in order to get this output.

-Jay

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


Re: Centered Paragraphs

2014-06-12 Thread Jay Anderson
On Wed, Jun 11, 2014 at 1:28 AM, Thomas Morley  wrote:
> is
> http://lsr.di.unimi.it/LSR/Snippet?id=765
> of some help?

Somewhat. Looking at it again this evening fresh I figured it out:

#(define-markup-command (paragraph layout props args) (markup-list?)
  #:properties ((baseline-skip))
  (interpret-markup layout props
  #{
\markup
{
  \fill-line
  {
\override #'(line-width . 72)
\justify { \hspace #2.5 $args }
  }
}
  #}))


(The number could be made less magic, but this is good enough for me
for now.) Which can be used like this:

\markup
{
  \paragraph
  {
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat.  Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia deserunt
mollit anim id est laborum.
  }
}

Thanks.

-Jay

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


Centered Paragraphs

2014-06-10 Thread Jay Anderson
My main goal is to have some simple indented paragraphs which don't
take the full width and are centered horizontally. With a syntax
something like this:

\markuplist
{
  \paragraph
  {
Some text
  }
  \vspace #0.6

  \paragraph
  {
Some more text
  }
}

Any idea how to cause the paragraph command (from here:
http://www.lilypond.org/doc/v2.18/Documentation/extending/new-markup-list-command-definition)
to center the paragraph?

I can make it more narrow:

#(define-markup-list-command (paragraph layout props args) (markup-list?)
  #:properties ((par-indent 2))
  (interpret-markup-list layout props
#{
  \markuplist \override-lines #'(line-width . 80)
  \justified-lines
  {
\hspace #par-indent #args
  }
#}))

But this keeps the text on the left edge of the page. All of my
attempts have failed. The mismatch between markuplist and markup
commands is my biggest difficulty.

I tried switching to a markup command:

#(define-markup-command (paragraph layout props args) (markup?)
  #:properties ((par-indent 2))
  (interpret-markup layout props
#{
  \markup
  \fill-line
  {
\override #'(line-width . 80)
\justify { \hspace #par-indent #args }
  }
#}))

But this resulted in each word being on its own line.

Thanks for the help.

-Jay

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


Re: Problem: incompatible Lilypond and Guile

2014-05-23 Thread Jay Anderson
On Thu, May 22, 2014 at 4:32 PM, David Kastrup  wrote:
> There's your mistake.  curried-definitions is broken.  You need 2.0.10
> at least.

Ah. The releases in the ftp directory end up being sorted
alphabetically so I mistakenly assumed the one furthest down in the
list was the latest. You're still right that 'curried-definitions'
appears to not work properly.

>> Anyway, it'd be nice to know the major hold-ups and tasks from someone
>> who's more familiar with this area.
>
> Nobody is really familiar with this area.  Some work has previously been
> done by Ian Hulin and some of that has already been committed, but part
> of it is stabbing around in the dark around bugs and undocumented areas
> of GUILE 2.

That's the impression I got.

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


Re: Problem: incompatible Lilypond and Guile

2014-05-22 Thread Jay Anderson
On Thu, May 22, 2014 at 2:09 PM, Simon Albrecht  wrote:
> Am 22.05.2014 22:36, schrieb rm damerell:
>
>> Dear colleagues,
>>
>> I have a problem due (I think) to a bad mixture of
>> versions of Lilypond and Guile. Versions are:
>> L-Ubuntu 12.04
>> guile-2.0.5+1-1   (most recent version I found in Ubuntu repository)
>> Lilypond 2.18.2   (From lilypond.org)
>
> Lilypond still works with Guile v1.8 (which is unfortunate since this will
> cease to be supported in some upcoming Linux distributions). See
> http://code.google.com/p/lilypond/issues/detail?id=1055. I don’t know
> whether there’s currently any work on this.

I'm curious. What needs to be done to make lilypond work with guile 2?
The comments on that bug haven't been updated in quite a long time and
searching doesn't yield much. Are there any small tasks?

As an exercise I tried to build lilypond from git against guile 2.0:

Build guile-2.0:
> wget ftp://ftp.gnu.org/gnu/guile/guile-2.0.9.tar.xz
> tar -xJf guile-2.0.9.tar.xz
> cd guile-2.0.9
> ./configure --prefix=/opt/guile-2.0
> make
> sudo make install

Build lilypond (from git):
... Modify configure.ac to use 2.0.9 instead.
> ./autogen.sh
> export PATH=/opt/guile-2.0/bin:$PATH #(probably need a better way to override 
> this)
> export LD_LIBRARY_PATH=/opt/guile-2.0/lib:$LD_LIBRARY_PATH #(probably need a 
> better way to override this)
> ./configure CPPFLAGS=-I/opt/guile-2.0/include LDFLAGS=-L/opt/guile-2.0/lib 
> --prefix=/opt/lilypond-dev
> make #(fails generating documentation)

At this point I can at least run ./out/bin/lilypond test.ly. Contents
of test.ly:
===
\version "2.19.0"

\score
{
  \new Staff \relative c'
  {
c'4 d e f |
  }
}
===

The first thing I noticed is that the nested define shorthand wasn't
working in many places (even with (use-modules '(ice-9
curried-definitions))' in lily.scm). Beyond that I'm way out of my
depth. I start seeing errors Which I'm not sure how to handle:

===
Processing `test.ly'
Parsing...
/home/jay/programming/lilypond/./out/share/lilypond/current/ly/init.ly:9:2:
error: GUILE signaled an error for the expression beginning here
#
 (session-initialize
ERROR: Error while printing exception.
WARNING: (#{ g26648}#): `parser' imported from both (lily) and (#{ g23706}#)
WARNING: (#{ g26648}#): `parser' imported from both (lily) and (#{ g23706}#)
test.ly:5:24: error: wrong type for argument 2.  Expecting music, found "c"
  \new Staff \relative
   c'
...
===

Anyway, it'd be nice to know the major hold-ups and tasks from someone
who's more familiar with this area.

-Jay

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


Re: Pull in external LilyPond files into a score of movements

2014-04-26 Thread Jay Anderson
On Sat, Apr 26, 2014 at 11:54 AM, Knute Snortum  wrote:
> Short version:  I'd like to be able to pull in (import) several external ly
> files into a multi-movement piece.
>
> Long version:
>
> I'm transcribing for Mutopia and we have several pieces where people like to
> download one movement from a piece.  For instance, I'm working on
> Mussorgsky's Pictures at an Exhibition.  Many people just want the Promenade
> but I don't want make people download 10-14 files to get the whole piece.
> Yes, we could zip them, but they would still have to print a dozen files and
> there's no indication of order.
>
> What I'm wondering is if there is some way to create a LilyPond file
> containing a book with several scores, where the source of the movements is
> an external file.  "includes" won't do.  Something like this:
>
> \book {
>   \score {
> import "./ly_files/promenade-1/promenade-1.ly"
>   }
>   \score {
> import "./ly_files/gnomus/gnomus.ly"
>   }
>   ...
> }
>
> Possible?  On a wish list?  Some other way to do it?
>
> If there's no good way to do it, I will probably write a Perl preprocessor
> to do it.

Why won't includes work? This is actually how I prefer to work (rather
than variables storing music). Here's an example:

=
\version "2.18.0"

\include "defs.ily"

instrument = "Horn in F"

\include "header.ily"

\score
{
  \new Staff
  <<
{ \include "mvt1/horn.ily" }
{ \include "mvt1/outline.ily" }
  >>
}
\score
{
  \new Staff
  <<
{ \include "mvt2/horn.ily" }
{ \include "mvt2/outline.ily" }
  >>
}
\score
{
  \new Staff
  <<
{ \include "mvt3/horn.ily" }
{ \include "mvt3/outline.ily" }
  >>
}
=

I can use this file for the individual part, another for the piano
part, and anther which compiles a multiple pieces together. (assuming
a similar file structure: mvt1/horn.ily, mvt/outline.ily,
mvt1/piano_right.ily, etc.)

When typing out the score block becomes too repetitive I do something like this:

=
\version "2.18.0"

... includes ...

makeGallayScore =
#(define-void-function (parser location num) (string?)
  (let ((score
 #{
   \score
   {
 \new Staff { \include #(string-append num ".ily") }
   }
 #}))
(add-score parser score)))

makeGallay =
#(define-void-function (parser location low high) (number? number?)
  (do ((i low (+ i 1)))
  ((> i high))
(let ((n (format #f "~2,'0d" i)))
  #{ \makeGallayScore $n #})))

\makeGallay 1 40
=

This was for a book of etudes. Each etude is the raw music in files
named 01.ily through 40.ily.

-Jay

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


Re: Horizontalized scores

2014-02-07 Thread Jay Anderson
On Fri, Feb 7, 2014 at 11:24 AM, Erik Linde  wrote:
> Typically the way we have been generating the images of the sheet music that
> we use on the website, is by setting some of the layout attributes to really
> large values, for example:
>
> ragged-last = ##t
> paper-width = 2400.0\cm
> paper-height = 50.0\cm
>
> or perhaps
>
> #(set! paper-alist (cons '("my size" . (cons (* 2000 in) (* 50 in)))
> paper-alist))
> #(set-default-paper-size "my size")
>
> And then generating a pdf, which we then convert to images.
>
> This works very well when generating a simple piece, such as a piano piece,
> but whenever there are multiple instruments, and when the piece is very
> long, such as is the case for most symphonies (which happen to be the most
> popular pieces on Notezilla), the time required to typeset a file seems to
> increase exponentially with the complexity of the music.
>
> For a symphony, it could easily go from a few minutes, when using a default
> layout, such as A4 or letter, to upwards of 10 hours, when using a custom
> paper format that is extremely wide, for example a 500cm or 1000cm in width.
> Please feel free to use this link to download the example that illustrates
> this - Beethoven's 3rd Symphony Mvt. 1. If I try running "lilypond
> ScoreMvtI.ly" in this example in a default layout, it takes maybe 10-15
> minutes or so to typeset. If I uncomment row 27 and 28 (which is where I
> specify the *huge* paper size), it takes maybe 10 hours...
>
> I am wondering if someone on this mailing list knows of any work-arounds or
> tricks that I could employ here to shorten the this time? The only
> requirements for us is that, in the end, that we get one long horizontal
> score, where the vertical spacing between the staffs is identical throughout
> the piece. Whatever method we can use to get there would be great to hear
> about! Maybe one way could be to split up the score into just 3-4 rows
> instead, and then merge these in Photoshop - my concern with that method
> would be that the vertical distances between staffs would probably not be
> identical, which would mean that the horizontal score simply would not
> work...

Try this:

\paper {
  page-breaking = #ly:one-line-breaking
}

This should make the compilation much quicker. Also "\override
Score.NonMusicalPaperColumn #'line-break-permission = ##f" may be
useful.

-Jay

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


Re: \include "*.ly" for only part of a score

2014-01-02 Thread Jay Anderson
On Thu, Jan 2, 2014 at 6:55 PM, guocuozuoduo  wrote:
> I would like to know how to use the \include command for only part of a score.
> It is not described in the manual.

sectionA.ily:
\relative c' {\time 4/4 c1 |}

sectionB.ily:
\relative c' {e1 |}

score.ly:
\score {
  \new Staff {
\include "sectionA.ily"
\include "sectionB.ily"
  }
}

(I haven't tested the above, but this shows the idea.)

Alternatively you could assign the sections to variables and use those
instead of using \include directly:


sectionA.ily:
sectionA = \relative c' {\time 4/4 c1 |}

sectionB.ily:
sectionB = \relative c' {e1 |}

score.ly:
\include "sectionA.ily"
\include "sectionB.ily"

\score {
  \new Staff {
\sectionA
\sectionB
  }
}

-Jay

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


Re: 64-bit vs 32-bit LilyPond (GNU/Linux)

2013-12-30 Thread Jay Anderson
On Mon, Dec 30, 2013 at 8:55 PM, SoundsFromSound
 wrote:
> Wow, really? I never thought editing text files (.ly) would ever get close
> to 4GB of RAM. Maybe I'll try a quick benchmark here...

6.9GB for one book to be exact. Text editing has nothing to do with it
though. This is the amount of memory used to compile the project. This
specific book is a much larger than most for sure (633 pages (9x12) of
piano + horn music). I doubt most people would notice a difference
between 32-bit and 64-bit installs.

-Jay

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


Re: 64-bit vs 32-bit LilyPond (GNU/Linux)

2013-12-30 Thread Jay Anderson
On Mon, Dec 30, 2013 at 8:03 PM, SoundsFromSound
 wrote:
> I usually don't think twice about this sort of thing, I always reach for x64
> installers since all my systems here are 64bit. The only exception maybe is
> something like Python or something odd that is finicky...
>
> But, as far as LilyPond goes, is there any real-world benefit to using the
> 64bit install (on a 64bit OS) vs. the 32bit install (on 64bit OS)? Does RAM
> ever really being to be an issue with LilyPond? I've never seen resource
> spikes at all so maybe I'm just the minority here, but could someone tell me
> what the differences are between these installers?

For some of my larger projects memory usage climbs above 4GB (max
32-bit address space). So using 64-bit is very nice. I've never
benchmarked speed of 32-bit versus 64-bit though.

-Jay

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


Re: the "perfect" break-engraver (was Re: [Feature Request] \compressFullBarRests improvement(s))

2013-12-27 Thread Jay Anderson
On Fri, Dec 27, 2013 at 4:08 PM, Kieren MacMillan
 wrote:
> I think the “perfect” break-engraver would admit coding like the following 
> (pseudocode; all numbers in measures):
>
> \lineBreakAt 27
> \lineBreaksAt (12 28 34 48)
> \noLineBreaks (27-30)
> \lineBreaksForbidAt 28
> \lineBreaksAllowAt 34
> etc., and identical for \pageBreaks-
>
> These breaking-codes would be put in the \layout block of a score — cf. the 
> way David N’s engraver currently works — so that there is no need to mix this 
> presentation-layer information into the content layer.
>
> The only additional [optional] argument I can think of is a Staff (or Voice?) 
> "context target”, e.g.,
>
> \lineBreakAt 27 #”soprano"
>
> which would be necessary for polymetric music (where the measures might not 
> all end simultaneously).
>
> Thoughts?

I like the ideas (though I haven't been following the preceding
conversation). Some minor changes would be needed if a break is needed
mid-measure (something like \lineBreakAt 27 3/4). I think I'd still
prefer keeping the breaks within the score section (instead of in the
\layout). Something like:

\score <<
  \new Staff {...}
  \breakmode {
\lineBreakAfter 27
\pageBreakForbidAfter 98
etc...
  }
>>

It could even be expanded into the regular music after parsing. I'm
not sure how possible that would be, but it would isolate the changes
needed. The above would be transformed into something like:
\score <<
  ...
  {
% Assuming '\time 4/4'
s1*27 \break
s1*71 \noPageBreak
etc...
  }
>>

-Jay

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


Re: Having trouble with an old snippet--what to do?

2013-11-25 Thread Jay Anderson
On Mon, Nov 25, 2013 at 7:18 PM, ryanmichaelmcclure
 wrote:
> I'm messing with the snippet found here:
>
> http://lilypond.1069038.n5.nabble.com/rhythm-template-function-td33662.html
>
> I found the snippet originally on the LSR:
>
> http://lsr.dsi.unimi.it/LSR/Snippet?id=465
>
> Looking on the mailing list message, it was created on 2.11.45. I tried to
> update the file to 2.17.29, but it still won't work. I'm getting this error:
>
> Parsing.../tmp/frescobaldi-p52m4v/tmpN5eMTc/document.ly:41:17: In procedure
> car in expression (car p):
> /tmp/frescobaldi-p52m4v/tmpN5eMTc/document.ly:41:17: Wrong type (expecting
> pair): ()
>
> I'm still learning Scheme and am not sure what's wrong. Has anyone messed
> with this snippet lately?

I'm not surprised it doesn't work anymore. With recent improvements in
lilypond there is a different technique that you should consider:

pattern = #(define-music-function (parser location p1 p2 p3 p4 p5)
(ly:pitch? ly:pitch? ly:pitch? ly:pitch? ly:pitch?)
#{ $p1 32 $p2 ( $p3 $p4 ) $p5 8 -! #})

...

\pattern c c' e c g  % results in => c32 c'( e c) g8-!

The same can be done with one pitch instead.

-Jay

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


Re: notation rule question

2013-11-17 Thread Jay Anderson
On Sun, Nov 17, 2013 at 2:39 PM, Karol Majewski  wrote:
> I have question that is not related directly to lilypond. It refers to 
> notation rules. How to divide a long note that starts at first half-beat in 
> 4/4:
>
> r8 c8 ~ c2.
>
> or
>
> r8 c4. ~ c2
>
> ?
>
> If both are OK, then which one do you prefer? I couldn't find such rhythm in 
> hand engraved scores. Perhaps I should look at music written in 19th century 
> and later, but I simply have no time.



Divide it in the middle of the bar. 'r8 c4.~ c2' is preferred. This is
how I understand it for 4/4 time:
- Prefer to break a long note between beats 2 and 3.
- There are exceptions for extremely simple rhythms.
  * 'c1'
  * 'c4 c2.' (and 'c2. c4')
  * 'c4 c2 c4'
  * etc.

There is a lot of 19th century engravings which do not follow these
rules so don't always blindly trust old engravings. (One I see a lot
in the B&H Kling editions of the Mozart horn concerti is 'c4 c4. c8 c
c'. The dotted-quarter should really be split.)

The main goal is to ensure that the rhythm is understandable in
relation to the underlying beats involved. (See Gould 'Sustaining
notes across beats' for more information.)

-Jay

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


Re: Barlines obscuring text in score

2013-11-02 Thread Jay Anderson
On Sat, Nov 2, 2013 at 5:32 PM, ryanmichaelmcclure
 wrote:
> Gilberto, your last option looks great! I do have a quick question--for
> subito dynamics, what should be aligned to the first note of said dynamic:
> the actual dynamic or "subito"?

According to Gould the dynamic should align to the note and the
'subito' or 'sub.' (or other text) should fit around that. Also as
others have said, placing the 'subito' after is generally clearer.

-Jay

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


Re: 7-year-old question

2013-10-19 Thread Jay Anderson
On Sat, Oct 19, 2013 at 7:12 PM, Bric  wrote:
> In 2005 someone asked this -
> http://lists.gnu.org/archive/html/lilypond-user/2005-11/msg00273.html
>
> Can one generate/access a list of coordinates for each rendered note/chord
> (per staff)?

Check out ly2video (https://github.com/aspiers/ly2video/). Especially
the 'dump-spacetime-info' function in ly2video.py. It's purpose is to
dump the horizontal position for aligning to audio, but I think a
similar function could work to pull out absolute positioning in x and
y.

-Jay

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


Re: tablet

2013-07-31 Thread Jay Anderson
On Wed, Jul 31, 2013 at 1:03 PM, Jan Rosseel  wrote:
> www.scora.net is absolutely on track.
>
> It's Lilypond based, but Lilypond does not run on the tablet. One can't change
> the score on the tablet, but one can annotate or create his own personal score
> (cue notes, key, clefs, ...) It's more limited than an editor, but usable by
> people that have never heard of Lilypond. Scores have to be structured in a
> certain way to make this work.
>
> Scora allows syncing of the tablets in an orchestra through the master console
> of the conductor. Visit www.lao.be to see where and when you can first see
> this in action.

Interesting. Are you rendering with lilypond on the fly? Or are you
rendering a pdf that was previously generated by lilypond?

-Jay

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


Re: stylesheets, defaults, and other in-Pond-erables

2013-07-19 Thread Jay Anderson
On Fri, Jul 19, 2013 at 6:23 AM, Kieren MacMillan
 wrote:
>> Here's a piano-cello score i consider to be very beautiful (Chopin's sonata 
>> op. 65, published by Peters)
>> http://imslp.org/wiki/Special:ReverseLookup/70779 (6 MB pdf)
>> Having LilyPond reproduce this engraving would be a significant achievement.
>
> Can anyone confirm that the margins here are accurate with respect to the 
> original printed version (i.e., that the IMSLP scan does not trim or extend 
> any of the margins)?
> And what is the original size of the page (exactly)?

I wouldn't trust IMSLP margins, paper sizes, or scalings. This
particular piece was probably originally on 9x12 paper and has been
trimmed.

-Jay

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


Re: (OT?) Il Duca d'Alba score (Angelo casto e bel)

2013-07-11 Thread Jay Anderson
On Thu, Jul 11, 2013 at 11:06 AM, Paul Scott  wrote:
> Does anyone know of a score for Donizzeti's Il Duca d'Alba or in
> particular for "Angelo casto e bel?"  A rental source would be fine.
> I realize that that opera wasn't completed by Donizetti and has an
> interesting history.
>
> The Southern Arizona Symphony will back up a soloist for that aria in
> August and I haven't been able to find the music online.

I'd recommend asking the orchestra librarians' group:
http://launch.groups.yahoo.com/group/OrchLibInfo/

-Jay

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


Horizontal position of beats in file

2013-05-29 Thread Jay Anderson
Last year it was asked how to get the horizontal position of the bar
lines (and first beats):
http://lists.gnu.org/archive/html/lilypond-user/2012-01/msg00762.html

I'd like to get each beat position as well. My first thought was
something along these lines:


#(define (average a b)
  (/ (+ a b) 2))

#(define (create-print-x-offset tag)
  (lambda (grob)
(let* ((system (ly:grob-system grob))
   (x-extent (ly:grob-extent grob system X))
   (x (average (car x-extent) (cdr x-extent
  (display (ly:grob-properties system))
  (newline)
  (display (string-append tag ":"))
  (display x)
  (newline

music = \relative c'
{
  \repeat unfold 3 {c2 c8 c4 c8 |}
}

outline =
{
  \override Score.BarLine.after-line-breaking = #(create-print-x-offset "bar")
  \repeat unfold 3
  {
\repeat unfold 4
{
  \once \override Score.NoteColumn.after-line-breaking =
#(create-print-x-offset "note")
  s4
} |
  }
}

\score
{
  \new Staff
  <<
\music
\outline
  >>
}


For the beats that don't have a note column it doesn't work. The
example above only has notes directly on the first and third beats:
{c2 c8 c4 c8 |}. Adding in hidden notes will affect the spacing so
that won't work. My only other thought is to equally space the missing
beats between the note columns that are found, but that could be
tricky. Any suggestions? Thanks.

-Jay

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


Re: Expansion of score for different format

2013-05-10 Thread Jay Anderson
On Fri, May 10, 2013 at 8:44 PM, Carl Peterson  wrote:
> Premature sending...
>
> As I was saying, the problem with the below code is that it prints the first
> verse, but it only prints the first verse. I also simplified the code so
> that instead of just passing lyrics in the list structure, each list element
> is one or more Lyrics blocks.
>

Sorry, I'm not totally following where you're going. I added an
'allVerses' function to the example I made earlier (how I would
approach the problem). It isn't especially clean, but hopefully it
helps to get you further. The trick here is to create another function
to just return the lyrics together and insert that into the score.

(Again this is quick and dirty code which can certainly be cleaned up
-- de-duplicate stuff between the two implementations)

=
\version "2.17.16"

#(define (make-my-scores parser location up down lyrics verse)
  (if (not (null? lyrics))
(let* ((verseStr (string-append (number->string verse) "."))
   (score
  #{
\score
{
  <<
\new Staff="top" { \new Voice="soprano" { \clef treble $up } }
\new Staff="bottom" { \new Voice="tenor" { \clef bass $down } }
\new Lyrics \with { alignAboveContext = "bottom" }
\lyricsto "soprano" { \set stanza = $verseStr $(car lyrics) }
  >>
}
  #}))
  (add-score parser score)
  (make-my-scores parser location up down (cdr lyrics) (+ verse 1)

seqVerses =
#(define-void-function (parser location up down lyrics) (ly:music?
ly:music? list?)
  (make-my-scores parser location up down lyrics 1))


%

#(define (zip p q) (map list p q))

createLyrics =
#(define-music-function (parser location lyrics) (list?)
  (make-simultaneous-music
(map
  (lambda (verse-lyrics)
(let* ((num-str (number->string (car verse-lyrics)))
   (actual-lyrics (cadr verse-lyrics))
   (verse (string-append num-str ".")))
  #{ \new Lyrics \with {alignAboveContext = "bottom"}
\lyricsto "soprano" { \set stanza = $verse $actual-lyrics } #}))
  (zip (iota (length lyrics) 1) lyrics

allVerses =
#(define-void-function (parser location up down lyrics) (ly:music?
ly:music? list?)
  (let* ((score
#{
  \score
  {
<<
  \new Staff="top" { \new Voice="soprano" { \clef treble $up } }
  \new Staff="bottom" { \new Voice="tenor" { \clef bass $down } }
  \createLyrics $lyrics
>>
  }
#}))
(add-score parser score)))

soprano = \relative c' { c4 c c c | }
tenor = \relative c { c4 c c c | }
verseOne = \lyricmode { a b c d }
verseTwo = \lyricmode { e f g h }

\seqVerses \soprano \tenor #(list verseOne verseTwo)
\allVerses \soprano \tenor #(list verseOne verseTwo)
=

Then of course you can make what you originally wanted:
=
choiceVerses =
#(define-void-function (parser location all up down lyrics) (boolean?
ly:music? ly:music? list?)
  (if all
#{ \allVerses $up $down $lyrics #}
#{ \seqVerses $up $down $lyrics #}))

\choiceVerses ##f \soprano \tenor #(list verseOne verseTwo)
=

-Jay

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


Re: Expansion of score for different format

2013-05-08 Thread Jay Anderson
On Wed, May 8, 2013 at 12:27 PM, Carl Peterson  wrote:
> If something doesn't already exist, I suppose the question would be whether
> there's a way to accomplish this by Scheme?

Yes, I do something similar. This might help get you started:


\version "2.17.16"

#(define (make-my-scores parser location up down lyrics verse)
  (if (not (null? lyrics))
(let* ((verseStr (string-append (number->string verse) "."))
   (score
  #{
\score
{
  <<
\new Staff="top" { \new Voice="soprano" { \clef treble $up } }
\new Staff="bottom" { \new Voice="tenor" { \clef bass $down } }
\new Lyrics \with { alignAboveContext = "bottom" }
\lyricsto "soprano" { \set stanza = $verseStr $(car lyrics) }
  >>
}
  #}))
  (add-score parser score)
  (make-my-scores parser location up down (cdr lyrics) (+ verse 1)

seqVerses =
#(define-void-function (parser location up down lyrics) (ly:music?
ly:music? list?)
  (make-my-scores parser location up down lyrics 1))

soprano = \relative c' { c4 c c c | }
tenor = \relative c { c4 c c c | }
verseOne = \lyricmode { a b c d }
verseTwo = \lyricmode { e f g h }

\seqVerses \soprano \tenor #(list verseOne verseTwo)



I think you're better off writing two separate functions instead of a
big if/else block: one for one score with multiple verses and another,
like the above, for multiple scores each with one verse.

-Jay

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


Re: cre - - sen - - do

2013-04-29 Thread Jay Anderson
On Mon, Apr 29, 2013 at 9:20 PM, SoundsFromSound
 wrote:
> Oh, you mean like a text spanner?

Close, but I think what's being asked isn't currently possible. We can
set the left and right text with dashed line in between (cresc --
endo), but not set any intermediate text (cre -- scen -- do). I
believe this has been discussed in the past, but I couldn't find an
enhancement request filed.

-Jay

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


Force different system count for two scores in same book

2013-04-25 Thread Jay Anderson
===
\version "2.17.16"

music = \relative c' {\repeat unfold 4 c1 |}

\paper { system-count = #2 }
\score
{
  \new Staff \music
}

\paper { system-count = #1 }
\score
{
  \new Staff \music
}
===

In the above example I'd like to be able to force the first score to
have 2 systems and the second to have 1.

I managed to answer my own question: '\layout { system-count = #2 }'.
The docs only call out the paper block as the spot to put this, but it
seems to work fine here. Is this reliable and expected behavior? Might
this change in the future? Thanks.

-Jay

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


Re: Question about score count

2013-04-08 Thread Jay Anderson
On Mon, Apr 8, 2013 at 7:20 PM, Carl Peterson  wrote:
> Is there a property or counter buried somewhere in Lilypond/Scheme for a
> running count of score contexts? This is for a hymnal/psalter project where
> I want to number the songs but don't want to deal with integrating lilypond
> output into something else (like LaTeX).

You can create your own counter.

\version "2.17.15"

#(define count 0)
#(define (get-next)
  (set! count (+ 1 count))
  count)
#(define (numbered-title title)
  (string-append (number->string (get-next)) ". " title))

\paper
{
  print-all-headers = ##t
}

\score
{
  \new Staff \relative c' { c4 c c c }
  \header
  {
title = #(numbered-title "A")
  }
}

\score
{
  \new Staff \relative c' { c4 c c c }
  \header
  {
title = #(numbered-title "B")
  }
}

\score
{
  \new Staff \relative c' { c4 c c c }
  \header
  {
title = #(numbered-title "C")
  }
}


This is quick and dirty, but it might work for what you need.

Another option is to generate your scores from a function. This way
you can generate them in a loop passing in the counter. This would be
more complicated.

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


Re: Generate pdf from scheme function

2013-03-17 Thread Jay Anderson
On Sun, Mar 17, 2013 at 3:57 PM, Alexandre Araujo Moreira
 wrote:
> Is there anyway I can write something similar to simpleMusic (in usage),
> where it'll automatically generate the pdf given the notes? Later I plan to
> add other outputs (controlled by cmdline parameters), so having this kind of
> usage would be very helpful.

This may get you further:

===
\version "2.17.10"

makePDF =
#(define-void-function (parser location music pdf-filename) (ly:music? string?)
  (let ((book #{
\book
{
  \bookOutputName $pdf-filename
  \score
  {
\new Staff { $music }
  }
} #}))
(print-book-with-defaults parser book)))

\makePDF \relative c' {c4 d e f} "one"
\makePDF \relative c' {f4 e d c} "two"
===

This generates two files: 'one.pdf' and 'two.pdf'.

-Jay

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


Horn Solos Project

2013-03-16 Thread Jay Anderson
http://www.kickstarter.com/projects/1206816328/horn-solos

This is a project I've worked on for a while. I've got a pretty good
response from the horn community. (I mentioned this on the Google+
lilypond group, but I figured I'd mention it here as well).

I do plan on opening up the source after I deliver to all the backers.
As far as lilypond is concerned probably the most interesting thing
I'm doing is allowing scores to be created with this: \makePart #3
"horn" "Horn in F". This assumes a certain file/directory structure
and creates the horn part for a 3 movement piece. (So all of the
usability work with '#{...#}' that David has done for the last few
versions is extremely useful.) Other large projects do similar things
as well (orchestrallily comes to mind). I think once any lilypond
project gets big enough something like this is necessary.

Thanks.

-Jay

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


Re: How to calculate full-measure rests? Stumped. (triple meter?)

2013-03-11 Thread Jay Anderson
On Mon, Mar 11, 2013 at 10:09 PM, SoundsFromSound
 wrote:
> But, how do you get full measure rests to show up?  I seem to only get them
> to work using "R1" if the meter is 4/4, etc.
>
> But 3/4 time and other variants show incorrectly when I render/engrave.
> Please see the GIF attached.
> I am certain that I am using the incorrect syntax but I can't for the life
> of me figure out what the error is.

The common meters:
in 12/8 - R1.
in 9/8 - R4.*3
in 4/4 - R1
in 3/4 and 6/8 - R2.
in 2/4 and 4/8 - R2

Essentially with full measure rests you still need to fill the right
amount of time.

-Jay

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


Re: [bug] \acciaccatura breaks a preceding tie in MIDI

2013-02-20 Thread Jay Anderson
On Wed, Feb 20, 2013 at 7:28 AM, James Harkins  wrote:
> I'm unsure if this is a known issue, or a new one.

http://code.google.com/p/lilypond/issues/detail?id=3091

This probably won't be fixed in 2.16.

-Jay

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


Re: Slur and tie between chords

2013-02-13 Thread Jay Anderson
On Wed, Feb 13, 2013 at 1:16 AM, Janne Uusitalo
 wrote:
> I've attached two images to illustrate a problem I'm having with
> simultaneous notes, slurs and ties.
>
> The original version is what I'm hoping to get, and the lilypond
> version is what 2.14.2 offers me for
>
> %{ 24 %}2(~
> %{ 25 %})~
>
> Any ideas on how do I make the slur connect the two higher notes
> instead of the two lower ones?

http://code.google.com/p/lilypond/issues/detail?id=3031

This isn't currently possible in lilypond. You're either going to have
to manually move the slur or use some of the other workarounds
offered.

Gould recommends that in general inner slurs be avoided and the inner
ties be in opposite direction to the slur connecting chords. So you
could try that (add a '^' before your '('), but it might not look
quite right in the second voice.

-Jay

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


Re: Add tempo spanners

2013-02-12 Thread Jay Anderson
On Tue, Feb 12, 2013 at 5:43 PM, Colin Hall  wrote:
>> It would be great to have a TempoTextSpanner, for example in order to
>> handle common notation such as
>>
>>   rit. - - - - a tempo
>> or
>>   rall - - - -
>>
>> I do not see this request tracked yet.
>
> Thanks for the report, Xavier, but I think we already have this feature
> in Lilypond, don't we? See:

If I'm understanding the request correctly this functionality isn't
currently available. Text spanners live in the staff.
TempoTextSpanners would live in the score and be set like current
tempo marks (bold and above the system). I've often wanted this
feature as well.

-Jay

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


Re: Removing the line before a staff begins

2013-02-11 Thread Jay Anderson
On Mon, Feb 11, 2013 at 9:11 PM, ryanmichaelmcclure
 wrote:
> I am working on an assignment for music theory that requires a particular
> layout.

Add your code. I'm assuming this is supposed to be 4-part harmony.
There's most likely a misunderstanding about systems in lilypond. In
order to get what you're seeing you're probably doing something like:

\score
{
<<
  \new StaffGroup
  <<
  >>
  \new StaffGroup
  <<
  >>
  ...
>>
}

I think you most likely only want one staff group with well placed line breaks.

-Jay

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


Re: page footer and (on-page ...) in combination with \label

2013-01-20 Thread Jay Anderson
On Sun, Jan 20, 2013 at 1:53 PM, Marc Hohl  wrote:
> For one specific page I have to remove the footer completely.
> I set
>
> \label #'emptypage

Can the page without a footer be in a book-part of its own? That would
be too simple so I'm assuming not.

Below is adapted from some help I got a while back to move the hymn
number to the outside of the page depending if the page is even or
odd. In this case it blanks the footer when the current page is the
same as the page number for the label (you can't reuse the same label
on multiple pages).

\version "2.17.10"

#(define-markup-command (empty-with-label layout props sym markup)
(symbol? markup?)
  (let* ((stencil (interpret-markup layout props markup))
 (x-ext (ly:stencil-extent stencil X))
 (y-ext (ly:stencil-extent stencil Y)))
(ly:make-stencil
 `(delay-stencil-evaluation
   ,(delay (ly:stencil-expr
 (let* ((curr-page (chain-assoc-get 'page:page-number props -1))
(table (ly:output-def-lookup layout 'label-page-table))
(page-number (if (list? table)
 (assoc-get sym table)
 #f)))
   (if (= page-number curr-page)
 empty-stencil
 (interpret-markup layout props markup))
 x-ext
 y-ext)))

\paper
{
  oddFooterMarkup = \markup {\empty-with-label #'emptypage \fill-line
{"footer"} }
  evenFooterMarkup = #oddFooterMarkup
}

\bookpart
{
  \markup "A"
  \pageBreak

  \markup "B"
  \pageBreak

  \label #'emptypage
  \markup "C"
  \pageBreak

  \markup "D"
  \pageBreak
}

-Jay

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


Re: prall with accidental

2013-01-19 Thread Jay Anderson
On Sat, Jan 19, 2013 at 8:21 AM, Werner LEMBERG  wrote:
> I plead for adding this and related macros to LilyPond.

I have a bunch of turns defined like this:

turnXS =
#(make-music
   'TextScriptEvent
   'tweaks '((avoid-slur . inside) (outside-staff-priority . #f))
   'direction 1
   'text #{ \markup { \override #'(baseline-skip . 1) \center-column {
\musicglyph #"scripts.turn" {\tiny \smaller \sharp} } } #})

X - nothing
S - sharp
F - flat
N - natural

The first letter says what's above the turn. The second is below. Then
I have similar turns defined. (Though I should make the accidentals
smaller like you have in the pralls.)

I agree that adding modified pralls, turns and the like to lilypond
proper would be nice (whatever the naming scheme). It's very common
notation.

-Jay

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


Re: multi-instrument parts

2013-01-16 Thread Jay Anderson
On Tue, Jan 15, 2013 at 10:43 PM, Kieren MacMillan
 wrote:
>> There's this: http://lsr.dsi.unimi.it/LSR/Item?id=697 which is useful
>> when the transposition changes mid-piece (like for clarinets, horns,
>> and trumpets). Also you don't have to think about the 'from' pitch.
>> You only need the 'to' pitch.
>
> That doesn't seem to handle key signatures very well — is there a workaround?

It was a simple change to make it take into account the key
signatures. I updated it for the latest version as well (functions
should take in pitches directly). I'm used to horn music devoid of key
signatures :).

\version "2.17.10"

#(define (adjust-note mus key currkey)
 (cond ((or
  (eq? (ly:music-property mus 'name) 'NoteEvent)
  (eq? (ly:music-property mus 'name) 'KeyChangeEvent))
 (ly:music-transpose mus (car currkey)))
   ((and
  (eq? (ly:music-property mus 'name) 'PropertySet)
  (eq? (ly:music-property mus 'symbol) 'instrumentTransposition))
 (set-car! currkey (ly:pitch-negate (ly:music-property mus 'value)))
 (ly:music-set-property! mus 'value (ly:make-pitch 0 0 0))
 mus)
   (else mus)))

normalizeTransposition =
#(define-music-function (parser location key music) (ly:pitch? ly:music?)
 (ly:music-transpose
   (let ((currkey (list (ly:make-pitch 0 0 0
 (music-map (lambda (x) (adjust-note x key currkey)) music))
   (ly:pitch-negate key)))

music = \relative c' {
 \time 4/4
 \transposition f
 \key c \major
 c e g c |
 \transposition ees
 \key c \major
 c, e g c |
 \transposition g
 \key c \major
 c, e g c |
}

\score {
 <<
   \new Staff {
 \music
   }
   \new Staff {
 \normalizeTransposition c' \music
   }
 >>
 \layout {}
 \midi {}
}

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


Re: multi-instrument parts

2013-01-15 Thread Jay Anderson
On Tue, Jan 15, 2013 at 10:21 PM, Keith OHara  wrote:
> On Tue, 15 Jan 2013 19:41:00 -0800, Kieren MacMillan
>  wrote:
>> Boo. I really wish Lily would Do The Right Thing™ with regard to
>> transposing parts. I want [...]
>>  perhaps I'll put together an official feature request…

There's this: http://lsr.dsi.unimi.it/LSR/Item?id=697 which is useful
when the transposition changes mid-piece (like for clarinets, horns,
and trumpets). Also you don't have to think about the 'from' pitch.
You only need the 'to' pitch.

-Jay

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


Re: Version Control and Public Repository

2012-11-09 Thread Jay Anderson
On Nov 9, 2012 4:22 PM, "Lucas Gonze"  wrote:
> I wonder whether there are other Lilypond users who share their scores
> openly on Github. Am I the first? That seems unlikely.

There are quite a few if you look around.

-Jay

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


Re: Decrescendo on last note

2012-10-03 Thread Jay Anderson
On Wed, Oct 3, 2012 at 5:25 AM, Carlo Stemberger
 wrote:
> Il 03/10/2012 06:37, Keith OHara ha scritto:
>>
>> I guess there is good reason the manual shows the method with
>> simultaneous streams of music; it is more generally useful.
>>
>> \new Voice<<  b1 {s2.-\tweak #'minimum-length #5 \>   s4\pp}>>
>
>
> Yes, but this looks as a hack. I think we should have a very simple syntax
> for this kind of dynamics, because they are very frequent.

I don't consider this a hack. Using parallel spacer rests is a very
common construct. If it seems ugly then you can always move it to a
function to hide it away.


\version "2.16.0"

endHairpin =
#(define-music-function (parser location mus) (ly:music?)
  #{
<<
  { $mus }
  {
<>-\tweak #'minimum-length #5 \>
#(skip-of-length #{\scaleDurations #'(9 . 10) $mus #})
<>\pp
  }
>>
  #})

\score
{
  \new Staff
  {
c'1 \endHairpin c'1
  }
}


This function can be made more general (pass in dynamic, hairpin
length, etc.). However, it does show that you can simplify and hide
these constructs when desired. The syntax is very adequate for this.

-Jay

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


Fwd: piano music with lilypond

2012-09-25 Thread Jay Anderson
On Tue, Sep 25, 2012 at 4:25 AM,
 wrote:
> Thanks for your example for “tieing” from one Voice to another. I think this
> is a very good example for what I’m struggling with… because, you are
> tweaking here for the entire score ( putting the Tie-engraver from voice to
> the Staff context). I’d have a better feeling if it would be possible to do
> things like that on demand, or better at the very specific place in the
> score where it is needed ;-).
...
> -   Ties from one voice to another
> \layout {
>   \context {
> \Voice
> \remove "Tie_engraver"
>}
>\context {
>  \Staff
>  \consists "Tie_engraver"
>}
> }

In most circumstances you can switch the voice number between the tie
in a single voice:
<<
  {
\voiceOne
c4~ \voiceTwo c
  }
  \new Voice
  {
\voiceTwo
a4 \voiceOne e'
  }
>> \oneVoice

When this doesn't work I usually fall back to ties between hidden notes.

-Jay

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


Re: how to know the current page number from inside a regular markup (not score/book header)

2012-09-10 Thread Jay Anderson
On Sun, Sep 9, 2012 at 11:40 PM, Wilbert Berendsen  wrote:
> I use regular markups to display titles for hymns in a hymn book. The
> hymn number should align to the right on right pages but to the left on
> left pages.
>
> A hymn can start anywhere on a page.
>
> It seems I can't access the page:page-number-string property inside a
> markup function if it is not called in the context of a page header or
> footer.
>
> Is there any possibility for a regular (toplevel) \markup { } to know
> the page it is drawn on? (Or, at least, whether it is a right or left
> page?)

I was playing with this a while back to get the hymn numbers on the
outside of the page. David Nalesnik had a good idea (See here for more
info: http://lists.gnu.org/archive/html/lilypond-user/2012-03/msg00024.html).
Here was my final markup function:

#(define-markup-command (title-number-markup layout props) ()
  (let* ((title (chain-assoc-get 'header:title props))
 (label (string->symbol (chain-assoc-get 'header:number props)))
 (number-markup #{ \markup { \rounded-box \bold \fontsize #2 {
\fromproperty #'header:number } } #} )
 (title-markup #{ \markup {
\override #'(offset . 3)
\override #'(thickness . 3)
\bold \underline \fontsize #2
{\fromproperty #'header:title }
  } #} )
 (even-markup #{ \markup { \fill-line { $number-markup
$title-markup } } #})
 (odd-markup #{ \markup { \fill-line { $title-markup
$number-markup } } #})
 (stencil (interpret-markup layout props odd-markup))
 (x-ext (ly:stencil-extent stencil X))
 (y-ext (ly:stencil-extent stencil Y)))
(ly:make-stencil
 `(delay-stencil-evaluation
   ,(delay (ly:stencil-expr
 (let* ((table (ly:output-def-lookup layout 'label-page-table))
(page-number (if (list? table)
 (assoc-get label table)
 #f)))
   (interpret-markup layout props
 (if (and page-number (even? page-number))
 even-markup
 odd-markup))
 x-ext
 y-ext)))

Then right before the score something like:
{ \label #(string->symbol (number->string hymn-num)) }

-Jay Anderson

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


Re: Attaca markup

2012-08-28 Thread Jay Anderson
On Tue, Aug 28, 2012 at 5:50 PM, Daniel E. Moctezuma
 wrote:
> Perhaps these are more music theory questions than a LilyPond related.
> I was wondering which would be the correct way to place an "attaca" markup
> text?
> For example one could put:
>   c1_"attaca" \bar "|."

Gould says to put it at the end below the staff. Hers are lowercase,
italic and not bold.

> That would force to have markup to a specific note (or chord). Is there any
> equivalent as \new Dynamic indication to specify text like "attaca"?

This is how I've defined it in the past:

attacca =
{
  \once \override Score.RehearsalMark #'break-visibility =
#begin-of-line-invisible
  \once \override Score.RehearsalMark #'direction = #DOWN
  \once \override Score.RehearsalMark #'font-size = 1
  \once \override Score.RehearsalMark #'self-alignment-X = #right
  \mark \markup{\bold Attacca}
}

> Also, after an "attaca" indication should the bar numbers reset or continue
> counting?

I think that depends if the attacca is between movements or not.Bar
numbering usually restarts for a new movement.

-Jay

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


Re: Append comma to markup

2012-07-21 Thread Jay Anderson
On Sat, Jul 21, 2012 at 12:39 PM, Thomas Morley
 wrote:
> title = \markup{ "Piece in " \concat { E \hspace #0.25 \flat } }
>
> \markup { \fill-line { \huge \larger \bold \line { \concat { \title
> "," } opus} } }
>
> (quick and dirty)

I guess that's true and I'll probably have to go down this route. Is
there a way to do it without modifying the title?

-Jay

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


Append comma to markup

2012-07-21 Thread Jay Anderson
\version "2.15.41"

title = \markup{Piece in \concat { E \hspace #0.25 \flat } }

\markup { \fill-line { \huge \larger \bold \line { \concat { \title
"," } opus} } }
\markup { \fill-line { \huge \larger \bold \line { \title "," opus} } }

Essentially I want to append a comma to an existing markup. In the
above two examples the first smushes all the words in the title
together with the comma. In the second there is extra space between
the title and the comma. Any suggestions on how to do this? Thanks.

-Jay

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


Re: Fold out repeats with alternatives

2012-07-21 Thread Jay Anderson
On Sat, Jul 21, 2012 at 7:17 AM, Johan Vromans  wrote:
> However, I'd like to avoid the use of variables since that visually
> interrupts the flow of notes.

I don't think there's any way to avoid interrupting the flow. However
you can avoid variables and keep the music inline with what David
wrote, but it's not the cleanest since you need another inner block:
==
\version "2.15.41"

\score
{
  \new Staff \relative c'
  {
c1 |
\pushToTag #'here \relative c' { b1 }
{
  d1
  \tag #'here {}
  e1
  \tag #'here {}
  f1
}
g1
  }
}
==

One thing I've thought about is temporary storage of inline music:

==
#(define music-storage '())

storeMusic =
#(define-music-function (parser location sym mus) (symbol? ly:music?)
  (set! music-storage
(assq-set! music-storage sym mus))
  mus)

fetchMusic =
#(define-music-function (parser location sym) (symbol?)
  (assq-ref music-storage sym))

\score
{
  \new Staff \relative c'
  {
c1 |
d |
\storeMusic #'A \relative c' { b }
e
\fetchMusic #'A
f
g
  }
}
==

Some care would be needed since music-store is never cleaned out
(memory leak), but I think an approach like this could be useful. Also
the inner relative would be required though I'm sure there are ways to
fix that.

-Jay

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


Re: Tempo text spacing

2012-07-08 Thread Jay Anderson
On Sun, Jul 8, 2012 at 2:21 PM, Hilary Snaden  wrote:
> Is there a way of making note spacing accommodate \tempo text? \textLengthOn
> has no effect.
>
> I'm engraving a piece with a great many tempo changes, and while their texts
> aren't colliding, they're overlapping in a way which is less than clear.

tempoTextLengthOn =
{
  \override Score.MetronomeMark #'extra-spacing-width = #'(0 . 0)
  \override Score.MetronomeMark #'extra-spacing-height = #'(-inf.0 . +inf.0)
}

tempoTextLengthOff =
{
  \override Score.MetronomeMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
  \override Score.MetronomeMark #'extra-spacing-height = #'(0 . 0)
}

-Jay

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


Re: transcribe notes

2012-06-12 Thread Jay Anderson
On Tue, Jun 12, 2012 at 7:42 AM, MING TSANG  wrote:
> I am transcribe a music score to lilypond and came across a note with
> vertical line on both side.  What is this called and how to code in lily to
> generate it?

Most likely a breve: { c\breve }

-Jay

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


Re: Barcheck errors with Timing.measurePosition and multiple voices

2012-05-24 Thread Jay Anderson
On Thu, May 24, 2012 at 7:26 PM, Nick Payne  wrote:
> With more than one voice, using Timing.measurePosition for partial bars
> results in spurious barcheck errors and also causes problems with automatic
> beaming:
>
...
>            c c c c c c |
>            \set Timing.measurePosition = #(ly:make-moment -3 8)
>            c4. |

You don't need to change the length of a measure where repeat and the
end of the piece is involved. So in your second example just taking
all of the measureLength overrides out make it work as expected. There
are valid times to adjust the measure length, but it isn't needed in
this example.

Secondly, from what I understand of setting measure position the error
makes sense. By setting it at the end of the measure you're saying
that the measure still has some more time left, but you also have a
bar check at the same time. This may also explain the beaming issues.
You can cheat this by moving the \set later in the measure:
  s8 \set Timing.measurePosition = #(ly:make-moment -2 8) s4 (see below)

Lastly, you should separate out the \partial, repeats, and other
top-level directives into parallel music (and move it to a variable).
That way you avoid duplicating them in each voice.

\score
{
  \new Staff \relative c''
  {
\time 3/4
<<
  {
\partial 4.
s4. |
s2.*2 |
s8 \set Timing.measurePosition = #(ly:make-moment -2 8) s4
  }
  <<
{
  c4. |
  c8 c c c c c |
  c c c c c c |
  c4. |
}
\\
{
  c,4. |
  c8 c c c c c |
  c c c c c c |
  c4. |
}
  >>
>>
  }
}

-Jay

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


Re: Four Bars per Line/System, again :)

2012-05-18 Thread Jay Anderson
Slightly better would be to get rid of the bars-per-line define so
it's self-contained:

#(define (line-break-every-nth-engraver bars-per-line)
  (lambda (context)
 (make-engraver
   (acknowledgers ((paper-column-interface engraver grob source-engraver)
 (let ((current-bar (ly:context-property context 'currentBarNumber)))
   (if (= (remainder current-bar bars-per-line) 1)
   (if (eq? #t (ly:grob-property grob 'non-musical))
   (set! (ly:grob-property grob 'line-break-permission) 'force)
   (set! (ly:grob-property grob 'line-break-permission) 
'())

...

\layout {
  \context {
\Score
%% the following line necessary if you want to put more
%% measures to a line than Lily wants to allow
\override NonMusicalPaperColumn #'line-break-permission = ##f
\consists #(line-break-every-nth-engraver 4)
  }
}

-Jay

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


Re: PDF with no page breaks

2012-05-17 Thread Jay Anderson
On Thu, May 17, 2012 at 7:06 AM, Nils  wrote:
> What happens if you picked a width too short or too wide? Especially what 
> happens if it is too wide?

I don't remember right now. I believe it left extra space on the right
when it was too wide. If it's too short I imagine things would start
getting compressed. Try it out.

This was my paper block:

\paper
{
  paper-width = 100\in
  paper-height = 4\in
  bookTitleMarkup = ##f
  oddHeaderMarkup = ##f
  evenHeaderMarkup = ##f
  tagline = ##f
  copyright = ##f
  ragged-right = ##t
}

There's currently a bug in the line breaker which make it take a long
time when setting everything on one line so you may need to do this in
your score:

\override Score.NonMusicalPaperColumn #'line-break-permission = ##f

(see http://code.google.com/p/lilypond/issues/detail?id=2264)

-Jay

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


Re: Page breaking question

2012-05-16 Thread Jay Anderson
On Wed, May 16, 2012 at 2:42 PM, wjm  wrote:
> I had the impression that you were starting out on a project.
>
> You have over 300 hymns in separate Lilypond files already?
> If that were so then it might be a time to use a document processor like
> scribus, or something similar. Otherwise, there probably / hopefully is
> someone on the list who might be able to help with combining existing LP
> files.

I have them combined into one output pdf so that not an issue. I'm
just looking for a way to improve the page breaking situation
automatically. I'm thinking I may need to look at writing a custom
page break algorithm or modifying the page turn breaking algorithm to
do what I need.

-Jay

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


Re: PDF with no page breaks

2012-05-16 Thread Jay Anderson
On Wed, May 16, 2012 at 2:31 PM, Nils  wrote:
> Hello,
>
> I want a PDF with no pagebreaks and no linebreaks. The result would be
> one single, big page. Naturally in landscape format.
>
> Can this be done automatically, without caculating the page size by
> hand?

I'd be interested in this. I've always just picked a large width and
turned on ragged right.

-Jay

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


Re: Page breaking question

2012-05-16 Thread Jay Anderson
On Wed, May 16, 2012 at 2:01 AM, wjm  wrote:
> Taking on board your last statement "I'd like each score to be on a page of
> its own." Try
> \score { \staves }\pageTurn
> \score { \staves }\pageTurn
> \score { \staves }
> and remove page-breaking = #ly:page-turn-breaking from the paper block.

Right. I'm wondering if there's a way for this to automatically
happen. There are 300+ hymns and if I decide to change things I'd
prefer to not redo the whole page break situation manually.

-Jay

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


Page breaking question

2012-05-15 Thread Jay Anderson
I'm setting a group of hymns and I'm using the page turn breaker.
Often two hymns are set on facing pages with the second hymn being
broken over the page. If the second would fit on a page by itself I'd
prefer it to not be broken up and just leave some empty space at the
bottom of each page. Is this possible with any of the current breaking
algorithms? Below is an example of what I'd like to accomplish. I'd
like each score to be on a page of its own.

-Jay


\version "2.15.35"

\paper
{
  page-breaking = #ly:page-turn-breaking
  paper-height = 9\in
  paper-width = 6\in
  ragged-bottom = ##t
  ragged-last-bottom = ##t
}

\header
{
  tagline = ##f
}

music = { \repeat unfold 38 c'1 \bar "|." }
staves = \new StaffGroup
<<
  \new Staff \music
  \new Staff \music
>>

\score { \staves }
\score { \staves }
\score { \staves }

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


Re: Notation of french horn

2012-04-27 Thread Jay Anderson
On Fri, Apr 27, 2012 at 12:31 PM, Josiah Boothby  wrote:
>> When we switch over to valves, we no longer match the transposition of
>> the instrument to the key of the music, so it's only natural for other
>> key signatures to appear. To continue the tradition of valveless horns,
>> one would rather have to consider every valve press to be a change of
>> crooks that alters the transposition of the instrument, and then write
>> for this transposition until it's time for the next valve press.
>
> That would be hilarious. I would pay you twenty-five cents to arrange
> the horn parts to, say, Tristan und Isolde so that each new fingering
> is notated as a crook change. I'd pay fifty cents if it was actually
> legible.

Wagner sometimes got close to this. Look at the first horn part to
Lohengrin. Especially the beginning of act 3:
http://imslp.org/wiki/Lohengrin,_WWV_75_(Wagner,_Richard). It's silly.

-Jay

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


Re: \makeOctaves broken?

2012-04-18 Thread Jay Anderson
On Wed, Apr 18, 2012 at 4:44 PM, Urs Liska  wrote:
> I was quite happy to find the function \makeOctaves in the LSR.
>
> But now it seems to be broken - there is no error message, but the function
> doesn't do anything (2.15.36).
> As I don't know _anything_ about Scheme I can't do more than ask if anybody
> has an idea what has changed with LilyPond so that this function is now
> broken?

David Kastrup did a quick fix a few months
back:http://lists.gnu.org/archive/html/lilypond-user/2012-03/msg00114.html

I just tried it and it had a few problems:
- it didn't work within a relative section. It only worked within
relative sections before.
- Slurs and dynamics attached to single notes are lost during the
conversion to chords.

Below fixes the relative problem, but I haven't spent enough time on
it to figure out the second problem. That will take a little bit more
time to understand the internal structure changes which I don't have
at the moment. Perhaps you can take a look and make it work.

-Jay

\version "2.15.35"

#(define (with-octave-up m octave)
  (let* ((old-pitch (ly:music-property m 'pitch))
 (new-note (ly:music-deep-copy m))
 (new-pitch (ly:make-pitch
  (- octave 1)
  (ly:pitch-notename old-pitch)
  (ly:pitch-alteration old-pitch
(set! (ly:music-property new-note 'pitch) new-pitch)
(list m new-note)))

#(define (octavize music t)
  (map-some-music
(lambda (m)
  (cond ((music-is-of-type? m 'event-chord)
 (set!
   (ly:music-property m 'elements)
   (append-map!
 (lambda (n)
   (if (music-is-of-type? n 'note-event)
 (with-octave-up n t)
 (list n)))
 (ly:music-property m 'elements)))
 m)
((music-is-of-type? m 'note-event)
 (make-event-chord (with-octave-up m t)))
(else #f)))
music))

makeOctaves = #(define-music-function (parser location arg mus)
(integer? ly:music?)
 (octavize mus arg))

\relative c'
{
  \time 3/8
  \key gis \minor
  \makeOctaves #1  { dis8(\f e dis')~ dis8.( cis16 b8 }
  \makeOctaves #-1 { ais' gis dis) cis( dis )\p }
}

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


Re: New LilyPond scores -- video editing software

2012-04-06 Thread Jay Anderson
On Fri, Apr 6, 2012 at 8:58 AM, PMA  wrote:
> I'm planning similar YouTube entries, i.e., music
> performances sync'd with their score-page turns.
>
> But this will be a first for me, and I see a hefty
> bunch of (Linux) softwares for video editing.
>
> If any of you has a favorite among those options
> (or among how-to docs), I'd appreciate hearing.

I've done some similar videos which set the score in one continuous
horizontal line:
http://www.youtube.com/watch?v=Rf4YZCjymos
http://www.youtube.com/watch?v=OnoBD_QSskE

I haven't touched it in a couple months though. It was completely
automated after entering beats into the score and audio. If you're
interested I can try cleaning it up a bit. (I'm out for the weekend
though so I won't be able to respond for a few days). I'd be
interested to see how mike's scores would look in this format.

-Jay

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


  1   2   3   >