Grace notes taking musical time?
Adding the grace note in this bar cause ca bar check error and pushes it out. For as long as I have lived grace notes take no time. What am I missing? Must be working too hard! Andrew % \version "2.19.82" treble = { \time 1/4 aih'16^-^>_\sfz \tuplet 3/2 { f'([ d'') \grace gis8 } \once \override TupletNumber.text = #tuplet-number::calc-denominator-text \once \hide TupletBracket \tuplet 3/2 { d''16 b''32] } | c''4 \bar "." } \score { \new Staff { \treble } \layout {} } % ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Grace notes taking musical time?
Oh. Stupid. Working too hard! I neglected to realise the grace note time value sets the value for the next note where it was not specified, as I added in the grace afterwards. Many apologies for some particularly stupid noise. How I wish we could delete posts sometimes. Andrew ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Grace notes taking musical time?
Andrew Bernard writes: > Oh. Stupid. Working too hard! I neglected to realise the grace note time > value sets the value for the next note where it was not specified, as I > added in the grace afterwards. > > Many apologies for some particularly stupid noise. How I wish we could > delete posts sometimes. There are a few conventions coined to rein in consequences of this convenience. One is to start each line with an explicit duration (meaning that you can interchange lines without changing their rhythm). Another is to prefer using <> over s1*0 for comparable effect (post events after rather than with the last note) since s1*0 leaves a default note duration that can have decidedly ugly effects and the typical use case of s1*0 is being the last element of some construct. I don't even remember what happens when entering and leaving tuplet sequences with regard to the carried-over note duration. It's best practice to be explicit with the respective first notes anyway. In the end, it's a reasonable price to pay for the convenience and a few conventions keep the effects reined in. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: dynamic next to espressivoII
Am So., 3. Feb. 2019 um 08:17 Uhr schrieb Andrew Bernard : > > I posted abot this recently, but only one response. Does anybody have any > idea how to align a dynamic and the new \espressivo mark horizontally, next > to each other? I know one is a dynamic and one is an accent, so I am stumped. > > Refer to the image extracted from the MS I am setting. I'd like it to be > close to this effect. > > Thanks all! > > Andrew Hi Andrew, in my understanding the espressivo-sign is a hint for the musician to apply crescendo followed by a decrescendo on a long note. In your image I fail to see any espressivo-sign, but encounter always the more verbose (de)crescendo-Hairpins. Furthermore in LilyPond they are different grobs, one a spanner the other an item. Placing them at the same height is possible only if both graphic signs are transformed to belong to Dynamics or to Scripts. imho. If the espressivo is not a spanner, than you have always to adjust the extension-values as soon as layout changes even if the espressivo is part of Dynamics. (See below) So I'd vote for a new espressivo being a spanner, or more precisely it should use real Hairpins. Here some thoughts: One could do all manual (the first two codings) or one could try to automate it (the next two codings, the first reuses Aaron's coding, so the pseudo-Hairpins are no spanners) \version "2.19.82" \paper { indent = 0 %% uncomment: %ragged-right = ##f } \markup "Manually: using Hairpins and simultaneous-music, i.e << ... >>" \new Staff { << c''2 { s4\mf-\tweak minimum-length #10 \< s4-\tweak minimum-length #6 \> <>\! } >> %% A \bar-command is necessary, otherwise one can't end with <>\! \bar "|." } \markup "Manually: using Hairpins and \\at by David Kastrup" at = #(define-music-function (time event music) (ly:duration? ly:music? ly:music?) "Place @var{event} at a relative duration @var{time} in relation to @var{music}." #{ \context Bottom << { \skip $time <>$event } $music >> #}) \new Staff { \at 4 -\tweak minimum-length #6 \> c''2\mf-\tweak minimum-length #10 \< <>\! %% A \bar-command is necessary, otherwise one can't end with <>\! \bar "|." } \markup \wordwrap-string #"Autogenerate: using DynamicText with 'make-dynamic-script', and 'make-espressivo-stencil' by Aaron Hill" dynamicTextLengthOn = { % 0.4 staff-space between adjacent texts \override DynamicText.extra-spacing-width = #'(-0.0 . 0.4) \override DynamicText.extra-spacing-height = #'(-inf.0 . +inf.0) } dynamicTextLengthOff = { \override DynamicText.extra-spacing-width = #'(+inf.0 . -inf.0) \override DynamicText.extra-spacing-height = #'(0 . 0) } #(define (make-espressivo-stencil thick width height gap) (let* ((inner (/ gap 2)) (outer (+ width inner)) (middle (/ height 2))) (ly:stencil-add (make-line-stencil thick (- inner) 0 (- outer) middle) (make-line-stencil thick (- outer) middle (- inner) height) (make-line-stencil thick inner 0 outer middle) (make-line-stencil thick outer middle inner height buzz = #(define-event-function (args dyn-strg) ((number-list? '(0.1 4 0.9 0.35)) string?) ;; args-list contains settings for: thick width height gap (make-dynamic-script #{ \markup { $dyn-strg \stencil $(apply make-espressivo-stencil args) } #})) { \dynamicTextLengthOn %% need to adjust X-offset (or self-alignment-X) c''-\tweak X-offset #-0.5 \buzz "p" c''-\tweak X-offset #-1.3 \buzz "pf" c''-\tweak X-offset #-2.5 \buzz #'(0.1 8 0.9 0.5) "" } \markup \wordwrap-string #"Autogenerate: simultaneous-music with Hairpins." %% Helper, c/p from define-music-display-methods.scm #(define (make-music-type-predicate . music-types) (define make-music-type-predicate-aux (lambda (mtypes) (lambda (expr) (if (null? mtypes) #f (or (eqv? (car mtypes) (ly:music-property expr 'name)) ((make-music-type-predicate-aux (cdr mtypes)) expr)) (make-music-type-predicate-aux music-types)) foo = #(define-music-function (shorten mus) ((number-pair-list? '((0 . 0) (0 . 0))) ly:music?) ;; the optional argument 'shorten' may be used fine-tune first/second Hairpin ;; going for 'minimum-length would have been possible as well, though ;; 'shorten-pair gives more control (let* ((note-or-chord? (make-music-type-predicate ;; more? 'EventChord 'NoteEvent))) (if (note-or-chord? mus) (let* ((mus-length (ly:moment-main (ly:music-length mus))) (half-mus-length (/ mus-length 2)) (new-length-pair (cons (numerator half-mus-length) (denominator half-mus-length))) (skip #{ \scaleDurations $new-length-pair s1\> #}) (start-skip #{ \scaleDurations $new-length-pair s1\< #})) (cond ((music-is-of-type? mus 'note
Re: Please test new lilypond installers
Hi Karlin! Maybe, installing compat6x package is required. # pkg install compat6x-amd64 ...and it did indeed fix the issue. LilyPond seems fully functional. Next, I want to make a FreeBSD 32-bit VM, and see about reviving an iMac G5 to test the PowerPC installers. Although I doubt there's a very big user base for those. Thanks for your help! Yes, some of the installers target somewhat aged platforms ... but as long as the installers are functional and don't cause too much work to maintain there's no reason not to keep them around. Knut ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Configuration Point & Click
[Note that this posting might overtake another one I made yesterday.] On Fri 01 Feb 2019 at 17:33:34 (-0700), foxfanfare wrote: > foxfanfare wrote > > And again, what is strange is that I have to launch zathura through vim if > > I > > want it to react to the link. If I launch the PDF alone in Zathura and > > click > > on the link, for instance > > textedit:///home/remy/Documents/test/test.ly:5:4:5 > > goes directly to the browser. Maybe zathura isn't configured properly and > > should add xdg-open before the link? > > OK for that part I just understood where the problem was. I used to launch > the PDF directly from my file browser (currently ranger). The PDF shows > correctly but the links redirect to the web browser. But if I just open a > terminal and launch the PDF from there, the PDF opens at his side and then > the link is redirected directly to vim in the previous terminal. I'd be interested to know what configuration command you're using in zathura to handle the clicks. I have checked the way that lilypond-invoke-editor works here just by typing it at the commandline. You might try the same sort of tests. $ EDITOR=gvim lilypond-invoke-editor textedit:///tmp/windmills.ly:362:9:10 lilypond-invoke-editor (GNU LilyPond) 2.18.2 E247: no registered server named "GVIM": Send failed. Trying to execute locally gives me the file on a local GUI vim. I tried running a server called VIM and get the same effect, so the name appears invariant. $ EDITOR=vim lilypond-invoke-editor textedit:///tmp/windmills.ly:362:9:10 lilypond-invoke-editor (GNU LilyPond) 2.18.2 is similar except that the E247 gets lost, possibly because the non-GUI vim clears the xterm in order to display itself there. With a GUI or non-GUI server call GVIM running, $ EDITOR=gvim lilypond… works as expected, but $ EDITOR=vim lilypond… will run vim locally and ignore the server; that is, if the server is not editing the file already. If the server does have that file open, then you get a swap file error when it tries to start a local vim. So I'm pretty confident that lilypond-invoke-editor is doing a good job. I then tried using zathura as the PDF viewer with: $ EDITOR=gvim zathura windmills.pdf having put set synctex-editor-command "lilypond-invoke-editor %s" into ~/.zathurarc. Clicking a note seems to have no effect, left, right or centre, ± shift ± control. However, double clicking a note opens my browser, searching unproductively for the textedit string. > Still, I can't manage to skip all the warning like "Vim: Warning: Input is > not from a terminal" and E325 which tend to make vim unusable. I don't have > the feeling that the server mode solves this. I also tried with > remote-silent but it is the same. Where do those messages appear? Do you get those warning/error messages when you click on a note even if you have already done some (harmless) edit of the file already? Cheers, David. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Another question about two voices
-BEGIN PGP SIGNED MESSAGE- Hash: SHA512 Hi Folks, I have one music where the "lines" (Sorry, I am not exactly sure about the english name of it) on a note are pointing both down even if they are marked with different voices: classicalGuitar = \relative c { \global \easyHeadsOn c4 d8 e g g a4 a8 g f4 \repeat volta 2 { << { \voiceOne e4 f g \new voice { \voiceTwo c4 d e >> \oneVoice r4 << { \voiceOne e4 f g \new voice { \voiceTwo c4 d h >> \oneVoice r4 } } - From the documentation I would think that the \voiceOne and the \oneVoice parts have lines pointing up and the \voiceTwo parts pointing down. But it is different. Up to f4 and the repeat beginning, the lines pointing up and then both are pointing down. Is there any I do wrong? Regards Klaus - -- Klaus Ethgen http://www.ethgen.ch/ pub 4096R/4E20AF1C 2011-05-16Klaus Ethgen Fingerprint: 85D4 CA42 952C 949B 1753 62B3 79D0 B06F 4E20 AF1C -BEGIN PGP SIGNATURE- Comment: Charset: ISO-8859-1 iQGzBAEBCgAdFiEEMWF28vh4/UMJJLQEpnwKsYAZ9qwFAlxXEusACgkQpnwKsYAZ 9qy2kwv7BGPM6XQkGUHS0FpNN+z3MgP7nRyw9nzNwcLPOlB+Bzd2TUEb5hSOJuXg VCjKNAG/NoLnaUaIo1DwUS56S1XkYoZhXKDpQbKACTlXb/gaLes76/awEYCyv6l1 rnaqxD92S+7iEAsGh9z2UmXNEm4HrYvQNmrQbZbi3eToUUAzdXOwmpPmDg+E1GXc ywOA/g6THoftCwoVfU+bIx761dvovpRJFSbehp8eiEkKGfcUMIlAM7kediGX/aXT wpRn6+TZ1S6duC5uEKM5cYYNDdsIGOaBUs8rUboJdXTT7hfdrJ//4Paqqdxg9p+X i9kTG9DNgbN5Lalzk4K74qDLPTxRdMETimzQ1GL022HXDCxyciC5GNzcUoa8IGLx NQTWTmHteRSpI01OSSGAzkqrjtmmpmeM/Q5RXBMssfGSeaJ9O4VsrFVR7Ij1Om+v kx38kjfDHWm26Df3lpKK7Drrh9xKR77aXYFyp9ujU2mKD/LzNu7qCV9OtvHZ1xN+ TkcN5THR =5nrW -END PGP SIGNATURE- ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Another question about two voices
-BEGIN PGP SIGNED MESSAGE- Hash: SHA512 Sorry, did cut too much... Here is the right part: classicalGuitar = \relative c { \global \easyHeadsOn c4 d8 e g g | a4 g8 f e4 | d e f | g2 r4 | \break a4 a8 g f4 | g e c | d e d | c2 r4 | \break \repeat volta 2 { << { \voiceOne e4 f g | a4. g8 f e | f4. e8 d c | d2 } \new voice { \voiceTwo c4 d e | f4. e8 d c | d4. c8 h a | h2 } >> \oneVoice r4 | << { \voiceOne e4 f g | e2 } \new voice { \voiceTwo c4 d h | c2 } >> \oneVoice r4 } } Regards Klaus - -- Klaus Ethgen http://www.ethgen.ch/ pub 4096R/4E20AF1C 2011-05-16Klaus Ethgen Fingerprint: 85D4 CA42 952C 949B 1753 62B3 79D0 B06F 4E20 AF1C -BEGIN PGP SIGNATURE- Comment: Charset: ISO-8859-1 iQGyBAEBCgAdFiEEMWF28vh4/UMJJLQEpnwKsYAZ9qwFAlxXE4kACgkQpnwKsYAZ 9qw+3Av4ujTFC1Pzu/Cdy2KDj6wq6Z7YKcCyEmASAIQILL0O7dr95ocBMfJq4uPq 0L4Ib+vo/Dy6pDUdVHUZP11BOMx6JE6WWJRq50dfOyTK1WZQwzljAv2I7k165kq9 MJoa1t4ZPDKMmpOOY0ZsRp45lMiLPbPZOuNDDUmSl13leU3o9L7qcXjX8sAIxq1Q c3UuWInc1n9PXJamw2a6DUnjjdO2O/nIKiayo2+M6sEb8xR2FeDfJWGqFBuZ+FXI xVHIveTwRsygmd5OFHfEQfc12No1Gd/VCL9WmJIKGkx0W/BFMr9TP05iGPIn2gKn JW5AFzUJhEbsnuu1ChT/gMwFDxvYrcWPLw1Odse9zaXmphpkYeJXbp8PudNyQoYC RBLa7DQQpGei/OHd295bkgo+c/kyC7NJ9PmhqM8xKbUc8/lw/xUfWuDYpzOdTo6D xLrRtPUWqfcE7cEeKtVNHpdrcxbfhUZIht4RmUqSPdvqhGLmeOvHgLJo6jSikdKR niRVLTg= =FL/j -END PGP SIGNATURE- ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Another question about two voices
Klaus Ethgen writes: > Hi Folks, > > I have one music where the "lines" (Sorry, I am not exactly sure about > the english name of it) on a note are pointing both down even if they > are marked with different voices: >classicalGuitar = \relative c >{ > \global > \easyHeadsOn > c4 d8 e g g > a4 a8 g f4 > \repeat volta 2 > { ><< > { \voiceOne e4 f g > \new voice { \voiceTwo c4 d e >>> >\oneVoice r4 ><< > { \voiceOne e4 f g > \new voice { \voiceTwo c4 d h >>> >\oneVoice r4 > } >} > > From the documentation I would think that the \voiceOne and the > \oneVoice parts have lines pointing up and the \voiceTwo parts pointing > down. > > But it is different. Up to f4 and the repeat beginning, the lines > pointing up and then both are pointing down. > > Is there any I do wrong? Did you read the error messages? I mean, it's not like the above is compilable code either way (\global is not defined anywhere and there are lots of braces opening and not closes) so it isn't quite clear what the actual code _really_ looks like. But if your sloppy rendition is an indication, you should have been getting error messages because of non-existent context names. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Another question about two voices
-BEGIN PGP SIGNED MESSAGE- Hash: SHA512 Hi David, Am So den 3. Feb 2019 um 17:18 schrieb David Kastrup: > Did you read the error messages? It made no sense for me, but read below. > I mean, it's not like the above is > compilable code either way (\global is not defined anywhere and there > are lots of braces opening and not closes) so it isn't quite clear what > the actual code _really_ looks like. But if your sloppy rendition is an > indication, you should have been getting error messages because of > non-existent context names. I sent an follow up, sorry, I did cut to much when cut&paste. I just included the relevant part and the \global is clef settings. However, I found the bug. I used lower case voice in \new voice instead of upper case. The error message "warning: cannot find or create new `voice'" was not realy pointing where to find the bug but it was correct from program perspective. Regards Klaus - -- Klaus Ethgen http://www.ethgen.ch/ pub 4096R/4E20AF1C 2011-05-16Klaus Ethgen Fingerprint: 85D4 CA42 952C 949B 1753 62B3 79D0 B06F 4E20 AF1C -BEGIN PGP SIGNATURE- Comment: Charset: ISO-8859-1 iQGzBAEBCgAdFiEEMWF28vh4/UMJJLQEpnwKsYAZ9qwFAlxXFlgACgkQpnwKsYAZ 9qxnwQv+NBUSxhnV8hKKiUC8ZwWF+MVHKaZ9OfDzbNpnHXYA0RjkaoBUsRpUugLk N1ca9cb0S8jo+OxRsbIySdeig5esaWrIECyNX9pJGJ38QaE6FLN+dtDXDlfqr/x+ GghITg2CbWK+ZvLh81szRfg7UcZ03aOrA9nZ+yHO4MtwgrGA92ZOk7cPxjxhF1ym f2TH6SN4i2OrCp0Qbiu/4Z3nZiu6VkqTsdfWO2N+ci549M+eaYASLPiUFjidg+sS RZ+BHEig84kcocmR8nadXowYc+jgwApdERtCkW/gsPipagmWzkCfwz4rfK9bkiBL 3Jjg8A+IAXnRfsUcDSpZqRpo6whF3Zkt4FPyMQQGl9GeduLvqdgZAeJNO0Ijw4O8 8kN+AxezH0Kr7KU6OTj38KpI3hqSN2xQJQbTTAR2Om6/y/WxUJJVm4Uxc/1f3WUb OpiFDSpMUdBzm0xAoaHMaxpiNYbIcEJB8WobN1dzWvQ7xE5PLtK1kXnwDbQfBgUT wKCJfhMF =zKvY -END PGP SIGNATURE- ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: "Mensurstriche" (barlines between systems) and Repeat signs.
Am Sa., 2. Feb. 2019 um 20:45 Uhr schrieb Thomas Morley : > Am Sa., 2. Feb. 2019 um 14:21 Uhr schrieb Aaron Hill > : > > Alternately, the \defineBarLine function could be split: > > > > \defineBarLine "bar" #'("end" "begin" "span") > > % becomes > > \setBarLineSpanning "bar" "span" > > \setBarLineBreaking "bar" "end" "begin" > > > > We gain some clarity and self-documentation; and in fact, the line > > breaking arguments no longer need to be grouped in a list. Users who > > only need to change the default behavior for one aspect need only use > > its associated function. But would the added verbosity be a justifiable > > cost? > > I think this suggestion would need a bit more work. > Not sure it's worth the afford. But that's only me. I was involved in > coding this scheme-interface, so I'm familiar with most of it (albeit > not all). It's always difficult to write a good user-interface or > documentation, if one is too familiar with things... > So I'm open for suggestions as well. > Currently I haven't researched the possibilities of setBarLineSpanning > etc in depth maybe later or tomorrow, I may change my mind then ... I had a closer look today, and I think it would be not so much work to implement such things as I thought. For now I come up with the code below. Disclaimer: It uses some special syntax to get non-public procedures etc. Don't do so in codings for serious work. The guile manual says it's meant only for debugging or as last resort. Usually there is a reason why non-public procedures are non-public. ;) It's done here only to offer everyone the possibility to test without patching internals. \version "2.19.82" setBarLineSpanning = #(define-void-function (bar span)(string? string?) (let* ((raw-bar ((@@ (lily) strip-string-annotation) bar)) (bar-from-glyph-alist (or (assoc-get bar (@@ (lily) bar-glyph-alist)) (assoc-get raw-bar (@@ (lily) bar-glyph-alist) (if bar-from-glyph-alist (define-bar-line bar (car bar-from-glyph-alist) (cdr bar-from-glyph-alist) span) (let ((raw-bar-proc (assoc-get raw-bar (@@ (lily) bar-glyph-print-procedures (if (not raw-bar-proc) (ly:warning "No printing-procedure for bar of type \"~a\"." raw-bar)) (ly:warning "Behaviour of bar type \"~a\" is not defined, use \\defineBarLine." raw-bar) \setBarLineSpanning "|-dashed" "!" m = { R1 R1 \break R1 R1 R1 } \score { \new StaffGroup << \m \m >> \layout { \set Score.defaultBarType = "|-dashed" } } #(define (boolean-or-string? x) (or (boolean? x) (string? x))) setBarLineBreaking = #(define-void-function (bar end begin)(string? boolean-or-string? boolean-or-string?) (let* ((raw-bar ((@@ (lily) strip-string-annotation) bar)) (span-bar (or (assoc-get bar (@@ (lily) span-bar-glyph-alist)) (assoc-get raw-bar (@@ (lily) span-bar-glyph-alist) (if span-bar (define-bar-line bar end begin span-bar) (let ((raw-bar-proc (assoc-get raw-bar (@@ (lily) bar-glyph-print-procedures (if (not raw-bar-proc) (ly:warning "No printing-procedure for bar of type \"~a\"." raw-bar)) (ly:warning "Behaviour of bar type \"~a\" is not defined, use \\defineBarLine." raw-bar) #f \setBarLineBreaking "|-alt" "." "S" m = { R1 R1 \break R1 R1 R1 } \score { \new StaffGroup << \m \m >> \layout { \set Score.defaultBarType = "|-alt" } } Opinions? Cheers, Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: text block as spanner
Hi David, Am Sa., 2. Feb. 2019 um 21:35 Uhr schrieb David Nalesnik : > > Hi, > > On Sat, Feb 2, 2019 at 2:13 PM Thomas Morley wrote: > > > > Am Sa., 2. Feb. 2019 um 21:09 Uhr schrieb Thomas Morley > > : > > > > > A bold workaround is to define the whole infrastructure for > > > TextSpanners with new/renamed events (class and type), grobs, > > > engravers and > > > start/stop-commands. > > > > I forgot to point to a limitation > > The provided 'text-spanner->text' doesn't care for line-breaks. To clarify, 'text-spanner->text' has nothing to do with multiple TextSpanners. It's a stencil-override. special line-breaking behaviour is not coded, though. > There is this: > https://www.mail-archive.com/lilypond-user@gnu.org/msg105826.html Looks we have the same conversation every few years lol Your approach is far less invasive, so preferable. > Not sure if anything needs to be updated. The fix mentioned here http://lists.gnu.org/archive/html/lilypond-user/2017-11/msg00016.html should be applied, then it still works. Though, I noticed a little problem here and in scheme-text-spanner from our regtests, too: Usually one can set the direction via direction-modifiers, i.e. for _\startTextSpan the TextSpanner is printed below. This does not work. The direction may be catched in listener and applied to the grob in process-music. So I did in the attached file, not sure whether it's the best fix ... Thanks, Harm \version "2.19.82" %% by David Nalesnik %% https://www.mail-archive.com/lilypond-user@gnu.org/msg105826.html %% see also: %% http://lists.gnu.org/archive/html/lilypond-user/2017-11/msg00016.html %% http://lists.gnu.org/archive/html/lilypond-user/2019-02/msg00034.html %% Incorporating some code from the rewrite in Scheme of %% Text_spanner_engraver in input/regression/scheme-text-spanner.ly #(define (add-bound-item spanner item) (if (null? (ly:spanner-bound spanner LEFT)) (ly:spanner-set-bound! spanner LEFT item) (ly:spanner-set-bound! spanner RIGHT item))) #(define (axis-offset-symbol axis) (if (eq? axis X) 'X-offset 'Y-offset)) #(define (set-axis! grob axis) (if (not (number? (ly:grob-property grob 'side-axis))) (begin (set! (ly:grob-property grob 'side-axis) axis) (ly:grob-chain-callback grob (if (eq? axis X) ly:side-position-interface::x-aligned-side side-position-interface::y-aligned-side) (axis-offset-symbol axis) #(define (assign-spanner-index spanner orig-ls) "Determine the position of a new spanner in an ordered sequence of spanners. The goal is for the sequence to begin with zero and contain no gaps. Return the index representing the spanner's position." (if (null? orig-ls) 0 (let loop ((ls orig-ls) (insert? #t) (result 0)) (cond ((null? ls) result) ;; position at head of list ((and insert? (> (caar orig-ls) 0)) (loop ls #f 0)) ;; no gaps, put at end of list ((and insert? (null? (cdr ls))) (loop (cdr ls) #f (1+ (caar ls ;; fill lowest position of gap ((and insert? (> (caadr ls) (1+ (caar ls (loop (cdr ls) #f (1+ (caar ls (else (loop (cdr ls) insert? result)) alternateTextSpannerEngraver = #(lambda (context) (let (;; a list of pairs comprising a spanner index ;; (not spanner-id) and a spanner which has been begun (spanners '()) (finished '()) ; list of spanners in completion stage (ev-direction '()) (start-events '()) ; list of START events (stop-events '())) ; list of STOP events (make-engraver ;; \startTextSpan, \stopTextSpan, and the like create events ;; which we collect here. (listeners ((text-span-event engraver event) (if (= START (ly:event-property event 'span-direction)) (begin (set! start-events (cons event start-events)) (set! ev-direction (ly:event-property event 'direction 1))) (set! stop-events (cons event stop-events) ;; Populate 'note-columns property of spanners. Bounds are ;; set to note columns, and each spanner keeps a record of ;; the note columns it traverses. (acknowledgers ((note-column-interface engraver grob source-engraver) (for-each (lambda (s) (ly:pointer-group-interface::add-grob (cdr s) 'note-columns grob) (add-bound-item (cdr s) grob)) spanners) ;; finished only contains spanners, no indices (for-each (lambda (f) (ly:pointer-group-interface::add-grob f 'note-columns grob) (add-bound-item f grob)) finished))) ((process-music trans) ;; Move begun spanners from 'spanners' to 'finished'. We do this ;; on the basis
Volunteers wanted as Frescobaldi mentors
Hi all, Frescobaldi wants to apply again as a Google Summer of Code mentoring organization this year. In order to submit a promising application we need to have a number of potential project mentors, so I want to ask on this list for people who can imagine volunteering for this rewarding assignment. With Frescobaldi the scope of required skills is quite narrower than with LilyPond - basically everything is done with Python (and PyQt). But the *main* challenge and task of a GSoC mentor is engaging with the student anyway, keeping them working and providing some feedback to them, acting as a bridge between student and user and developer community. Being a GSoC mentoring organization is a very good thing for an open source project, and it would be a terrific opportunity to get our 3.1 release out and go beyond that. So if you by any chance consider your self qualified for this task (even "sort-of"), please get in touch with us on- or off-list. You wouldn't be left hanging dry and can count on our collaboration to make this a worthwile experience. Best Urs ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Grace notes taking musical time?
Hi David, Thanks very much for this. In this case, I was simply over-tired! All the best! Andrew ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Another question about two voices
Would you post an example that compiles successfully ? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Change staff clef immediately after time signature
This is probably a FAQ, but I can’t find the right combination of search terms to tease it from the ether... I want a piano staff, with the left hand to start with bass clef, but then immediately switch to treble clef after the time signature. Mnon-WE is attached. Probably this involves monkeying with the clef engraver, but I haven’t figured out how. Thanks in advance, Chris -- Chris Maden, text nerd http://crism.maden.org/ > Emperor Norton had the right idea. \version "2.18.2" \include "english.ly" \new PianoStaff << \new Staff { \clef treble \key d \major \time 4/4 d''4 d'' d'' d'' } \new Staff { \clef bass \key d \major \time 4/4 \clef treble d'4 d' d' d' } >> ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Change staff clef immediately after time signature
On 2019-02-03 6:33 pm, Christopher R. Maden wrote: This is probably a FAQ, but I can’t find the right combination of search terms to tease it from the ether... I want a piano staff, with the left hand to start with bass clef, but then immediately switch to treble clef after the time signature. Mnon-WE is attached. Probably this involves monkeying with the clef engraver, but I haven’t figured out how. Does \cueClef help? \version "2.19.82" \new PianoStaff << \new Staff { \clef treble b'2 2 } \new Staff { \clef bass \cueClef treble b'4 4 4 4 } -- Aaron Hill___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Change staff clef immediately after time signature
On 2019-02-03 6:43 pm, Aaron Hill wrote: On 2019-02-03 6:33 pm, Christopher R. Maden wrote: This is probably a FAQ, but I can’t find the right combination of search terms to tease it from the ether... I want a piano staff, with the left hand to start with bass clef, but then immediately switch to treble clef after the time signature. Mnon-WE is attached. Probably this involves monkeying with the clef engraver, but I haven’t figured out how. Does \cueClef help? \version "2.19.82" \new PianoStaff << \new Staff { \clef treble b'2 2 } \new Staff { \clef bass \cueClef treble b'4 4 4 4 } >> And if you want to change the size: \version "2.19.82" \new PianoStaff << \new Staff { \clef treble b'2 2 } \new Staff { \clef bass \once \override Staff.CueClef.font-size = #0 \cueClef treble b'4 4 4 4 } -- Aaron Hill___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Change staff clef immediately after time signature
On 2/3/19 9:43 PM, Aaron Hill wrote: Does \cueClef help? It does... though then when I \clef bass back again it’s ignored. I can use \cueClefUnset... Thanks, this is a great workaround. I suspect there is a better (more properly LilyPondish) answer, but this is more than adequate for now. Thanks again, Chris -- Chris Maden, text nerd http://crism.maden.org/ > Emperor Norton had the right idea. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Change staff clef immediately after time signature
Hi Christopher, This comes up reasonably often. May I ask why you don't simply start the piece with the treble clef? If you immediately change to treble, what is the point of having the bass clef at this point? It's a musical decision up to you, but it always strikes me as a bit unnecessary. Any player will know the lower staff is the left hand, assuming this is normalish piano music, so there is no need for a bass clef to remind them. What you want is not wrong. just clumsy, and adds more visual noise to a score for the brain to deal with. Andrew ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Reducing top margin for a single page in a score
I am doing a long string quartet. The full score sits nicely in the middle of an A4 landscape page with a generous top margin. But there's a solo viola part that's very dense and the staves fill out the whole page very tightly right to the bottom, and it looks clumsy because there is lots of space at the top margin not able to be utilised. Is it possible to alter the top margin for just a single page in the midst of a score where it is otherwise OK? Andrew ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Change staff clef immediately after time signature
On 2/4/19 12:36 AM, Andrew Bernard wrote: This comes up reasonably often. May I ask why you don't simply start the piece with the treble clef? If you immediately change to treble, what is the point of having the bass clef at this point? It's a musical decision up to you, but it always strikes me as a bit unnecessary. Any player will know the lower staff is the left hand, assuming this is normalish piano music, so there is no need for a bass clef to remind them. What you want is not wrong. just clumsy, and adds more visual noise to a score for the brain to deal with. I’m transcribing Sousa’s “A Typical Tune of Zanzibar,”[*] and I’m trying not to change the notation too much unnecessarily. I also think it kind of makes sense — the lower staff is almost entirely in the bass clef, and it makes sense to set that expectation right at the start, even if the first two bars are in treble clef. ~Chris [*] http://levysheetmusic.mse.jhu.edu/collection/073/057 > -- Chris Maden, text nerd http://crism.maden.org/ > Emperor Norton had the right idea. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Change staff clef immediately after time signature
HI Chris, That makes sense. I also like to preserve the composer's own notation where possible. And as said, it's not actually wrong! Good old Sousa! Andrew On Mon, 4 Feb 2019 at 16:43, Christopher R. Maden wrote: > > I’m transcribing Sousa’s “A Typical Tune of Zanzibar,”[*] and I’m trying > not to change the notation too much unnecessarily. > > ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user