Re: Completion heads engraver
On Oct 14, 2014, at 1:25 AM, Noeck noeck.marb...@gmx.de wrote: Hi Mike, could it be that you just had a typo in your example (engravaer instead of engraver) and additional brackets? This works for me: \version 2.18.2 \score { \new Staff \new Voice \with { \remove Note_heads_engraver \consists Completion_heads_engraver } \relative c'' { \time 2/4 a1*5/8 a a a } \new Staff \new Voice \relative c'' { \time 2/4 a4 a a a a a } } \score { \new Staff \new Voice \relative c'' { \time 2/4 a1*5/8 a a a } \new Staff \new Voice \relative c'' { \time 2/4 a4 a a a a a } \layout { \context { \Voice \remove Note_heads_engraver \consists Completion_heads_engraver } } } I put the \layout in the score to not affect the first score. For me, they yield the same result as you wanted. Cheers, Joram Am 14.10.2014 um 00:17 schrieb Mike Solomon: \score { \new Staff { \new Voice \with { \remove Note_heads_engravaer \consists Completion_heads_engraver } \relative c'' { \time 2/4 a1*5/8 a a a } } \new Staff \new Voice \relative c'' { \time 2/4 a4 a a a a a } } } \score { \new Staff { \new Voice \relative c'' { \time 2/4 a1*5/8 a a a } } \new Staff \new Voice \relative c'' { \time 2/4 a4 a a a a a } } \layout { \context { \Voice \remove Note_heads_engraver \consists Completion_heads_engraver } }} That must be it - I had two typos in two unrelated places in my maximal example that I managed to transfer, without even copying and pasting, to my minimal example. Need to sleep more… Cheers, MS ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Completion heads engraver
Am 14.10.2014 08:54, schrieb Mike Solomon: Need to sleep more… :-/ ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Feedback Request for Music Fonts
Hi Abraham, YES!, this can be done quite easily. As I explained on my personal website (the link is found near the bottom of fonts.openlilylib.org), https://sites.google.com/site/tisimst/Home/custom-font-how-to#localized-font-changes That's great! That's what I meant for this kind of task. THE KIND-OF-CAVEAT … The reason this isn't a great way to change the font globally is because it doesn't catch every layout object. You have to add additional \layout overrides to DynamicText, Fingering, Script, TrillSpanner, and a host of other layout objects in order to get everything. Yes, it could be easier. But I didn't expect it to be easy after what I have seen in the smufl commands. So your solution is just what I was looking for. And if I have done it once, I can easily do it for all new fonts. Cheers, Joram ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Need to clarify some commands in the docs
Hello folks, We have set, override, temporary/revert and tweak available, and maybe others I don’t know yet: when should one or the other be used, and with what kind of settings? Thanks for you help! JM ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Can I make a TextScript occupy no space, potentially colliding?
On Mon, 2014-10-13 at 14:47 +0200, David Kastrup wrote: Richard Shann rich...@rshann.plus.com writes: On Sun, 2014-10-12 at 17:49 +0100, Richard Shann wrote: Perfect! hmm, I spoke a little too soon. It seems that \with-dimensions kills point-and-click. Understandable with 0 as the dimension, but actually this doesn't seem to be the issue: \version 2.18.0 \score { { a1 ^\markup \with-dimensions #'(10 . -10) #'(10 . -10) %\with-url #'some link {\fontsize #12 A } } } with good-sized dimension here there is no point and click. They are not good-sized since the right edge is to left side of the left edge, and the lower edge is above the upper edge. Thank you - switching order of the pairs gets something that works. The documentation http://www.lilypond.org/doc/v2.18/Documentation/notation/other says \with-dimensions x (pair of numbers) y (pair of numbers) arg (markup) Set the dimensions of arg to x and y. If dimensions here is a LilyPond technical term defined elsewhere that is ok, otherwise it perhaps should be Set the dimensions of the markup to be defined by coordinates of lower left (x) and upper right (y) relative to the markup's reference point, in staff spaces. or whatever is actually correct here. Richard ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Contemporary Music Notation
Thanks for all the interest! I would hope to make whatever might be useful to others available. It would be great to let other people work on this code as I'm sure much of it could be improved. Thus far this code has only been for my purposes so it is only designed to work in the musical situations I encountered in my own work or study. It would be amazing to see how (and if) it could be furthered with help from the lilypond community. As a starter, the main issue with a lot of these techniques at the moment regards how line breaks are dealt with. Very often I'm using a custom stencil to override the Glissando.stencil. Finding a smart way to split a stencil would be a big step forward... all the best, piaras On 12 October 2014 22:31, Mike Solomon m...@mikesolomon.org wrote: On Oct 12, 2014, at 3:06 PM, Piaras Hoban phoba...@googlemail.com wrote: Hi all, I'm a bit late to the party here but hope I can contribute something. About two years ago I made the switch to using Lilypond exclusively as I was getting tired of exporting pdfs with basic music notation and overlaying graphics in Illustrator or some such. This was a real pain when doing parts or making even the smallest of changes. Since then I've used lilypond for a lot of pieces, all of which have some idiosyncratic notational devices. There's very little I haven't been able to implement successfully in lilypond (really just 1 thing that still evades me... customised barlines aligning with first beat of a measure...). 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. Many of these notational devices seem to be fairly standardized nowadays; or at least the symbols appear consistently, even if the interpretation of their meaning can vary a lot. 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. For completeness sake here's index of what you see in the linked PDF (naturally eveything you see here is generated using lilypond alone): 1) Split-stem chords/clusters 2) Stemmed glissando 3) Bezier glissando w/arrowhead 4) Variable width bezier glissando 5) Vibrato with variable/random period and slope 6) Interruptive polyphony 7) Lachenmann pressed bow 8) Billone beat notation 9) Pencil line emulation (after Charlie Sdraulig) 10) Sciarrino style jet-whistle 11) Woodwind fingering staff 12) Carin Levine style flute multiphonics 13) Klavierstuck X proof-of-concept 14) Sciarrino tremolo (with bezier hairpins) 15) Stockhausen cluster-glissando 16) Notation from a work of my own for violin Hope this might be illuminating for others; lilypond is great for this kind of stuff. best wishes, piaras hoban notation_sampler.pdf https://docs.google.com/file/d/0B0LUzVrFDYH8S0hQN0hLZHdnT2s/edit?usp=drive_web On 12 October 2014 06:22, SoundsFromSound soundsfromso...@gmail.com wrote: Urs Liska wrote Am 09.10.2014 06:31, schrieb Marco Bagolin: The notation contemporary music is so diverse, I know. I wonder if actually Lilypond has commands for drawing graphic symbols, as line circle, curve, square, circle, etc... A nice thing about LilyPond's approach is that once you have invented something you can make it available as a command so it can easily be reused. You can also make such commands process arguments so they can be versatile and context-dependent. As an example have a look at the attached image. This is what someone on the list (Piaras Hoban) came up with when I asked for a function to write a stemmed glissando notation. The underlying function is quite complicated but you can use it by simply writing \stemmedGlissando #'(15 . #f) c'4 to tell LilyPond that the next glissando will have 15 stems and no (the #f) trailing grace note to indicate the target note. Stemmed-glissando.png (34K) lt; http://lilypond.1069038.n5.nabble.com/attachment/167377/0/Stemmed-glissando.pnggt ; Urs, Is there more information on that stemmed gliss function? I'd be interested to read more on that for LilyPond. Thanks! Ben Incredible!! If you can, please post the sources on openlilylib.org. This is remarkable work that will be undoubtedly be of use to many people. All the best, ~Mike ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Automatic ottava handling
Wow! It works perfectly! I am officially replacing my software method with your Lilypond approach. Not only does it do everything I wanted but it has better fined-grained control since it uses ledger lines and not octave markings (like mine does). And it's got to be more efficient than mine (I had to create two separate loops outside the main Lilypond generating loop to handle both the treble and the bass). It's a superior solution all the way around. I've attached the same Lilypond file that I used yesterday and you can see that it handles everything just like I wanted. Amazing! Thank you very much! On Mon, Oct 13, 2014 at 6:47 PM, David Nalesnik david.nales...@gmail.com wrote: Hi, On Mon, Oct 13, 2014 at 1:18 PM, David Bellows davebell...@gmail.com wrote: OK, I've now played around with it and it works very nicely and will be easy to integrate into my software. You've already put a lot of work into this so I hate to point out any of my peculiar preferences, but just in case you feel like putting even more time into it here they are: 1. Add the 15va/vb marking as well. Done. 2. I'm not sure what standard practice is but you'll see in the score that my software produces it does not extend the ottava marking over rests. My music tends to have a lot of rests (a consequence of how it automatically changes staves) so it has a big effect on the overall look. Fixed. Standard practice is that an ottava should extend across rests if the note afterwards takes the ottava, too. If the rest is sufficiently long, the ottava is broken. I've incorporated the behavior you like, but I definitely believe that there should be a choice for the user to extend across rests. The function ought to be able to detect whether the ottava can extend: there are rests of sufficient length and the note after the rest needs the ottava. Under no circumstances should an ottava end over a rest, like you see on the version of your piece using \ottavate! 3. Change the text. In my score I just use 8 and 15 which given how crowded the score gets at times makes a big difference. It turns out that \set Staff.ottavation = #8 and the like have to be used after \ottava #1, so I had to work it into the function. In the future I could add an argument to the \ottavate to allow user variations--like 8b, for example. Right now, I hardcoded 8 and 15, as in your score. You select the version--default or short names--with a boolean value--that is ##t (short), ##f (default). %%% USAGE NOTES: Take the following example: musOne = \relative c''' { \clef treble g2 a b c d e f g a b c d e f g a b c d e f g } { \ottavate #'(4 . 7) #'(-3 . -6) ##t \musOne } ##t selects the shortened names 8 and 15 (4 . 7) specifies the range for 8: any note having 4-7 ledger lines (inclusive) gets an 8. Anything above this will get 15. (-3 . -6) specifies the range for 15: here the range is 3-6 ledger lines. I like the negative numbers because they are visually more expressive, though of course, there's no sense to negative numbers of ledger lines Chords are assigned ottavas based on the average of the ledger-line count of their constituent notes. I'm sure there's a better algorithm. If you're more mathematically able than me, please feel free to suggest something a bit more elegant :) In the future, there ought to be some analysis of groups of notes. So, for example, an out-of-range note within a group of notes receiving an ottava doesn't break the line. But I'd like to make sure what I have now works before I start enhancing it. Thanks again for the work you've put into this! You're very welcome. --David Piano_Standard.pdf Description: Adobe PDF document ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Trouble with fonts on Linux
Hi- I'm working on a piece for handbells and needed to borrow some articulation marks from (gasp) a Finale font. I have the font in my ~/.fonts directory, have refreshed my cache, and can use it in other programs (LibreOffice, etc.). The font also shows up with lilypond -dshow-available-fonts x I am trying to call it in this way: gyro = \markup { \fontsize #4 \override #'(font-name . Finale Percussion) { ! } } This works on Windows, but does not seem to work on Linux despite the font showing up with the above command. Any help would be greatly appreciated. Thanks! Jon ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Automatic ottava handling
On Tue, Oct 14, 2014 at 1:57 AM, Janek Warchoł What i find most fascinating about your work is that you say this after already making the function quite intelligent :) I appreciate that, but I'd like to have some sort of analysis of context, so you wouldn't end up shutting it off for inconvenient results. For example, compare the results of this: { \ottavate #'(4 . 7) #'(-3 . -6) ##t { \relative c { c16 c, c' c c c, c' c } } } with the much more readable: { \relative c { \ottava #1 c16 c, c' c c c, c' c } } But maybe this is an enhancement which could come later? BTW, I've verified that you can do overrides of individual brackets. You just don't have the benefit of \ottava #1 and the like in the ly file to tell you where to put them. --David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Automatic ottava handling
David, On Tue, Oct 14, 2014 at 10:53 AM, David Bellows davebell...@gmail.com wrote: Wow! It works perfectly! I am officially replacing my software method with your Lilypond approach. Not only does it do everything I wanted but it has better fined-grained control since it uses ledger lines and not octave markings (like mine does). And it's got to be more efficient than mine (I had to create two separate loops outside the main Lilypond generating loop to handle both the treble and the bass). It's a superior solution all the way around. I've attached the same Lilypond file that I used yesterday and you can see that it handles everything just like I wanted. Amazing! Thank you very much! You're very welcome! I'm glad to hear that it is working without a hitch. I'll continue to look at this, and make what improvements I can. If you run into any problems, please let me know. All the best, David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Automatic ottava handling
Hi David, But maybe this is an enhancement which could come later? I was going to chime in a lot earlier in this thread, with a suggestion for a “minimum in/out” parameter… but I thought better of it, since you were pushing ahead with improvements so quickly. =) Clearly, such an enhancement would make this just about the perfect ottavator. Great work. Best, Kieren. ___ Kieren MacMillan, composer www: http://www.kierenmacmillan.info email: i...@kierenmacmillan.info ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: automatic fingering annotation
thanks a lot david, i learned a lot from studying this! looks like there would be two options to get lilypond to report pitch info: \void \displayLilyMusic % types absolute pitches to console \include event-listener.ly % writes file w/midi numbers but your example inspired me to figure it out in scheme, see attached. i would think auto-fingering-diagrams would be of general interest -- is it worth submitting either to the snippet library or the core scm library? some questions: - how could i pass an argument to the engraver (like 'recorder, to tell it what diagrams to use)? - i can't find doc on make-engraver -- are there any? - this method ignored the layout overrides i need (that worked on manually entered markups): TextScript.staff-padding TextScript.self-alignment-X how do i get them back? - i like your 'display-fingering property, but i removed it for simplicity while trying to learn, i'll add it back... i also found http://www.lilypond.org/doc/v2.17/Documentation/learning/advanced-tweaks-with-scheme, which seems like it should also work and is simpler than defining a new engraver. however, i can't figure out how to find the right object/property to give a note/column a markup. NoteHead.text doesn't do anything. where do i look this up? ancillary layout q's: - getting the diagrams to line up looks impossible -- staff-padding isn't general enough -- woodwind diagrams are tall, of variable height, and their reference point is typically at their bottom. can staff-padding be sensitive to variable heights and appropriate for either above/below the staff? also, there seems to be no way to account for staff objects that extend beyond the anticipated amount. why not be able to assign objects to arbitrary groupings, and then apply justification/alignment rules to those groups? this could lead to contradictory constraints, but that could just be an error. - it took me a while to realize i had to set TextScript.staff-padding, not some other object like DynamicLineSpanner (which http://www.lilypond.org/doc/v2.17/Documentation/learning/fixing-overlapping-notation#the-staff_002dpadding-property suggests works even for non-spanning objects ) -- where are objects/properties comprehensively listed? - why can't i \context {\Score staff-padding = #5}? - self-alignment-X is behaving strangely -- on the first line, the diagrams align to the left note in a chord, but to the right note on subsequent lines. why? - i can't find anything along the lines of VerticalAxisGroup.nonstaff-unrelatedstaff-spacing that will give me additional spacing between lines, and the diagrams are crowding the next line. where do i look this up? - and of course, if anyone can help me figure out why that 1h ('half-covered') works for eg flute, but not on my recorder thumb :( thanks alot for the help! -e recorder fingering.ly Description: Binary data ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Trouble with fonts on Linux
Jon, On Tue, Oct 14, 2014 at 10:33 AM, Jon Arnold jonarnoldsem...@gmail.com wrote: Hi- I'm working on a piece for handbells and needed to borrow some articulation marks from (gasp) a Finale font. That's nothing to be (too) ashamed of :) I have the font in my ~/.fonts directory, have refreshed my cache, and can use it in other programs (LibreOffice, etc.). The font also shows up with lilypond -dshow-available-fonts x I am trying to call it in this way: gyro = \markup { \fontsize #4 \override #'(font-name . Finale Percussion) { ! } } This works on Windows, but does not seem to work on Linux despite the font showing up with the above command. Interesting... That is strange that a word-processing program works fine without doing anything, but not LP. I think the problem is the binary format of some Finale font files. When I converted it to a generic .OTF file, it worked for me. Do you have the capability to do this? Regards, Abraham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Trouble with fonts on Linux
Thanks so much! That worked instantly! For the record, I just used http://everythingfonts.com/ttf-to-otf to convert. On Tue, Oct 14, 2014 at 2:50 PM, Abraham Lee tisimst.lilyp...@gmail.com wrote: Jon, On Tue, Oct 14, 2014 at 10:33 AM, Jon Arnold jonarnoldsem...@gmail.com wrote: Hi- I'm working on a piece for handbells and needed to borrow some articulation marks from (gasp) a Finale font. That's nothing to be (too) ashamed of :) I have the font in my ~/.fonts directory, have refreshed my cache, and can use it in other programs (LibreOffice, etc.). The font also shows up with lilypond -dshow-available-fonts x I am trying to call it in this way: gyro = \markup { \fontsize #4 \override #'(font-name . Finale Percussion) { ! } } This works on Windows, but does not seem to work on Linux despite the font showing up with the above command. Interesting... That is strange that a word-processing program works fine without doing anything, but not LP. I think the problem is the binary format of some Finale font files. When I converted it to a generic .OTF file, it worked for me. Do you have the capability to do this? https://lists.gnu.org/mailman/listinfo/lilypond-user Regards, Abraham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Question about a midi file
When I compile the following: \version 2.19.15 Drum = \drummode { \set Staff.midiInstrument =#woodblock hiwoodblock4 wbh8 wbh wbh wbh wbh4 r4 r8 wbh8 r4 r8 wbh8 wbh4 \repeat unfold 12 { wbh16 } } \score { \new DrumStaff \with { drumStyleTable = #percussion-style \override StaffSymbol.line-count = #1 } \Drum \layout { } \midi { } } the midi notes appear on channel 10 as they should, but they are overlaid by what appears to be another percussion instrument playing the following simultaneously: \repeat unfold 3 { toml4\f toml\p toml toml } i.e., it sounds like a 4-beat metronome. Here I am using toml only because I don't know what percussion instrument is actually involved. What might be the explanation for this? and how to stop it? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Question about a midi file
2014-10-14 21:54 GMT+02:00 Patrick or Cynthia Karl pck...@mac.com: When I compile the following: \version 2.19.15 Drum = \drummode { \set Staff.midiInstrument =#woodblock hiwoodblock4 wbh8 wbh wbh wbh wbh4 r4 r8 wbh8 r4 r8 wbh8 wbh4 \repeat unfold 12 { wbh16 } } \score { \new DrumStaff \with { drumStyleTable = #percussion-style \override StaffSymbol.line-count = #1 } \Drum \layout { } \midi { } } the midi notes appear on channel 10 as they should, but they are overlaid by what appears to be another percussion instrument playing the following simultaneously: \repeat unfold 3 { toml4\f toml\p toml toml } i.e., it sounds like a 4-beat metronome. Here I am using toml only because I don't know what percussion instrument is actually involved. What might be the explanation for this? and how to stop it? I don’t get this behaviour (in 2.19.13). How do you playback the MIDI file? Are the metronome-notes actually in the MIDI file, or does your MIDI player software maybe have a metronome activated? -- Peter Crighton | Musician Music Engraver based in Mainz, Germany http://www.petercrighton.de ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: automatic fingering annotation
Hi Erik, On Tue, Oct 14, 2014 at 1:28 PM, erik flister erik.flis...@gmail.com wrote: thanks a lot david, i learned a lot from studying this! Glad to hear it! looks like there would be two options to get lilypond to report pitch info: \void \displayLilyMusic % types absolute pitches to console \include event-listener.ly % writes file w/midi numbers but your example inspired me to figure it out in scheme, see attached. i would think auto-fingering-diagrams would be of general interest -- is it worth submitting either to the snippet library or the core scm library? I think this would be a great idea. some questions: - how could i pass an argument to the engraver (like 'recorder, to tell it what diagrams to use)? Add a parameter to the engraver: autoFingerEngraver= #(lambda (instrument) (lambda (context) (make-engraver (acknowledgers ((note-column-interface trans grob source) (let* ((cause (event-cause grob)) (p (get-fingering (ly:pitch-semitones (ly:event-property cause 'pitch) (if (not (null? p)) (ly:grob-set-property! (ly:engraver-make-grob trans 'TextScript cause) 'text #{ \markup \woodwind-diagram #instrument #p #} Then you would call it later like this: \consists #(autoFingerEngraver 'recorder) - i can't find doc on make-engraver -- are there any? No, unfortunately not. You can find some material on C++ engravers in the Contributor's Guide, but nothing on Scheme engravers. There are a few in the LSR, and they surface from time to time on the lists. - this method ignored the layout overrides i need (that worked on manually entered markups): TextScript.staff-padding TextScript.self-alignment-X how do i get them back? Unfortunately, I'm not going to be able to help at the moment. Your recorder diagrams are still in review, and I find it very difficult to work with your file in LilyDev. I'll be happy to take another look when your patch is part of a release. - i like your 'display-fingering property, but i removed it for simplicity while trying to learn, i'll add it back... i also found http://www.lilypond.org/doc/v2.17/Documentation/learning/advanced-tweaks-with-scheme, which seems like it should also work and is simpler than defining a new engraver. I used a Scheme engraver because it gives easy access to context properties, and it's straightforward to create new grobs. Possibly you could do this through a music function. See the thread on Handling automatic ottavas for an example of something similar. I have to say that, given a choice, I'd rather use an engraver given the complexity of fiddling around with music lists. :) however, i can't figure out how to find the right object/property to give a note/column a markup. NoteHead.text doesn't do anything. where do i look this up? Well, you could override NoteColumn.stencil. Here's a short example: \version 2.19.15 #(define (notehead-stencil grob) (ly:stencil-aligned-to (ly:stencil-translate-axis (grob-interpret-markup grob #{ \markup foo #}) 3 Y) X CENTER)) { \override NoteColumn.stencil = #notehead-stencil c'' e'' c' e' c''' e''' } The example shows the big limitation here, which is that no notice at all is taken of collisions. I'll take a better look later, but I hope this is helpful. --David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Question about a midi file
On Oct 14, 2014, at 3:30 PM, Peter Crighton wrote: 2014-10-14 21:54 GMT+02:00 Patrick or Cynthia Karl pck...@mac.com: When I compile the following: \version 2.19.15 Drum = \drummode { \set Staff.midiInstrument =#woodblock hiwoodblock4 wbh8 wbh wbh wbh wbh4 r4 r8 wbh8 r4 r8 wbh8 wbh4 \repeat unfold 12 { wbh16 } } \score { \new DrumStaff \with { drumStyleTable = #percussion-style \override StaffSymbol.line-count = #1 } \Drum \layout { } \midi { } } the midi notes appear on channel 10 as they should, but they are overlaid by what appears to be another percussion instrument playing the following simultaneously: \repeat unfold 3 { toml4\f toml\p toml toml } i.e., it sounds like a 4-beat metronome. Here I am using toml only because I don't know what percussion instrument is actually involved. What might be the explanation for this? and how to stop it? I don’t get this behaviour (in 2.19.13). How do you playback the MIDI file? Are the metronome-notes actually in the MIDI file, or does your MIDI player software maybe have a metronome activated? Thanks for the information. I was using a midi player called Sweet Midi Player. I recompiled my problem file with lilypond v2.18.2 and found that I still had the problem. Then I played both midi's with QuickTime 7; there was no problem. Futher investigation showed that Sweet Midi Player did have an option to output metronome clicks on channel 10, and that it was enabled. I disabled it and the problem disappeared. Again, thanks.___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Text alignment
Hi Marco, please always reply to all. 2014-10-13 5:40 GMT+02:00 Marco Bagolin bagolin.ma...@gmail.com: Oh, ok! the code of MySample1.png is the following: \version 2.18.2 \relative c'' {e1 \trill \p \ | b'1 \trill| e b1 \trill ^\markup {\tiny \italic \halign #2 \raise #1.5 div.} ^\markup {\tiny (both trill)} {b1 \trill} \\ {\set Staff.ottavation = #Half 8va (opt.) \hideNotes b4 b b b \unset Staff.ottavation } R1\! } I'd like to reproduce exactly what you can see in Sample1.png. Sorry to come back to you that late. Maybe the following code does what you want: \version 2.19.13 \paper { ragged-right = ##f indent = 0 } #(define ((add-right-to-default-script mrkp) grob) (let* ((stil (ly:script-interface::print grob)) (X-offset (ly:grob-property grob 'X-offset)) (layout (ly:grob-layout grob)) (defs (ly:output-def-lookup layout 'text-font-defaults)) (word-space (assoc-get 'word-space defs)) ;(props (ly:grob-alist-chain grob defs)) (addition (grob-interpret-markup grob (markup #:normal-text mrkp))) (combined-stil (ly:stencil-combine-at-edge stil X RIGHT addition word-space))) combined-stil)) add-right-to-script = #(define-event-function (parser location mrkp music)(markup? ly:music?) #{ \tweak #'stencil #(add-right-to-default-script mrkp) $music #}) \relative c'' { e1 \trill \p \ | b'1*7/8 \trill s8-\tweak #'padding #1.5 ^\markup { \tiny \italic div. } e b1 -\tweak #'padding #0.8 \add-right-to-script \markup { %{\italic %} %{ \hspace #1 %} \fontsize #-1 (both trill) } \trill \override Staff.OttavaBracket.style = #'solid \set Staff.ottavation = \markup \halign #0 \fontsize #-1 Half 8va (opt.) b1*7/8 \trill s16. \once \hideNotes b32 | R1\! \unset Staff.ottavation } HTH, Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Unexpected behaviour of script-stencil-hack
Hi folks, consider the following code. \version 2.19.13 %\version 2.16.0 add-to-script = #(define-event-function (parser location mrkp music)(markup? ly:music?) #{ \tweak #'stencil #(lambda (grob) (let ( ;(X-offset (ly:grob-property grob 'X-offset)) ) (ly:stencil-combine-at-edge (ly:script-interface::print grob) X RIGHT (grob-interpret-markup grob (markup #:normal-text mrkp)) 0))) $music #}) { c''1 \add-to-script \markup x \trill } Hacking Script 'stencil I add markup to the default-stencil. Works as expected. Though, regard the local binding for X-offset. With 2.19.13: Commenting it will center the whole new Script-stencil above the parent. Uncomment it and you see the default Script-glyph in unchanged position and the additions right to it. That's unexpected, at least for me and doesn't happen with 2.16 (don't have 2.18 on this machine) Why does this happen? X-offset is _never_ called in the body! Shouldn't be the new stencil always be centered, because self-alignment-X is 0? I would expect a different alignment only, if I change the values for X-offset and/or self-alignment-X myself. Cheers, Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Unexpected behaviour of script-stencil-hack
Hi Harm, On Tue, Oct 14, 2014 at 5:38 PM, Thomas Morley thomasmorle...@gmail.com wrote: Hi folks, consider the following code. \version 2.19.13 %\version 2.16.0 add-to-script = #(define-event-function (parser location mrkp music)(markup? ly:music?) #{ \tweak #'stencil #(lambda (grob) (let ( ;(X-offset (ly:grob-property grob 'X-offset)) ) (ly:stencil-combine-at-edge (ly:script-interface::print grob) X RIGHT (grob-interpret-markup grob (markup #:normal-text mrkp)) 0))) $music #}) { c''1 \add-to-script \markup x \trill } Hacking Script 'stencil I add markup to the default-stencil. Works as expected. Though, regard the local binding for X-offset. With 2.19.13: Commenting it will center the whole new Script-stencil above the parent. Uncomment it and you see the default Script-glyph in unchanged position and the additions right to it. That's unexpected, at least for me and doesn't happen with 2.16 (don't have 2.18 on this machine) Why does this happen? X-offset is _never_ called in the body! Shouldn't be the new stencil always be centered, because self-alignment-X is 0? I would expect a different alignment only, if I change the values for X-offset and/or self-alignment-X myself. The function ly:grob-property evaluates callbacks. If you define X-offset using ly:grob-property-data you'll see no change. I actually have a patch to add to the docstring of ly:grob-property something about this. I was wondering--too obscure? No, I don't think so! This used to cause me no end of trouble with Y-offset callbacks. Best, David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Unexpected behaviour of script-stencil-hack
Hi David, 2014-10-15 0:54 GMT+02:00 David Nalesnik david.nales...@gmail.com: Hi Harm, On Tue, Oct 14, 2014 at 5:38 PM, Thomas Morley thomasmorle...@gmail.com wrote: Hi folks, consider the following code. \version 2.19.13 %\version 2.16.0 add-to-script = #(define-event-function (parser location mrkp music)(markup? ly:music?) #{ \tweak #'stencil #(lambda (grob) (let ( ;(X-offset (ly:grob-property grob 'X-offset)) ) (ly:stencil-combine-at-edge (ly:script-interface::print grob) X RIGHT (grob-interpret-markup grob (markup #:normal-text mrkp)) 0))) $music #}) { c''1 \add-to-script \markup x \trill } Hacking Script 'stencil I add markup to the default-stencil. Works as expected. Though, regard the local binding for X-offset. With 2.19.13: Commenting it will center the whole new Script-stencil above the parent. Uncomment it and you see the default Script-glyph in unchanged position and the additions right to it. That's unexpected, at least for me and doesn't happen with 2.16 (don't have 2.18 on this machine) Why does this happen? X-offset is _never_ called in the body! Shouldn't be the new stencil always be centered, because self-alignment-X is 0? I would expect a different alignment only, if I change the values for X-offset and/or self-alignment-X myself. The function ly:grob-property evaluates callbacks. Partly understood. Yes, I do want the data. Though why does it makes a difference? Seems there _is_ a difference, I don't fully understand, between getting the calculated data (via ly:grob-property-data as you describe below) and evaluating the callback. And why it does not happen with 2.16? If you define X-offset using ly:grob-property-data you'll see no change. Thanks for the hint! I'll need to dig in deeper ... I actually have a patch to add to the docstring of ly:grob-property something about this. I was wondering--too obscure? No, I don't think so! +1 This used to cause me no end of trouble with Y-offset callbacks. The code above is the boiled down tiny version of http://lists.gnu.org/archive/html/lilypond-user/2014-10/msg00400.html The alignment has driven me crazy for several hours ... Best, David Thanks, Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Unexpected behaviour of script-stencil-hack
Hi Harm, On Tue, Oct 14, 2014 at 6:15 PM, Thomas Morley thomasmorle...@gmail.com wrote: Hi David, 2014-10-15 0:54 GMT+02:00 David Nalesnik david.nales...@gmail.com: Hi Harm, On Tue, Oct 14, 2014 at 5:38 PM, Thomas Morley thomasmorle...@gmail.com wrote: Hi folks, consider the following code. \version 2.19.13 %\version 2.16.0 add-to-script = #(define-event-function (parser location mrkp music)(markup? ly:music?) #{ \tweak #'stencil #(lambda (grob) (let ( ;(X-offset (ly:grob-property grob 'X-offset)) ) (ly:stencil-combine-at-edge (ly:script-interface::print grob) X RIGHT (grob-interpret-markup grob (markup #:normal-text mrkp)) 0))) $music #}) { c''1 \add-to-script \markup x \trill } Hacking Script 'stencil I add markup to the default-stencil. Works as expected. Though, regard the local binding for X-offset. With 2.19.13: Commenting it will center the whole new Script-stencil above the parent. Uncomment it and you see the default Script-glyph in unchanged position and the additions right to it. That's unexpected, at least for me and doesn't happen with 2.16 (don't have 2.18 on this machine) Why does this happen? X-offset is _never_ called in the body! Shouldn't be the new stencil always be centered, because self-alignment-X is 0? I would expect a different alignment only, if I change the values for X-offset and/or self-alignment-X myself. The function ly:grob-property evaluates callbacks. Partly understood. Yes, I do want the data. Though why does it makes a difference? Seems there _is_ a difference, I don't fully understand, between getting the calculated data (via ly:grob-property-data as you describe below) and evaluating the callback. Try this: add-to-script = #(define-event-function (parser location mrkp music)(markup? ly:music?) #{ \tweak #'stencil #(lambda (grob) (let ( (X-offset-data (ly:grob-property-data grob 'X-offset)) (X-offset (ly:grob-property grob 'X-offset)) ) (format #t property-data: ~a~% grob-property: ~a~% X-offset-data X-offset) (ly:stencil-combine-at-edge (ly:script-interface::print grob) X RIGHT (grob-interpret-markup grob (markup #:normal-text mrkp)) 0))) $music #}) { c''1 \add-to-script \markup x \trill } grob-property-data returns what Script.X-offset is set to in the immutable property alist (what you see listed in scm/define-grobs, namely, script-interface::calc-X-offset ). ly:grob-property actually runs script-interface::calc-X-offset on the grob. If you assign X-offset-data _after_ X-offset, both will return the calculated value, because ly:grob-property-data checks the mutable properties alist first for X-offset, where the results of the calculation are now stored. You can see what's going on in lily/grob-property.cc. And why it does not happen with 2.16? Don't know why there's a difference. I wonder if Janek's work relates to this. If you define X-offset using ly:grob-property-data you'll see no change. Thanks for the hint! I'll need to dig in deeper ... I actually have a patch to add to the docstring of ly:grob-property something about this. I was wondering--too obscure? No, I don't think so! +1 It's not much (in keeping with the brevity there), but I think the callbacks are processed should be mentioned. Hope this is helpful! --David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Unexpected behaviour of script-stencil-hack
On Tue, Oct 14, 2014 at 5:38 PM, Thomas Morley thomasmorle...@gmail.com wrote: Why does this happen? X-offset is _never_ called in the body! But doing this: #(let ((message (display boo!\n))) '()) shows that what you're binding message to is evaluated. --David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
suppressing header info in bookparts
First of all, thanks to Simon for answering my previous question about how to get a split centered title in the running header. My adaptation of his solution is included below. Next, I am trying to use bookpart to separate songs in a multi-song book. The title of the piece remains the same, and I am using subtitle to identify each song. The problem I now have is in subsequent book parts, the headers are printing twice: 1) Once is the running header, which works as intended. 2) Then the header for the song (bookpart) is printed, which includes title, subtitle, poet, composer and arranger. Really, all I want is to print from the normal header is the subtitle. Here is what I have tried: o Setting arranger to is fine that does not need to get printed again. o Setting title to is fine since the value used in the running header uses fixed variables (not the dynamic context variables like \fromproperty #'header:title) o But for poet and composer, I either get the double printing, or if I set poet and composer to , they do not get printed in either the running header nor the bookpart header. So, my question boils down to: Is there a way to suppress printing of the poet and composer in a bookpart header (without setting the values to )? Thanks. Here is my example: \version 2.19.11 \include english.ly emDash = \markup \char ##x2014 titleKern = pageNumberKern = titleLeft = Indal titleRight = Haran \header { poet = Concert Pitch copyright = \markup { \tiny copyright © 2014 D. Elaine Alt } title = \markup { \fontsize #4 \bold \line { \titleLeft \titleRight } } composer = Traditional arranger = transcribed by D. Elaine Alt } \paper { print-page-number = ##t print-first-page-number = ##f oddHeaderMarkup = \markup { \on-the-fly #print-page-number-check-first \fill-line { \fromproperty #'header:poet \line { \titleLeft \titleKern \emDash \pageNumberKern \lower #0.55 \fontsize #6 \fromproperty #'page:page-number-string \pageNumberKern \emDash \titleKern \titleRight } \fromproperty #'header:composer } } evenHeaderMarkup = \oddHeaderMarkup oddFooterMarkup = \markup { \fill-line { \fromproperty #'header:copyright } } evenFooterMarkup = \oddFooterMarkup } dohaChaubolaDaud = \relative c'' { \key bf \major \numericTimeSignature \once \override Staff.TimeSignature #'stencil = ##f \time 4/4 \mark \markup { part 1 } bf8 bf bf a16 g bf2 | a8 a f g16 a g8 f4. | r8 bf ~ bf bf16 c af8. g16 f4 | r4 f16 g f g ef8. d16 c4 | r8 ef ~ ef ef16 f d4 c | bf1 \bar || \break \mark \markup { part 2 } bf'8 bf16 bf bf8 a16 c bf2 | bf16 bf bf8 a a g8. f16 g8 a | g8 f2.. | r8 bf ~ bf bf16 c af8. g16 f4 | r4 f16 g f g ef8. d16 c4 | r8 ef ~ ef ef16 f d4 c \bar || \break \mark \markup { part 3 } ef8 ef16 ef ef8 ef16 g f2 | bf8. af16 af4 g8 g16 g g8 g16 a | g8 f2.. | r8 bf ~ bf bf16 c af8. g16 f4 | f8 bf ~ bf f16 g ef8. d16 c4 | r8 ef ~ ef ef16 f d4 c | bf1 \bar || \break } dohaChand = \relative c' { \key bf \minor \numericTimeSignature \once \override Staff.TimeSignature #'stencil = ##f \time 4/4 \grace c16 ( df8 ) df df [ c16 bf ] c4 af8 bf16 c | df c bf c af bf8. ~ bf4 r | ef4 c ef8 ef16 ef f4 | bf8 bf16 bf bf8 af16 g af8 g16 f ~ f4 | r4 r8 ef16 f gf?8 f16 ef df8 c16 bf | bf2 r2 \bar || } % \book { \bookpart { \header { subtitle = Doha - Chaubola - Daud } \score { \new StaffGroup \new Staff { \set Staff.instrumentName = # \clef treble \transpose c c { \dohaChaubolaDaud } \pageBreak } } } \bookpart { \header { title = subtitle = Doha - Chand arranger = % If these are set to , then they are not printed in the running header. % If these are left with pre-existing values, then the names are printed twice, % once in the running header then once again above the score. % How can I get them to print in the running header, but not above the score? %composer = %poet = } \score { \new StaffGroup \new Staff { \set Staff.instrumentName = # \clef treble \transpose c c { \dohaChand } } } } } David Elaine Alt 415 . 341 .4954 *Confusion is highly underrated* ela...@flaminghakama.com self-immolation.info skype: flaming_hakama Producer ~
Re: Unexpected behaviour of script-stencil-hack
2014-10-15 2:15 GMT+02:00 David Nalesnik david.nales...@gmail.com: On Tue, Oct 14, 2014 at 5:38 PM, Thomas Morley thomasmorle...@gmail.com wrote: Why does this happen? X-offset is _never_ called in the body! But doing this: #(let ((message (display boo!\n))) '()) Ah, great example! shows that what you're binding message to is evaluated. --David -Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Anyone have experience with PDF/A-1b?
Hi, I want to try to produce PDF/A-1b files from Lilypond to submit to the Australian Music Centre (australianmusiccentre.com.au). It looks like it would be possible to do this by exporting to Postscript and using Ghostscript: http://www.ghostscript.com/doc/9.14/Ps2pdf.htm#PDFA Has anyone done this and have any tips or pitfalls before I start on this journey myself? Vaughan PS Here are the Australian Music Centre guidelines about file formats. I think they just want to be able to open the file in Finale or Sibelius, and save them as PDF with their PDF/A1-b -compliant process. The AMC's order of preference for file formats is as follows: 1. *Sibelius* or *Finale* files. These files are preferred as they can be used to generate the highest-quality archival production masters. *Non-standard fonts*: the AMC has access to a wide library of fonts. For Finale files AMC staff use the 'Data Check' function to identify any missing fonts and we will follow up with you should there be any issues. If you are a Sibelius user and are concerned about non-standard fonts, please use the notes box at the bottom of this page and staff will consult with you to ensure the appearance of your score is as you intend. *Layout concerns*: to ensure there is no discrepancy in the layout of your score when it is processed by the AMC, we firstly require that you use one of the AMC's supported paper sizes: A4, A3 or B4-JIS. Secondly, we recommend that you use Finale's 'Lock systems' or Sibelius's 'Lock format' functions to prevent the programs from reconfiguring the layout when the file is opened on the AMC's computers. 2. *PDF/A-1b* files. If you are unable to provide Finale or Sibelius files, but do have the ability to provide us with PDF/A-1b files, this is the AMC's second preferred submission method. PDF/A-1b is an archival version of the PDF file format designed to ensure consistent reproduction of a file's contents across different computers over time. All score materials processed by the AMC are eventually stored as PDF/A-1b files. Production of PDF/A-1b files is a fairly complex process and any submitted files must be validated by AMC staff as compliant. 3. *PDF* files. As a last resort, we will accept submissions of regular PDF files. This method should be avoided wherever posible as it presents the greatest difficulty in generating high-quality archival production masters. Materials submitted in this way will often have to be physically printed off and scanned - resulting in a loss in quality. Frequently Asked Questions *I don't use Finale or Sibelius - why don't you accept more formats?* Unfortunately the AMC does not have resources to purchase (and keep updated) copies, and train staff in all software packages which are available on the market to produce score materials. Finale and Sibelius are used by the vast majority of our repesented artists and this is why we accept materials in these file formats. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: extending event-listener.ly
It looks like this patch never made it into the current development repository (or it got put into some place I couldn't find it). I've manually tweaked my event-listener.ly for now, but wondered if this just sort of got mis-placed. We need to output some drum part events for some experiments we're doing. Any plans to integrate this into the main branches? At some point I need to customize the drum MIDI stuff a bit. I have a collection of percussion sounds that I need to custom-map, etc. Slowly learning... -- View this message in context: http://lilypond.1069038.n5.nabble.com/extending-event-listener-ly-tp143400p167571.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
Fwd: Text alignment
Hi all, I can not reproduce the attached Sample1.png. The best result I obtained is the attached MySample1.png with the following code: \version 2.18.2 \relative c'' {e1 \trill \p \ | b'1 \trill| e b1 \trill ^\markup {\tiny \italic \halign #2 \raise #1.5 div.} ^\markup {\tiny (both trill)} {b1 \trill} \\ {\set Staff.ottavation = #Half 8va (opt.) \hideNotes b4 b b b \unset Staff.ottavation } R1\! } but text (both trill) is not aligned with the trill symbol and Half 8va(opt.) font is bigger than the others. I tried some ways, but I don't understand where is my mistake. Please, can anyone help me? Thank you in advance at all Regards Marco B. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: suppressing header info in bookparts
Hello Flaming Hakama, I did this with a small piece of Scheme. %% Bookpart first page and last page predicates #(define (not-part-first-page layout props arg) (if (= (chain-assoc-get 'page:page-number props -1) (ly:output-def-lookup layout 'first-page-number)) empty-stencil (interpret-markup layout props arg))) \paper { print-page-number = ##t print-first-page-number = ##f oddHeaderMarkup = \markup { \on-the-fly #print-page-number-check-first \fill-line { \on-the-fly #not-part-first-page \fromproperty #'header:poet \line { \titleLeft \titleKern \emDash \pageNumberKern \lower #0.55 \fontsize #6 \fromproperty #'page:page-number-string \pageNumberKern \emDash \titleKern \titleRight } \on-the-fly #not-part-first-page \fromproperty #'header:composer } } evenHeaderMarkup = \oddHeaderMarkup oddFooterMarkup = \markup { \fill-line { \fromproperty #'header:copyright } } evenFooterMarkup = \oddFooterMarkup } Regards Helge ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
how to automatically left-align rehearsal marks at the beginning of a line
Hello, I occasionally have a rehearsal mark fall on the first measure of a line, and I have to manually make it left-aligned so it will print. (I use small margins.) However, then I have more manual work if the music layout changes enough that the rehearsal mark is no longer on the first measure of the line. I typically wait until the very end to do manual layout tweaks to minimize issues like this, but it would be nice not to have to do them at all. Here's a snippet which shows the problem in an extreme way: \relative c'' { c1 \mark \markup this should be left aligned | \break c1 } Is there a setting somewhere for this? Note: I don't want all rehearsal marks left-aligned - just the ones that happen to fall at the beginning of a line. The same question could be asked about rehearsal marks that are at the end of a line. Although the importance is much lower since AFAIK manual tweaking is usually necessary to even get a rehearsal mark at the end of a line. Thanks for your help! -Russ ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user