A few general comments: - the LM is changing, so Scheme may or may not be introduced in it. - if possible, don't change existing stuff, since that means that I have to figure out if the change is good or not. I'd much rather simply see new examples. Comments like @c this example is not obsolete are much preferable than deleting the example.
(this applies for anything that isn't done in GDP yet) Could you try making a second patch? Cheers, - Graham On Wed, 12 Dec 2007 14:04:48 +0100 Mats Bengtsson <[EMAIL PROTECTED]> wrote: > A few comments on your patch. > > I hope you realize that the first attempt to introduce music > functions in the manual > are not in this chapter, but in "Advanced tweaks with Scheme" in the > LM. > > ======================================== > @@ -47,38 +47,56 @@ code is easy. The general form of these > functions is > > @example > function = > -#(define-music-function (parser location @var{var1} @var{var2}... ) > - (@var{var1-type?} @var{var2-type?}...) > +#(define-music-function (parser location @var{variable} ) > + (@var{variable-type?}) > ========================================== > In general, a music function can take more than one argument, so if > you first > want to start with the single argument case, then you should replace > "general > form" by something else. From a pedagogical point of view, I would > rather propose to start with a concrete example and use that as a > starting point for > the more general description (on the other hand, this is not the > learning manual). > > ============================================= > [EMAIL PROTECTED] @var{...music...} @tab is a normal LilyPond expression, > + in which variables can be > included > + using @code{#$variable1}. > [EMAIL PROTECTED] multitable > + > [EMAIL PROTECTED]: is the "#" character really still needed here? -vv > ============================================== > If you refer to the "#" character in "#$variable1", then you can > easily verify, for example in the triplet example, that it does not > even work to have a "#" character in that particular example. > However, the answer is not that simple. If you look at the padText > example that's currently included in the manual, it uses #$pad. Why? > Since you normally would have said something like > \once \override TextScript #'padding = #2.3 > So, in both the \triplet and \padText functions and all other music > functions > where the actual job is done within #{...#}, the correct explanation > is that you access the variable using an expression of the form > $variable1 and that any preceeding # has nothing to do with the fact > that you have a variable. > To complicate things, though, what we said so far is not true if you > instead write the implementation of the music functions directly in > Scheme, as for example can be seen in "Doubling a note with slurs > (example)". From within Scheme, you access the variable just like any > other Scheme variable without the "$". > > Conclusion: You should definitely remove the "#", but if you are > outside a #{...#} block, then you should also remove the "$" (however > such music functions are currently only described in the next > subsection). > > /Mats > > > Valentin Villenave wrote: > > 2007/12/12, Mats Bengtsson <[EMAIL PROTECTED]>: > > > > > >> Out of curiosity, which of the two functions do you > >> use the most, the one with one or with three arguments? > >> > > > > As a matter of fact, you posted the one with one argument before > > adding your snippet: > > http://lists.gnu.org/archive/html/lilypond-user/2007-01/msg00503.html > > > > So I began with this function, and never really tried the other > > (had I known that the other one was also possible, I probably would > > have used this instead). > > > > I type \t for "\times 2/3", \tt for "4/5" and \ttt for "4/6" and I > > use all of them a *lot*. > > > > But the main thing is that this very function made me fully > > understand how to write basic notemode music-functions using Scheme > > (I had tried to read the Manual, but had felt immediately quite > > discouraged). > > > > So, thank you very much! > > > > Graham: By the way, Mats' question made me think about possible > > corrections in the NR. > > I know GDP isn't close to deal with Scheme section yet, but here's a > > patch against /master if you're interested in it. It's a bit large > > but as you'll see, it's just about adding more progressive > > explanations about the examples, and begin with Mats' magical > > example that once made me understand everything :) > > > > For the record: although my laptop is broken and I'm running Windows > > on an old 600MHz box, I managed to make this patch thanks to the > > whole new msysGit! > > > > Valentin > > > > -- > ============================================= > Mats Bengtsson > Signal Processing > Signals, Sensors and Systems > Royal Institute of Technology > SE-100 44 STOCKHOLM > Sweden > Phone: (+46) 8 790 8463 > Fax: (+46) 8 790 7260 > Email: [EMAIL PROTECTED] > WWW: http://www.s3.kth.se/~mabe > ============================================= > _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel