reverted contextStringTuning again
Hi David, I'm sorry, but I still cannot build git master from scratch when I have your contextStringtuning commit pushed. Please discuss the situation on lilypond-devel, and put an updated patch on Rietveld so that James can test the build. I cannot leave git master in an uncompilable state. Please note that running make doc a second time is *BROKEN* and should never be trusted. The *ONLY* way to accurately+confidently test whether a patch will work or not is to completely remove your build directory and compile from scratch (i.e. starting from ../configure). See for example http://code.google.com/p/lilypond/issues/detail?id=1852 I think that the touch trick is sufficient to work around 1852, but if you did that and it still worked for you, then evidently that's not a reliable workaround. I've added input/regression/context-string-tuning.ly which makes sure that git master can compile with the current function definition. Somebody might want to make a better test / better texidoc, but at the moment I just want to have something in there. This function was not previously tested. Cheers, - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Creates pure closures (issue 4894052)
On Aug 31, 2011, at 10:37 PM, n.putt...@gmail.com wrote: On 2011/08/20 20:21:30, mikesol_ufl.edu wrote: I'll try to think of something better...if you have any suggestions in the meantime, they're certainly welcome! Something using a stencil override? The problem is that stencils are never considered pure/unpure - they are just used in grob::pure-height. I've changed it to Flag instead of Stem to avoid it duplicating the Stem override of which you speak. http://codereview.appspot.com/4894052/diff/9001/lily/pure-closure.cc#newcode68 lily/pure-closure.cc:68: assert (is_pure_closure (pc)); optimized builds will segfault on invalid args, so you should use LY_ASSERT_TYPE () here Done. Not in this patchset. Fixed. http://codereview.appspot.com/4894052/diff/9001/lily/pure-closure.cc#newcode76 lily/pure-closure.cc:76: assert (is_pure_closure (pc)); LY_ASSERT_TYPE () Done. Not in this patchset. Fixed. ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Creates pure closures (issue 4894052)
On Aug 31, 2011, at 10:41 PM, n.putt...@gmail.com wrote: http://codereview.appspot.com/4894052/diff/19001/lily/system.cc File lily/system.cc (right): http://codereview.appspot.com/4894052/diff/19001/lily/system.cc#newcode773 lily/system.cc:773: || is_unpure_pure_container (elts[i]-get_property_data (Y-extent move this to pure-relevant? Good call! Done. http://codereview.appspot.com/4894052/diff/19001/lily/unpure-pure-container.cc File lily/unpure-pure-container.cc (right): http://codereview.appspot.com/4894052/diff/19001/lily/unpure-pure-container.cc#newcode54 lily/unpure-pure-container.cc:54: 2, 0, 0, (SCM unpure, SCM pure), I'd make the pure part optional, if you're going to have grobs where both parts are identical. Done. Cheers, MS ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: reverted contextStringTuning again
Graham Percival gra...@percival-music.ca writes: Hi David, I'm sorry, but I still cannot build git master from scratch when I have your contextStringtuning commit pushed. Please discuss the situation on lilypond-devel, and put an updated patch on Rietveld so that James can test the build. I cannot leave git master in an uncompilable state. It is missing an equals sign this time apparently. Please note that running make doc a second time is *BROKEN* and should never be trusted. The *ONLY* way to accurately+confidently test whether a patch will work or not is to completely remove your build directory and compile from scratch (i.e. starting from ../configure). I can't expend the hours for a complete rebuild right now, and obviously I am too distracted to manage proper testing procedures anyway. So it is up to someone else to fix this. I wasted enough of my own time and more importantly that of others (I really can't understand how this could get through again) on this stupid bug already. I probably should not have touched it in the first place. The fix is obvious and trivial, anyway, so somebody else would have come up with it eventually. -- David Kastrup ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: reverted contextStringTuning again
On Thu, Sep 01, 2011 at 09:34:28AM +0200, David Kastrup wrote: I can't expend the hours for a complete rebuild right now, and obviously I am too distracted to manage proper testing procedures anyway. So it is up to someone else to fix this. Fair enough. Added as http://code.google.com/p/lilypond/issues/detail?id=1859 Cheers, - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: centering text on a measure
Hi David Perhaps you could turn this idea into a music function: \relative c'' { a4 a a a | { a4 a a a | } { \once \override MultiMeasureRest #'transparent = ##t R1_XIII | } a4 a a a | } Trevor - Original Message - From: David Nalesnik david.nales...@gmail.com To: lilypond-user lilypond-u...@gnu.org Cc: Lilypond Dev lilypond-devel@gnu.org Sent: Thursday, September 01, 2011 5:27 AM Subject: centering text on a measure Hi all, I've been experimenting with a way to center text on measures. (I create a lot of exercises with blanks or roman numerals between the staff, and it's nice not to need to position each one individually by trial and error.) I've come up with the following function which works, but I wonder if there's a simpler or more correct way to go about this. Also, I'm wondering why I can't apply this function to 'X-offset rather than 'extra-offset. I've attached a version of the file which returns an 'X-offset value, and it returns an error (also with 'self-alignment-X). Is there a way to fix this? Any suggestions will be much appreciated! Thanks, David \version 2.15.8 #(define (bounding-coords grob-coord bar-coords end-coord) (if (null? (cdr bar-coords)) (cons (car bar-coords) end-coord) (if (and ( (car bar-coords) grob-coord) ( (cadr bar-coords) grob-coord)) (cons (car bar-coords)(cadr bar-coords)) (bounding-coords grob-coord (cdr bar-coords) end-coord #(define (center-on-measure grob) (let* ((sys (ly:grob-system grob)) (array (ly:grob-object sys 'all-elements)) (grob-coord (interval-center (ly:grob-extent grob sys X))) (grob-name (lambda (x) (assq-ref (ly:grob-property x 'meta) 'name))) (bars (filter (lambda (x) (eq? 'NonMusicalPaperColumn (grob-name x))) (ly:grob-array-list array))) (bar-coords (sort (map (lambda (x) (interval-center (ly:grob-extent x sys X))) bars) )) (bounds (bounding-coords grob-coord bar-coords (cdr (ly:grob-extent sys sys X) (cons (- (- grob-coord (/ (+ (car bounds) (cdr bounds)) 2))) 0))) { \override TextScript #'extra-offset = #center-on-measure \repeat unfold 10 { s1_|^| } s2_|^| } ___ lilypond-user mailing list lilypond-u...@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Creates pure closures (issue 4894052)
http://codereview.appspot.com/4894052/diff/29001/lily/unpure-pure-container.cc File lily/unpure-pure-container.cc (right): http://codereview.appspot.com/4894052/diff/29001/lily/unpure-pure-container.cc#newcode35 lily/unpure-pure-container.cc:35: LY_ASSERT_TYPE (is_unpure_pure_container, smob, 1); You sure this works? It might need registering in function-documentation.cc to prevent doc build failure. http://codereview.appspot.com/4894052/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Creates pure closures (issue 4894052)
On Sep 1, 2011, at 10:39 AM, n.putt...@gmail.com wrote: http://codereview.appspot.com/4894052/diff/29001/lily/unpure-pure-container.cc File lily/unpure-pure-container.cc (right): http://codereview.appspot.com/4894052/diff/29001/lily/unpure-pure-container.cc#newcode35 lily/unpure-pure-container.cc:35: LY_ASSERT_TYPE (is_unpure_pure_container, smob, 1); You sure this works? It might need registering in function-documentation.cc to prevent doc build failure. No, but I will certainly check before pushing! Cheers, MS ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Long live length in the docs. (issue 4965053)
Pushed as 6465274e66a851cccd4cd32a521abc853f3e79dd. Thanks to all for their help. A couple things: 1) Trevor - I still haven't heard word back about ly:dimension?. If it turns out this is not what's supposed to be used, please feel free to change it to number? in a separate commit. 2) While perusing the visual output of the docs, I noticed that Trevor's cary.ly example looks different from the 2.14 site. I'll try to post a patch to get it to its normal state before I leave. Cheers, MS http://codereview.appspot.com/4965053/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Creates pure closures (issue 4894052)
http://codereview.appspot.com/4894052/diff/29001/lily/unpure-pure-container.cc File lily/unpure-pure-container.cc (right): http://codereview.appspot.com/4894052/diff/29001/lily/unpure-pure-container.cc#newcode35 lily/unpure-pure-container.cc:35: LY_ASSERT_TYPE (is_unpure_pure_container, smob, 1); On 2011/09/01 08:39:24, Neil Puttock wrote: You sure this works? It might need registering in function-documentation.cc to prevent doc build failure. Just a question - in this file, should I call it unpure_pure_container or unpure pure container? I'm leading towards the first (I'll likely run a doc build with that in a few minutes once my current doc build is done), but I can change it to the second if that seems more lilypondish. Cheers, MS http://codereview.appspot.com/4894052/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
daily auto-tester proof-of-concept
script: https://github.com/gperciva/lilypond-extra/blob/master/auto-compile/compile-lilypond-test.py usage: ./compile-lilypond-test.py (after fixing some variables at the top of the file) very cronjob-able. I also deliberately avoided using -j for make so that it'll be less intrusive to a server. Sample output (with a fake commit): Begin LilyPond compile, commit: 7a73ad8d9afb46bc2c908a54e776181e1d8df72a Success:autogen.sh Success:configure *** FAILED BUILD *** Previous good commit: 6465274e66a851cccd4cd32a521abc853f3e79dd Current broken commit: 7a73ad8d9afb46bc2c908a54e776181e1d8df72a (oops, I just realized that I should print the step that failed; in this case, a plain old make) Anyway, I'm down to 90 minutes for the rest of this week, which I really need to reserve for email. Does anybody want to take over this script and give it a bit more polish? and/or offer a server to run this every 24 hours? If the answers are no on both counts, I don't mind doing it myself, but it might be a week or two before I get it up and running. I need to get GOP moving again; GOP 11 isn't precisely urgent, but it would be great to fix it soon, and there's other important but not urgent stuff to organize. Cheers, - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
xelatex text block in markups
Hello lists, I made up a markup command, to include latex-formatted text. Well, I don't want to get rid of lilypond-book like some people wrote on this list, but I want the oppertunity, to include a well formatted text on my first page of a book with several pieces of music. I used to take http://lsr.dsi.unimi.it/LSR/Snippet?id=586 for making paragraphs. But that one lacks hyphenation (in this example, hyphenation fails in some lines, but thats a xelatex issue) and doesn't look as balanced as latex generated output. And I haven't found a way, to produce two column output with markup-lines (did I overlook something?). So here is what I do: - create a temporary tex-file from a markup with paper size set with the geometry package - process it with xelatex (from texlive 2009 on ubuntu lucid) - convert it with pdftops (from texlive 2009 on ubuntu lucid) - return the eps-stencil Now this is just a proof of concept, trial or whatever. Problems for now: - The paragraph command is able to pagebreak, this include variant isn't - right now. - The height of the resulting text-box has to be found by trial and error. - Dependency on unrelated software TBD: error checks Does anybody has quick answer to the following questions? - How can I determine the page height in staff-space or cm? Not lilypond-related, but probably someone knows ;-) - How can I crop an EPS to the actually visual size If I have answers to these questions, I could detetermine the page-count of the temporary pdf and create basename-[1...].eps files and create a markup-list-command. Well, probably one should use lilypond-book, produce the lilypdf and include that in another PDF with an external tool or use the snippet mentioned above. But I also thought about using this technique to improve e.g. footnote-markups (with hyphenation etc...). What do you think? Suggestions welcome. Cheers, Jan-Peter \version 2.14.2 % This example assumes an environment with xelatex and pdftops available in PATH % if set later, paperScale is not updated! #(set-global-staff-size 16) % how is the staff-scaling #(define-public paperScale 1.0) \paper { #(set! paperScale (/ (* 1 cm) staff-space)) } % get a string from a markup % TBD convert bold, italic, etc. to latex-commands % (snippet taken from the list) #(define (markup-string mup conc) (let ((result )) (map (lambda (x) (begin ;; if this is a concat-markup, do not insert blanks between string (if (eq? x concat-markup)(set! conc #t)) (if (list? x) (set! result ;; if we are concatenating or we start with an empty result, don't add a blank (if (or conc (string=? result )) (string-append result (markup-string x conc)) (string-append result (markup-string x conc) (if (string? x) (set! result ;; if we are concatenating or we start with an empty result, don't add a blank (if (or conc (string=? result )) (string-append result x) (string-append result x result)) mup) result) ) % xetex markup command (could also be done with pdflatex) #(define-markup-command (xetex layout props size m)(number? markup-list?) (let ( ; width of our box in cm (width (/ (chain-assoc-get 'line-width props 0) paperScale)) ; height of our box in cm (height (/ size paperScale)) ; the text to fill into template.tex (text (markup-string m #f)) ; basename of working files (basename (strftime xelatex-%Y%m%d%H%M%S (localtime (current-time ; result of each command (result 0) ; stencil to return (text-stencil empty-stencil)) ; write basename.tex (with-output-to-file (format ~A.tex basename) (lambda () (display (format \\documentclass{scrartcl} \\usepackage[paperwidth=~Acm,paperheight=~Acm,margin=1mm]{geometry} \\usepackage[ngerman]{babel} \\usepackage{fontspec} \\setmainfont{DejaVu Sans} \\begin{document} ~A \\end{document} width height text ; produce pdf (set! result (system (format xelatex \~A.tex\ basename))) ; convert first page to EPS (set! result (system (format pdftops -eps -f 1 -l 1 \~A.pdf\ basename))) ; include EPS (set! text-stencil (eps-file-stencil Y size (format ~A.eps basename))) ; remove working files (system (format rm -v \~A\.* basename)) ; return eps-stencil text-stencil )) %%% Test \markup
Re: Creates pure closures (issue 4894052)
Pushed as 69622b49b7a5a9c992e36ef11ba60c1fdd3c34b6. I made the regtest more unique to unpure-pure-closures so that people reading it don't mistake it for the same thing as extra-spacing-height. Have fun with these! Cheers, MS http://codereview.appspot.com/4894052/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: PATCH: 48-hour countdown to 20110903
On 11-08-31 11:32 PM, Graham Percival wrote: Colin: I've just added a Patch-push label as a temporary measure. Please change the labels on issues that should be pushed, so that we can (easily) get an accurate view of the situation. (this isn't urgent, though) Sweet! I'll do some housekeeping as I get a chance today. Tomorrow's batch will go out early, as I'm taking Mrs Patchmeister on an impulse session of highway therapy: driving for 4 days around Alberta and BC, back in time for the regular Monday batch. Cheers Colin -- The human race has one really effective weapon, and that is laughter. -- Mark Twain ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Prevents nested tuplets from colliding. (issue 4808082)
On 2011/08/30 21:57:44, J_lowe wrote: Mike, passes make but during reg test check i get Yikes! Sorry about that - I forgot to commit the deletion of that file (the property it tests no longer exists). New patchset uploaded. Cheers, MS http://codereview.appspot.com/4808082/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
DynamicText attached to spacer rest not correctly aligned
Hello, Since issue #620 is now fixed DynamicTextSpanner and Hairpin are now correctly aligned when attached to spacer rests (e.g. in piano centered dynamics). It would be nice if DynamicText was also correctly aligned, which is not the case now. I thought it was already reported but I cannot find it on the tracker. Here is a minimal example showing the difference of horizontal alignment between dynamics attached to notes and attached to spacer rests (within a Dynamics context). Cheers, Xavier Snippet \version 2.15.9 \score { \new PianoStaff \new Staff = up { \clef treble \relative c' { c4\p c c\mp c | c4\mf c c\f c | \repeat unfold 8 c4 \new Dynamics = dynamics \with { alignBelowContext = up } { s4\p s s\mp s | s4\mf s s\f s } } } \new Staff = down { \clef bass \repeat unfold 16 c4 } } End of snippet -- Xavier Scheuer x.sche...@gmail.com ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
musical_dy in beam-quanting.cc
Question: could someone who knows what musical_dy is and why it is used instead of unquanted_y.length () in beam-quanting.cc please add a comment to the file. Alternatively, if it is just vestigial from a lily of yore, could someone please delete it? Thanks! Cheers, MS ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Changes variable names in include/beam-scoring-problem.hh and beam-quanting.cc (issue 4961041)
http://codereview.appspot.com/4961041/diff/3001/lily/include/beam-scoring-problem.hh File lily/include/beam-scoring-problem.hh (right): http://codereview.appspot.com/4961041/diff/3001/lily/include/beam-scoring-problem.hh#newcode114 lily/include/beam-scoring-problem.hh:114: TODO - use trailing _ on data members. I think you can delete this TODO now. http://codereview.appspot.com/4961041/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Improves horizontal spacing of axis groups that SpanBar grobs traverse. (issue 4917046)
Hey all, So that people can confirm the visual output of this, I'm going to wait to push until I get back. Cheers, MS http://codereview.appspot.com/4917046/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Improves horizontal spacing of axis groups that SpanBar grobs traverse. (issue 4917046)
This requires an update. The patch fails to apply. Bertrand http://codereview.appspot.com/4917046/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Sketch for broken beams with consistent slopes (issue 4961041)
Hey all, Sorry for hijacking this issue to turn it into another one. I'll take care of the variable name stuff in a second patch. My summer of lily comes to a close with this monstrosity. Some gotchyas: 1) Do not compile the regtests against this: they will break, as several parts of Lily and several regtests use callbacks that I've deleted (I don't have time to fix that before I leave). Instead, copy and paste any regtest with the word beam in it into a directory and compile those to get a sense of what this patch does. 2) This patch currently breaks cross-staff beam nice slope finding (it'll probably take me an hour-ish to figure out why and fix it). Other than that, I believe that it leaves other slopes in tact. 3) You'll see that, by approaching beam slope this way, a lot of code duplication that arose from chaining functions together is avoided. 4) It'd be nice to have more callbacks to fine tune how Beam_scoring_problem does its thing as it is now gimungous. 5) Most importantly, apply this patch and compile: \version 2.15.10 \relative c' { \override Beam #'breakable = ##t a8 [ b c d e f g \bar \break f e d c b a ] } \relative c' { \override Beam #'breakable = ##t \override Beam #'consistent-broken-slope = ##t a8 [ b c d e f g \bar \break f e d c b a ] } \relative c' { \override Beam #'breakable = ##t a8 [ b c d e f \bar \break a c e g b ] } \relative c' { \override Beam #'breakable = ##t \override Beam #'consistent-broken-slope = ##t a8 [ b c d e f \bar \break a c e g b ] } And there ya have it! Cheers, MS P.S. Sorry for the generally kludgy nature of some aspects of this patch, which may or may not include wholesale deletion of certain things that are actually important. This will be addressed in later patchsets - this was thrown together in a rush :) http://codereview.appspot.com/4961041/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Improves horizontal spacing of axis groups that SpanBar grobs traverse. (issue 4917046)
On Sep 1, 2011, at 6:12 PM, bordage.bertr...@gmail.com wrote: This requires an update. The patch fails to apply. Thanks for the heads up! I've uploaded a new patchset rebased against current master. Cheers, MS ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Sketch for broken beams with consistent slopes (issue 4961041)
On Sep 1, 2011, at 6:13 PM, mts...@gmail.com wrote: Other than that, I believe that it leaves other slopes in tact. intact Cheers, MS ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Uses langdefs.py to create language list for create-weblinks-itexi.py (issue 4951047)
An update after further research following GP's pointer. Please review. http://codereview.appspot.com/4951047/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Sketch for broken beams with consistent slopes (issue 4961041)
Update: looks like cross-staff beams are broken because I removed all of the commony code that takes care of cross staff beams. D'oh! Will put back in in a way that preserves the old cross-staff beam slopes while allowing them to work with the broken beam code. Cheers, MS http://codereview.appspot.com/4961041/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: PATCH: 48-hour countdown to 20110903
On Thu, Sep 01, 2011 at 07:10:19AM -0600, Colin Campbell wrote: Sweet! I'll do some housekeeping as I get a chance today. Tomorrow's batch will go out early, as I'm taking Mrs Patchmeister on an impulse session of highway therapy: driving for 4 days around Alberta and BC, back in time for the regular Monday batch. Mrs Patchmeister is a lucky woman. Driving around Alberta and BC means the Rocky Mountains, the best place on earth. :) Cheers, - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Uses langdefs.py to create language list for create-weblinks-itexi.py (issue 4951047)
Looks plausible, but I haven't tested it quite yet. Could we get: 1) update to the make-website.sh portion of the CG, line 249 of website-work.itexi ? 2) define WEB_LANGS (or something similar) in langdefs.py, then use those in create-weblinks.itexi.py ? Once that's done, I'll give it a whirl, and then I think you can push it. http://codereview.appspot.com/4951047/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: New partcombineUp and partcombineDown functions (issue 4514042)
Reviewers: J_lowe, dan_faithful.be, Message: I updated the patch and added a regtest. Dan, I don't have time for now to rewrite the whole part combiner. Do you want to do it ? If so, I can help you (at my level). Bertrand Description: New partcombineUp and partcombineDown functions Fix issue 1321 Please review this at http://codereview.appspot.com/4514042/ Affected files: A input/regression/part-combine-3voices.ly M lily/part-combine-iterator.cc M ly/music-functions-init.ly M scm/part-combiner.scm Index: input/regression/part-combine-3voices.ly diff --git a/input/regression/part-combine-3voices.ly b/input/regression/part-combine-3voices.ly new file mode 100644 index ..8dcb00966b4eec2b882b4562d9da3e49d79c96ab --- /dev/null +++ b/input/regression/part-combine-3voices.ly @@ -0,0 +1,18 @@ +\version 2.15.10 + +\header { + texidoc =It is possible to use the part combiner for three + voices with \\partcombineUp and \\partcombineDown. +} + + +soprano = { d''2 f'' g'' } +alto = { a' c''4 d'' e''2 } +tenor = { f'2 a'4 b' c''2 } +basso = { d'4 e' f' g' g'2 } + +\new Staff \partcombineUp \soprano \alto \\ \basso + +\new Staff \soprano \\ \partcombineDown \tenor \basso + + Index: lily/part-combine-iterator.cc diff --git a/lily/part-combine-iterator.cc b/lily/part-combine-iterator.cc index 4583d221f646ef9bcdc801dd46c4674366795fb3..9ab0495ae14ce909838c5498e5421d28590fd5bf 100644 --- a/lily/part-combine-iterator.cc +++ b/lily/part-combine-iterator.cc @@ -65,6 +65,11 @@ private: Moment start_moment_; SCM split_list_; + SCM direction_; + SCM directionOne_; + SCM directionTwo_; + SCM horizontalShiftOne_; + SCM horizontalShiftTwo_; Stream_event *unisono_event_; Stream_event *solo_one_event_; @@ -133,6 +138,11 @@ Part_combine_iterator::Part_combine_iterator () first_iter_ = 0; second_iter_ = 0; split_list_ = SCM_EOL; + direction_ = SCM_BOOL_F; + directionOne_ = scm_from_int (1); + directionTwo_ = scm_from_int (-1); + horizontalShiftOne_ = scm_from_int (0); + horizontalShiftTwo_ = scm_from_int (1); state_ = APART; playing_state_ = APART; last_playing_ = APART; @@ -349,6 +359,17 @@ Part_combine_iterator::construct_children () { start_moment_ = get_outlet ()-now_mom (); split_list_ = get_music ()-get_property (split-list); + direction_ = get_music ()-get_property (direction); + if (is_direction (direction_)) +{ + directionOne_ = direction_; + directionTwo_ = direction_; + if (scm_is_true (scm_negative_p (direction_))) +{ + horizontalShiftOne_ = scm_from_int (1); + horizontalShiftTwo_ = scm_from_int (0); +} +} Context *c = get_outlet (); @@ -369,6 +390,8 @@ Part_combine_iterator::construct_children () Context *two = handles_[CONTEXT_TWO].get_context (); set_context (two); second_iter_ = unsmob_iterator (get_iterator (unsmob_music (scm_cadr (lst; + Context *shared = handles_[CONTEXT_SHARED].get_context (); + set_context (shared); /* Mimic all settings of voiceOne/voiceTwo for the two separate voices...*/ /* FIXME: Is there any way to use the definition of \voiceOne/\voiceTwo @@ -391,16 +414,20 @@ Part_combine_iterator::construct_children () { SCM sym = ly_symbol2scm (*p); execute_pushpop_property (one, sym, -ly_symbol2scm (direction), scm_from_int (1)); +ly_symbol2scm (direction), directionOne_); execute_pushpop_property (two, sym, -ly_symbol2scm (direction), scm_from_int (-1)); +ly_symbol2scm (direction), directionTwo_); + + if (scm_is_number (direction_)) +execute_pushpop_property (shared, sym, + ly_symbol2scm (direction), direction_); } /* Handle horizontal shifts for crossing notes */ execute_pushpop_property (one, ly_symbol2scm (NoteColumn), -ly_symbol2scm (horizontal-shift), scm_from_int (0)); +ly_symbol2scm (horizontal-shift), horizontalShiftOne_); execute_pushpop_property (two, ly_symbol2scm (NoteColumn), -ly_symbol2scm (horizontal-shift), scm_from_int (1)); +ly_symbol2scm (horizontal-shift), horizontalShiftTwo_); /* Also handle MultiMeasureRest positions for voice 1/2 */ execute_pushpop_property (one, ly_symbol2scm (MultiMeasureRest), ly_symbol2scm (staff-position), scm_from_int (4)); Index: ly/music-functions-init.ly diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index b3a009860753c54d7ab7549617ab4ba6f32d3ae5..1419daa808f7ebf5e65f33cb9116b940d1fdda67 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -767,7 +767,21 @@ partcombine = (_i Take the music in @var{part1} and
Re: Add some polyphonically directed grobs (issue 4387046)
I don't think we have sufficient support for applying this patch. Both Neil and I have spoken against it, and presented our arguments. No one has given a counter view. http://codereview.appspot.com/4387046/ ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: New partcombineUp and partcombineDown functions (issue 4514042)
On 2011-09-01, at 17:44 , bordage.bertr...@gmail.com wrote: I updated the patch and added a regtest. Dan, I don't have time for now to rewrite the whole part combiner. Do you want to do it ? If so, I can help you (at my level). I don't have time either. If this work is up to current standards, I'm not going to complain. I just wanted to make known what was tried in the past. -- Dan ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel