should 'make web' take several attempts?
I am trying to build the docs, and I get pdfetex exited with bad status, quitting errors. However, each time I reattempt it, it seems to get further along before quitting. Does a full doc build from scratch require numerous build attempts, in a similar way that LaTeX must be run twice to get its cross-references correct? Andrew ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: should 'make web' take several attempts?
On 4/11/09 5:21 PM, Andrew Hawryluk ahawry...@gmail.com wrote: I am trying to build the docs, and I get pdfetex exited with bad status, quitting errors. However, each time I reattempt it, it seems to get further along before quitting. Does a full doc build from scratch require numerous build attempts, in a similar way that LaTeX must be run twice to get its cross-references correct? No, once should do it. Carl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Implement framework for post-fix text (de)cresc spanners
2009/4/12 Patrick McCarty pnor...@gmail.com: On Sun, Apr 12, 2009 at 12:28:06AM +0200, Reinhold Kainhofer wrote: On Samstag, 11. April 2009 20:33:47 n.putt...@gmail.com wrote: You'd need a method which does the reverse of camel_case_to_lisp_identifier () so that the events would be converted from e.g. crescendo-spanner - crescendoSpanner. Huh? Sorry, but I don't understand what you want to say here. Can you please elaborate? The music properties generally follow a specific naming convention: all lowercase, except the multiple-word properties, which contain hyphens between words. I think this is what Neil is referring to. That's exactly what I meant, though reading back what I posted to Rietveld, I don't blame you for becoming confused. :) Of course, what I should have said was you need to use camel_case_to_lisp_identifier () to convert e.g. crescendoSpanner - crescendo-spanner. #include misc.hh ... SCM spanner_type = evt-get_property ((camel_case_to_lisp_identifier (name)).c_str ()); Regards, Neil ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: tab characters in the source code
Valentin Villenave wrote: 2009/4/11 Jonathan Kulp jonlancek...@gmail.com: I want in on this, too! All I've been lacking to have a go at writing an opera is a libretto. :) OK, let's start a composers team then, but you'll have to find a good name for it :-) As for the need of a libretto, I have to say that this was quite a story for me. (It's off-topic, but I'm afraid we're way past that by now). For a couple of years, I've been looking for a good libretto, reading many plays, getting in touch with various playwrights. Everything I found was too verbose, too serious. I was about to give up... At this time, I was a literature student, and I was writing a thesis on Lewis Trondheim, a comic books author I had been fond of since I was a child; then some day I thought hey, this is the guy I need! Of course, he was twice my age, and was some kind of a world-famous star. Nevertheless, I sent him a mail: greetings, I'm a 20-years-old piano teacher, so far I have done nothing with my life, would you be interested in writing an opera with me? He immediately answered: Well, it's a funny coincidence, yesterday I was walking in the street, near the Opera House, and I thought: Operas are mostly old or boring, it's a pity young people do not take some action and do something about it... So, let's do this! And this is how I got started. He wrote the libretto without being paid a dime, sending me each scene after another, accepting every modifications I suggested; for two years we never met nor call each other, and worked only by e-mail; the very first time he heard _any_ music of mine was at the opera's rehearsal four years later. And as soon as we got out, he told me: OK, let's write a new opera now. And this time, I want some zombies in it! Cheers, Valentin Great story, Valentin!! Thanks for sharing that. No idea what to call a composition team, BTW. Jon -- Jonathan Kulp http://www.jonathankulp.com ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: tab characters in the source code
On Tuesday 07 April 2009 03:32:43 pm Mark Polesky wrote: I was fiddling around with output-ps.scm (specifically the grob-cause procedure on line 159) and was getting frustrated with the poor indentation displaying in my editor when I realized that this was being caused by tab characters in the source. Is there an easy way to address this? I don't know how many tab characters there are in the source, nor do I know how to find out. But it can be frustrating. Any solutions? Here's a hack I wrote for my Amiga files in 1994 'cos I was fed up of tabs. Error checking is minimal and boundary checking is non existent. #include stdio.h #include ctype.h #include math.h main(int argc, char *argv*[]) { int tab, c, ts; if (argc !=2 ) { fprintf(stderr, Use: expandtab n\n); exit(27); } ts = atoi(argv[1]); tab = 0; while ((c=getchar()) != EOF) { if (c=='\t') { tab %= ts; do { putchar(' '); ++tab; } while (tab != ts); } else { putchar(c); ++tab; } if ( c=='\n' ) tab = 0; } } Ian -- ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: tab characters in the source code
On Thu, Apr 09, 2009 at 10:28:00PM +0200, Valentin Villenave wrote: 2009/4/9 Graham Percival gra...@percival-music.ca: On Thu, Apr 09, 2009 at 03:33:06PM +0200, Jan Nieuwenhuizen wrote: Now how do we prevent that in some far away future, people will have forgotten this and propose to deviate from the Zebra standard? I suggest to prefix all names in our softwares in our to be prefixed with ZEBRA/. For example: ZEBRA/LilyPond. That will surely work! By the way, I *always* prefix LilyPond by an animal name when I introduce it in my published papers. :) By the way, strictly speaking, the slash character is not appropriate. Correct syntax is with a whitespace: $ANIMAL_NAME $ProjectName Really? So www.ZEBRA.org is incorrect? ... WTM?! There actually *is* a GNU Zebra project?!?! It does TCP/IP routing. If there was a bearded wise guru in your ZEBRA group, I'm sure he'd be quite touchy about punctuation :) I used to be bearded, but I got rid of that when I started working on long hair. I'm still wise, though. :) Nah; Valentin will keep the legend of the Grumpy Developer alive in times to come. So now you're a developer? I said developer, not core developer. See that top block of people in the THANKS? Right under the DEVELOPMENT TEAM heading? Those are developers. Including you. 2009/4/9 Jan Nieuwenhuizen janneke-l...@xs4all.nl: Brilliant! Let's define the MOOSE/coding standards in an Opera! Awesome. I'm precisely in search of a new libretto... And Graham chickened out when I offered him to write something with me :-) Ok, over the summer we'll try to come up with the history of PLATIPUS/LilyPond in a series of arias and duets. The end of Act 1 will be a dramatic retelling of all the wiki flamewars. Acts normally end with a big confusing quartet with everybody saying different things at once, right? BTW -- now that I'm thinking about it, I'm not sure I'd like to know what kind of music he's referring to as power ballad. You know those rambling, droning songs at indie rock shows with very little drums and electric bass? Where everybody waves lit cigarette lighters in the air? Those are power ballads. Dunno where the power comes from, since it's as acoustic as rock music gets... The fifths comment was a reference to power chords, which actually aren't chords at all, but are just called that by ignorance rock guitarists. It's just a fifth (possibly including an octave as well). Used in heavy metal and punk rock. Almost always used in succession, which would give a harmony instructor a heart attack from all the parallel fifths. BTW, my knowledge of such terms comes entirely from questionablecontent.net, which is a webcomic vaguely like XKCD but for indie rock geekery. Before reading that webcomic, I knew almost nothing about indie rock. But QC is just /dripping/ in the same amount of geekery as XKCD does, so I had to keep on reading it (and looking up terms in wikipedia). I really appreciate high-level geekery drippings. Yum! Cheers, - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
'avoid-slur proposals
'avoid-slur proposals: 1. remove 'avoid-slur from Slur properties Why does Slur have an 'avoid-slur property? Can anyone give an example where the command \override Slur #'avoid-slur = #something has an effect? 2. add a choice: 'ignore \override Fingering #'avoid-slur = ##f triggers the message: warning: Ignoring grob for slur: Fingering. avoid-slur not set? Staff.Accidental also triggers the warning (and I don't know how many others). Perhaps the warning could be removed if the user demonstrates intent like this: \override Fingering #'avoid-slur = #'ignore By the way, is there a way to suppress this warning? I'm working on a macro that could potentially trigger this warning dozens of times in a single compile. Something akin to \override NoteColumn #'ignore-collision = ##t but for Slur instead? 3. rewrite the docstring. I can hear Graham already. Well, fine, I'll do it myself. If you're curious, here are 2 paragraphs of the type of confusion that awaits a user reading the current docstring (I know from experience): How does a clef move around or outside a slur? For a clef to be inside a slur is intuitive - but it's not the clef that moves (as in the case of scripts), the *slur* does. The docs say: 'around only moves the script if there is a collision; 'outside always moves the script. Is a clef a script? With the command: \override Staff.Clef #'avoid-slur = #'around there is a collision, but no script is moved. And \override Staff.Clef #'avoid-slur = #'outside doesn't cause anything to move either, which renders the docstring confusing IMO. But with this option: \override Staff.Clef #'avoid-slur = #'ignore I think the situation would be clearer. So here's my new docstring. Notice that I'm so adamant about the 'ignore choice that I've incorporated it already. Perhaps it's a little too long, but I prefer it this way. The super-concise version that's there nowhas confused me for long enough. __ Method of handling slur collisions. Choices are 'inside, 'outside, 'around,and 'ignore. 'inside adjusts the slur if needed to keep the grob inside the slur. 'outside moves the grob vertically to the outside of the slur. 'around moves the grob vertically to the outside of the slur only if there is a collision. 'ignore does not move either. In grobs whose notational significance depends on vertical position (such as accidentals, clefs, etc.), 'outside and 'around behave like 'ignore. __ 4. implement 'avoid-ties and 'avoid-phrasing-slurs? just an idea. 5. answer 2 more of my questions Why is it that\override Script #'avoid-slur = ##f looks like 'inside for staccato dots, but looks like 'around for accents? And why do neither of them actually ignore the slurs, as the current docstring suggests they might? And finally, why trigger a warning for Fingering and Staff.Accidental (and, as previously stated, I don't know how many others) but not for Staff.TimeSignature and Staff.Clef? Thanks. - Mark p.s. Are my posts too long generally? \version 2.13.0 \pointAndClickOff \layout { \context { \Staff \override InstrumentName #'self-alignment-X = #1 \override InstrumentName #'padding = #1.5 } } \paper { indent = #40 } \markup \override grob #'avoid-slur = # \relative g'' { \set Staff.instrumentName = #Script \override TextScript #'staff-padding = #4 \override Script #'avoid-slur = #'around g^'around-.( g-. g-. g-.) \override Script #'avoid-slur = #'inside g^'inside-.( g-. g-. g-.) \override Script #'avoid-slur = #'outside g^'outside-.( g-. g-. g-.) \override Script #'avoid-slur = ##f g^#f-.( g-. g-. g-.) } \relative g'' { \set Staff.instrumentName = #Script \override TextScript #'staff-padding = #4 \override Script #'avoid-slur = #'around g^'around-( g- g- g-) \override Script #'avoid-slur = #'inside g^'inside-( g- g- g-) \override Script #'avoid-slur = #'outside g^'outside-( g- g- g-) \override Script #'avoid-slur = ##f g^#f-( g- g- g-) } \relative g'' { \set Staff.instrumentName = #Fingering \override TextScript #'staff-padding = #5 \override Fingering #'avoid-slur = #'around g^3^'around( g g g^3) \override Fingering #'avoid-slur = #'inside g^3^'inside( g g g^3) \override Fingering #'avoid-slur = #'outside g^3^'outside( g g g^3) \override Fingering #'avoid-slur = ##f g^3^\markup {#f \with-color #red \bold *}( \override TextScript #'staff-padding = #0 g g g^3)_\markup \halign #0 \fontsize #-2 \with-color #red \column { \concat {\bold * warning: Ignoring grob} for slur: Fingering. avoid-slur not set?} } \relative b' { \set Staff.instrumentName = #Staff.Accidental \override TextScript #'staff-padding = #4 \override Staff.Accidental #'avoid-slur = #'around
Re: Writing out a table of contents to a file
Le 11 avr. 09 à 00:01, Reinhold Kainhofer a écrit : [...] However, I would rather get the page information into latex's TOC instead and for this I need to write out the TOC entries to a separate file, preferrably in the form page-number, section, 1, title, toc-label for each entry (since the addtotoc argument for the includepdf latex command expects exactly such a list). Now, it seems that I am unable to find a proper place where I have access to the TOC entries list with the page numbers properly determined and available... Can anyone help me? Maybe this will help you doing what you want: \version 2.12.2 \paper { #(set! write-page-layout #t) #(define (page-post-process layout pages) (let ((label-table (ly:output-def-lookup layout 'label-page- table))) (format #t ~{~%~a~} (map (lambda (toc-item) (let* ((label (car toc-item)) (text (caddr toc-item)) (type (cadr toc-item)) ;; more work to do here (label-page (and (list? label-table) (assoc label label-table))) (page (and label-page (cdr label-page (format #f ~a, \~a\, 1, ~s, ~a page type text label))) (toc-items) } \tocItem \markup Toto \markup Toto \pageBreak \tocItem \markup Titi \markup Titi \pageBreak \tocItem \markup Tata \markup Tata == 1, tocItemMarkup, 1, Toto, toc53 2, tocItemMarkup, 1, Titi, toc54 3, tocItemMarkup, 1, Tata, toc55 You will have to transform the tocItemMarkup, and also write the output into a file rather than stdout. Nicolas ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: tab characters in the source code
Graham Percival wrote: 2009/4/9 Jan Nieuwenhuizen janneke-l...@xs4all.nl: Brilliant! Let's define the MOOSE/coding standards in an Opera! Awesome. I'm precisely in search of a new libretto... And Graham chickened out when I offered him to write something with me :-) Ok, over the summer we'll try to come up with the history of PLATIPUS/LilyPond in a series of arias and duets. The end of Act 1 will be a dramatic retelling of all the wiki flamewars. Acts normally end with a big confusing quartet with everybody saying different things at once, right? I want in on this, too! All I've been lacking to have a go at writing an opera is a libretto. :) Jon -- Jonathan Kulp http://www.jonathankulp.com ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: tab characters in the source code
On Sat, Apr 11, 2009 at 06:52:30AM -0500, Jonathan Kulp wrote: Graham Percival wrote: Valentin: Awesome. I'm precisely in search of a new libretto... And Graham chickened out when I offered him to write something with me :-) Ok, over the summer we'll try to come up with the history of PLATIPUS/LilyPond in a series of arias and duets. The end of Act 1 will be a dramatic retelling of all the wiki flamewars. Acts normally end with a big confusing quartet with everybody saying different things at once, right? I want in on this, too! All I've been lacking to have a go at writing an opera is a libretto. :) Ok, I'll mark it down as an official GOP feature. :) Cheers, - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Fix #670: Chained trills
Reviewers: joeneeman, Message: On 2009/04/08 20:37:56, joeneeman wrote: lgtm Cheers. I've amended trill-spanner-auto-stop.ly since there's a rogue space after @code. Description: Fix #670: Chained trills - if trill spanner isn't stopped using \stopTrillSpan, make next start-span right bound. - for trill spans on last note of final system, don't end on final musical column, since it will extend beyond the last breakable column. Please review this at http://codereview.appspot.com/32142 Affected files: A input/regression/trill-spanner-auto-stop.ly A input/regression/trill-spanner-chained.ly M lily/trill-spanner-engraver.cc ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Move left-broken line-spanner check to callback.
Reviewers: joeneeman, Message: On 2009/04/08 20:42:51, joeneeman wrote: http://codereview.appspot.com/32148/diff/1/7#newcode426 Line 426: Spanner::after_line_breaking (SCM grob) Can you think of a name that describes what the function actually does? Like Spanner::suicide_if_spanned_time_is_empty, but maybe less verbose... How about Spanner::kill_zero_length_span or Spanner::kill_zero_spanned_time? Description: Move left-broken line-spanner check to callback. Currently, left-broken line spanners and hairpins are removed when they end on the first note of the new system. Though this is appropriate for glissandi and voice followers, there is no way to override this default behaviour. This patch allows the user to tweak the appearance by overriding 'after-line-breaking. - removed left-broken check from ly:line-spanner::print to a new after-line-breaking callback, ly:spanner::after-line-breaking - removed hairpin after-line-breaking callback and associated method consider_suicide () - added new callback to Hairpin, Glissando and VoiceFollower Please review this at http://codereview.appspot.com/32148 Affected files: A input/regression/spanner-after-line-breaking.ly M lily/hairpin.cc M lily/include/hairpin.hh M lily/include/spanner.hh M lily/line-spanner.cc M lily/spanner.cc M scm/define-grobs.scm ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: 'avoid-slur proposals
2009/4/11 Mark Polesky markpole...@yahoo.com: 'avoid-slur proposals: 1. remove 'avoid-slur from Slur properties Why does Slur have an 'avoid-slur property? So they avoid phrasing slurs. Can anyone give an example where the command \override Slur #'avoid-slur = #something has an effect? \relative c' { \override Slur #'avoid-slur = #'outside c\( d( e) f\) } 2. add a choice: 'ignore \override Fingering #'avoid-slur = ##f triggers the message: warning: Ignoring grob for slur: Fingering. avoid-slur not set? Staff.Accidental also triggers the warning (and I don't know how many others). Perhaps the warning could be removed if the user demonstrates intent like this: \override Fingering #'avoid-slur = #'ignore By the way, is there a way to suppress this warning? I'm working on a macro that could potentially trigger this warning dozens of times in a single compile. Something akin to \override NoteColumn #'ignore-collision = ##t but for Slur instead? Sounds like a good idea, and only requires one extra line of code for #'avoid-slur = #'ignore. 3. rewrite the docstring. So here's my new docstring. Notice that I'm so adamant about the 'ignore choice that I've incorporated it already. Perhaps it's a little too long, but I prefer it this way. The super-concise version that's there nowhas confused me for long enough. __ Method of handling slur collisions. Choices are 'inside, 'outside, 'around,and 'ignore. 'inside adjusts the slur if needed to keep the grob inside the slur. 'outside moves the grob vertically to the outside of the slur. 'around moves the grob vertically to the outside of the slur only if there is a collision. 'ignore does not move either. In grobs whose notational significance depends on vertical position (such as accidentals, clefs, etc.), 'outside and 'around behave like 'ignore. __ That's much clearer. For 'around, though it's implied in your description, it's probably better to say that it behaves like 'inside unless there's a collision. 4. implement 'avoid-ties and 'avoid-phrasing-slurs? just an idea. An unnecessary complication for phrasing slurs, since they're nearly identical to slurs (and duplicate most of the code). Judging by the number of `ugh' comments related to avoid-slur in the source, extending the same behaviour to ties is probably undesirable (though it would be good if they avoided clefs and time signatures). 5. answer 2 more of my questions Why is it that\override Script #'avoid-slur = ##f looks like 'inside for staccato dots, but looks like 'around for accents? And why do neither of them actually ignore the slurs, as the current docstring suggests they might? You can't override 'avoid-slur for scripts unless you use \tweak or override scriptDefinitions; the engraver gets the default properties from default-script-alist *after* you've used \override: \relative c' { c4-\tweak #'avoid-slur ##f -( d) \set scriptDefinitions = #(cons '(staccato . ((script-stencil . (feta . (staccato . staccato))) (side-relative-direction . -1) (quantize-position . #t) (avoid-slur . #f) (toward-stem-shift . 0.5) (padding . 0.20) (script-priority . -100))) default-script-alist) c4-.( d) } And finally, why trigger a warning for Fingering and Staff.Accidental (and, as previously stated, I don't know how many others) but not for Staff.TimeSignature and Staff.Clef? You'll get a warning for any graphical grob that the Slur_engraver acknowledges. If you take a look at slur-engraver.cc you'll see that it acknowledges the following: Accidental Fingering Script TextScript Tie TupletNumber The warning is inside the auxiliary method which does the acknowledging. Regards, Neil ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Implement framework for post-fix text (de)cresc spanners
I never realized this would be so simple, but it strikes me as a bit of a hack. In your sample text dynamic spanners, there seems to be an element of redundancy in the event properties; you could easily junk '(de)crescendoSpanner and '(de)crescendoText, using 'text only to trigger the change, though I'm still not sure I like this either: + SCM event_text = current_span_event_-get_property (dynamic-text); SCM cresc_type = get_property ((start_type + Spanner).c_str ()); - if (cresc_type == ly_symbol2scm (text)) + if (cresc_type == ly_symbol2scm (text) + || Text_interface::is_markup (event_text)) { current_spanner_ = make_spanner (DynamicTextSpanner, accepted_spanevents_drul_[START]-self_scm ()); - SCM text = get_property ((start_type + Text).c_str ()); + SCM text = ((event_text != SCM_EOL) + ? event_text + : get_property ((start_type + Text).c_str ())); if (Text_interface::is_markup (text)) { current_spanner_-set_property (text, text); } } http://codereview.appspot.com/39047/diff/1/2 File lily/new-dynamic-engraver.cc (right): http://codereview.appspot.com/39047/diff/1/2#newcode76 Line 76: SCM spanner_type = evt-get_property (name); This looks weird to me, since you're taking advantage of the fact that the event properties you're setting look like context properties. You'd need a method which does the reverse of camel_case_to_lisp_identifier () so that the events would be converted from e.g. crescendo-spanner - crescendoSpanner. http://codereview.appspot.com/39047 ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Move left-broken line-spanner check to callback.
On 2009/04/11 12:31:10, Neil Puttock wrote: On 2009/04/08 20:42:51, joeneeman wrote: http://codereview.appspot.com/32148/diff/1/7#newcode426 Line 426: Spanner::after_line_breaking (SCM grob) Can you think of a name that describes what the function actually does? Like Spanner::suicide_if_spanned_time_is_empty, but maybe less verbose... How about Spanner::kill_zero_length_span or Spanner::kill_zero_spanned_time? I prefer the second one. http://codereview.appspot.com/32148 ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: tab characters in the source code
2009/4/11 Graham Percival gra...@percival-music.ca: ... WTM?! There actually *is* a GNU Zebra project?!?! It does TCP/IP routing. And wait, once we've founded our new group and taken over the world, they'll have to call themselves ZEBRA Zebra :-) Ok, over the summer we'll try to come up with the history of PLATIPUS/LilyPond in a series of arias and duets. The end of Act 1 will be a dramatic retelling of all the wiki flamewars. Acts normally end with a big confusing quartet with everybody saying different things at once, right? Yes. I think the GUI/non-GUI flamewars would be good too. The fifths comment was a reference to power chords, which actually aren't chords at all, but are just called that by ignorance rock guitarists. It's just a fifth (possibly including an octave as well). Used in heavy metal and punk rock. Almost always used in succession, which would give a harmony instructor a heart attack from all the parallel fifths. Yeah, I know about these. This is generally a fun part when I explain my students that paralell fifth are only allowed in medieval music /and/ rock (this is where I usually play the smoke on the water riff). BTW, my knowledge of such terms comes entirely from questionablecontent.net, which is a webcomic vaguely like XKCD but for indie rock geekery. Before reading that webcomic, I knew almost nothing about indie rock. But QC is just /dripping/ in the same amount of geekery as XKCD does, so I had to keep on reading it (and looking up terms in wikipedia). I didn't know this webcomic. I much prefer XKCD's graphic style, but I'll keep a look on this one as well. 2009/4/11 Jonathan Kulp jonlancek...@gmail.com: I want in on this, too! All I've been lacking to have a go at writing an opera is a libretto. :) OK, let's start a composers team then, but you'll have to find a good name for it :-) As for the need of a libretto, I have to say that this was quite a story for me. (It's off-topic, but I'm afraid we're way past that by now). For a couple of years, I've been looking for a good libretto, reading many plays, getting in touch with various playwrights. Everything I found was too verbose, too serious. I was about to give up... At this time, I was a literature student, and I was writing a thesis on Lewis Trondheim, a comic books author I had been fond of since I was a child; then some day I thought hey, this is the guy I need! Of course, he was twice my age, and was some kind of a world-famous star. Nevertheless, I sent him a mail: greetings, I'm a 20-years-old piano teacher, so far I have done nothing with my life, would you be interested in writing an opera with me? He immediately answered: Well, it's a funny coincidence, yesterday I was walking in the street, near the Opera House, and I thought: Operas are mostly old or boring, it's a pity young people do not take some action and do something about it... So, let's do this! And this is how I got started. He wrote the libretto without being paid a dime, sending me each scene after another, accepting every modifications I suggested; for two years we never met nor call each other, and worked only by e-mail; the very first time he heard _any_ music of mine was at the opera's rehearsal four years later. And as soon as we got out, he told me: OK, let's write a new opera now. And this time, I want some zombies in it! Cheers, Valentin ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: 'avoid-slur proposals
Neil Puttock wrote: Why does Slur have an 'avoid-slur property? So they avoid phrasing slurs. \relative c' { \override Slur #'avoid-slur = #'outside c\( d( e) f\) } Okay, but the semantics are contradictory. One could think of the command in your example in two different ways: Adjust the slur to keep the slur outside the phrasing-slur. -or- Adjust the slur to keep the phrasing-slur inside the slur. Neither is reflected with the current syntax. Either of these (non-functioning) commands would be clearer: \override Slur #'avoid-phrasing-slur = #'outside -or- \override PhrasingSlur #'avoid-slur = #'inside Incidentally, the second command does nothing, which is unfortunate since it's more intuitive WRT the docstring. As a kludge, we could add an exception clause to the docstring, but ideally that's the wrong solution IMO. Lastly, this construct is also semantically lacking: \override Staff.Clef #'avoid-slurs = ##f It's really the slur that's avoiding the clef. This would be more intuitive: \override Slur #'ignore-clefs = ##t(default would be #f) ...but that would be a terrible idea, because you'd want 'ignore-time-signatures, 'ignore-key-signatures, etc... Maybe something like this would be ideal: \override Slur #'avoid-list = #'(clef key-signature time-signature ...) Maybe not exactly that, but something like it? And then you could do the same thing for Tie andPhrasingSlur. Anyway, don't forget that my category is Bug Hunter/ Suggestions. I understand if some of my proposals are just too impractical to consider. I usually don't know what it involves, so pardon my occasional ambitiousness! 2. add a choice: 'ignore Sounds like a good idea, and only requires one extra line of code... Don't let me stop you! (: 4. implement 'avoid-ties and 'avoid-phrasing-slurs? Judging by the number of `ugh' comments related to avoid-slur in the source, extending the same behaviour to ties is probably undesirable (though it would be good if they avoided clefs and time signatures). Only if the user could choose. Would my earlier idea: \override Tie #'avoid-list = #'(clef key-signature time-signature ...) be workable? Practical? Regards, Neil Thanks for such a thorough response. - Mark ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Implement framework for post-fix text (de)cresc spanners
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Samstag, 11. April 2009 20:33:47 n.putt...@gmail.com wrote: I never realized this would be so simple, but it strikes me as a bit of a hack. In your sample text dynamic spanners, there seems to be an element of redundancy in the event properties; you could easily junk '(de)crescendoSpanner and '(de)crescendoText, using 'text only to trigger the change, Yes, but I decided against it, since the global setting shows the same redundancy. \set #'crescendoSpanner = #'text \set #'crescendoText = #blah I wanted to stay consistent for global and for one-time settings. However, I totally agree that this is redundant, so I would also not mind junking the global crescendoSpanner as well (although it gives us flexibility should we want to introduce other spanner types than hairpin and text). http://codereview.appspot.com/39047/diff/1/2 File lily/new-dynamic-engraver.cc (right): http://codereview.appspot.com/39047/diff/1/2#newcode76 Line 76: SCM spanner_type = evt-get_property (name); This looks weird to me, since you're taking advantage of the fact that the event properties you're setting look like context properties. No, I simply check if the event property with the same name exists. If it does, it takes precedence. What I'm taking advantage of that I assume that the event property and the global setting have the same name. You'd need a method which does the reverse of camel_case_to_lisp_identifier () so that the events would be converted from e.g. crescendo-spanner - crescendoSpanner. Huh? Sorry, but I don't understand what you want to say here. Can you please elaborate? Cheers, Reinhold - -- - -- Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/ * Financial Actuarial Math., Vienna Univ. of Technology, Austria * http://www.fam.tuwien.ac.at/, DVR: 0005886 * LilyPond, Music typesetting, http://www.lilypond.org -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) iD8DBQFJ4Rl3TqjEwhXvPN0RApgwAKDC/jJxn69zQgLUklKCviFbiFAvKwCgs3Ha eeq0/YPhHKEMCNZLqDgT32Y= =lOSc -END PGP SIGNATURE- ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: Implement framework for post-fix text (de)cresc spanners
On Sun, Apr 12, 2009 at 12:28:06AM +0200, Reinhold Kainhofer wrote: On Samstag, 11. April 2009 20:33:47 n.putt...@gmail.com wrote: You'd need a method which does the reverse of camel_case_to_lisp_identifier () so that the events would be converted from e.g. crescendo-spanner - crescendoSpanner. Huh? Sorry, but I don't understand what you want to say here. Can you please elaborate? The music properties generally follow a specific naming convention: all lowercase, except the multiple-word properties, which contain hyphens between words. I think this is what Neil is referring to. -Patrick ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel