Re: Stepping down and moving on
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
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 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 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
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?
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?
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-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.
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?)
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-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-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 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-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 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 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
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
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
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 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 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
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
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 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 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-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 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 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
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 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
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!
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
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-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
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
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
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!
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
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 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 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
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
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
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-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 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 :)
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 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 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-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
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
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 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?
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 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 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
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
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
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 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
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
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
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
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
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
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
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
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?
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?
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?
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 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 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
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-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-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?
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
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?
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 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 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?
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 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
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 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
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?
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
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-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)
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 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?
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
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
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
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
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
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-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 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.
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