automatic fingering annotation
hi- i'm writing some software that generates .ly files and want to offer the option to automatically add (woodwind) fingering chart annotations to the engraving. the project is in haskell and i'd rather not learn scheme or lilypond internals. the problem is determining the octave -- i want to support relative octave entry (http://lilypond.org/doc/v2.18/Documentation/notation/writing-pitches#relative-octave-entry), but i don't want to reimplement relative octave detection (not because it's hard, but i in principle don't want to duplicate logic). i would think automatic fingering annotation would be a desirable feature in lilypond itself -- perhaps a markup flag where i request the standard fingering for the note, maybe some way of selecting a predefined alternate fingering (nice to have would be rules for determining prefered fingerings from the previous note, a way to define fingering libraries to choose from, etc). i assume that wouldn't be anyone's priority to implement, so either i could try to myself from within lilypond, or (my preference) i need some way to ask lilypond for the octave -- either an API or command-line program or something where i give an .ly snippet and lilypond gives me back the absolute pitches. what do you think would be the best way? thanks! -erik ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: recorder diagram and some woodwind-diagram bugs
Erik, On 12/10/14 04:05, erik flister wrote: hi there- sorry for cross posting to all the lists, i'd rather not subscribe and this post seems to apply to all three. attached is a recorder diagram patch, would love for feedback and for it to be incorporated. hopefully it's ok it's not actually in patch format, it just drops into display-woodwind-diagrams.scm (of course a corresponding entry needs to be added to woodwind-data-assembly-instructions in that file as well). Can you make it patch format? Then I can help push this through the proper review process. Although if you do want to wait for people to comment (and I am not qualified to ... sorry) then that is fine, but it will still need to be in patch format in the end, it's up to you. It's more likely to get more constructive reviews if it is a proper patch though. regards James my biggest problems: - 1h (half-covered) works for eg 'flute two', but on my recorder thumb (T) it doesn't work -- it just shows fully covered. - why are partial covers shown as shaded, then there is no distinction w/trills (ie 1h and 1hT are identical)? i don't know scheme, so i was mainly pattern-matching from existing diagrams. some issues i had while trying to figure this out: - what is the purpose of the baked-in cc/lh/rh grouping? - i can't find doc for draw-instructions rules -- seems to determine whether keys are hidden unless specified -- i didn't want that behavior, but was stuck unexpectedly getting it for a while. - difference between identity and return-1 -- they sound identical to me (when xy-scaling), but gave different results. - the style used encourages a lot of duplicated code -- it needs to be refactored so that keys are defined as simple declarative structures (with properties like name, group, position, complexity, stencil, textual-representation) and graphical/textual-commands derived therefrom. - similarly, key positions should be described in relative terms -- most stuff is absolute w/brittle hardcoding. - explicit support for when there is no text-override (key name instead of graphical stencil) available. i tripped across a previously reported bug that doesn't seem to have made it to the issue list even though it's a crash: (http://lists.gnu.org/archive/html/lilypond-user/2014-09/msg00405.html): c^ \markup \override #'(graphical . #f) { \woodwind-diagram #'tin-whistle #'() } C:/Program Files (x86)/LilyPond/usr/share/lilypond/current/scm/display-woodwind- diagrams.scm:1977:20: In procedure = in expression (= 0 (assoc-get node draw-ins tructions)): C:/Program Files (x86)/LilyPond/usr/share/lilypond/current/scm/display-woodwind- diagrams.scm:1977:20: Wrong type: #f also broken for saxophone (a different error tho), but works for piccolo. for tin-whistle, seems to be from use of CENTRAL-COLUMN-HOLE-H-LIST instead of CENTRAL-COLUMN-HOLE-LIST. - when using \override #'(graphical . #f) (is there a way to call this textual?) with an empty keylist, should show all possible text stencils (as it currently does for graphical). also, how are partial coverings/trills handled in this case? - would be nice if i didn't have to edit display-woodwind-diagrams.scm and instead could just \include my raw .scm file from a .ly file. thanks! -erik ___ bug-lilypond mailing list bug-lilyp...@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
How to get the total length of Sequential Music
Hello, I am relatively new to Lilypond. I try to check the total length of a SequentialMusic part, i.e. my_score_part = { c'4 d e f } I want to get the result 4 quarters (or any other numerical representation) and for my_score_part2 = { c'4 d e f g8} should deliver 4 quarter and 1 eighth. I found in the documentation the property: length-callback (procedure): ly:music-sequence::cumulative-length-callback but I don't know how to use it. I would be very thankful, if anybody could provide an example. Best regards Hans ___ 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: Double clef (canon)
Hi Pierre, I guess your suggestion should better the note spacing. I have to experiment on it though. Thank you, Andrea -- View this message in context: http://lilypond.1069038.n5.nabble.com/Double-clef-canon-tp167389p167447.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
Re: relative music inside music functions explodes when used twice
Janek Warchoł janek.lilyp...@gmail.com writes: 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. I'm not even sure I understand _how_ you want the relativization to happen. One after the other? 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 } #})) 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... 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. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Double clef (canon)
Hi Harm, I don't really have a personal setup for mensural music. Recently I begun a project that involves a lot of mensural notation, therefore I am still learning and noticing . Usually I adjust flaws when they occur, just within the notation rather than on the layout level, but I guess this is a flaw inherent on my way of working with Lilypond, as I have never learnt it in a theoretical and comprehensive way, adjusting my learning to specific needs as per occurrence. So far I think mensural and neomensural notation fonts to be a little unbalanced. The diamond shaped noteheads are too small, in my opinion, while the square shaped noteheads are generally good. I usually increase noteheads size, but not as much as I would, as the risk is getting breves and longae noteheads too big. I think there should be a way to selectively increase noteheads sizes, but I still have to sort out the problem. Actually, before consolidating my opinion I should try see more of it in print: so far I am just in the phase of making drafts. I also usually increase stems thickness, but, again, I should evaluate this on paper rather than on screen. Longae stems are too short, generally speaking (why are they built in the glyph??? Not that I dislike it, actually it solved so many issues I had!). The real pain comes with ligatures: I have to revert the noteheads size to default whenever I want to type ligatures, with the unnerving result that ligatures look smallish, especially compared to squared noteshapes. On the other side, if I don't revert noteheads to their normal sizes, spacing within ligatures is completely scattered. Obtaining black or half coloured ligatures is also quite painful, but I still have to study the problem a little bit closer, as I guess changing the font to black mensural should partly overcome the issue. Again, as for the font balance, I have sometimes to mix mensural and neomensural or petrucci shapes, especially for clefs and time signature symbols. Probably this is due to the fact that it is impossible to have a consistent classification of these glyphs, because I think printers of various times and locations used a variety of mixed shapes. But, again, a bass mensural clef is really too small, compared, say, to a petrucci C clef. Overall, I feel the mensural part of our feta font works better in giving the idea of a handwritten score rather than of a printed one. You also noticed dots are generally too big, and some of the alteration symbols are too small. Finally, the available repertoire of time signature symbols is not complete. I had to type a piece with many proportional changes and I finally decided to include in my scores a separate file with 20 custom time signature commands, some of them being already implemented, others being made by adding fractions to existing glyphs. Thankfully I haven't yet found a score with a double crossed time signature symbol (like a O with an X above it), but I feel this kind of symbol could be easily added to the font. In typing proportional music I prefer to use a standard 2/1 time, my custom time signature symbols and \scaleDurations accordingly. So far it has been the easiest way: still I remind myself that I have never planned one of these projects globally from scratch, but I am guilty of always working on problem by problem occurrence solutions. These are some of the features I am introducing so far in my mensural typewriting, warning that they still have to be fine tuned when proofed on paper (and printed at different sizes too): \override Stem.neutral-direction = #up \override NoteHead #'font-size = #2 \override Dots #'font-size = #-2 \override Stem.thickness = #2.0 I'd also like to hear from yours and others opinion on the topic. Andrea -- View this message in context: http://lilypond.1069038.n5.nabble.com/Double-clef-canon-tp167389p167449.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
Re: recorder diagram and some woodwind-diagram bugs
ok here you go On Sun, Oct 12, 2014 at 2:31 AM, James pkx1...@gmail.com wrote: Erik, On 12/10/14 04:05, erik flister wrote: hi there- sorry for cross posting to all the lists, i'd rather not subscribe and this post seems to apply to all three. attached is a recorder diagram patch, would love for feedback and for it to be incorporated. hopefully it's ok it's not actually in patch format, it just drops into display-woodwind-diagrams.scm (of course a corresponding entry needs to be added to woodwind-data-assembly-instructions in that file as well). Can you make it patch format? Then I can help push this through the proper review process. Although if you do want to wait for people to comment (and I am not qualified to ... sorry) then that is fine, but it will still need to be in patch format in the end, it's up to you. It's more likely to get more constructive reviews if it is a proper patch though. regards James my biggest problems: - 1h (half-covered) works for eg 'flute two', but on my recorder thumb (T) it doesn't work -- it just shows fully covered. - why are partial covers shown as shaded, then there is no distinction w/trills (ie 1h and 1hT are identical)? i don't know scheme, so i was mainly pattern-matching from existing diagrams. some issues i had while trying to figure this out: - what is the purpose of the baked-in cc/lh/rh grouping? - i can't find doc for draw-instructions rules -- seems to determine whether keys are hidden unless specified -- i didn't want that behavior, but was stuck unexpectedly getting it for a while. - difference between identity and return-1 -- they sound identical to me (when xy-scaling), but gave different results. - the style used encourages a lot of duplicated code -- it needs to be refactored so that keys are defined as simple declarative structures (with properties like name, group, position, complexity, stencil, textual-representation) and graphical/textual-commands derived therefrom. - similarly, key positions should be described in relative terms -- most stuff is absolute w/brittle hardcoding. - explicit support for when there is no text-override (key name instead of graphical stencil) available. i tripped across a previously reported bug that doesn't seem to have made it to the issue list even though it's a crash: (http://lists.gnu.org/archive/html/lilypond-user/2014-09/msg00405.html): c^ \markup \override #'(graphical . #f) { \woodwind-diagram #'tin-whistle #'() } C:/Program Files (x86)/LilyPond/usr/share/lilypond/current/scm/display-woodwind- diagrams.scm:1977:20: In procedure = in expression (= 0 (assoc-get node draw-ins tructions)): C:/Program Files (x86)/LilyPond/usr/share/lilypond/current/scm/display-woodwind- diagrams.scm:1977:20: Wrong type: #f also broken for saxophone (a different error tho), but works for piccolo. for tin-whistle, seems to be from use of CENTRAL-COLUMN-HOLE-H-LIST instead of CENTRAL-COLUMN-HOLE-LIST. - when using \override #'(graphical . #f) (is there a way to call this textual?) with an empty keylist, should show all possible text stencils (as it currently does for graphical). also, how are partial coverings/trills handled in this case? - would be nice if i didn't have to edit display-woodwind-diagrams.scm and instead could just \include my raw .scm file from a .ly file. thanks! -erik ___ bug-lilypond mailing list bug-lilyp...@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond 0001-added-recorder-diagram.patch Description: Binary data ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Contemporary Music Notation
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 - composer | sound designer LilyPond Tutorials (for beginners) -- http://bit.ly/bcl-lilypond -- View this message in context: http://lilypond.1069038.n5.nabble.com/Contemporary-Music-Notation-tp167324p167437.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 fingering annotation
Hi Erik, On Sun, Oct 12, 2014 at 2:35 AM, erik flister erik.flis...@gmail.com wrote: hi- i'm writing some software that generates .ly files and want to offer the option to automatically add (woodwind) fingering chart annotations to the engraving. the project is in haskell and i'd rather not learn scheme or lilypond internals. the problem is determining the octave -- i want to support relative octave entry ( http://lilypond.org/doc/v2.18/Documentation/notation/writing-pitches#relative-octave-entry ), but i don't want to reimplement relative octave detection (not because it's hard, but i in principle don't want to duplicate logic). i would think automatic fingering annotation would be a desirable feature in lilypond itself -- perhaps a markup flag where i request the standard fingering for the note, maybe some way of selecting a predefined alternate fingering (nice to have would be rules for determining prefered fingerings from the previous note, a way to define fingering libraries to choose from, etc). i assume that wouldn't be anyone's priority to implement, so either i could try to myself from within lilypond, or (my preference) i need some way to ask lilypond for the octave -- either an API or command-line program or something where i give an .ly snippet and lilypond gives me back the absolute pitches. I can't offer any suggestions about manipulating the text file, but I hope the following will be useful to you. It is possible to create markups in the score through a Scheme engraver. The one I've attached looks for a NoteHead that has had its 'display-property property set to #t. (Aside 1:This is an invented property, and there is currently no good way to add a property except by adding it to the codebase. This method will probably cause problems if you try to process a batch of files--though removing the symbol redefined error will likely fix that.) (Aside 2: I've thought for a long time that adding a generic marker property to grobs would be very useful: store whatever you want in it to act as an ID.) This engraver prints the octave of notes in the score by way of a markup command \placeholder, where you could substitute whatever logic goes into making woodwind diagrams. You'll want other info about the pitch, of course, and there are Scheme functions for that. See http://lilypond.org/doc/v2.18/Documentation/internals/scheme-functions. Best, David \version 2.19.10 #(define (define-grob-custom-property symbol type? description) (if (not (equal? (object-property symbol 'backend-doc) #f)) (ly:error (_ symbol ~S redefined) symbol)) (set-object-property! symbol 'backend-type? type?) (set-object-property! symbol 'backend-doc description) symbol) #(define all-user-grob-custom-properties (map (lambda (x) (apply define-grob-custom-property x)) `((display-fingering ,boolean? Display woodwind fingering #(define-markup-command (placeholder layout props arg) (number?) (interpret-markup layout props (number-string arg))) textToMarkedEngraver= #(lambda (context) (make-engraver (acknowledgers ((note-head-interface trans grob source) (let* ((cause (event-cause grob)) (p (ly:event-property cause 'pitch)) (marked? (ly:grob-property grob 'display-fingering)) (marked? (and (boolean? marked?) marked?))) (if marked? (let* ((t (ly:engraver-make-grob trans 'TextScript cause))) (ly:grob-set-property! t 'text #{ \markup \placeholder #(ly:pitch-octave p) #} markAll = \override NoteHead.display-fingering = ##t markOne = \once \markAll %%% EXAMPLE \relative c { \clef bass c, \markOne c' c' \clef treble c' \markAll c' c' } \layout { \context { \Staff \consists #textToMarkedEngraver } }___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: automatic fingering annotation
On Sun, Oct 12, 2014 at 9:34 AM, David Nalesnik david.nales...@gmail.com wrote: It is possible to create markups in the score through a Scheme engraver. The one I've attached looks for a NoteHead that has had its 'display-property property set to #t. I mean 'display-fingering... ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Contemporary Music Notation
On Sun, Oct 12, 2014 at 7:06 AM, Piaras Hoban phoba...@googlemail.com wrote: 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. I'm speechless! --David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How to get the total length of Sequential Music
Hi Hans, On Sun, Oct 12, 2014 at 4:38 AM, Hans Sommer hansisom...@gmx.de wrote: Hello, I am relatively new to Lilypond. I try to check the total length of a SequentialMusic part, i.e. my_score_part = { c'4 d e f } I want to get the result 4 quarters (or any other numerical representation) and for my_score_part2 = { c'4 d e f g8} (This isn't a valid name for a variable, so I changed it below.) should deliver 4 quarter and 1 eighth. I found in the documentation the property: length-callback (procedure): ly:music-sequence::cumulative-length-callback but I don't know how to use it. I would be very thankful, if anybody could provide an example. I'm not familiar with this property, but it's relatively easy to determine the length of a music expression. Try this: \version 2.19.10 my_score_part = { c'4 d e f } my_score_part_two = { c'4 d e f g8 } #(display (ly:music-length my_score_part)) #(display (ly:music-length my_score_part_two)) Hope this is helpful, David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: automatic fingering annotation
Hello David, Am 12.10.2014 um 16:34 schrieb David Nalesnik: Hi Erik, On Sun, Oct 12, 2014 at 2:35 AM, erik flister erik.flis...@gmail.com mailto:erik.flis...@gmail.com wrote: hi- i'm writing some software that generates .ly files and want to offer the option to automatically add (woodwind) fingering chart annotations to the engraving. the project is in haskell and i'd rather not learn scheme or lilypond internals. the problem is determining the octave -- i want to support relative octave entry (http://lilypond.org/doc/v2.18/Documentation/notation/writing-pitches#relative-octave-entry), but i don't want to reimplement relative octave detection (not because it's hard, but i in principle don't want to duplicate logic). i would think automatic fingering annotation would be a desirable feature in lilypond itself -- perhaps a markup flag where i request the standard fingering for the note, maybe some way of selecting a predefined alternate fingering (nice to have would be rules for determining prefered fingerings from the previous note, a way to define fingering libraries to choose from, etc). i assume that wouldn't be anyone's priority to implement, so either i could try to myself from within lilypond, or (my preference) i need some way to ask lilypond for the octave -- either an API or command-line program or something where i give an .ly snippet and lilypond gives me back the absolute pitches. I can't offer any suggestions about manipulating the text file, but I hope the following will be useful to you. It is possible to create markups in the score through a Scheme engraver. The one I've attached looks for a NoteHead that has had its 'display-property property set to #t. (Aside 1:This is an invented property, and there is currently no good way to add a property except by adding it to the codebase. This method will probably cause problems if you try to process a batch of files--though removing the symbol redefined error will likely fix that.) (Aside 2: I've thought for a long time that adding a generic marker property to grobs would be very useful: store whatever you want in it to act as an ID.) Perhaps the id property in http://lilypond.org/doc/v2.18/Documentation/internals/grob_002dinterface? That came to my mind. Yours, Simon ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Contemporary Music Notation
That's terrific! We should get in touch privately about the library stuff. Urs Am 12. Oktober 2014 14:06:17 MESZ, schrieb Piaras Hoban phoba...@googlemail.com: 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 - composer | sound designer LilyPond Tutorials (for beginners) -- http://bit.ly/bcl-lilypond -- View this message in context: http://lilypond.1069038.n5.nabble.com/Contemporary-Music-Notation-tp167324p167437.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 ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Feedback Request for Music Fonts
Hi Abraham, thanks for your reply. Does your machinery allow to take these numbers from Bravura for example and put it in a normal text font? By default, the tuplet numbers come from whatever is set to be the \roman font. \version 2.19.14 \transpose c c' { % default (Century Schoolbook) \tuplet 3/2 { a8 a a } % bold (Century Schoolbook) - closer to Bravura \override TupletNumber.font-series = #'bold \tuplet 3/2 { a a a } % from Emmentaler (bold numbers) - your suggestion \override TupletNumber.font-encoding = #'fetaText \override TupletNumber.font-size = #-4 \tuplet 3/2 { a a a } % tuplet number from Bravura (U+E883) - what I wanted! \override TupletNumber.font-name = Bravura \override TupletNumber.font-size = #3.5 \override TupletNumber #'text = \tuplet 3/2 { a a a } } This example shows four different tuplet numbers. The last one is what I wanted: the dedicated Bravura tuplet number on code point U+E883. To achieve that I had to put Bravura in /usr/share/fonts. I was wondering why installing it under Ubuntu does not work and copying into /usr/share/fonts of the LP directory structure does not work, neither. A real solution would be if this number would be calculated automatically. But I couldn't get it to work: \override TupletNumber #'text = #(integer-char (+ 59520 (tuplet-number::calc-denominator-text))) I am trying that out, because it would help to get a consistent style for the new fonts including the text font part. 2) Do you or does anyone know text fonts similar to the ones used in many old scores, like here: http://javanese.imslp.info/files/imglnks/usimg/7/7f/IMSLP00115-Chopin_-_Ballade_No1.pdf I've often looked for some nice fonts like those. A nice one I've found is called OldStandardTT. It's free and supports an extensive character set including Latin, Greek, and Cyrillic: http://www.fontsquirrel.com/fonts/old-standard-TT Just to share what I found yesterday: http://www.fontsquirrel.com/fonts/DubielPlain But I am not really convinced (there are some irregularities e.g. in the letter a). I'm actually working on a few right now that have a similar feel as those found in the Chopin score, but I can't say when they'll be done and ready for prime-time. I will be interested whenever it gets ready. Joram ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re:Contemporary Music Notation
On 10/12/2014 11:35 AM, lilypond-user-requ...@gnu.org wrote: Message: 2 Date: Sun, 12 Oct 2014 09:52:50 -0500 From: David Nalesnik david.nales...@gmail.com To: Piaras Hoban phoba...@googlemail.com Cc: lilypond-user lilypond-user@gnu.org Subject: Re: Contemporary Music Notation Message-ID: cann-nxkjdxaf65ofnyyknbrwsz4bsk7mjyxcohs7ar_qajo...@mail.gmail.com Content-Type: text/plain; charset=utf-8 On Sun, Oct 12, 2014 at 7:06 AM, Piaras Hoban phoba...@googlemail.com wrote: 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. I'm speechless! --David Very impressive ! Best, dp ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Can I make a TextScript occupy no space, potentially colliding?
In this code I put a large letter A above the music. If I uncomment the tweak the letter A is moved elsewhere, but it still takes up space at the top of the score. If I uncomment the override, I don't get the space back. \version 2.18.0 \score { { %\override TextScript.Y-extent = #'(0 . 0) a1 %-\tweak #'extra-offset #'(7 . -12) ^\markup {\fontsize #12 A } } } Is there a way to stop LilyPond trying to prevent my TextScript colliding - to say that it occupies, say, no space? Richard ___ 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?
Am 12.10.2014 um 18:21 schrieb Richard Shann: In this code I put a large letter A above the music. If I uncomment the tweak the letter A is moved elsewhere, but it still takes up space at the top of the score. If I uncomment the override, I don't get the space back. \version 2.18.0 \score { { %\override TextScript.Y-extent = #'(0 . 0) a1 %-\tweak #'extra-offset #'(7 . -12) ^\markup {\fontsize #12 A } } } Is there a way to stop LilyPond trying to prevent my TextScript colliding - to say that it occupies, say, no space? Richard Hello Richard, try: \version 2.18.0 \score { { a1 %-\tweak #'extra-offset #'(7 . -12) ^\markup { \with-dimensions #'(0 . 0) #'(0 . 0) \fontsize #12 A } } } HTH, Simon ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: ly:pitch and string
Hello Paul, Thanks for your help in improving the helper functions; however, ‘inverting’ string-append and cond seems to be based on a misunderstanding. It needs to be %% \version 2.19.12 \language deutsch pitch-to-key-string-german = #(define-scheme-function (parser location p mode) (ly:pitch? string?) (let* ((major? (equal? mode major)) (nn (ly:pitch-notename p)) (nn-string (if major? (list-ref '(C D E F G A H) nn) (list-ref '(c d e f g a h) nn))) (alt (ly:pitch-alteration p)) (alt-num (+ 2 (* 2 (ly:pitch-alteration p (alt-string (list-ref '(eses es is isis) alt-num)) ;pitch without octave (na (cons nn alt)) ;helper functions for exceptions in german note naming (test (lambda (n a) (equal? na (cons n a (exc (lambda (ma mi) (if major? ma mi (string-append nn-string (cond ((test 2 -1) (exc Eses eses)) ((test 2 -1/2) (exc Es es)) ((test 5 -1) (exc Asas asas)) ((test 5 -1/2) (exc As as)) ((test 6 -1/2) (exc B b)) (else alt-string) (cond ((test 2 -1) (exc Eses eses)) ((test 2 -1/2) (exc Es es)) ((test 5 -1) (exc Asas asas)) ((test 5 -1/2) (exc As as)) ((test 6 -1/2) (exc B b)) (else (string-append nn-string alt-string) newTonic = disis' newTonicString = \pitch-to-key-string-german \newTonic major % for testing: #(display (string-append in- newTonicString)) \bookOutputSuffix #(string-append in- newTonicString) \score { \transpose c \newTonic { c' } } %% and then it works very well. Yours, Simon ___ 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?
Perfect! I've found that in the documentation as well... Thank you very much, Richard On Sun, 2014-10-12 at 18:40 +0200, Simon Albrecht wrote: Am 12.10.2014 um 18:21 schrieb Richard Shann: In this code I put a large letter A above the music. If I uncomment the tweak the letter A is moved elsewhere, but it still takes up space at the top of the score. If I uncomment the override, I don't get the space back. \version 2.18.0 \score { { %\override TextScript.Y-extent = #'(0 . 0) a1 %-\tweak #'extra-offset #'(7 . -12) ^\markup {\fontsize #12 A } } } Is there a way to stop LilyPond trying to prevent my TextScript colliding - to say that it occupies, say, no space? Richard Hello Richard, try: \version 2.18.0 \score { { a1 %-\tweak #'extra-offset #'(7 . -12) ^\markup { \with-dimensions #'(0 . 0) #'(0 . 0) \fontsize #12 A } } } HTH, Simon ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: practice/volunteer opportunities
truthling wrote 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 Hello Andrew! Welcome to the LilyPond community/mailing list! :) -Ben - composer | sound designer LilyPond Tutorials (for beginners) -- http://bit.ly/bcl-lilypond -- View this message in context: http://lilypond.1069038.n5.nabble.com/practice-volunteer-opportunities-tp167462p167469.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
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: e,1 \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 } 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: Can I make a TextScript occupy no space, potentially colliding?
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. If I uncomment the \with-url in this code then the A *is* clickable - and the clickable area is the area of the letter not the 200x200 square. So, if there is no easy way to get point-and-click back, can I re-construct the link that point and click would have given using \with-url? (Point-and-click is essential my application...) Richard I've found that in the documentation as well... Thank you very much, Richard On Sun, 2014-10-12 at 18:40 +0200, Simon Albrecht wrote: Am 12.10.2014 um 18:21 schrieb Richard Shann: In this code I put a large letter A above the music. If I uncomment the tweak the letter A is moved elsewhere, but it still takes up space at the top of the score. If I uncomment the override, I don't get the space back. \version 2.18.0 \score { { %\override TextScript.Y-extent = #'(0 . 0) a1 %-\tweak #'extra-offset #'(7 . -12) ^\markup {\fontsize #12 A } } } Is there a way to stop LilyPond trying to prevent my TextScript colliding - to say that it occupies, say, no space? Richard Hello Richard, try: \version 2.18.0 \score { { a1 %-\tweak #'extra-offset #'(7 . -12) ^\markup { \with-dimensions #'(0 . 0) #'(0 . 0) \fontsize #12 A } } } HTH, Simon ___ 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 alignment
2014-10-12 19:26 GMT+02:00 Marco Bagolin bagolin.ma...@gmail.com: Hi all, I can not reproduce the attached Sample1.png. The best result I obtained is the attached MySample1.png with the following code: Hi Marco, please always post a _compilable_ code, showing your problem and matching with images you post. -Harm e,1 \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 } 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 ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Automatic ottava handling
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 \version 2.19.10 #(define (ledger-line-no middle-C-pos p) Returns the number of ledger-lines a pitch @var{p} will have with middle C position @var{middle-C-pos} expressed as staff-steps from the middle staff line. (let* ((ps (ly:pitch-steps p)) (mid-staff-steps (- middle-C-pos)) (top-line (+ mid-staff-steps 4)) (bottom-line (- mid-staff-steps 4)) (above? ( ps top-line)) (below? ( ps bottom-line)) (steps-outside-staff (cond (below? (- ps bottom-line)) (above? (- ps top-line)) (else 0 (truncate (/ steps-outside-staff 2 #(define (find-clefMiddleCPosition mus) (let ((clef-pos -6)) ; treble is default (for-some-music (lambda (x) (let ((n (ly:music-property x 'symbol))) (and (eq? n 'middleCClefPosition) (set! clef-pos (ly:music-property x 'value) mus) clef-pos)) #(define (make-ottava-music arg) (list (make-music 'OttavaMusic 'ottava-number arg))) ottavate = #(define-music-function (parser location upper lower mus) (integer? number? ly:music?) Create an ottava for notes based on number of ledger lines. Ledger lines above the staff are specified in @var{upper} as positive integers; an 8va will be created for notes with at least this many lines. Ledger lines below the staff are specified in @var{lower} as negative numbers; an 8va bassa will be created for notes with at least the absolute value of this number. Choose an number of ledger lines which does not appear in the music expression to prevent either from appearing. All notes in a chord must pass the threshold to receive an ottava. (let ((up-an-octave (make-ottava-music 1)) (down-an-octave (make-ottava-music -1)) (loco (make-ottava-music 0))) (define (up-or-down-an-octave clef-pos mus-expr) ; select from variables up-an-octave and down-an-octave ; return #f if no displacement (cond ((music-is-of-type? mus-expr 'event-chord) (cond ((every (lambda (p) (= (ledger-line-no clef-pos (ly:music-property p 'pitch)) upper)) (ly:music-property mus-expr 'elements)) up-an-octave) ((every (lambda (p) (= (ledger-line-no clef-pos (ly:music-property p 'pitch)) lower)) (ly:music-property mus-expr 'elements)) down-an-octave) (else #f))) ((music-is-of-type? mus-expr 'note-event) (cond ((= (ledger-line-no clef-pos (ly:music-property mus-expr 'pitch)) upper) up-an-octave) ((= (ledger-line-no clef-pos (ly:music-property mus-expr 'pitch)) lower) down-an-octave) (else #f) (define (no-ottava clef-pos mus-expr) (not (up-or-down-an-octave clef-pos mus-expr))) (define (build-new-elts mus-expr new-expr start-loco? start-ottava? clef-pos) (if (null? mus-expr) ;; ensure that ottava does not extend past a localized ;; use of \ottavate (append new-expr loco) (begin ;; find value for 'clefMiddleCPosition (if (eq? (ly:music-property (car mus-expr) 'name) 'ContextSpeccedMusic) (set! clef-pos (find-clefMiddleCPosition (car mus-expr (cond ((or (music-is-of-type? (car mus-expr) 'event-chord) (music-is-of-type? (car mus-expr) 'note-event)) (cond ((and start-ottava? (up-or-down-an-octave clef-pos (car mus-expr))) (build-new-elts (cdr mus-expr) (append new-expr (up-or-down-an-octave clef-pos (car mus-expr)) (list (car mus-expr))) #t #f clef-pos)) ((and start-loco? (no-ottava clef-pos (car mus-expr))) (build-new-elts (cdr mus-expr) (append new-expr loco (list (car mus-expr))) #f #t clef-pos)) (else
Re: Automatic ottava handling
That is amazing work! I don't have the time to experiment with it right now but I will do so tonight and let you know tomorrow the results. But based on your example this looks like it will be perfect. I think the negative numbers for the bassa is a good choice as that was what I was imagining in the first place. Thanks for all your work on this! On Sun, Oct 12, 2014 at 12:07 PM, David Nalesnik david.nales...@gmail.com wrote: 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
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
practice/volunteer opportunities
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
Re: Contemporary Music Notation
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 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: practice/volunteer opportunities
2014-10-12 18:03 GMT+02:00 truthling heartsa...@gmail.com: 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. Hi Andrew, welcome! Do you know Mutopia? http://www.mutopiaproject.org/contribute.html ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Fwd: Re: practice/volunteer opportunities
Original-Nachricht Betreff:Re: practice/volunteer opportunities Datum: Sun, 12 Oct 2014 21:49:58 +0200 Von:Urs Liska u...@openlilylib.org An: SoundsFromSound soundsfromso...@gmail.com Hello Andrew, I can propose you a project that would be happy about your collaboration. It is already under way but I don't think it's too late. We are doing a quite huge orchestral score in a collaborative edition effort. You may look at the following pages to get an impression of the project: http://lilypondblog.org/2014/10/crowd-engraving-picking-up-speed/ http://lilypondblog.org/2014/10/approaching-a-big-score/ https://git.ursliska.de/beautifulscores/das-trunkne-lied/wikis/Table-of-Contents.md http://das-trunkne-lied.beautifulscores.net/status/ Best wishes Urs Am 12.10.2014 18:54, schrieb SoundsFromSound: truthling wrote 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 Hello Andrew! Welcome to the LilyPond community/mailing list! :) -Ben - composer | sound designer LilyPond Tutorials (for beginners) -- http://bit.ly/bcl-lilypond -- View this message in context: http://lilypond.1069038.n5.nabble.com/practice-volunteer-opportunities-tp167462p167469.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: How to get the total length of Sequential Music
David Nalesnik david.nalesnik at gmail.com writes: Hi Hans, On Sun, Oct 12, 2014 at 4:38 AM, Hans Sommer hansisommer at gmx.de wrote:Hello, I am relatively new to Lilypond. I try to check the total length of a SequentialMusic part, i.e. my_score_part = { c'4 d e f } I want to get the result 4 quarters (or any other numerical representation) and for my_score_part2 = { c'4 d e f g8} (This isn't a valid name for a variable, so I changed it below.) should deliver 4 quarter and 1 eighth. I found in the documentation the property: length-callback (procedure): ly:music-sequence::cumulative-length-callback but I don't know how to use it. I would be very thankful, if anybody could provide an example. I'm not familiar with this property, but it's relatively easy to determine the length of a music expression. Try this: \version 2.19.10 my_score_part = { c'4 d e f } my_score_part_two = { c'4 d e f g8 } #(display (ly:music-length my_score_part)) #(display (ly:music-length my_score_part_two)) Hope this is helpful, David ___ lilypond-user mailing list lilypond-user at gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user Thank you David, that was what I was looking for. When I use #(display (ly:music-length my_score_part)) I get in the lilypond log file (depending on the score length) someting like that: #Mom 2 Is there a possibility to write the result in an extra text file (I want to process the result by a program, that is actually starting the lilypond compilation. It should check the score length and eventually throw an error). I guess some scheme routines will be necessary, but I did not work with scheme in the past, so maybe somebody has a small example code. Regards Hans ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: How to get the total length of Sequential Music
On Sun, Oct 12, 2014 at 5:59 PM, Hans Sommer hansisom...@gmx.de wrote: David Nalesnik david.nalesnik at gmail.com writes: Hi Hans, On Sun, Oct 12, 2014 at 4:38 AM, Hans Sommer hansisommer at gmx.de wrote:Hello, I am relatively new to Lilypond. I try to check the total length of a SequentialMusic part, i.e. my_score_part = { c'4 d e f } I want to get the result 4 quarters (or any other numerical representation) and for my_score_part2 = { c'4 d e f g8} (This isn't a valid name for a variable, so I changed it below.) should deliver 4 quarter and 1 eighth. I found in the documentation the property: length-callback (procedure): ly:music-sequence::cumulative-length-callback but I don't know how to use it. I would be very thankful, if anybody could provide an example. I'm not familiar with this property, but it's relatively easy to determine the length of a music expression. Try this: \version 2.19.10 my_score_part = { c'4 d e f } my_score_part_two = { c'4 d e f g8 } #(display (ly:music-length my_score_part)) #(display (ly:music-length my_score_part_two)) Hope this is helpful, David ___ lilypond-user mailing list lilypond-user at gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user Thank you David, that was what I was looking for. When I use #(display (ly:music-length my_score_part)) I get in the lilypond log file (depending on the score length) someting like that: #Mom 2 Is there a possibility to write the result in an extra text file (I want to process the result by a program, that is actually starting the lilypond compilation. It should check the score length and eventually throw an error). Yes, you can specify a port for display: \version 2.19.10 my_score_part = { c'4 d e f } my_score_part_two = { c'4 d e f g8 } #(define out (open-output-file music-length.txt)) #(display (ly:music-length my_score_part) out) #(display (ly:music-length my_score_part_two) out) %%% You could also use format for nicer output: #(format out Length of my_score_part: ~a~%Length of my_score_part_two: ~a~% (ly:music-length my_score_part) (ly:music-length my_score_part_two)) %%% I don't think you need to close the port, but you could add this: #(close-output-port out) --David ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Tilde causes error message: unrecognized string, not in text script or \lyricmode
If I try to run the following (either directly or as part of a score): \relative c' { \key e \minor \time 4/4 r4 r8 e8 e fis g4 fis fis8 fis fis e dis e ~ e4 r8 e8 e fis g4 a a8 a a g a b~ b4 r8 b b b b4 c c8 c c b a b~ b4 r8 b8 b a g4 fis fis8 fis fis e dis e ~ e4 r8 } I get the error message: unrecognized string, not in text script or \lyricmode at the tildes in the first and last line. The es after the tildes do not get written out. The two b~ work as expected, though, even though everything but the pitches is the same as in the first line. If I remove the tildes, everything works - except that I don't get the ties. I'm running v. 2.18.2 under Arch Linux. Eyolf ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
RE: Tilde causes error message: unrecognized string, not in text script or \lyricmode
Eyolf, Your snippet compiles without error message for me. I am using Lilypond under Windows. I notice that a space separates the two e from their ~. The space is not between the two b and theirs. Perhaps this is the source of the error message for you. Mark -Original Message- From: lilypond-user-bounces+carsonmark=ca.rr@gnu.org [mailto:lilypond-user-bounces+carsonmark=ca.rr@gnu.org] On Behalf Of Eyolf Østrem Sent: Sunday, October 12, 2014 4:57 PM To: lilypond-user@gnu.org Subject: Tilde causes error message: unrecognized string, not in text script or \lyricmode If I try to run the following (either directly or as part of a score): \relative c' { \key e \minor \time 4/4 r4 r8 e8 e fis g4 fis fis8 fis fis e dis e ~ e4 r8 e8 e fis g4 a a8 a a g a b~ b4 r8 b b b b4 c c8 c c b a b~ b4 r8 b8 b a g4 fis fis8 fis fis e dis e ~ e4 r8 } I get the error message: unrecognized string, not in text script or \lyricmode at the tildes in the first and last line. The es after the tildes do not get written out. The two b~ work as expected, though, even though everything but the pitches is the same as in the first line. If I remove the tildes, everything works - except that I don't get the ties. I'm running v. 2.18.2 under Arch Linux. Eyolf ___ 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: Tilde causes error message: unrecognized string, not in text script or \lyricmode
On 13-10-2014 02:02, Mark Stephen Mrotek wrote: Eyolf, Your snippet compiles without error message for me. I am using Lilypond under Windows. Which version do you use? I notice that a space separates the two e from their ~. The space is not between the two b and theirs. I forgot to add that: no, there is no difference whether there is a space there or not. I also tested the snippet on lilybin.com, both with the latest stable (which is the same as I am running) and the latest devel, with the same result. e ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: ly:pitch and string
Simon Albrecht-2 wrote Thanks for your help in improving the helper functions; however, ‘inverting’ string-append and cond seems to be based on a misunderstanding. It needs to be Ah, I see now... I was missing the forest for the trees. Cheers, -Paul -- View this message in context: http://lilypond.1069038.n5.nabble.com/ly-pitch-and-string-tp167397p167491.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
Re: Tilde causes error message: unrecognized string, not in text script or \lyricmode
Eyolf, Your snippet compiles perfectly for me on Ubuntu using LilyPond 2.18.2, so it probably is something with your installation? Sorry I can't help more than that. Regards, Abraham Sent from my iPhone On Oct 12, 2014, at 6:23 PM, Eyolf Østrem ey...@oestrem.com wrote: On 13-10-2014 02:02, Mark Stephen Mrotek wrote: Eyolf, Your snippet compiles without error message for me. I am using Lilypond under Windows. Which version do you use? I notice that a space separates the two e from their ~. The space is not between the two b and theirs. I forgot to add that: no, there is no difference whether there is a space there or not. I also tested the snippet on lilybin.com, both with the latest stable (which is the same as I am running) and the latest devel, with the same result. e ___ 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: Feedback Request for Music Fonts
Joram, On Sun, Oct 12, 2014 at 10:04 AM, Noeck noeck.marb...@gmx.de wrote: Hi Abraham, thanks for your reply. \version 2.19.14 \transpose c c' { % default (Century Schoolbook) \tuplet 3/2 { a8 a a } % bold (Century Schoolbook) - closer to Bravura \override TupletNumber.font-series = #'bold \tuplet 3/2 { a a a } % from Emmentaler (bold numbers) - your suggestion \override TupletNumber.font-encoding = #'fetaText \override TupletNumber.font-size = #-4 \tuplet 3/2 { a a a } % tuplet number from Bravura (U+E883) - what I wanted! \override TupletNumber.font-name = Bravura \override TupletNumber.font-size = #3.5 \override TupletNumber #'text = \tuplet 3/2 { a a a } } This example shows four different tuplet numbers. The last one is what I wanted: the dedicated Bravura tuplet number on code point U+E883. To achieve that I had to put Bravura in /usr/share/fonts. I was wondering why installing it under Ubuntu does not work and copying into /usr/share/fonts of the LP directory structure does not work, neither. From my experience, LP only looks for Century Schoolbook and the music/brace fonts in that folder. Any other text font should be installed in a regular system location. On Ubuntu, if you put Bravura in /home/YOUR_USER_NAME/.local/share/fonts, then you should be able to do what you tried above (manually, of course). A real solution would be if this number would be calculated automatically. But I couldn't get it to work: \override TupletNumber #'text = #(integer-char (+ 59520 (tuplet-number::calc-denominator-text))) I am trying that out, because it would help to get a consistent style for the new fonts including the text font part. I agree. That is a great idea! I don't have enough Scheme experience to know how to modify the text property like that, but that would certainly be very nice. On the other hand, I could just create a simple tuplet numerals file for your needs :) It would probably be better to access the glyphs from the complete Bravura font file, but sometimes you've got to take measures into your own hands and try something simpler. I doubt Steinberg will ever be changing those glyphs, so it's probably a safe bet. 2) Do you or does anyone know text fonts similar to the ones used in many old scores, like here: http://javanese.imslp.info/files/imglnks/usimg/7/7f/IMSLP00115-Chopin_-_Ballade_No1.pdf I've often looked for some nice fonts like those. A nice one I've found is called OldStandardTT. It's free and supports an extensive character set including Latin, Greek, and Cyrillic: http://www.fontsquirrel.com/fonts/old-standard-TT Just to share what I found yesterday: http://www.fontsquirrel.com/fonts/DubielPlain But I am not really convinced (there are some irregularities e.g. in the letter a). Yeah, that one looks nice, but I agree that it's not as well constructed as we would like. Regards, Abraham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user