Re: Stepping down and moving on

2016-11-10 Thread Janek Warchoł
David,

thank you for all your work and good luck with the new job! Can you share
the name of the company and what you will be working on?

All the best,
Janek

2016-11-09 9:09 GMT-08:00 David Kastrup :

>
> Hi folks and team,
>
> while I haven't really occupied an official function in LilyPond
> development, it's hard to deny that I have effectively functioned as
> acting chief architect and vetter (with a rather mottled performance).
>
> Partly in connection with a drop of my productivity particularly this
> year, the amount of financial support for my work from members of the
> LilyPond community went down from overall survivable to disastrous.  Of
> course this is bitter for those of you that did contribute in
> significant amounts to my subsistence but I have to be moving on.
>
> I have accepted a full-time development (and team management) position
> with another company.  Due to their project and team expansion plans,
> I will be starting already in December.
>
> This employment is in another city.  I'll be travelling back and forth
> weekly for the foreseeable future.  While I might be working on some
> LilyPond side projects interesting to me occasionally, I will not be
> able to do any serious amound of coordination or other activity
> involving me with LilyPond's community.
>
> As my communication style has proven to be a somewhat mixed blessing for
> the purpose of attracting long-term developers, I expect that this may
> help in the long run for finding a different balance of areas LilyPond
> is getting worked on.
>
> During his tenure as LilyPond leader, Graham has demonstrated that even
> without a central technical lead there is a lot of potential to focus
> the resources of people willing to work on and expand LilyPond and we
> have been continuing to reap the results of his talent for organizing
> people into useful teams even though I have not really figured out how
> to fill gaps in the various teams and tools managing LilyPond's
> infrastructure to offset the "natural" amounts of fluctuation.
>
> I'll try seeing through the release of 2.20 in the little time remaining
> to me both before and after starting my job.  My main worry is the
> current comparative amount of instability with regard to font handling,
> and my main bad taste is that 2.20.1 will not be able to support
> Guile 2: there is no way that anything deserving the label of "stable"
> and including Guile 2 will come about in the rest of my tenure.
>
> There are also several half-completed features that are a nuisance.
> I do not expect to be able to to a significant amount of work on them in
> the foreseeable future.
>
> Once consequence, of course, is that my requirement for funding is over.
> I am greatly thankful to the people who have enabled me to keep working
> on LilyPond as long as I did, but what remains in my bank account, in
> spite of being quite less than what I started with when working on
> LilyPond, is sufficient to tide me over the time to my first paycheck.
>
> So I would ask you to cancel any regular bank payments you might still
> have in place as of December: I don't see that I will have a reasonable
> chance at returning a tangible value for them.
>
> Thanks for making me stay in the pond as long as I did!
>
> --
> David Kastrup
>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Compound Slurs

2016-09-22 Thread Janek Warchoł
WOW! Kudos, Urs!

Janek :-)

2016-09-22 12:35 GMT+02:00 Urs Liska <u...@openlilylib.org>:

> Hi all,
>
> here is another example document for \compoundSlur. With the additionally
> implemented annotation features
>
>- Grid for finding values for the inflection points
>- Control points and handles for judging the angles
>- Dashed handle extensions for judging the length of the handles
>
> These tools are shown in the first line. With them it is shockingly simple
> to tweak that slur to one's liking, even without any graphical tweaking
> assistance yet.
>
> The other lines show what happens when one of the ending points is
> shifted: the overall shape of the slur is more or less intact. That means
> when the horizontal spacing changes (through changed content or changed
> line breaks) chances are that the slur has to be adjusted only minimally,
> it doesn't mess up completely. This is due to the use of polar coordinates
> that have first been realized by Janek Warchoł in his \shapeII functions
> but that can now be done *much* easier thanks to new functions ly:angle,
> ly:length and ly:directed (thanks again for the pointer, David).
>
> What is left to be done is support for broken slurs and (possibly) support
> for spline shapes that keep full width thorughout the inflections.
>
> Have fun (I had)
>
> Urs
>
> PS: If you want to play around with it the current code is still available
> on the compound-slur branch of openlilylib/snippets.
>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Sibelius 8

2015-06-24 Thread Janek Warchoł
2015-06-24 10:54 GMT-07:00 Michael Rivers michaeljriv...@gmail.com:

 Avid firing the Sibelius development team is what sent me scouring the
 internet in a panic to find a replacement, and to me finding Lilypond. I
 can't thank Avid enough.


Thanks, that's very nice to hear!
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Git + LilyPond

2015-06-06 Thread Janek Warchoł
2015-06-06 5:52 GMT-07:00 Johan Vromans jvrom...@squirrel.nl:

 On Sat, 06 Jun 2015 10:12:01 +0200
 Peter Bjuhr peterbj...@gmail.com wrote:

  How can I do this?

 See e.g.

 http://blog.karssen.org/2013/06/06/importing-a-git-repo-into-another-one-keeping-all-history/
 and several other discussions on the internets.


This approach isn't very good because it includes an artificial commit that
moves all stuff to some directory.

You should rather use a subtree merge:
https://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging which allows to
port commits between big repo and any remaining subrepos.

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


Re: a proper whiteout function

2015-05-19 Thread Janek Warchoł
Hi Paul,

thanks a lot for doing this!  The result is quite impressive, i didn't
expect this approach to produce so nice whiteouts :)
I have just a couple cosmetic suggestions:
- I think offset should be renamed to padding.  Throughout LilyPond,
offsets are used to measure distances and position, while padding is used
for ensuring there's enough whitespace around an object.
- I think the default value for angle-increments should be 8, or at most
12.  Yes, with smaller value the whiteouts will be less regular, but this
will be visible only with very high magnification, while the improvement in
performance/pdf size may be noticeable.

best,
Janek


2015-05-19 20:41 GMT-07:00 Paul Morris p...@paulwmorris.com:

 Hi Carl, Wilbert, David N, Kieren, Abraham,

 Thanks for all the feedback and suggestions.  I’m attaching a new revision.

 - Original spacing is maintained.  Thanks David and Carl for the tips on
 how to do this.

 - Optional parameters, with fallback defaults, for offset, color,
 angle-increments, radial-increments.  I went with Carl’s suggestions, but
 made them optional.  The stencil argument now comes first.

 - Prevents zero or negative angle- and radial- increments that would cause
 an infinite loop.

 - First pass at a doc string based on Carl’s descriptions.


 Let me know what you think and then I’ll go ahead and submit a patch for
 review.  BTW, what’s a good default for offset?

 Cheers,
 -Paul


 ___
 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


any LilyPonders who'd like to meet in California?

2015-05-02 Thread Janek Warchoł
Hello,

I'll be in San Francisco area for the next three weeks - anyone would
like to meet?  It would be great :)

best,
Janek

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


Re: Is GridLY the future?

2015-05-02 Thread Janek Warchoł
Hi,

2015-04-28 7:49 GMT+02:00 Werner LEMBERG w...@gnu.org:

 Actually I'm quite convinced that this situation has a notable
 impact on the overall development activiyt.

 I don't think so.  Have you ever observed the development of Emacs or
 the Linux kernel, for example by reading the `emacs-devel' list?  The
 rules there are *much* stricter than lilypond's one w.r.t. coding
 style, overall structure, etc., and in spite of this there is *a lot*
 of development going on.

IMO it doesn't make sense to compare LilyPond to Linux kernel, because:
- people interested in contributing to kernel are experienced software
developers.  It makes sense to demand good coding style etc. from
seasoned pros, and tell them to go away if they cannot manage to write
well-structured code by themselves.  OTOH, LilyPond contributors are
often amateurs who need significant tutoring before their code is
well-written (that's not a problem at all, as they are all willing to
learn - but the community must not scare them away).
- there are so many people interested in working on kernel that even
if Linus offends 3/4 of them he'll still have enough left.
- actually a lot of kernel devs are employed by big companies to work
on kernel.  It's their job to cope with kernel community, however it
looks like.

 I agree with Urs - in my opinion LilyPond is not developer-friendly
 enough.  Actually it's one of the reasons why I was away for so long
 - the friction in the community caused me to loose some motivation
 to work on LilyPond.  And I'm not the only one.

 Indeed, this is unfortunate.  Ideas to improve the overall situation
 are highly welcome – IIRC, Graham made a lot of good suggestions how
 to lead contributors.  However, what we need is more developers that
 are *really* interested in developing lilypond!  People who are scared
 away by a few harsh but factual comments don't count IMHO.  Of course,
 ad-hominem attacks are definitely a no-go, but everything else has to
 be seen in the light of improving lilypond.

The behaviour that discouraged me from working on LilyPond for some
time was not obviously unacceptable (i.e. it wasn't some ad hominem
attack, nor anything else unanimously condemned by others).  Rather,
it was the general attitude of some people who sometimes seem to
oppose changes only because they personally don't like them (or think
they're not important), without even suggesting reasonable
alternatives.

best,
Janek

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


Re: Suggest a condensed old style or transitional font for lyrics?

2015-05-02 Thread Janek Warchoł
2015-04-30 17:51 GMT+02:00 Abraham Lee tisimst.lilyp...@gmail.com:
 I've got a handful of others (perfect for this purpose and just beautiful in
 general) that I'd be willing to recreate from some nice scanned samples if
 anyone was willing to sponsor the effort.

How much sponsoring would you need?  I'm afraid I may not be able to
afford it at the moment, but I'd be really interested in seeing this
happen.

Janek

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


Re: Font question.

2015-05-02 Thread Janek Warchoł
Hi,

2015-05-03 2:13 GMT+02:00 Hwaen Ch'uqi hwaench...@gmail.com:
 Greetings All,

 I realize that this may be an obvious question, but could anyone tell
 me what is the default font used for text in LilyPond? What is the
 nearest Microsoft equivalent?

it's New Century Schoolbook.  I don't know what M$oft equivalent would
be, but i expect you should be able to download it freely and install.

best,
Janek

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


getting involved with LilyPond (was: Do we really offer the future?)

2015-04-27 Thread Janek Warchoł
Hi Kevin,

2015-04-24 6:49 GMT+02:00 Kevin Tough ke...@toughlife.org:
 On Thu, 2015-04-23 at 13:06 -0500, David Nalesnik wrote:
 (Please take this as a plea for more help with the project!  It is not
 intended to downplay the efforts by the contributors to this thread.)

 Hi David and others,

 as a old hobby I programmed with VS. I use Linux and through Fedora I
 found Lilypond. Although at the moment I have no time for programming I
 will hope to change things in the future. As a prospective future
 contributor to code for Lilypond is it easy enough to start with QT4
 using their free open source licensing model or what direction would you
 suggest. I really like Vim but am not anywhere near a power user yet.

In that case I definitely recommend you to use an IDE like QtCreator
(I have used it myself for LilyPond work), it will make your life much
easier.

Anyway, it would be great to see you contributing!  I've just returned
to LilyPond after a long break and I'm interested in helping other
people getting involved.  If you'd like some general help/guidance,
let me know and I'll do what I can.

best,
Janek

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


Re: Is GridLY the future? (Was: Do we really offer the future?)

2015-04-27 Thread Janek Warchoł
2015-04-23 12:37 GMT+02:00 Urs Liska u...@openlilylib.org:

 Am 22.04.2015 um 22:58 schrieb Thomas Morley:
 I don't think it's a problem to get new functionality into LilyPond,
 _if_  it's coded properly.
 Sometimes people are scared by a maybe too rough tone, though.

 [...]

 It *is* a problem, and not only about code quality. More than once I
 abandoned a patch before the quality of the code was even considered but
 because of fruitless discussions about use cases, when for example using
 LilyPond to copy from existing sheet music is labelled a private use-case
 of a single developer.
 So actually I'm not too motivated providing patches for LilyPond when I can
 also implement what I need in openLilyLib. I think this is still better for
 LilyPond than if I' had completely quit.

 Actually I'm quite convinced that this situation has a notable impact on the
 overall development activiyt.

I agree with Urs - in my opinion LilyPond is not developer-friendly
enough.  Actually it's one of the reasons why I was away for so long -
the friction in the community caused me to loose some motivation to
work on LilyPond.  And I'm not the only one.

best,
Janek

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


Re: Is GridLY the future? (Was: Do we really offer the future?)

2015-04-27 Thread Janek Warchoł
2015-04-28 7:27 GMT+02:00 Janek Warchoł janek.lilyp...@gmail.com:
 I agree with Urs - in my opinion LilyPond is not developer-friendly
 enough.  Actually it's one of the reasons why I was away for so long -
 the friction in the community caused me to loose some motivation to
 work on LilyPond.  And I'm not the only one.

Just to make things clear: this is not necessarily anyone's _personal_ fault.

Janek

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


Re: mutopia's shortcomings

2015-04-27 Thread Janek Warchoł
2015-04-27 19:02 GMT+02:00 Kieren MacMillan kieren_macmil...@sympatico.ca:

 it does not make sense to improve the maintainability of a large
 set of scores by relying on a functionality that has to be adapted
 manually in future and thus produces more manual interventions.

 It also doesn’t make sense to feed a self-fueling spiral of wider 
 non-acceptance
 by actively avoiding the use of a tool as game-changing as the 
 edition-engraver.
 Instead, why not download it (from OLL), try it out, and — if it proves as 
 beneficial
 to you as it is to some of us — help try to get it polished and accepted into 
 the standard Lilypond distro?

While it may or may not be a good idea to use EditionEngraver for big
scores / big collections of scores, it definitely will be great if
many people will try using it and report any issues.

best,
Janek

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


Re: Indicate a broken chord should ring.

2014-10-19 Thread Janek Warchoł
2014-10-18 19:58 GMT+02:00 Knute Snortum ksnor...@gmail.com:
 Thanks for that.  It works pretty well, except that in my case one of the
 ties isn't placed well.  I'm trying to use \shape to change the tie but it
 doesn't seem to work.

 %%--- Start
 \version 2.19.15
 \language english

 shapeTieOne = \shape #'((0.7 . 0.7) (0.0 . 0.3) (0.0 . 0.2) (0.0 . 0.0)) Tie

 \relative c''' {
   \set tieWaitForNote = ##t
   \stemDown
   a,,=8 ~ e''16 ~ \shapeTieOne b ~ g ~ ds'8. ~ e  ds b g a,2 ~ | q1 ~ | q1
 }
 %%--- End

 \shapeTieOne doesn't seem to affect the tie between the two b's.

Strange.  I couldn't get it to work either.
You may try overriding tie-configuration instead, but then you'll
probably have to put it before the chord and specify positioning of
all ties.

best,
Janek

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


Re: Bass and Treble Clef notes on the same clef

2014-10-17 Thread Janek Warchoł
2014-10-17 0:58 GMT+02:00 David Kastrup d...@gnu.org:
 Knute Snortum ksnor...@gmail.com writes:

 I have a situation I don't know how to deal with in LilyPond. I have
 bass clef and treble clef notes on the same staff. I guess one way to
 do it is to create a markup and a small bass clef sign and put it next
 to the treble clef (and incorrect) gf which looks like a tied bf from
 the bass clef in the first measure. I could make a temporary
 ossia-type staff to hold the bf pedal tone.

 Any other thoughts?

 \new Staff \with { \accepts Staff }
 {
   \partial 2
   \clef bass
   
 \new Voice
 { \voiceOne r8 \clef treble as c' e' as' bes d' fis' bes'
   c' e' as' c''~ q4 }
 \new Staff \with { createSpacing = ##f }
 { \voiceTwo bes,,2~
   \once\override Staff.CueClef.Y-offset = #-4 \cueClef bass
   bes,,2 }
   
 }

!  This really works! 8O

LilyPond is awesome.  I knew it.
Janek

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


Re: A sign I can't understand ...

2014-10-16 Thread Janek Warchoł
2014-10-16 13:49 GMT+02:00 Son_V vincenzo.a...@gmail.com:
 isn't that indicating that in a second (or later) verse there are two
 syllables?

 Yes. Sorry ... I've been too stingy. :-)

 Here is a larger view:

 http://lilypond.1069038.n5.nabble.com/file/n167616/Simbolo_strano_2.jpg

 Note that the comma on the right should be a breath

 the notation of your image would be wrong

 I suppose it too; but what should be the correct way to write this thing?
 Sorry but when I encounter these strange situations I'm not able to find a
 reference in the manual. It seems to me to try to find a needle in an
 haystack.

You could either use temporary polyphony, possibly with making second
voice smaller

\new Staff {
  \time 2/4
  f'8 a'
   { \voiceOne g'4 } \new CueVoice { \voiceTwo g'8 8 } 
}

or a dashed tie

\new Staff {
  \time 2/4
  f'8 a'
  \tieDashed
  g'8 ~ 8
}

Personally i prefer the second solution, especially that it's easier
to get lyrics to work with it.

best,
Janek

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


Re: practice/volunteer opportunities

2014-10-13 Thread Janek Warchoł
Hi Andrew,

welcome to the community!  As i'm working on the same project as Urs
does, i do encourage you to follow the links he sent :)

best,
Janek

2014-10-12 18:03 GMT+02:00 truthling heartsa...@gmail.com:
 Greetings, all!

 This is my first post and I would firstly like to express my gratitude and
 enthusiasm for Lilypond.  I have recently discovered it and it has been
 immensely helpful and fun!

 My name is Andrew and I am a music theory/classical guitar student.

 I am looking for opportunities to develop my Lilypond knowledge and, skills
 and would love to take any opportunities to assist with your engraving
 projects, as a way to hone my skills.  So if you have any projects underway
 that you could use some help, let me know and I would be glad to offer my
 time and effort.

 Cheers!
 Andrew



 --
 View this message in context: 
 http://lilypond.1069038.n5.nabble.com/practice-volunteer-opportunities-tp167462.html
 Sent from the User mailing list archive at Nabble.com.

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

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


Re: Automatic ottava handling

2014-10-13 Thread Janek Warchoł
Awesome work, David!
I think it would be great to actually have some default ottava
settings in official lilypond (e.g. something like \ottavate #4 #-4).

best,
Janek

2014-10-12 21:07 GMT+02:00 David Nalesnik david.nales...@gmail.com:
 Hi,

 On Sat, Oct 11, 2014 at 9:05 PM, David Nalesnik


 I'll look into fixing up build-new-elts so there won't be so much
 duplication of code.  Then it will be a lot cleaner to deals with bassas,


 OK, now it will provide automatic bassas as well.

 The function \ottavate now takes two numbers, one for the upper threshold
 and another for the lower.  I decided to specify the lower threshold in
 negative numbers, but that could be changed.

 If you want to turn off one or the other, you can just pick a number out of
 range.  (So, for example, you can ensure no bassas with treble clef.)

 Let me know how this works for you!

 Enjoy,
 David





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


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


Re: relative music inside music functions explodes when used twice

2014-10-12 Thread Janek Warchoł
Thanks David and Paul - that's helpful.  However, while the situation
improved the output is still not what i want:
\version 2.19.13

voiceDivisi =
#(define-music-function (parser location m1 m2) (ly:music? ly:music?)
   #{
 \tag divI { $m1 }
 \tag divII { $m2 }
 \tag together  { \dynamicUp $m1 } \\ { \dynamicDown $m2 } 
   #})

music = \relative c' {
  \voiceDivisi {
c4 d e f
  }{
a,1
  }
}
musicII = \relative c' {
  \voiceDivisi {
f4 e d c
  } {
a1
  }
}

\new Staff \with { instrumentName = part I }
\removeWithTag divII.together { \music \musicII }

\new Staff \with { instrumentName = part II }
\removeWithTag divI.together { \music \musicII }

\new Staff \with { instrumentName = combined }
\removeWithTag divI.divII { \music \musicII }

if i understand correctly, relativization happens too late, i.e. after
the music is processed by the voiceDivisi function.
How should i work around this?  Maybe instead of using tags i should write
a function with a switch statement inside?  I know that i can put \relative
command inside \voiceDivisi, but i'd like to avoid this as it would add a
lot of typing.

best,
Janek

2014-10-11 21:01 GMT+02:00 David Kastrup d...@gnu.org:

 Janek Warchoł janek.lilyp...@gmail.com writes:

  Hi,
 
  i have a function that takes music as an argument and uses it twice -
 each
  time with a different tag appended, so that later on i can decide what to
  output:
 
  voiceDivisi =
  #(define-music-function (parser location m1 m2) (ly:music? ly:music?)
 #{
   \tag divI \context Voice = divI { #m1 }
   \tag divII \context Voice = divII { #m2 }
   \tag together \context Voice = both  #m1 #m2 
 #})
 
  The problem is that when used with relative mode, the output gets crazy:
 
  music = \relative c' {
\voiceDivisi {
  c4 d e f
}
{
  e4 f g a
}
  }
 
  \new Staff \keepWithTag divI \music
  \new Staff \keepWithTag divII \music
  \new Staff \keepWithTag together \music
 
  (see attachment)
 
  I have checked that the problem disappears when the function uses the
  arguments (m1 and m2) only once.  Is this a bug?

 No.

 URL:
 http://www.lilypond.org/doc/v2.19/Documentation/extending/adding-articulation-to-notes-_0028example_0029
 

 In an earlier example, we constructed music by repeating a given
 music argument. In that case, at least one repetition had to be a
 copy of its own. If it weren’t, strange things may happen. For
 example, if you use \relative or \transpose on the resulting music
 containing the same elements multiple times, those will be subjected
 to relativation or transposition multiple times. If you assign them
 to a music variable, the curse is broken since referencing ‘\name’
 will again create a copy which does not retain the identity of the
 repeated elements.

  Can i work around it, or maybe i should be doing this in an altogether
  different way?

 Use ly:music-deep-copy on one of the copies.  Better both.  Or write $x
 instead of #x in order to get such a copy.

 --
 David Kastrup


 ___
 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: Contemporary Music Notation

2014-10-12 Thread Janek Warchoł
2014-10-12 14:06 GMT+02:00 Piaras Hoban phoba...@googlemail.com:

 I thought it might be interesting for those wondering what's possible in
 lilypond to see some examples from the field. I've put together a page
 collating those things I've done in the past year or so.


!!
and then:
!
And i thought that after seeing Mike Solomon's stuff i wouldn't have my
mind blown away anymore
Extremely impressive!


 It would be great to develop a contemporary notation library for lilypond
 making these notations readily available to any user, I'm not sure what
 that would involve but I know it could be a major selling point for
 lilypond in the contemporary music world.


Absolutely!
And if you'd like to write a short (or long) blog post about this, just to
showcase what you can do with LilyPond (doesn't have to be elaborated), i
would be delighted - i don't have enough time for writing myself, and
anyway anything i could write wouldn't be even half as impressive as what
you did.

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


Re: relative music inside music functions explodes when used twice

2014-10-12 Thread Janek Warchoł
2014-10-12 12:45 GMT+02:00 David Kastrup d...@gnu.org:
 I'm not even sure I understand _how_ you want the relativization to
 happen.  One after the other?

If you mean \musicII should be relativized after \music, that's
roughly what i want.

 In that case, you can use

 voiceDivisi =
 #(define-music-function (parser location m1 m2) (ly:music? ly:music?)
   (make-relative (m1 m2) #{ #m1 #m2 #}
   #{
   \tag divI { $m1 }
   \tag divII { $m2 }
   \tag together  { \dynamicUp $m1 } \\ { \dynamicDown $m2 } 
   #}))

Seems to work! :)

  How should i work around this?  Maybe instead of using tags i should
  write a function with a switch statement inside?  I know that i can
  put \relative command inside \voiceDivisi, but i'd like to avoid this
  as it would add a lot of typing.

 It seems like the ingenuity of my make-relative macro never really
 caught on...

I've found https://code.google.com/p/lilypond/issues/detail?id=3118
and looked at input/regression/make-relative.ly but i don't think i
really understand what it does (and how).  I'll try digging deeper,
but any additional explanations you could provide would be very
welcome (as i have very limited time available for tinkering...) - i'd
very much like to be able to understand your ingenuity :)

 By the way: I'm not sure it will be transparent enough to have  \\ 
 be recognized at the proper point of time.  If not, you'll need to use
 explicit voices instead.

Absolutely.  My code is just a proof of concept, and I've used  \\
 to minimize the example.

best,
Janek

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


relative music inside music functions explodes when used twice

2014-10-11 Thread Janek Warchoł
Hi,

i have a function that takes music as an argument and uses it twice - each
time with a different tag appended, so that later on i can decide what to
output:

voiceDivisi =
#(define-music-function (parser location m1 m2) (ly:music? ly:music?)
   #{
 \tag divI \context Voice = divI { #m1 }
 \tag divII \context Voice = divII { #m2 }
 \tag together \context Voice = both  #m1 #m2 
   #})

The problem is that when used with relative mode, the output gets crazy:

music = \relative c' {
  \voiceDivisi {
c4 d e f
  }
  {
e4 f g a
  }
}

\new Staff \keepWithTag divI \music
\new Staff \keepWithTag divII \music
\new Staff \keepWithTag together \music

(see attachment)

I have checked that the problem disappears when the function uses the
arguments (m1 and m2) only once.  Is this a bug?  Can i work around it, or
maybe i should be doing this in an altogether different way?

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


Re: Contemporary Music Notation

2014-10-10 Thread Janek Warchoł
Hi,

2014-10-08 22:11 GMT+02:00 Marco Bagolin bagolin.ma...@gmail.com:

 Hello all,
 I'm new Lilypond user and I am interested in Contemporary Music Notation.

 I read all 2.8 Contemporary music manual section:
 http://www.lilypond.org/doc/v2.18/Documentation/notation/contemporary-music
 but lot of the chapters are empty and most of links are inactive.

 Please how can I learn to use Lilypond for write music using Contemporary
 Music Notation?


I suggest you get in touch with Mike Solomon (http://www.mikesolomon.org/)
and Trevor Bača (http://www.trevorbaca.com/) - these two pop in my head
immediately when someone says LilyPond and contemporary notation.

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


Re: Supporting ♯ and ♭

2014-10-06 Thread Janek Warchoł
2014-10-06 17:37 GMT+02:00 MarcM m...@mouries.net:
 I agree it is not easier to type but any non-techie musician will find this
 easier to read.
 Adding shortcuts in Frescobaldi will help type the  ♯ and ♭.

Yes, using this symbols will make sense if someone has an editor with
appropriate shortcuts.
Personally i would welcome adding this to LilyPond (rather than having
it as LSR snippet), as it seems to me that supporting this language
doesn't cost us anything.  BTW, i would call this language symbolic,
as it's not really english but something quite universal.

Marc, i can help you with contributing process if necessary, but only
via Skype - i don't have enough time to email regularly (and Skype is
more time-effective).  Actually, it'd be probably better if someone
else could help you :)

best,
Janek

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


Re: Supporting ? and ?

2014-10-06 Thread Janek Warchoł
2014-10-06 20:57 GMT+02:00 Flaming Hakama by Elaine ela...@flaminghakama.com:

  I know using '#' would not work due to conflict with scheme but what
  about
  using the Unicode symbols?
 
  g g g e? would be easier to write and read then g g g ef 


 Maybe I'm not understanding the suggestion--do you mean a unicode symbol for
 flat,

yes, that's what he proposed.

 and it is just coming through the list as a question mark?

I think that your email reader did something wrong, as i saw the
symbols correctly.

best,
Janek

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


Re: Long stretch in one voice, then two

2014-09-30 Thread Janek Warchoł
2014-09-28 23:42 GMT+02:00 Simon Albrecht simon.albre...@mail.de:
 Well probably it's intuitive for German native speakers by analogy to eine
 Stimme and Stimme Eins, that what I meant.
 The next question, of course, is: Do you have an alternative proposal? :-)

For example \singleVoice.  Knute's \voiceNeutral would possibly do as
well.  We could also change \voiceOne to \firstVoice etc.

These are just some suggestions off the top of my head; i'm not sure
which one i consider the best (and i don't really have much time to
think about this now :( )

cheers,
Janek

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


Re: Long stretch in one voice, then two

2014-09-28 Thread Janek Warchoł
2014-09-28 23:25 GMT+02:00 Simon Albrecht simon.albre...@mail.de:
 Hello,

 do you really think they aren't user-friendly? I always found them easy to
 understand and use. Is this because they comply to german syntax more
 neatly?

We have two commands named \voiceOne and \oneVoice.  That's definitely
confusing; one of them should be given a different name.

good night,
Janek

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


Re: Long stretch in one voice, then two

2014-09-27 Thread Janek Warchoł
2014-09-27 19:44 GMT+02:00 Knute Snortum ksnor...@gmail.com:
 This question may be a matter of style, or there may be a command I'm
 missing.

 I have a piano piece that starts with the right hand in one voice for a long
 stretch (about 20 bars).  It then breaks into mostly two voices.

 One way to do this is to use temporary voices.  The disadvantage is long
 passages in brackets (matter of style).  The other is to have to voices for
 the right hand where the lower voice is silent for 20 bars.  But then the
 music in the beginning has stems up and rests raised.  I can use
 \stemNeutral \tieNeutral, etc., but is there a \voiceNeutral?

\oneVoice (these commands' names are not really user-friendly...)

In general, i recommend not to use  { } // { }  but create
explicit voices manually instead.

best,
Janek

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


Re: Henle Music font

2014-09-12 Thread Janek Warchoł
Hi,

2014-09-12 5:40 GMT+02:00 tisimst tisimst.lilyp...@gmail.com:
 Here are some sample scans http://fonts.openlilylib.org/henle-images/   of
 Henle scores I have. Which one should I base the new font off of? I know
 that there are even more designs, but I'll start with these (unless no one
 likes these ones :)

I like the middle two samples better than remaining ones.  But i don't
know whether they would be the most representative ones for Henle, so
count my vote with reduced weight :)

cheers,
Janek

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


Re: Henle Music font

2014-09-12 Thread Janek Warchoł
2014-09-12 20:26 GMT+02:00 tisimst tisimst.lilyp...@gmail.com:
 Janek Warchoł wrote
 Hi,

 I like the middle two samples better than remaining ones.  But i don't
 know whether they would be the most representative ones for Henle, so
 count my vote with reduced weight :)

 cheers,
 Janek

 Janek,

 Thanks for your input. Do you have access to any scores, produced by Henle,
 that have a look you like more?

Nope.

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


Re: Treating a tie as a slur

2014-09-09 Thread Janek Warchoł
Hi,

2014-09-08 12:51 GMT+00:00 Johan Vromans jvrom...@squirrel.nl:
 Hi,

 Often when processing music imported from Sibelius I have the problem
 that Sibelius doesn't seem to care whether a tie connects notes of the
 same pitch. As a consequence, some Sibelius users have become lazy and
 always use a tie even when the pitches differ.

 LiliPond emits an error message when it encounters a tie between notes
 of different pitch. This is correct. In fact, I asked for it ;) [1].

 However, occasionally it would be handy if I could kindly ask LiliPond
 to treat the ties as slurs if necessary. Yes, I know this is wrong, but
 manually changing hundreds of ties into slurs is not fun.

I think that writing a converter script that postprocesses imported
LilyPond code should not be difficult.  In fact, i believe that it may
be very easy if you used Frescobaldi's code for parsing LilyPond.

best,
Janek

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


Re: partcombine/divisi framework - let the fun begin!

2014-09-07 Thread Janek Warchoł
Hi,

2014-09-01 23:38 GMT+02:00 Keith OHara k-ohara5...@oco.net:
 On Sat, 30 Aug 2014 04:41:15 -0700, Janek Warchoł janek.lilyp...@gmail.com
 wrote:

 2014-08-29 8:53 GMT+02:00 Keith OHara k-ohara5...@oco.net:

 But if someone uses these definitions with music that uses tags for
 some other purpose, the tagged music will be left out.

 Hmm.  That's a problem, but i don't see a good solution yet.


 Simon's suggestion to use the more-selective \removeWithTag is a good
 solution.
 Just in case anyone uses the \divisibleStaff with his own tags, and might
 not think to include 'together in \keepWithTag score \divisibleStaff ... , I
 added a function to clean up the divI/divII/together tags when we are done
 with them.  These two changes are attached.

Thanks!  I have merged your changes with ensuring synchronization
that you suggested.  Code attached; it's also now available in
OpenLilyLib: 
https://github.com/openlilylib/openlilylib/tree/master/notation-snippets/divisi

best (and sorry for long reply),
Janek
\version 2.16.2 % absolutely necessary!

\header {
  snippet-title = Example snippet
  snippet-author = John Doe
  snippet-source = link to the mailing list archives or a website, if applicable
  snippet-description = \markup {
Briefly describe what the snippet does and how to use it.
  }
  % add comma-separated tags to make searching more effective:
  tags = 
  % is this snippet ready?  See meta/status-values.md
  status = 
}

%%
% here goes the snippet: %
%%

red = {
  % color the next note red
  \once \override NoteHead #'color = #red
  \once \override Stem #'color = #red
  \once \override Flag #'color = #red
}
\version 2.16.2

\include ./definitions.ily


% This example shows how snippet-name can be used.
% The implementation of the snippet is in the file
% `definitions.ily`.
% Documentation (if any) should be in `README.md`.

\markup Color a note red:
{
  d' \red d'( d')
}
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Score feedback request

2014-09-07 Thread Janek Warchoł
Hi,

2014-09-06 11:06 GMT+02:00 Urs Liska u...@openlilylib.org:
 In traditional Lied notation dynamics are placed between the piano staves.
 I have a hard time finding it in the manual, but what you'd so is create the
 dynamics in a separate music variable (for example dynamics) and then
 write \new Dynamics \dynamics between the two piano staves in the \score
 block.
 Some composers do write dynamics to the vocal staff too, but in most cases
 that is only done when they differ. That is a singer expects to read the
 dynamics from the piano.

Note that if you decide to keep separate dynamics for the vocal part,
they should be placed above staff.

cheers,
Janek

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


Re: partcombine/divisi framework - let the fun begin!

2014-08-30 Thread Janek Warchoł
2014-08-29 8:53 GMT+02:00 Keith OHara k-ohara5...@oco.net:
 Janek Warchoł janek.lilypond at gmail.com writes:

 I'm working on putting together a set of functions for handling parts
 that split into multiple voices and/or staves


 Attachment (definitions.ily): text/x-lilypond, 2359 bytes
 Attachment (example.ly): text/x-lilypond, 825 bytes
 Attachment (example.pdf): application/pdf, 33 KiB

 I like the way 'definitions.ily' uses  parallel music constructions
 to ensure that the parts re-synchronize even if there is a note missing
 in the input.

 You should do something similar for the \together segments.

Ok, will do.

 As you have it now, the together segments are un-tagged, so are included
 in all three staves (two of which are not printed).
 But if someone uses these definitions with music that uses tags for
 some other purpose, the tagged music will be left out.

Hmm.  That's a problem, but i don't see a good solution yet.
best,
Janek

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


Re: Best practice for parts with varying number of staves

2014-08-28 Thread Janek Warchoł
Hi Kieren,

2014-08-28 1:43 GMT+02:00 Kieren MacMillan kieren_macmil...@sympatico.ca:
 Hi Janek,

 What's the status of your partcombining framework”?

 It stalled last year, usurped by a constant stream of paid commissions.

 However, my father-in-law has generously offered to sponsor me to take a few 
 weeks
 and finally engrave that big choral piece I mentioned (which would benefit 
 spectacularly
 from really good unison/divisi machinery). I could take that two weeks 
 sometime in late
 September or early October, if that’s good timing for you.

By October we should (hopefully) be more or less done with our project
- but you never know...
Anyway, I've started working on this now - feel invited to join!
Could you send me your drafts?  (btw, you don't have to tidy them
before sending, i know how it's like to stop working on something
midway :))

best,
Janek

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


Re: brainstorming a really smart system engraver

2014-08-28 Thread Janek Warchoł
Hi,

2014-08-28 1:40 GMT+02:00 Kieren MacMillan kieren_macmil...@sympatico.ca:
 Hi all,

 I think that issue 3518 (pushed recently) does just this:
 https://code.google.com/p/lilypond/issues/detail?id=3518

 It doesn't do the automatic AI nightmare part.

 Yes, unfortunately...

Yes, sorry - i should've trimmed quoted email better.

 However, it provides the low level machinery for pulling in the maximally 
 required number
 of staves between automatic or manual line breaks, where the requirement
 is determined by working with keep-alive-interfaces and tags on the
 various staff variants.

 That could be helpful!

 I still need to wrap my head around how this framework/machinery works (or 
 doesn’t) with
 true content-presentation separation; the example on the Google Code page has 
 multiple
 \context Staff” calls buried in the \violins note definition, which to my 
 mind mixes content
 with presentation in an unfortunate way.

I think you looked at an earlier work-in-progress snippet -  in the
attachment you can find the final version.  Instead of having music
jump between staves, it typesets everything in two variants (divided
and not) and specifies what should be visible at which times.  Seems
to be the right way to separate content and presentation.

 It's a solid framework for a solid part of the job.

 I’ll be interested in my testing to see what percentage of real-world 
 scenarios this part represents.

 The important thing to note is that this framework does _not_ require
 manual tampering with line breaks to arrive at correct results.

 That is a critical and wonderful feature.

Indeed!
best,
Janek
\version 2.19.13

\header {
  texidoc = The @code{VerticalAxisGroup.remove-layer}
property can be used for typesetting temporary divisi staves where
the switch to split staves is done only at line breaks such that all
complex passages are rendered in separate staves.
}

boring = \set Staff.keepAliveInterfaces = #'()
tricky = \unset Staff.keepAliveInterfaces

violI=\relative d' {
  \boring \repeat unfold 100 d4
  \tricky d g'2
  \boring \repeat unfold 98 d4
  \bar |.
}

violII=\relative g {
  \boring \repeat unfold 100 g4
  \tricky g d'2
  \boring \repeat unfold 98 g4
  \bar |.
}

\score {
  \new StaffGroup \with { \consists Keep_alive_together_engraver }
  
\new Staff \with { instrumentName = Violin I
		   shortInstrumentName = V I
		   \override VerticalAxisGroup.remove-empty = ##t
		   \override VerticalAxisGroup.remove-first = ##t
		   \override VerticalAxisGroup.remove-layer = 1
		 }
\violI
\new Staff \with { instrumentName = Violin II
		   shortInstrumentName = V II
		   \override VerticalAxisGroup.remove-empty = ##t
		   \override VerticalAxisGroup.remove-first = ##t
		   \override VerticalAxisGroup.remove-layer = 1
		 }
\violII
\new Staff \with { instrumentName = Violins
		   shortInstrumentName = V III
		   \override VerticalAxisGroup.remove-layer = 2
		 }
  \violI \\ \violII  
  
  \layout {
short-indent = 2\cm
indent = 3\cm
  }
}
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Modifying barline right before a stave is hidden

2014-08-28 Thread Janek Warchoł
Hi all,

is it possible to write a function that does something based on
whether the current context will be visible or hidden in the next
system?  For example, i have

\version 2.19.12

\layout {
  \context {
\Score
\RemoveEmptyStaves
  }
}

fooBarline = {}


  \new Staff {
\fooBarline
\repeat unfold 24 c'4
R1*8
  }
  \new Staff {
\repeat unfold 24 f'2
  }


And i'd like to define fooBarline so that the last barline before the
staff is hidden (which happens because of RemoveEmptyStaves) is
different.

best,
Janek

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


partcombine/divisi framework - let the fun begin!

2014-08-28 Thread Janek Warchoł
Hi all,

I'm working on putting together a set of functions for handling parts
that split into multiple voices and/or staves (using functionality
David Kastrup implemented in
https://code.google.com/p/lilypond/issues/detail?id=3518).  I attach a
first version and i'd be interested in your comments.

best,
Janek
\version 2.19.13

together = { \tag #'together ^\markup \bold a2 }

soloI =
#(define-music-function (parser location mus) (ly:music?)
   #{
 
   \tag #'together ^\markup \bold SoloI
   \tag #'divI { #mus }
   \tag #'together { #mus }
   \tag #'divII #(mmrest-of-length mus)
 
   #})

sharedStems =
#(define-music-function (parser location m1 m2) (ly:music? ly:music?)
   #{
 
   \tag divI  { #m1 }
   \tag divII { #m2 }
   \tag together ^\markup \bold div
   \tag together  #m1 #m2 
 
   #})

voiceDivisi =
#(define-music-function (parser location m1 m2) (ly:music? ly:music?)
   #{
 
   \tag divI  { #m1 }
   \tag divII { #m2 }
   \tag together  { \dynamicUp #m1 } \\ { \dynamicDown #m2 } 
 
   #})

staffDivisi =
#(define-music-function (parser location m1 m2) (ly:music? ly:music?)
   #{
 \unset Staff.keepAliveInterfaces
 
   \tag divI  { #m1 }
   \tag divII { #m2 }
   \tag together #(skip-of-length m1)
   \tag together #(skip-of-length m2)
 
 \set Staff.keepAliveInterfaces = #'()
   #})

divisibleStaff =
#(define-music-function (parser location name music) (string? ly:music?)
   (let ((nameI (string-append name  I))
 (nameII (string-append name  II)))
 #{
   \new GrandStaff \with {
 \consists Keep_alive_together_engraver
   } 
 \new Staff \with {
   \override VerticalAxisGroup.remove-first = ##t
   \override VerticalAxisGroup.remove-empty = ##t
   \override VerticalAxisGroup.remove-layer = 1
   keepAliveInterfaces = #'()
   instrumentName = #nameI
   shortInstrumentName = #nameI
 }
 \keepWithTag divI \music

 \new Staff \with {
   \override VerticalAxisGroup.remove-first = ##t
   \override VerticalAxisGroup.remove-empty = ##t
   \override VerticalAxisGroup.remove-layer = 1
   keepAliveInterfaces = #'()
   instrumentName = #nameII
   shortInstrumentName = #nameII
 }
 \keepWithTag divII \music

 \new Staff \with {
   instrumentName = #name
   shortInstrumentName = #name
   \override VerticalAxisGroup.remove-layer = 2
 }
 \keepWithTag together \music
   
 #}))
\version 2.19.13

\include definitions.ily

\layout {
  short-indent = 2\cm
  indent = 2\cm
  line-width = 10\cm
}

music = {
  \together
  c'4 d' e' f'
  \sharedStems
  { a' f' a' g' }
  { f' d' f' e' }
  \voiceDivisi {
g' b' d' b'
d'' b' g' b'
  }
  {
g'4 e' g' e'
b' g' b' g'
  }
  \staffDivisi
  { a' f'' g' q b' }
  { a' e' b' e'' a' q }
  \together
  c' d' e' f'
  \soloI { g' b' d' b' }
  \together
  f' a' d' f' f' a' e' g'
  f' e' d' c'
}

\markup \bold { Violin I part: }
\new Staff \with {
  instrumentName = Violin I
  shortInstrumentName = V I
} \keepWithTag divI \music

\markup \bold { Violin II part: }
\new Staff \with {
  instrumentName = Violin II
  shortInstrumentName = V II
} \keepWithTag divII \music

\markup \bold { Combined: }
\divisibleStaff Violin \music


example.pdf
Description: Adobe PDF document
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Context order

2014-08-28 Thread Janek Warchoł
Hi,

2014-08-28 19:21 GMT+02:00 Samuel Speer samuelsp...@gmail.com:
 Hi list,

 I'm wondering if there is a simple way to keep the PianoStaff at the bottom
 of the vertical group, regardless of contexts being created / destroyed
 above it.

 Basically, I've created a ChoirStaff with non-simultaneous music and grouped
 it with the PianoStaff:

 

   ChoirStaff 
  {
   First line of music 
   Next line of music 
   Third line of music 
   }


   PianoStaff 
 { All lines of music combined }
   



 In the attached pdf, you'll see that the PianoStaff jumps to the top on the
 second line when new contexts are created inside the ChoirStaff. Can I force
 the PianoStaff to the bottom? I tried AlignBelowContext, but I think that
 only works for lyrics.

AFAIK AlignBelow/AboveContext should work (but you may have to use it
on the other context, i.e. voices instead of the piano).

However, i think that you actually should use another approach for
what you're doing (i.e. not spawn new contexts when the voices split).
You may find thread How split SA staff into two staff - each now has
two voices? helpful for that.  Interestingly, i have just a few
minutes ago started another discussion on this very topic, see
partcombine/divisi framework - let the fun begin! thread.

hth,
Janek

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


Re: partcombine/divisi framework - let the fun begin!

2014-08-28 Thread Janek Warchoł
2014-08-28 19:23 GMT+02:00 Janek Warchoł janek.lilyp...@gmail.com:
 I attach a first version and i'd be interested in your comments.

PS this code requires LilyPond 2.19.13, which has not yet been
released.  Anyone wishing to try out the example should compile
LilyPond from source; take a look at
https://github.com/janek-warchol/cli-tools/blob/master/lilypond/intro-text.md
https://github.com/janek-warchol/cli-tools/blob/master/lilypond/build-lily.sh
for a user-friendly way of doing this.

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


Re: Measure Repeat Counter

2014-08-27 Thread Janek Warchoł
2014-08-27 19:48 GMT+02:00 James pkx1...@gmail.com:
 On 27/08/14 18:47, James wrote:
 Perhaps this one?

 http://lsr.di.unimi.it/LSR/Item?id=473

 :)

You don't need to abuse PercentRepeats - there's a dedicated functionality:

{ c'1~ | \startMeasureCount c'~ | c'~ | c'~ | c'~ \stopMeasureCount | c'~ | c' }

\layout {
  \context {
\Staff
\consists #Measure_counter_engraver
  }
}

Unfortunately i don't know where it's documented, i only found
examples in regtests (input/regression/measure-counter.ly,
input/regression/measure-counter-broken.ly)
Perhaps the snippet should be deleted/updated?

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


Re: brainstorming a really smart system engraver

2014-08-27 Thread Janek Warchoł
Hi Kieren,

2012-12-14 14:47 GMT+01:00 Kieren MacMillan kieren_macmil...@sympatico.ca:
 Hello all,

 Like many people on this list, I engrave a number of choral works using 
 Lilypond. Like a smaller subset of those people, I engrave a number of large 
 and very large works (musicals, operas, extended choral works, etc.), which 
 require multiple editions (full score, pianovocal score, vocal book, etc.) 
 each with their own font sizes, system and page breaks, and so on.

 There are many times when two or more of my vocal or choral lines share 
 material — for example, in my Wither's Carol, the entire first verse (with 
 the exception of a single two-measure chunk) is in choral unison (meaning 
 everyone singing the same notes and words in their own usual octave) — 
 whereas there are other very contrapuntal sections where material is totally 
 independent. Hence, there are sections where a score COULD be adequately 
 represented using only 1 choral staff, and other sections that require 2 or 3 
 or 4 (or even more) independent staves.

 Ultimately, I would like to have Lilypond choose the correct number of staves 
 so that horizontal and vertical spacing is optimal, using partcombine (or 
 'partexplode'?), cueing, etc., to accomplish its task.

 I realize this is an AI nightmare and well outside Lilypond's current scope. 
 So as a half-measure, I would love to be able to tag certain sections as 
 requires X staves, and then have Lilypond choose the least number of 
 required staves based on system/line breaking. As I [manually] change the 
 line breaks, the systems would automagically expand or contract as 
 necessary/possible to accommodate the new layout. Unfortunately, the current 
 tagging system is insufficient to do this, as far as I can tell.

 Can anyone think of a reasonably easy way to implement this feature?
 If so, I'll be happy to sponsor it.

I think that issue 3518 (pushed recently) does just this:
https://code.google.com/p/lilypond/issues/detail?id=3518

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


Re: Best practice for parts with varying number of staves

2014-08-27 Thread Janek Warchoł
Hi Kieren,

2013-05-15 12:06 GMT+02:00 Kieren MacMillan kieren_macmil...@sympatico.ca:
 Hi Urs,

 How would you approach this scenario?

 I'm working on a mechanism involving \quoteDuring and \RemoveEmptyStaves
 which should handle this scenario perfectly. Right now, I'm testing it with 
 a choral
 work which variously needs 4 (S+A+T+B), 2 (SA+TB), or 1 (SATB) staves, 
 depending
 on the shared content. When it's ready for prime-time, I'll be sure to share 
 it with the list for review.

What's the status of your partcombining framework?
As we're starting serious work on the beforementioned project, this
would be of great help.  We could also work on finishing the framework
together; it seems to me that with
https://code.google.com/p/lilypond/issues/detail?id=3518 in place this
should be quite doable.

best,
Janek

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


rewriting function that takes music expression into two enclosing \...Begin and \...End commands

2014-08-27 Thread Janek Warchoł
Hi,

i have something like this:

divided =
#(define-music-function (parser location music)
   (ly:music?)
   #{
 \voiceOne
 \new Voice { \voiceTwo #music }
 \oneVoice
   #})

musI = \relative f' {
  g b a b
  c b a b
}

musII = \relative f' {
  e4 g f g
  \divided {
f2 f
  }
}

\score {
  \new Staff \new Voice 
\musI
\musII
  
}

What i would like to do is to split \divided function into two
commands \dividedBegin and \dividedEnd, so that the same result would
be produced with an interface like this:

musII = \relative f' {
  e4 g f g
  \dividedBegin
  f2 f
  \dividedEnd
}

(musI and \score block remain the same)

Is this doable at all?  I don't have any good idea on how to do
something like this...

Why i want this?  With current code, i must respect expression nesting
(i.e. everything inside \divided has to be in one expression).  I'd
like to be able to write something like this:

musIIpartI = \relative f' {
  e4 g f g
  \dividedBegin
  f2
}
musIIpartII = \relative f' {
  f2
  \dividedEnd
}
musII = { \musIIpartI \musIIpartII }

best,
Janek

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


Re: Problem with wrong font/glyphs/graphics

2014-08-26 Thread Janek Warchoł
2014-08-25 0:40 GMT+02:00 Frank Steinmetzger war...@gmx.de:
 On Sun, Aug 24, 2014 at 10:51:53PM +0200, Malte Meyn wrote:
 That is a known problem. If I remember correctly this only occurs with
 some old versions of LilyPond when using a certain version of
 ghostscript, but I don’t remember the exact details ...

 What versions of LilyPond (lilypond --version) and ghostscript
 (ghostscript --version) do you use?

 Thanks for the reply.
 Lilypond 2.16.2 and ghostscript 9.10. But it has been so since I installed
 this system in March, there were no upgrades ever since. Some other package
 must be the culprit.

The problem was actually caused by metafont or metapost, not
ghostscript.  I think that upgrading to the latest stable LilyPond
release may help you (and anyway 2.16 is quite old).  See
http://lists.gnu.org/archive/html/lilypond-devel/2013-10/msg00204.html
for more details.

hth,
Janek

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


Re: Bug: breathing sign and accidental overlap

2014-08-24 Thread Janek Warchoł
2014-08-24 16:11 GMT+02:00 Frank Steinmetzger war...@gmx.de:

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

 Ah ok, sorry for the noise then. I worked around with an invisible cis an
 octave down which introduces the needed spacing.

I'd rather suggest to use
\override BreathingSign.extra-spacing-height = #'(0 . 1)
as it's cleaner (i.e. doesn't pollute the music with artificial notes)

best,
Janek

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


a thank you :)

2014-08-17 Thread Janek Warchoł
Hi,

today's no special anniversary, but i'd like to publicly thank David
Kastrup for all the work he's been doing on LilyPond for the last
years.  Many of his patches are relatively small cleanups and code
simplifications in the areas i have no experience with, so it's hard
to appreciate them when they appear - but they do add up, and from a
time perspective i begin to see their value :)

If, for some reason, i would have to go back to using some old
LilyPond versions, i would certainly very soon discover that i cannot
really live without some new features - and I'm pretty sure that most
of them are results of David's work. Kudos!

best,
Janek

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


Re: slur position in

2014-08-14 Thread Janek Warchoł
2014-08-14 16:29 GMT+02:00 Federico Bruni fedel...@gmail.com:
 2014-08-14 16:11 GMT+02:00 bb bb-543...@versanet.de:

 I cannot get a slur from g, to b?

 \version 2.18.0

 #(set-global-staff-size 29)

 \relative c''  {
 \override Slur.positions = #'(-20 . 0)
  d g, d 8 ^  H  (b)
 }

 I could not find any solution in the internet!


 Does Slur.positions really exist?

It does, but it has weird limitations.

cheers,
Janek

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


Re: Accidentals centred above notes

2014-08-10 Thread Janek Warchoł
2014-08-10 10:25 GMT+02:00 Richard Shann rich...@rshann.plus.com:
 I hadn't realized that I had stumbled into an area of live development -
 thanks for making me aware of what is going on. Reflecting on things, I
 thought I should anyway develop a general-purpose interface for people
 to place an ornament with an accidental above/and or below all nicely
 centered. I got as far as the following example, which may simply
 reflect an inadequate understanding of the docs, or may be of interest
 to those working on the alignment of markup and notes:

 \version 2.18.0

 {
a''  ^\markup {\center-column {\tiny \sharp \musicglyph #scripts.turn 
 \tiny \flat}}
a''  -\tweak baseline-skip #2  ^\markup {\center-column {\tiny \sharp 
 \musicglyph #scripts.turn \tiny \flat}}
a''  -\tweak baseline-skip #0  ^\markup {\center-column {\tiny \sharp 
 \musicglyph #scripts.turn \tiny \flat}}

 }

 I imagined the tweak would take control of the line spacing in the
 markup

Yup.

 (and from the lowest line to the note),

Why should it work so?  baseline-skip is a markup property and it
works inside the markup.
For changing distance between TextScript and the notes, try changing
TextScript's padding property.

 which the first two lines
 seem to confirm; varying the value passed to baseline skip as in the
 third line does not seem to do anything useful.

But it does: in the last example the sharp is closer to the turn than
in the second one.  It's just that setting baseline-skip below some
value has no effect because LilyPond will not allow collisions between
objects.

hth,
Janek

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


Re: Reduce vertical space between \score's?

2014-08-09 Thread Janek Warchoł
2014-08-08 19:44 GMT+02:00 PMA peterarmstr...@aya.yale.edu:
 P.S.  I should ask alternatively: Is there a way that
 proportionalNotationDuration...make-moment...
 can be reset _per system_ (assuming now a multi-
 system \score)?

As Abraham wrote, you should use \newSpacingSection:

\score {
  
\new RhythmicStaff {
  \set Score.proportionalNotationDuration = #(ly:make-moment 1/20)
  c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
  \newSpacingSection
  \set Score.proportionalNotationDuration = #(ly:make-moment 1/30)
  c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
}
  
}

hth,
Janek

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


Re: Whole-measure rests that specify rhythmic value

2014-08-08 Thread Janek Warchoł
Hi,

2014-08-05 18:54 GMT+02:00 Pierre Perol-Schneider
pierre.schneider.pa...@gmail.com:
 Hi,

 2014-08-04 23:57 GMT+02:00 Micah Walter micahjwal...@gmail.com:

 I have a whole measure rest. I would like the dotted half-note glyph,
 which specifies the rhythmic value, but I would also like it to be centered
 like an ordinary whole-measure rest. I have tried overriding the stencil,
 but to no avail. Do you have any suggestions?

 \version 2.18.2

 \paper {
   ragged-right = ##f
 }

 {
   \time 3/4
   \tweak X-offset #40
   r2.
 }

This works, but the centering is volatile and will break when layout
changes.  I'd rather suggest using the solution described here:
http://lilypondblog.org/2013/06/horizontally-aligning-full-measure-rests/

hth,
Janek

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


Re: Accidentals centred above notes

2014-08-07 Thread Janek Warchoł
Hi,

2014-08-07 9:26 GMT+02:00 Phil Holmes m...@philholmes.net:
 - Original Message - From: Richard Shann rich...@rshann.plus.com
 To: lilypond-user@gnu.org
 Sent: Thursday, August 07, 2014 7:58 AM
 Subject: Accidentals centred above notes
 It looks like the use of the \sharp markup does indeed put the sharp sign
 somewhat left.  It looks to me like the ficta sharp is correctly aligned on
 the notehead.

 \relative c''' {
 a2^\markup { \sharp } ^\markup { | } \set suggestAccidentals = ##t ais
 ^\markup { | }
 }

Don't use \markup { | } for indicating center of the notehead.  It's a
pure coincidence that it looks like being centered; in fact it's
reference point (which is on the *left* edge of its bounding box
(which actually includes some whitespace)) is aligned on the refpoint
of the notehead (which again happens to be on the left edge of the
notehead - usually...).  I think this example may be quite revealing:

#(set-global-staff-size 50)
\relative c''' {
  % draw boxes around grobs, representing their extents
  \override TextScript.stencil =
  #(make-stencil-boxer 0.03 0 ly:text-interface::print)
  \override NoteHead.stencil =
  #(make-stencil-boxer 0.03 0 ly:note-head::print)
  \override NoteHead.style = #'altdefault
  a2^\markup { | } r a1 ^\markup { | } a\breve ^\markup { | }
}

For visualizing the center of the notehead, use articulation like
staccato or staccatissimo; they really are centered on the note.

Btw, that's also why \markup { \sharp } seems a bit to the left -
like all TextScripts, it simply has its refpoint aligned to notehead's
refpoint (which is usually equivalent to being left-aligned).


2014-08-07 14:02 GMT+02:00 Richard Shann rich...@rshann.plus.com:
 On Thu, 2014-08-07 at 09:45 +0100, Richard Shann wrote:
 I'll start digging around for what the syntax is to align markup other
 than on the left side of notes - if anyone can just tell me I would be
 grateful.

 I have come up with this:

 \version 2.18.0
 \relative c''' {
 \once \override TextScript.self-alignment-X=#'-1.5  a2 ^\markup { \tiny
 \sharp}
 \set suggestAccidentals = ##t ais
 }

You asked about things changing in future LilyPond versions, and
actually this is an example: with 2.18, writing \override
TextScript.self-alignment-X = #something produces weird alignment.  I
believe it was a broken user-interface and i'm working on changing
that.  Please wait until
https://code.google.com/p/lilypond/issues/detail?id=4022 is merged;
after that you can use

\version 2.19.12
\relative c''' {
  \once \override TextScript.self-alignment-X = #CENTER
  \once \override TextScript.parent-alignment-X = #CENTER
  a2 ^\markup { \tiny \sharp}
  \set suggestAccidentals = ##t ais
}

to get centered markup (note that, unlike your current code, this will
produce correct alignment regardless of the size of the notehead and
markup).

Maybe it will be later possible to use just \once \override
TextScript.self-alignment-X = #CENTER to get centered TextScripts.
I hope that this was helpful.

best,
Janek

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


Re: Accidentals centred above notes

2014-08-07 Thread Janek Warchoł
2014-08-07 14:16 GMT+02:00 David Kastrup d...@gnu.org:
 Richard Shann rich...@rshann.plus.com writes:

 the docs (
 http://www.lilypond.org/doc/v2.18/Documentation/internals/self_002dalignment_002dinterface
  ) say:
 
  self-alignment-X (number)

 Specify alignment of an object. The value -1 means left aligned, 0 
 centered, and 1 right-aligned in X direction. Other numerical values may 
 also be specified.
 

 which doesn't give much clue as to what the units are... (if I'm looking
 at the right thing)

 The units are pretty well-defined.  -1 means left-aligned, 1 means right
 aligned.  So moving the entire width of the object from left edge to
 right edge implies a difference of 2.

 So the unit is half the object width.

However (in case you wondered) the unit of self-alignment-X in case of
LyricTexts is half the difference between object's and notehead's
witdths.

best,
Janek

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


Re: How split SA staff into two staff - each now has two voices?

2014-08-01 Thread Janek Warchoł
Hi,

2014-08-01 8:06 GMT+02:00 Abraham Lee tisimst.lilyp...@gmail.com:
 I believe this is what you're looking for:

 http://www.lilypond.org/doc/v2.18/Documentation/snippets/staff-notation#staff-notation-adding-indicators-to-staves-which-get-split-after-a-break

I believe this snippet is structurally wrong: performers' parts are
artificially split into pieces (even the men's parts, which don't have
to move around staves at all!).  I think that this should be done
differently - see below:

#(define-markup-command (arrow-at-angle layout props angle-deg length fill)
   (number? number? boolean?)
   (let* (
   ;; PI-OVER-180 and degrees-radians are taken from flag-styles.scm
   (PI-OVER-180 (/ (atan 1 1) 45))
   (degrees-radians (lambda (degrees) (* degrees PI-OVER-180)))
   (angle-rad (degrees-radians angle-deg))
   (target-x (* length (cos angle-rad)))
   (target-y (* length (sin angle-rad
 (interpret-markup layout props
   (markup
#:translate (cons (/ target-x 2) (/ target-y 2))
#:rotate angle-deg
#:translate (cons (/ length -2) 0)
#:concat (#:draw-line (cons length 0)
   #:arrow-head X RIGHT fill)

splitStaffBarLineMarkup = \markup \with-dimensions #'(0 . 0) #'(0 . 0) {
  \combine
  \arrow-at-angle #45 #(sqrt 8) ##f
  \arrow-at-angle #-45 #(sqrt 8) ##f
}

splitStaffBarLine = {
  \once \override Staff.BarLine.stencil =
  #(lambda (grob)
 (ly:stencil-combine-at-edge
  (ly:bar-line::print grob)
  X RIGHT
  (grob-interpret-markup grob splitStaffBarLineMarkup)
  0))
  \break
}

\paper {
  ragged-right = ##t
  short-indent = 10\mm
}


splitWomenStaff = {
  \set Staff.instrumentName = AI AII
  \set Staff.shortInstrumentName = AI AII
  \splitStaffBarLine
}

sI = {
  \voiceOne
  \repeat unfold 4 f''2
  \splitWomenStaff
  \change Staff = up
  \repeat unfold 4 g''2
}
sII = {
  s1*2
  \voiceTwo
  \change Staff = up
  \repeat unfold 4 d''2
}
aI = {
  \voiceTwo
  \repeat unfold 4 a'2
  \splitWomenStaff
  \voiceOne
  \repeat unfold 4 b'2
}
aII = {
  s1*2
  \voiceTwo
  \repeat unfold 4 g'2
}
ten = {
  \voiceOne
  \repeat unfold 4 c'2
  \repeat unfold 4 d'2
}
bas = {
  \voiceTwo
  \repeat unfold 4 f2
  \repeat unfold 4 g2
}

\score {
  
\new ChoirStaff 
  %% define a staff that will be later used by some voices
  \new Staff = up \with {
instrumentName = SI SII
shortInstrumentName = SI SII
  } {
%% keep the staff alive
s1*4
  }

  \new Staff = shared \with {
instrumentName = S A
shortInstrumentName = S A
  } 
\new Voice = sopI \sI
\new Voice = sopII \sII
\new Voice = altI \aI
\new Voice = altII \aII
  
  \new Lyrics \with {
alignBelowContext = up
  }
  \lyricsto sopII { e f g h }
  \new Lyrics \lyricsto altI { a b c d e f g h }

  \new Staff = men \with {
instrumentName = T B
shortInstrumentName = T B
  } 
\clef F
\new Voice = ten \ten
\new Voice = bas \bas
  
  \new Lyrics \lyricsto bas { a b c d e f g h }

  
  \layout {
\context {
  \Staff \RemoveEmptyStaves
  \override VerticalAxisGroup.remove-first = ##t
}
  }
}

% I'm not 100% satisfied with this code, but i think it's better
% than the snippet in the docs.  Maybe someone would like
% to submit an update?  I don't really have enough time now.

% best,
% Janek

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


Re: How split SA staff into two staff - each now has two voices?

2014-08-01 Thread Janek Warchoł
2014-08-01 15:10 GMT+02:00 Phil Holmes m...@philholmes.net:
 I've updated the LSR with your snippet: the code base will have this
 following an LSR import.

Whoah, thanks!  I didn't expect that you'll be so fast :)

cheers,
Janek

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


Re: How split SA staff into two staff - each now has two voices?

2014-08-01 Thread Janek Warchoł
2014-08-01 16:39 GMT+02:00 Simon Albrecht simon.albre...@mail.de:
 Hello,

 I’d like to suggest rearranging the instrument names in LSR 650 using
 \center-column (more elegant in my eyes). Attached you find an updated
 version of the file. Do you approve?

Definitely.  Not using \center-column was a laziness on my part.

best,
Janek

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


Re: self-alignment-X has negligible effects on dynamics

2014-08-01 Thread Janek Warchoł
Time to get back to work! :)

2014-07-28 23:33 GMT+02:00 Trevor Daniels t.dani...@treda.co.uk:
 If your code changes necessitate a change to the documentation and you
 haven't done this yourself, please add an issue to the tracker explaining
 what changes and/or additions need to be made to the documentation at
 the time the code change is pushed.  Remember at the time you push
 your changes it is likely that you are the only one who understands what
 the implications are re the documentation.  It is unlikely any doc editor
 will pick this up otherwise.

Yes, you're right.  I should have opened an issue after pushing code
for issue 3978.

Anyway, i'm going to wait until we decide how the alignment stuff
should work, and when the new version of the code is approved, i'll
write a doc draft with usage examples, leaving it to the doc writers
to polish it up.  That should be an efficient use of both my time and
doc writers' time.


2014-07-28 23:56 GMT+02:00 David Nalesnik david.nales...@gmail.com:
 Hi Janek,


 On Mon, Jul 28, 2014 at 4:12 PM, Janek Warchoł janek.lilyp...@gmail.com
 wrote:
 {
   \override DynamicText.X-offset =
 #ly:self-alignment-interface::x-aligned-on-self
   \override DynamicText.self-alignment-X = #RIGHT
   c'4\f
   \override DynamicText.self-alignment-X = #LEFT
   c'4\f
   \override DynamicText.self-alignment-X = #CENTER
   c'4\f
 }

 will produce different output before and after my patch.  That's
 because before my patch DynamicTexts' position was calculated from
 x-aligned-on-self AND centered-on-x-parent, in a way that was opaque
 and not configurable by the user.  Of course, it's possible to mimic
 old behaviour.

 Are you referring to that ly:make-simple-closure stuff which was commonly
 found in X-offset callbacks?  If so, I don't think this was ever the setting
 for DynamicText.X-offset.  At least, in 2.18.2, we have
  (X-offset . ,ly:self-alignment-interface::x-aligned-on-self)
 And of course in 2.19.10, we have
 (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent)

Indeed, that was the default value of the property (i.e what people
could see in scm/define-grobs.scm).  But there was also a call to
centered-on-x-parent _hardcoded_ in C++ code.  Because of that
hardcoded part, the actual X-offset value was different from what
you'd get just from x-aligned-on-self.  Very nasty, i think i lost
half a day looking for the explanation.  My patch removed that
hardcoded stuff (at least for dynamics; there's a similar problem with
fingerings but there's something else in the code that prevented me
from making the change there).


2014-07-29 0:58 GMT+02:00 Thomas Morley thomasmorle...@gmail.com:
 Well, the output while using 'self-alignment-X with DynamicText _has_ changed.
 This needs thoroughly documentation.
 And it will likely break some of my custom-functions.

Don't worry, we'll get this fixed so that your functions should
continue to work :)
See https://code.google.com/p/lilypond/issues/detail?id=4036#c14

 I uploaded two images for better comparing, with ref-points and
 testing TextScript, too:
 2.18.0
 http://imgur.com/2vcBG3n.png

 2.19.11
 http://imgur.com/vE8HaSg.png

Thanks!

cheers,
Janek

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


Re: thanks again for the editionEngraver

2014-07-31 Thread Janek Warchoł
Hi,

2014-07-30 20:39 GMT+02:00 Janek Warchoł janek.lilyp...@gmail.com:
 Hi,

 2014-07-30 0:54 GMT+02:00 David Kastrup d...@gnu.org:
 Janek Warchoł janek.lilyp...@gmail.com writes:
 As i said, defining new instrument contexts is very cheap - you can just do

 \newInstrument ViolinI Violin StaffGroup\with { } \with { }
 \newInstrument ViolinII Violin StaffGroup\with { } \with { }

 and have ViolinI and ViolinII available.

 Would it be feasible to put the context mods _before_ some reasonably
 related argument, possibly like

 \newInstrument \with {} ViolinI Violin \with {} StaffGroup

 or probably

 \newInstrument Violin \with {} ViolinI \with {} StaffGroup ?

 Because when they are before a related non-optional argument, one can
 make them optional.  Then if they are just \with {} anyway, you can omit
 them.

 Good idea!  I'm fine with changing the order of the arguments; the
 function is still in the experimental phase and there's not much code
 depending on it.

Done!  The syntax is now

\newInstrument name staff-settings voice-settings parent-name

with staff-settings and voice-settings being optional.  With these
changes, defining ViolinI instrument (assuming we already have a
Violin instrument) is simply

\newInstrument ViolinI Violin

and this ROCKS! :D

View the code at
https://github.com/openlilylib/openlilylib/tree/master/templates/predefined-instruments

thanks for suggestions, and i hope this will be helpful for Jan-Peter's work!
Janek

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


Re: thanks again for the editionEngraver

2014-07-30 Thread Janek Warchoł
Hi,

2014-07-30 0:54 GMT+02:00 David Kastrup d...@gnu.org:
 Janek Warchoł janek.lilyp...@gmail.com writes:
 As i said, defining new instrument contexts is very cheap - you can just do

 \newInstrument ViolinI Violin StaffGroup\with { } \with { }
 \newInstrument ViolinII Violin StaffGroup\with { } \with { }

 and have ViolinI and ViolinII available.

 Would it be feasible to put the context mods _before_ some reasonably
 related argument, possibly like

 \newInstrument \with {} ViolinI Violin \with {} StaffGroup

 or probably

 \newInstrument Violin \with {} ViolinI \with {} StaffGroup ?

 Because when they are before a related non-optional argument, one can
 make them optional.  Then if they are just \with {} anyway, you can omit
 them.

Good idea!  I'm fine with changing the order of the arguments; the
function is still in the experimental phase and there's not much code
depending on it.

However, i'm not yet sure what would be the most intuitive and
optional-argument friendly order of arguments; somehow your suggestion
doesn't seem natural for me (but i don't feel strongly about it).
Does anyone else have opinions?

best,
Janek

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


Re: thanks again for the editionEngraver

2014-07-30 Thread Janek Warchoł
2014-07-30 20:47 GMT+02:00 David Kastrup d...@gnu.org:
 Janek Warchoł janek.lilyp...@gmail.com writes:

 Hi,

 2014-07-30 0:54 GMT+02:00 David Kastrup d...@gnu.org:
 Janek Warchoł janek.lilyp...@gmail.com writes:
 As i said, defining new instrument contexts is very cheap - you can just do

 \newInstrument ViolinI Violin StaffGroup\with { } \with { }
 \newInstrument ViolinII Violin StaffGroup\with { } \with { }

 and have ViolinI and ViolinII available.

 Would it be feasible to put the context mods _before_ some reasonably
 related argument, possibly like

 \newInstrument \with {} ViolinI Violin \with {} StaffGroup

 or probably

 \newInstrument Violin \with {} ViolinI \with {} StaffGroup ?

 Because when they are before a related non-optional argument, one can
 make them optional.  Then if they are just \with {} anyway, you can omit
 them.

 Good idea!  I'm fine with changing the order of the arguments; the
 function is still in the experimental phase and there's not much code
 depending on it.

 However, i'm not yet sure what would be the most intuitive and
 optional-argument friendly order of arguments; somehow your suggestion
 doesn't seem natural for me (but i don't feel strongly about it).
 Does anyone else have opinions?

 Well, if the optional arguments should be independently optional, they
 must each be followed by a mandatory argument.  To me it makes the most
 sense to place them before the argument they apply to: that
 arrangement should always work.

Indeed.  The problem is that they don't really have matching arguments
to which they apply (maybe this is an indication that it would be a
good idea to change the function). See below.

 I don't actually know which of the names are context types, and which
 are context names.  So I cannot really vouch for the best order.

Right now, the syntax is:
\newInstrument
foo - name of the resulting instrument.  The function will
actually create two contexts: fooStaff and fooVoice.
bar - name of the instrument to inherit from.  E.g. fooStaff will
be derived from barStaff, and fooVoice from barVoice.  With default,
fooStaff and fooVoice will inherit from plain Staff and Voice,
respectively.
StaffGroup - name of the grouping context that will accept
fooStaff.  Actually, i'd like to get rid of this (if it would be
possible and reasonable to do so, that's something to be checked).
\with { } - settings for fooStaff
\with { } - settings for fooVoice

As you can see, it's hard to speak about matching arguments.  One
can only say that both \with {} clauses _together_ apply to
parent-name (bar in this case).

Would it make sense to have
\newInstrument foo \with {} \with {} bar StaffGroup
?
And if only one \with {} was supplied, it would be interpreted as
Staff-level settings.

More details at
https://github.com/openlilylib/openlilylib/blob/master/templates/predefined-instruments/context-creating-function.ily#L98

best,
Janek

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


Re: thanks again for the editionEngraver

2014-07-29 Thread Janek Warchoł
Hi Jan-Peter,

2014-07-29 9:34 GMT+02:00 Jan-Peter Voigt jp.vo...@gmx.de:
 Hi Janek,

 your predefined context are cool :)

Thanks!

 I see them in context with my lalily templates -- they will of course
 benifit. And the editionEngraver can indeed take advantage from specific
 context names. But still there need to be a way to separate (for
 example) violin 1 and 2.

As i said, defining new instrument contexts is very cheap - you can just do

\newInstrument ViolinI Violin StaffGroup\with { } \with { }
\newInstrument ViolinII Violin StaffGroup\with { } \with { }

and have ViolinI and ViolinII available.

 So I will try to integrate the context-id -
 perhaps context-name will be optional and one can choose between a
 counter and a context-id.

Of course that would be a very nice feature, too :)

 I am still on a trip, where we sing Arnold Schönbergs Friede auf
 Erden, a piece from Jaakko Mäntyjärvy and some more. Great music :)
 But I hope to get back to work on this in about 2 weeks.

Have a great time!  I'm looking forward to lalily/editionEngraver updates :)

best,
Janek

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


Re: self-alignment-X has negligible effects on dynamics

2014-07-29 Thread Janek Warchoł
Hi all.

yes, i need to update the documentation, and some parts of my patch
should be changed to make it more backward-compatible.
I'll think about this, but right now i'm still too upset and i don't
want to start a flamewar.  Please give me several days to calm down.

Janek

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


Re: self-alignment-X has negligible effects on dynamics

2014-07-28 Thread Janek Warchoł
Hi,

2014-07-28 16:13 GMT+02:00 David Nalesnik david.nales...@gmail.com:
 In the following example, the ordinary overrides of self-alignment-X appear
 to have no effect on the position pf the dynamics (or an effect I can't
 see).  Large numbers are needed for an obvious shift.

 Is this a bug, or something I'm doing wrong?

You're misusing self-alignment-X.  This feature is *not* for shifting
stuff - it is meant for aligning particular point of an object on a
particular point of its parent.  For example, self-alignment-X = #LEFT
means place this object so that its left edge (i.e. left end of
X-extent) is horizontally aligned with its parent's left edge.  It
doesn't mean move stuff around. Look:

{
  % draw boxes around grobs, representing their extents
  \override DynamicText.stencil =
#(make-stencil-boxer 0.03 0 ly:text-interface::print)
  \override NoteHead.stencil =
#(make-stencil-boxer 0.03 0 ly:note-head::print)

  \override DynamicText.self-alignment-X = #RIGHT
  % forte's right edge is aligned with notehead's right edge
  c'4\f
  \override DynamicText.self-alignment-X = #LEFT
  % forte's left edge is aligned with notehead's left edge
  c'4\f
  % forte's center is aligned with notehead's center
  \override DynamicText.self-alignment-X = #CENTER
  c'4\f
}

% see what happens when we use wider dynamics:
{
  % draw boxes around grobs, representing their extents
  \override DynamicText.stencil =
#(make-stencil-boxer 0.03 0 ly:text-interface::print)
  \override NoteHead.stencil =
#(make-stencil-boxer 0.03 0 ly:note-head::print)

  \override DynamicText.self-alignment-X = #RIGHT
  % forte's right edge is aligned with notehead's right edge
  c'2\fff
  \override DynamicText.self-alignment-X = #LEFT
  % forte's left edge is aligned with notehead's left edge
  c'\fff
}

% Using numbers outside [-1, 1] interval for alignment doesn't make
% much sense.  What does it mean if self-alignment-X = #5 ?  What is
% aligned to what?  It's hard to say what this means in English at all.

% Of course, we could use some more alignment options.
% That's exactly what I'm doing in issue 4022.
% With https://code.google.com/p/lilypond/issues/detail?id=4022 ,
% this code will produce output as in the attachment:
{
  % draw boxes around grobs, representing their extents
  \override DynamicText.stencil =
#(make-stencil-boxer 0.03 0 ly:text-interface::print)
  \override NoteHead.stencil =
#(make-stencil-boxer 0.03 0 ly:note-head::print)

  \override DynamicText.self-alignment-X = #`(,RIGHT . ,LEFT)
  % forte's right edge is aligned with notehead's left edge
  c'2\f
  \override DynamicText.self-alignment-X = #`(,LEFT . ,RIGHT)
  % forte's left edge is aligned with notehead's right edge
  c'\f
}

% Now, if you want to move stuff around, use X-offset, not
% self-alignment-X:
{
  \override DynamicText.stencil =
#(make-stencil-boxer 0.03 0 ly:text-interface::print)
  \override NoteHead.stencil =
#(make-stencil-boxer 0.03 0 ly:note-head::print)

  \override DynamicText.X-offset = -2.5
  c'2\f
  \override DynamicText.X-offset = 1
  c'\f
}

% Maybe some day we'll have a more unified interface for both
% moving stuff around and aligning it - i'm working on this - but
% for now these are separate tasks.

% Is this clearer now?

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


Re: self-alignment-X has negligible effects on dynamics

2014-07-28 Thread Janek Warchoł
Hi,

2014-07-28 22:51 GMT+02:00 David Nalesnik david.nales...@gmail.com:
 What is potentially confusing (and you see how badly I've been confused) is
 that the default setting of X-offset has changed.

I'm not sure if i understand.  You mean that default X-offset values
for DynamicTexts changed, or that DynamicText.X-offset uses a
different callback now?

 I'm used to the old behavior

 \override DynamicText.X-offset =
 #ly:self-alignment-interface::x-aligned-on-self

 gets it back.

It doesn't, actually.  I mean,

{
  \override DynamicText.X-offset =
#ly:self-alignment-interface::x-aligned-on-self
  \override DynamicText.self-alignment-X = #RIGHT
  c'4\f
  \override DynamicText.self-alignment-X = #LEFT
  c'4\f
  \override DynamicText.self-alignment-X = #CENTER
  c'4\f
}

will produce different output before and after my patch.  That's
because before my patch DynamicTexts' position was calculated from
x-aligned-on-self AND centered-on-x-parent, in a way that was opaque
and not configurable by the user.  Of course, it's possible to mimic
old behaviour.

 I think that this should be made clear in the documentation, if you haven't
 already done this!

Yes, i should do this (or maybe some doc editor would like to help me?
I would prefer to focus on making further changes in the code).

best,
Janek

PS i may not be able to reply again until tomorrow evening (~18 UTC).
I found that it's harder for me to focus on my day job when i read
LilyPond email in the morning, especially in case of emotionally
involving topics like this one.

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


Re: thanks again for the editionEngraver

2014-07-28 Thread Janek Warchoł
Hi,

2014-07-28 3:38 GMT+02:00 Kieren MacMillan kieren_macmil...@sympatico.ca:
 Hi Jan-Peter,

 I think the most complicated part is addressing multiple voices in one Staff.
 […]
 propably there are more things to modify to make it more intuitive.

 I think the stated problem would be solved *AND* the whole machinery made 
 more intuitive by allowing a context to be “direct addressed”, i.e., the 
 context

 \new Staff = “MyStaff” \someMusic

 would be mod-ed using something like

 \editionMod ThisEdition 1 0/4 APiece.MyStaff \override …

 as opposed to

 \editionMod ThisEdition 1 0/4 APiece.Staff.B \override …

Maybe it would be possible to take advantage of my work on predefined
contexts for instruments?
(https://github.com/openlilylib/openlilylib/tree/master/templates/predefined-instruments)

With predefined instruments, instead of writing


  \new Staff = violin {
% music...
  }
  \new Staff = viola {
% music...
  }


you basically write


  \new ViolinStaff {
% music...
  }
  \new ViolaStaff {
% music...
  }


(except that i haven't defined Violins and Violas yet, right now i
only have vocal stuff).  This makes it possible to do


  \new ViolinStaff {
% music...
  }
  \new ViolaStaff {
% music...
  }

\layout {
  \override ViolinStaff.NoteHead #'color = #red
}

to get just the Violin's notes colored red, achieving true separation
of content from layout.
...apart from the fact that you'll also get a bunch of specific
settings for each instrument, like midiInstrument and InstrumentName
:)

If i understood how Jan-Peter's engraver works, i think that using my
predefined instruments should make it possible to write

\new ViolinStaff \someMusic

and mod it using

\editionMod ThisEdition 1 0/4 APiece.ViolinStaff \override …

since there usually should be one XxxStaff in the score.  Actually,
it's dead easy to define new instruments, even just for the sake of
having unique contexts:

% syntax: \newInstrument name parentName groupName staffSettings voiceSettings
\newInstrument ViolinI Violin StaffGroup \with { instrumentName
= ViolinI } \with { }

What do you think?
Janek

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


tenorized treble clef

2014-07-27 Thread Janek Warchoł
Hi,

LilyPond has a treble clef with added C-clef-like stuff:

{ \clef tenorG c' }

(http://lists.gnu.org/archive/html/lilypond-user/2013-11/msg00661.html)
However, it seems to me that these added lines should be positioned
half a staff-space lower.  After all, C clef indicates the position of
middle C:

{ \clef tenor c' }

The way we have it right now, the extra claws point to d instead of
c.  I see that the engraved example provided in the thread linked
above has this positioning, but I think that's a mistake on the
clef-punch manufacturer's side.  What do you think?  Does anyone have
more examples of such clef?

best,
Janek

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


Re: See the new music fonts in action

2014-07-26 Thread Janek Warchoł
Hi,

WOW!! just... wow!

2014-07-26 1:14 GMT+02:00 tisimst tisimst.lilyp...@gmail.com:
 All,

 I couldn't wait any longer, so here's a formal announcement about the new
 music fonts that I've been working on, by way of example. They are all 100%
 LilyPond compatible for both PDF and SVG output. They all (except Gonville)
 support the full LilyPond glyph set (up to LilyPond version 2.18.2).

 So far, there are now 9 music fonts in addition to LilyPond's default
 *Emmentaler* (also called /Feta/ in the official docs). Here's a taste test:

 - *Amadeus* (SCORE look-a-like):

 SCORE comparison https://db.tt/pN6iRsgH

 Can you guess which one is really engraved using SCORE?

Bottom one:
- slurs have different thickness and shape,
- stems and ledgers are thinner than in LilyPond,
- staccato placement on stems differ,
- rest placement in polyphony differs,
- dim font is different

Nevertheless, it is very similar :)

 - *Cadence* (a tweaked Emmentaler by me):

 Grieg's Piano Concerto in A-minor (Adagio) https://db.tt/icYgT0M3

Nice!  I'd say that the beams are a tad too thick, but looks good overall.

 - *Gutenberg1939* (old removeable-type style):

 Canon in 3 Voices https://db.tt/RBjSKBLK

Looks fancy!

 - *Haydn* (like a classic Edition Peters style):

 Magnificat https://db.tt/CX14jc3z

 You can compare this with a commercial version (Kapellmeister) on the
 Sibelius Blog from a few months back:

 Original Score
 http://www.sibeliusblog.com/wp-content/uploads/2013/07/Magnificat-in-D-BWV-243.pdf
 Kapellmeister on Sibelius
 http://www.sibeliusblog.com/wp-content/uploads/2013/07/magnificat-Full-Score-dragged.pdf

Our version looks better :D  In particular, our notehead shape is
much more like the original - although the flags are significantly
differrent.

 - *LilyJAZZ* (a pseudo-handwritten style, originally by Torsten Hämmerle):

 Crazy Jazz Tests https://db.tt/T1WwGLiz

 This has been upgraded a bunch, by myself and others, including a complete
 glyph set (notation and text) and updated chord font.

cool!

 - *Paganini* (remapping of Kristof Bastiensen's /Parnassus/, originally for
 MuseScore):

 Nalada (Paganini) https://db.tt/GdyXV0kX

 - *Profondo* (Bravura anyone? This is a remapping of Daniel Spreadbury's
 SMuFL-compliant font):

 Nalada (Profondo) https://db.tt/1B9JoPz0

 Compare this with  Bravura in Sibelius
 http://blog.steinberg.net/wp-content/uploads/2013/05/fibich-bravura.pdf  .

It would be great to have the engravings done in the same page layout,
for better comparison.

 - *Ross* (from Ted Ross's famous notation book /The Art of Music Engraving
 and Processing/, and named after him):

 Nalada (Ross) https://db.tt/5uHcypFg

Hmm.   Somehow this doesn't feel like Ross (although maybe it's
because i've only seen the scans, not the print).  It seems to me that
staves and other lines should be thicker.

 I realize that this is a little like drinking from a fire hose, since this
 has never been done like this before,

indeed!

 but if you're like me, I think you'll
 like having lots of choices. These are all properly licensed, so they will
 be free to use, copy, and share!

I LOVE IT!!
And i would also love to see a post on Lily blog, and a news item -
this deserves a lot of publicity, it's a major feature IMO!

 If you have any other ideas for music fonts that you'd like to use/create,
 drop me a line and we'll talk :)

 More to come, so stay tuned! Let me know if any of the above links is
 broken.

We definitely should gather these in some visible place when all the
infrastructure for using these fonts is stable.  I think it actually
deserves to be put on the website!

thanks a ton!
Janek

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


Re: See the new music fonts in action

2014-07-26 Thread Janek Warchoł
Abraham,

2014-07-26 19:30 GMT+02:00 Abraham Lee tisimst.lilyp...@gmail.com:
 Janek,

 You are right about Ross. I updated the Ross example PDF (same link as
 before, so see the original message). See what you think with the thicker
 lines now.

Yes, it's better now.  Probably it could be adjusted even further, but
unfortunately i don't have time to look closely now.
Mind-blowing work anyway!

best,

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


Re: [bounty] context generating function - how to get context def from its name?

2014-07-26 Thread Janek Warchoł
Hi David  all,

2014-07-25 21:34 GMT+02:00 David Kastrup d...@gnu.org:

 Janek Warchoł janek.lilyp...@gmail.com writes:
 2) i didn't manage to get midi stuff done inside the same function as
 the layout stuff - but i think that i'll be able to solve that if i
 have a solution to 1).

 You basically need to collect just the context definitions and apply
 those (a context definition is applied by looking up its \name and
 overwriting the variable with that name).

 Frankly, I am tempted to create something like
 #{
\output {
  \context ...
  xxx = 3\cm
}
 #}

 that will either execute a number of assignments or alternatively return
 an anonymous lambda or define-void-function doing the same so that you
 can easily splice it into different output definitions.

 Something like that would apparently serve a need.

Ok, i reread what you wrote and now i understand that this is indeed
what i need :)  So if you could write a function like this, i would be
very grateful (and i would happily increase your bounty!).  My own
(_very_ naive) attempt at removing code duplication failed:

\version 2.19.10

% Create a new xxxStaff and xxxVoice contexts with specified settings,
% derived from specified yyyStaff and yyyVoice contexts.
newInstrument =
#(define-scheme-function
  (parser location name parent-name group-name staff-settings voice-settings)
  (string? string? string? ly:context-mod? ly:context-mod?)
  (let* ((staff-name (string-append name Staff))
 (voice-name (string-append name Voice))
 (parent-name (if (string=? parent-name default)  parent-name))
 (parent-staff-name (string-append parent-name Staff))
 (parent-voice-name (string-append parent-name Voice))
 (common
  #{
\context {
  $(module-ref (current-module) (string-symbol group-name))
  \accepts #staff-name
}
\context {
  $(module-ref (current-module) (string-symbol parent-staff-name))
  \name #staff-name
  \alias #parent-staff-name
  % is it possible to make it accept Voices of derived instruments?
  \accepts #voice-name
  \defaultchild #voice-name

  #staff-settings
}
\context {
  $(module-ref (current-module) (string-symbol parent-voice-name))
  \name #voice-name
  \alias #parent-voice-name

  #voice-settings
}
  #}))
(ly:parser-define! parser '$defaultlayout
  #{ \layout #common #})
(ly:parser-define! parser '$defaultmidi
  #{ \midi #common #})))

thanks again for your help!
Janek

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


[bounty] context generating function - how to get context def from its name?

2014-07-25 Thread Janek Warchoł
Hi all,

i got stuck when working on a function that creates custom context
definitions.  The idea is to have a function \newInstrument that would
take a list of settings and create new customized xxxStaff and
xxxVoice contexts - something like this:

newInstrument =
#(define-scheme-function
  (parser location instrName parentName settings)(string? ly:context-mod?)
  ;; ...
#{
  \layout {
\context {
  ;; create instrNameStaff context, derived from parentNameStaff,
  ;; with default child instrNameVoice, and modifications specified
  ;; in settings argument
}
\context {
  ;; create instrNameVoice context, derived from parentNameVoice,
}
  }
#})

As you can see, i want to be able to specify the parent instrument
from which the new instrument will inherit settings.  For example, i
want to define a Vocals instrument (= VocalsStaff and VocalsVoice
contexts, derived from Staff and Voice, respectively) and a Soprano
instrument derived from Vocals (= SopranoStaff and SopranoVoice
contexts, derived from VocalsStaff and VocalsVoice, respectively).

I managed to write a function that does something like this, but I
have two problems:
1) inside the function, i don't know how to get a context definition
from its name (i.e. from a string).  Right now i have to pass parent
contexts' definitions as separate arguments, but this means that i
have three arguments instead of one.
2) i didn't manage to get midi stuff done inside the same function as
the layout stuff - but i think that i'll be able to solve that if i
have a solution to 1).

I offer €25 bounty for solving 1).  I may also offer a bounty for 2)
if i won't manage to do it myself :)
See the attachment for the code that i already have.

best,
Janek

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


Re: [bounty] context generating function - how to get context def from its name?

2014-07-25 Thread Janek Warchoł
And the missing attachment.

2014-07-25 20:03 GMT+02:00 Janek Warchoł janek.lilyp...@gmail.com:
 Hi all,

 i got stuck when working on a function that creates custom context
 definitions.  The idea is to have a function \newInstrument that would
 take a list of settings and create new customized xxxStaff and
 xxxVoice contexts - something like this:

 newInstrument =
 #(define-scheme-function
   (parser location instrName parentName settings)(string? ly:context-mod?)
   ;; ...
 #{
   \layout {
 \context {
   ;; create instrNameStaff context, derived from parentNameStaff,
   ;; with default child instrNameVoice, and modifications specified
   ;; in settings argument
 }
 \context {
   ;; create instrNameVoice context, derived from parentNameVoice,
 }
   }
 #})

 As you can see, i want to be able to specify the parent instrument
 from which the new instrument will inherit settings.  For example, i
 want to define a Vocals instrument (= VocalsStaff and VocalsVoice
 contexts, derived from Staff and Voice, respectively) and a Soprano
 instrument derived from Vocals (= SopranoStaff and SopranoVoice
 contexts, derived from VocalsStaff and VocalsVoice, respectively).

 I managed to write a function that does something like this, but I
 have two problems:
 1) inside the function, i don't know how to get a context definition
 from its name (i.e. from a string).  Right now i have to pass parent
 contexts' definitions as separate arguments, but this means that i
 have three arguments instead of one.
 2) i didn't manage to get midi stuff done inside the same function as
 the layout stuff - but i think that i'll be able to solve that if i
 have a solution to 1).

 I offer €25 bounty for solving 1).  I may also offer a bounty for 2)
 if i won't manage to do it myself :)
 See the attachment for the code that i already have.

 best,
 Janek
\version 2.19.10

% Create a new xxxStaff and xxxVoice contexts with specified settings,
% derived from specified yyyStaff and yyyVoice contexts.
%
% TODO: instead of having 3 arguments: (parentstaff, parentvoice, parentname)
% the function should take just parentname and get parentstaff and parentvoice
% from that.
newLayoutInstrument =
#(define-scheme-function
  (parser location name parentstaff parentvoice parentname grouping staffsettings voicesettings)
  (string? ly:context-def? ly:context-def? string? ly:context-def? ly:context-mod? ly:context-mod?)
  (let ((staffname (string-append name Staff))
(voicename (string-append name Voice))
(parentstaffname (string-append parentname Staff))
(parentvoicename (string-append parentname Voice)))
#{
  \layout {
\context {
  #grouping
  \accepts #staffname
}
\context {
  #parentstaff
  \name #staffname
  \alias #parentstaffname
  \accepts #voicename % is it possible to make it accept Voices of derived instruments?
  \defaultchild #voicename

  #staffsettings
}
\context {
  #parentvoice
  \name #voicename
  \alias #parentvoicename

  #voicesettings
}
  }
#}))

% UGH!!! CODE DUPLICATION!!!
% This function is almost identical to the one above - obviously, they should be merged,
% but I didn't yet find a way to put both \layout and \midi stuff into one function :(
newMidiInstrument =
#(define-scheme-function
  (parser location name parentstaff parentvoice parentname grouping staffsettings voicesettings)
  (string? ly:context-def? ly:context-def? string? ly:context-def? ly:context-mod? ly:context-mod?)
  (let ((staffname (string-append name Staff))
(voicename (string-append name Voice))
(parentstaffname (string-append parentname Staff))
(parentvoicename (string-append parentname Voice)))
#{
  \midi {
\context {
  #grouping
  \accepts #staffname
}
\context {
  #parentstaff
  \name #staffname
  \alias #parentstaffname
  \accepts #voicename
  \defaultchild #voicename

  #staffsettings
}
\context {
  #parentvoice
  \name #voicename
  \alias #parentvoicename

  #voicesettings
}
  }
#}))


% define instruments - one generic and another one derived:

\layout {
  \newLayoutInstrument Vocal \Staff \Voice  \ChoirStaff
  \with {
\consists Ambitus_engraver
instrumentName = Vocals
shortInstrumentName = Voc.
\dynamicUp
\tupletUp
  }
  \with { }
}
\midi {
  \newMidiInstrument Vocal \Staff \Voice  \ChoirStaff
  \with {
\remove Staff_performer
  }
  \with {
\consists Staff_performer
midiInstrument = voice oohs
  }
}

\layout {
  \newLayoutInstrument Soprano \VocalStaff \VocalVoice Vocal \ChoirStaff
  \with {
instrumentName = Soprano
shortInstrumentName = S
\clef G

Re: [bounty] context generating function - how to get context def from its name?

2014-07-25 Thread Janek Warchoł
2014-07-25 21:34 GMT+02:00 David Kastrup d...@gnu.org:
 Janek Warchoł janek.lilyp...@gmail.com writes:

 newInstrument =
 #(define-scheme-function
   (parser location instrName parentName settings)(string? ly:context-mod?)
   ;; ...
 #{
   \layout {
 \context {
 $(module-ref (current-module) (string-symbol parentName))

Ha!
Exactly as i thought: as a higher-level mage than me, you know more
(and more powerful) magic incantations than i do.  Kudos!

   ;; create instrNameStaff context, derived from parentNameStaff,
   ;; with default child instrNameVoice, and modifications specified
   ;; in settings argument
 \name #instrName
 \defaultchild #instrNameVoice
 #settings
 }
 \context {
   ;; create instrNameVoice context, derived from parentNameVoice,
 }
   }
 #})

 I managed to write a function that does something like this, but I
 have two problems:
 1) inside the function, i don't know how to get a context definition
 from its name (i.e. from a string).  Right now i have to pass parent
 contexts' definitions as separate arguments, but this means that i
 have three arguments instead of one.
 2) i didn't manage to get midi stuff done inside the same function as
 the layout stuff - but i think that i'll be able to solve that if i
 have a solution to 1).

 You basically need to collect just the context definitions and apply
 those (a context definition is applied by looking up its \name and
 overwriting the variable with that name).

 Frankly, I am tempted to create something like
 #{
\output {
  \context ...
  xxx = 3\cm
}
 #}

 that will either execute a number of assignments or alternatively return
 an anonymous lambda or define-void-function doing the same so that you
 can easily splice it into different output definitions.

 Something like that would apparently serve a need.

I don't fully understand this yet, but for now i'm very happy that I
have a better version of the function (see attached) :)
I haven't gotten rid of all the duplication yet, but the user
interface at least seems nice!

Any further improvements are welcome! It would be great if you managed
to fix \addlyrics so that it would work nice with these custom
contexts (see comments in the attachment) - i'd gladly give another
€15 for that (or maybe more...).

thanks  good night for now! :)
Janek
\version 2.19.10

% Create a new xxxStaff and xxxVoice contexts with specified settings,
% derived from specified yyyStaff and yyyVoice contexts.

% TODO:
%
% 1) make \addLyrics smarter so that it could be used here (see test below)
%
% 2) remove code duplication; general cleanup.

newLayoutInstrument =
#(define-scheme-function
  (parser location name parent-name group-name staff-settings voice-settings)
  (string? string? string? ly:context-mod? ly:context-mod?)
  (let* ((staff-name (string-append name Staff))
 (voice-name (string-append name Voice))
 (parent-name (if (string=? parent-name default)  parent-name))
 (parent-staff-name (string-append parent-name Staff))
 (parent-voice-name (string-append parent-name Voice)))
(ly:parser-define! parser '$defaultlayout
  #{
\layout {
  \context {
$(module-ref (current-module) (string-symbol group-name))
\accepts #staff-name
  }
  \context {
$(module-ref (current-module) (string-symbol parent-staff-name))
\name #staff-name
\alias #parent-staff-name
% is it possible to make it accept Voices of derived instruments?
\accepts #voice-name
\defaultchild #voice-name

#staff-settings
  }
  \context {
$(module-ref (current-module) (string-symbol parent-voice-name))
\name #voice-name
\alias #parent-voice-name

#voice-settings
  }
}
  #})
;; UGH! code duplication!
(ly:parser-define! parser '$defaultmidi
  #{
\midi {
  \context {
$(module-ref (current-module) (string-symbol group-name))
\accepts #staff-name
  }
  \context {
$(module-ref (current-module) (string-symbol parent-staff-name))
\name #staff-name
\alias #parent-staff-name
% is it possible to make it accept Voices of derived instruments?
\accepts #voice-name
\defaultchild #voice-name

#staff-settings
  }
  \context {
$(module-ref (current-module) (string-symbol parent-voice-name))
\name #voice-name
\alias #parent-voice-name

#voice-settings
  }
}
  #})))


% define instruments - one generic and another one derived:

\newLayoutInstrument Vocal default ChoirStaff
\with {
  \consists Ambitus_engraver
  instrumentName = Vocals

Re: Mystery quirk in lyrics - only in the bass part

2014-07-23 Thread Janek Warchoł
2014-07-23 22:56 GMT+02:00 David Kastrup d...@gnu.org:
 Ugh.

 We have shortcuts \chords, \lyrics, \figures, \drums.  They are
 documented sparingly if at all.

 Check the output of

 git grep '\\\(chords\|lyrics\|figures\|drums\)\b'

 for the number of occurences which are definitely significant though not
 large.  When used erroneously, they may lead to material unexpectedly
 ending up in unnamed contexts.

 I think that \lyrics is the most likely candidate for trouble here.
 Maybe we should obsolete it and save some other people 6 hours.

+1!

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


Re: notation rule question

2014-07-23 Thread Janek Warchoł
Hi,

2014-07-23 18:07 GMT+02:00 Brian Barker b.m.bar...@btinternet.com:
 At 13:46 23/07/2014 +0200, Karol Majewski wrote:

 And how to divide this:

 c4 c8 c8~ c4 c4

 or

 c4 c8 c4. c4


 Elaine Gould says (on pp.166-7) Note-values sustained across a beat or
 half-beat must expose the beat structure of the bar, Only very
 straightforward rhythms may be written across the beat or half-bar, and In
 4/4 it is the third (not the fourth) beat that should be exposed. She gives
 as an example:
 c8 c4.~ c8 c4 c8
 and says and not
 c8 c2 c4 c8

 So she'd certainly pick your first option.

I second that.  Not earlier than on last Monday i was heavily confused
by the notation similar to the second one (i.e. without explicit 3rd
beat).  I believe that something like that makes sight-reading much
harder, unless someone is an expert in this kind of music.

best,
Janek

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


Re: LilyPond meeting 2014?

2014-07-20 Thread Janek Warchoł
2014-07-17 8:41 GMT+02:00 Jan-Peter Voigt jp.vo...@gmx.de:
 Hi all,

 I'd also like to join the party, but I am quite busy in the next time. I
 would like to join in for a session via skype or google-hang-out or
 similar - I could talk about and discuss the edition-engraver.
 Online-participation might be an option for users outside europe?

Absolutely, but right now i'm not sure if there's not enough people
that could gather at one place at the same time.

Janek

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


Re: Articles on church music on Github in LilyPond format

2014-07-20 Thread Janek Warchoł
2014-07-17 4:01 GMT+02:00 Paul Morris p...@paulwmorris.com:
 I came across a couple of articles on church music on Github in LilyPond
 format.  (Organ accompaniments for Gregorian Chant, a LilyPond transcription
 of the Nova Organi Harmonia.)

 http://createdigitalmusic.com/2014/07/fork-chant-github-goes-gregorian-open-source-notation/

 http://www.wired.com/2013/05/gregorian_github/

 Does this qualifies for a ponding?  In any case I thought it might be of
 interest.  Too bad the Wired article doesn't mention that it's LilyPond file
 format...

It's been done before (i have quite some music on github) but i think
it's worth a ponding anyway.

best,
Janek

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


Re: Alternative partcombine strategy possible?

2014-07-20 Thread Janek Warchoł
Hi Xavier,

sorry for delay.

2014-07-11 15:59 GMT+02:00 Xavier Scheuer x.sche...@gmail.com:
 On 11 July 2014 15:08, Janek Warchoł janek.lilyp...@gmail.com wrote:
 https://github.com/openlilylib/openlilylib/tree/master/editorial-tools/merge-rests-engraver

 Hi Janek,

 Could this definition of Merge Rests Engraver (latest by Jay Anderson)
 be included directly in LilyPond?

 AFAICS it is quite different from the first version by Wilbert Berendsen
 and maybe the earliest comments that the way it was (firstly)
 implemented made it unsuitable to be merged directly into LilyPond are
 not valid anymore.

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

Indeed, it seems that the approach used by Jay is the correct one
(i.e. using an engraver).

Would you like to help with making a patch and shepherding it through
the review process? As you can see, i don't have enough time for
lilypond work, so cannot do it myself.  Of course, i know that this is
an involved process, so i'm willing to offer you assistance (short
Skype call every other day).  It seems to me that Jay's code is of
good quality, so it shouldn't require a lot of work.

best,
Janek

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


Re: [openlilylib] Discuss restructuring

2014-07-20 Thread Janek Warchoł
Hi folks,

as you can see, i'm falling behind with lilypond stuff, but i wanted
to let you know that i've skimmed through this discussion and it LGTM.
The only comment i have is: try to make things as simple as possible
(but not simpler, of course) - i wouldn't like openlilylib getting a
java-smell from trying to be overly generic and all-encompassing.
Please continue with my blessing ;-)

best,
Janek

2014-07-08 12:42 GMT+02:00 Urs Liska u...@openlilylib.org:
 Am 07.07.2014 16:48, schrieb Paul Morris:

 Urs Liska wrote

 Hm, I think I_must not_  start with such a script right now, since I

 know that this - although being not too complex - will eat up too much
 of my time and concentration.
 
 But your message triggered a little bit of thought, and I came to the
 conclusion that we should use a website (i.e. openlilylib.org) for the
 documentation.
 The script will have two stages: parsing the content of the library and
 generating documentation from the resulting internal representation. I
 think generating complete HTML pages isn't more complicated than
 generating Markdown, but the results are better to use: We have more
 control over the layout and formatting options than on a Github Wiki,
 _and_  we have a self-contained HTML site that can also be deployed
 locally.

 Yep.


 This might be a good opportunity to get my feet wet with PyQt, i.e. not to
 write a _script_ but an application. Initially this wouldn't do much more
 than a mere script, but with more convenient interactivity. Later it could
 add an interface to _edit_ the metadata (e.g. selecting from existing tags,
 batch renaming of tags etc.) and also the documentation strings themselves.
 And it can even incorporate a convenient documentation browser.

 I think we should target the documentation output to be a self-contained
 HTML site in the repository itself (in a /doc directory) and only them
 consider making it available online too.

 At least with the HTML part of such a documentation I'd be glad for
 assistance (if I really get this started at all). Not that I'm unable to do
 that part but others can do that better, and it's a convenient split-point
 to share work.

 Best
 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: LilyPond meeting 2014?

2014-07-12 Thread Janek Warchoł
Hi all,

2014-07-07 17:28 GMT+02:00 Urs Liska u...@openlilylib.org:

 On 7. Juli 2014 17:19:50 MESZ, David Kastrup d...@gnu.org wrote:
The Waltroper Parkfest URL:http://www.waltroper-parkfest.de runs from
August 29th to August 31st.  It is an excellent diversion for
accompanying guests and participants, though no participants actually
were inclined to go there in 2012.  For German-speaking participants,
let me quote

Das Waltroper Parkfest findet 2014 an den letzten drei Augusttagen
statt. Highlights des Ostvest-Kulturspektakels auf vier Bühnen sind
   Auftritte von Juli, Hennes Bender, Brings und Too Strong, sowie eine
gemeinsame Show der NDW-Stars Markus, Geier Sturzflug, Hubert Kah
und Fräulein Menke.

Putting the meeting in parallel with the Parkfest in a similar manner
as last time would place it on August 28th to September 2nd,
with the start and end days mostly being for arrival and departure.

 That woukd make it considerably more likely for me.

Unfortunately i'm busy on that weekend :(

Is there noone else interested?
Janek

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


Re: line width

2014-07-12 Thread Janek Warchoł
2014-07-12 15:22 GMT+02:00 Charles Marshall marsh...@potsdam.edu:
 How can the length of a ragged last line be adjusted?  With ragged-last-line
 = ##t , the line is too short to look good; with = ##f , it's
 right-justified and too long.

It's not possible to set the width of just one system.  However, you
can use this snippet
https://github.com/openlilylib/openlilylib/tree/master/notation-snippets/adjust-horizontal-spacing
to adjust horizontal spacing. To have the adjustment only affect the
last system, use \newSpacingSection (it's described in the docs).

hth,
Janek

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


Re: line width

2014-07-12 Thread Janek Warchoł
2014-07-12 20:57 GMT+02:00 Kieren MacMillan kieren_macmil...@sympatico.ca:
 Hi all,

 It's not possible to set the width of just one system.

 Not even by overriding NonMusicalPaperColumn.line-break-system-details?

Hmm.  Maybe, but i don't know anything about this - too advanced magic :)

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


Re: LilyPond meeting 2014?

2014-07-12 Thread Janek Warchoł
Hi all,

2014-07-12 20:53 GMT+02:00 David Kastrup d...@gnu.org:
 I could offer one week earlier (full date range Aug 21st to Aug 26th),
 but that would still be mostly incompatible with Urs.

 Earlier than that collides with my own and Conny's plannings.  One week
 later (Sep 4th to Sep 9th) may also an option, but it can affect outdoor
 weather.

I think it's time to get the numbers organized.  Please mark when
you're available in this poll:
https://dudle.inf.tu-dresden.de/privacy/lilypond-meeting-2014/

cheers,
Janek

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


Re: Question for all LilyPond users (especially power users)

2014-07-11 Thread Janek Warchoł
2014-07-11 4:50 GMT+02:00 tisimst tisi...@gmail.com:
 Schneidy wrote
 I did that, but I let it unfinished for a couple of weeks now...
 see =
 http://lilypond.1069038.n5.nabble.com/LilyJAZZ-in-v2-18-td162423.html#a162444

 Pierre

 Yes! Thank you, Pierre, for your good work! I had fun making some updates to
 it. I think there are enough people interested in the Jazzy hand-written
 font that we should get this incorporated better. Since it is only available
 in binary font formats, is openlilylib the best place to put it?

 The only thing is, if we want to make the use of LilyJAZZ easier, it really
 needs the patched file that I mentioned in the initial post.

Putting binary files in openlilylib may not be the best possible
option (btw, how big they are and how muhc they are expected to
change?) but it would be way better than the current situation
(i.e. with the LilyJazz stuff scattered all over the mailing list,
which is a sure way to hinder its acceptance and make our lives
difficult).

I don't have time to handle this issue myself, but i'll wholeheartedly
welcome anyone doing something about it.

cheers,
Janek

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


Re: Follow-up question to alternate music fonts

2014-07-11 Thread Janek Warchoł
Hi,

2014-07-10 19:25 GMT+02:00 tisimst tisi...@gmail.com:
 All,

 Is there anyone who is VERY against distributing music fonts in binary form
 (i.e., as otf, svg, etc.files)? I just don't see how we can make other music
 fonts available by forcing them to have a metafont source file. I guess that
 could be nice, but it seems like so much work to do that. I have about 4 or
 5 alternate music fonts that people could use and I certainly don't want to
 convert them to metafont. They are currently designed and built with
 fontforge.

 What do you think?

Does fontforge have its own format that contains a source-like
description of the fonts? (i have no idea how it works, all my font
work was with Metafont)  Maybe we could distribute that?

I'd say that it's important to distribute the fonts in a format that
is most accessible for modification, but if all we have is binary
files, then we have to live with that.

cheers,
Janek

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


Re: Alternative partcombine strategy possible?

2014-07-11 Thread Janek Warchoł
2014-07-11 13:56 GMT+02:00 Abel Cheung abelche...@gmail.com:
 Does anybody have experience about overriding existing partcombine
 methods? I have a score that behave like the one below:

 - When both voices have identical rests, use partcombineUnisonoOnce
 - Use partcombineApart for everything else

 In the snippet below, the second line represents what I intended to
 do, but manually overriding each rest for several hundred bars isn't
 quite practical. Is there any possibility of using custom value for
 PartCombineForceEvent forced-type property? Or there's any other
 elegant method that helps saving note input time?

 ==
 upper = \relative c' { c4 r8 d r4 e8 d c2 r2 }
 lower = \relative c' { c4 r8 b c d e b c2 r2 }

 upperClumsy = \relative c' {
 \partcombineApart c4
 \partcombineUnisonoOnce r8
 d r4 e8 d c2
 \partcombineUnisonoOnce r2
 }

 \partcombine { \partcombineApart \upper } \lower
 \partcombine \upperClumsy \lower % --- desired
 ==


Maybe this will help you:
https://github.com/openlilylib/openlilylib/tree/master/editorial-tools/merge-rests-engraver

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


Re: Music font switching question

2014-07-10 Thread Janek Warchoł
Hi,

2014-07-09 0:16 GMT+02:00 tisimst tisi...@gmail.com:
 Let me explain. When one wants to change the text fonts _globally_, there is
 the very useful Scheme function make-pango-font-tree, which looks
 something like this when used:

 \paper {
   #(define fonts
 (make-pango-font-tree
 FreeSerif  ; the serif font
 FreeSans  ; the sans-serif font
 Inconsolata  ; the mono-space font
 (/ staff-height pt 20)))
 }

 You simply put this block into you .ly file and now you get those fonts
 instead of the defaults. /What if/, using a similar syntax we could change
 the music and brace fonts like this (additions highlighted):

 \paper {
   #(define fonts
 (make-pango-font-tree
 /*gonville  ; the music notation font
 emmentaler  ; the music brace font*/
 FreeSerif  ; the serif font
 FreeSans  ; the sans-serif font
 Inconsolata  ; the mono-space font
 (/ staff-height pt 20)))
 }

I think something like this would be perfectly acceptable.

cheers,
Janek

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


Re: Optical spacing -- no more?

2014-07-10 Thread Janek Warchoł
Hi,

2014-07-10 15:15 GMT+02:00 Noeck noeck.marb...@gmx.de:
 So I guess the default spacing is now a bit thighter compared to
 http://lilypond.org/doc/v2.14/Documentation/essay/engraving-details#optical-spacing

Nope - the difference is because you're comparing different examples.
Example in Essay has both quarters and eights, and this is what makes
the spacing wider there (common shortest duration becomes an eight
instead of quarter). See for yourself:

relative c'' { e4 c, f' d, g' e, a' f, }
{ c'4 e''4 e'4 b'4 }

% versus
{
   c'4 e''4 e'4 b'4 |
   \stemDown
   b'8[ e'' a' e'']
   \stemNeutral
   e'8[ e'8 e'8 e'8]
}

So, I don't think there were any significant changes to spacing in this regard.

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


Re: Header markup question

2014-07-10 Thread Janek Warchoł
Hi,

2014-07-10 12:18 GMT+02:00 Abraham Lee tisi...@gmail.com:
 Good idea! I'm not sure how to contribute it to openlilylib properly, but it
 seems like that might be a nice place to make it permanently available if
 Janek/Urs might be willing to place it there :)

I fully support placing it somewhere visible, but i think that it
doesn't quite fit the characteristic of openlilylib - this is a piece
of documentation, not code with some functionality.

I would rather add it here
https://github.com/openlilylib/development-resources/tree/master/learning-resources,
but then it's not really a visible place :(

Janek

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


Re: Header markup question

2014-07-09 Thread Janek Warchoł
2014-07-08 16:48 GMT+02:00 Abraham Lee tisi...@gmail.com:
 This may also help. I made this diagram because I had trouble understanding
 which page layout properties did what. See attached for a graphical example
 of vertical layout properties (some rigid, some flexible). This, in
 conjunction with the description in the notation reference
 (http://www.lilypond.org/doc/v2.18/Documentation/notation/page-layout),
 should give you enough options.

Very cool!  Deserves more exposure :)
Btw, there's also

annotate-spacing = ##t

best,
Janek

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


Re: Question for all LilyPond users (especially power users)

2014-07-09 Thread Janek Warchoł
Hi Abraham,

2014-07-09 7:43 GMT+02:00 tisimst tisi...@gmail.com:
 I am pleased to announce that I have several new music fonts, both in OTF
 and SVG formats, that I'd like people to be able to use, but this requires a
 patch to a single file, so anyone wanting to patch the file can do it with
 little effort. It makes using other fonts as easy as putting a single
 \include statement at the top of a .ly file. I use them all the time, but
 I really want to share with the community that has shared so much with me.

Sounds great!  I'm definitely interested, but unfortunately i'm too
busy for the next few weeks to get involved.  I hope that others will
chime in :)

Janek

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


Re: Dot-separated list as music function argument

2014-07-08 Thread Janek Warchoł
2014-07-08 13:39 GMT+02:00 Simon Albrecht simon.albre...@mail.de:
 The 2.18 changes document says that #'(Staff Accidental) and
 Staff.Accidental were now interchangeable, however if I replace it in the
 second function call, I get errors (unexpected . etc.). Is there a way to
 avoid this in the coding of the function or should it be considered a bug?


I think that symbol-list-or-symbol? is what you need:

\version 2.19.8

ed = #(define-music-function (parser location grob mus)
(symbol-list-or-symbol? ly:music?)
#{ \override $grob . color = #(x11-color 'grey40)
   $mus
   \revert $grob . color #})


\relative { \ed NoteHead c' \ed Staff.Accidental { cis dis } es }

best,
Janek

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


LilyPond meeting 2014?

2014-07-07 Thread Janek Warchoł
Hi all,

It's been almost two years since the Waltrop 2012 LilyPond Meeting, in
which i had the pleasure to participate.  What about organizing
another meeting this year?

- who'd be interested?
- where? (David, are you interested in being the host again?)
- when? (i suggest 15-17 August)

If the meeting will take place within 1500 km from Warsaw (e.g. at
Waltrop) and there will be at least 4 other participants, count me in
:)

best,
Janek

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


Re: FretBoards aligned to bar lines

2014-07-04 Thread Janek Warchoł
Hi David,

2014-07-04 15:54 GMT+02:00 David Nalesnik david.nales...@gmail.com:
 Hi Marc,


 On Fri, Jul 4, 2014 at 2:46 AM, Marc Hohl m...@hohlart.de wrote:

 Hi list,

 in the following example, I want to align the FretBoards to the
 bar lines. Now they are centered over the first beat in each measure.

 You can use a simple Scheme engraver to reset the X-parents of the FretBoard
 grobs.  (See attached.)  Of course, the alignment at the beginning of the
 line looks weird--will see if I can come up with something.

This looks very interesting!  Is it possible to write that function in
a way that would allow setting arbitrarily chosen parent?  For
example, to be able to write \set-x-parent Fretboard Flag (to align
Fretboard on the Flag)?

best,
Janek

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


Re: Ticks

2014-07-02 Thread Janek Warchoł
Hi,

2014-07-02 22:01 GMT+02:00 Francisco Vila paconet@gmail.com:
 Hello,
 From the attached image, I thought I could use percent repeats to
 simulate four ticks in a measure. The problem is

\repeat percent 4 { anything }

 always prints anything at least once at the beginning.

 How would you print such a tick notation in the very first measure?

What about

{
  c' f' b' g'
  \new Voice \with {
\consists Pitch_squash_engraver
\improvisationOn
\omit Stem
  } {
c c c c
  }
  f'2 g'
}

?

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


Re: Text inside hairpin

2014-06-30 Thread Janek Warchoł
You're welcome :)
Maybe i should add this function to official LilyPond?

2014-06-30 3:29 GMT+02:00 Javier Ruiz-Alma jav...@ruiz-alma.com:
 user error!
 Reviewed the cited LSR instead of staying at openlilylib...my bad.
 Thanks for not letting me go without a shake.  Javier

 From: Janek Warchoł [mailto:janek.lilyp...@gmail.com]

 2014-06-30 0:32 GMT+02:00 Javier Ruiz-Alma jav...@ruiz-alma.com:
 The scheme funct. places text outside the hairpin.

 Huh??  Have you looked at example usage of that snippet, available under the 
 link?  At the end there's a case with text inside Hairpin, and it works with 
 2.18.2 and 2.19.9 on my machine; it seems to do exactly what you want.

 I think i know what i'm talking about since i wrote that function myself!

 best,
 Janek


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


Re: Text inside hairpin

2014-06-30 Thread Janek Warchoł
Hi James,

2014-06-30 18:28 GMT+02:00 James pkx1...@gmail.com:
 On 30/06/14 07:54, Urs Liska wrote:
 It seems that the snippet-description field is suboptimal as it only
 states to typeset the text _below_ the hairpin.

 Do we need to change the texidoc string for this snippet then? And if so to
 what - I assume that this snippet in 'lilylib' is are in $LILYPOND_GIT?

Sorry, i don't quite understand what you mean.  The snippet is in
https://github.com/openlilylib/openlilylib reposotiry, which - as of
now - is completely independent from lilypond source repository.

best,
Janek

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


Re: Text inside hairpin

2014-06-29 Thread Janek Warchoł
There's a snippet doing this in OpenLilyLib:
https://github.com/openlilylib/openlilylib/tree/master/notation-snippets/hairpin-with-text

2014-06-29 18:36 GMT+02:00 Pierre Perol-Schneider
pierre.schneider.pa...@gmail.com:
 2014-06-29 17:12 GMT+02:00 Javier Ruiz-Alma jav...@ruiz-alma.com:


 How can text be placed inside a hairpin?  See image for sample.


 %%%
 \version 2.18.2

 {
   \once\override Hairpin.height = #1.2
   c''\
   c''
   \once\override TextScript.extra-offset = #'(0 . 2)

   c''-\markup \teeny \italic cresc.
   c''\!
 }

 \layout {
   \context {
 \Staff
 \hide KeySignature
 \omit TimeSignature
 \omit Clef
   }
 }

 \relative c'' {
   \key g\minor
   \once\override Hairpin.height = #1.2
   b!8*2/3[ \[c cis d ees d]
   \once\override TextScript.extra-offset = #'(0 . 1.7)
   c[ _\markup\tiny\italic cresc. cis d e e f\!]
 }
 %%

 Cheers,
 Pierre


 ___
 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: Text inside hairpin

2014-06-29 Thread Janek Warchoł
2014-06-30 0:32 GMT+02:00 Javier Ruiz-Alma jav...@ruiz-alma.com:
 The scheme funct. places text outside the hairpin.

Huh??  Have you looked at example usage of that snippet, available
under the link?  At the end there's a case with text inside Hairpin,
and it works with 2.18.2 and 2.19.9 on my machine; it seems to do
exactly what you want.

I think i know what i'm talking about since i wrote that function myself!

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


Re: Double key signature

2014-06-25 Thread Janek Warchoł
2014-06-25 5:14 GMT+02:00 Keith OHara k-ohara5...@oco.net:
 Pierre Perol-Schneider pierre.schneider.paris at gmail.com writes:

 On the french list we are working on a Merulo score with an 8 lines
 staff, 2 clefs and 2 key signature

 As you can notice, I still have to manually set the distance between the
 key signatures.

 LilyPond supports custom key signatures, and will print this for d\minor
 if you ask for an extended range of printed flats:

  \new Staff
   \with {
 \override StaffSymbol.line-count = #8
 \override KeySignature.flat-positions = #'((-7 . 6))
 \override KeyCancellation.flat-positions = #'((-7 . 6))
 % presumably sharps are also printed in both octaves
 \override KeySignature.sharp-positions = #'((-6 . 7))
 \override KeyCancellation.sharp-positions = #'((-6 . 7))
   \override Clef.stencil = #
   (lambda (grob)(grob-interpret-markup grob
   #{ \markup\combine
 \musicglyph #clefs.C
 \translate #'(0.9 . -2) \musicglyph #clefs.F
#}))
 clefPosition = #1
 middleCPosition = #1
 middleCClefPosition = #1
   } {
   \key d\minor
   \time 4/4 R1
  }

 You might like \translate, in units of staff spaces, in place of \vspace.


Wow! That's awesome - i didn't realize LilyPond can do this, i thought
that the solution would have to be to duplicate the stencil and
translate it by an octave (as opposed to creating two stencils and
aligning them manually).
If i had more time, i'd write a post about this on Scores of Beauty...
LilyPond rocks!!

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


Re: avoid-slur does not apply on a tie.

2014-06-13 Thread Janek Warchoł
Hello,

2014-06-11 17:08 GMT+02:00 Pierre Perol-Schneider
pierre.schneider.pa...@gmail.com:
 Hi,
 I'd like to understand why avoid-slur does not work on this old style
 vibrato sign :

 %%
 \version 2.18.2

 \markup\italic avoid-slur works with slur:

 {

\override Script.avoid-slur = #'inside

c''4^.^( c''^.)

 }

 \markup\italic but not with tie:

 {

\override Script.avoid-slur = #'inside

c''4^.^~ c''^.

 }

I believe that moving a tie like this (if it worked like in the case
of the slur) would be extremely confusing.  A tie should look like a
tie.

Janek

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


  1   2   3   4   5   6   7   8   9   10   >