should 'make web' take several attempts?

2009-04-11 Thread Andrew Hawryluk
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?

2009-04-11 Thread Carl D. Sorensen



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-04-11 Thread Neil Puttock
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

2009-04-11 Thread Jonathan Kulp

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

2009-04-11 Thread Ian Stirling
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

2009-04-11 Thread Graham Percival
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

2009-04-11 Thread Mark Polesky
'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

2009-04-11 Thread Nicolas Sceaux

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

2009-04-11 Thread Jonathan Kulp

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

2009-04-11 Thread Graham Percival
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

2009-04-11 Thread n . puttock

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.

2009-04-11 Thread n . puttock

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-04-11 Thread Neil Puttock
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

2009-04-11 Thread n . puttock

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.

2009-04-11 Thread joeneeman

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-04-11 Thread Valentin Villenave
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

2009-04-11 Thread Mark Polesky

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

2009-04-11 Thread Reinhold Kainhofer
-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

2009-04-11 Thread Patrick McCarty
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