]> git.donarmstrong.com Git - lilypond.git/commitdiff
*** empty log message ***
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 6 May 2004 22:27:25 +0000 (22:27 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 6 May 2004 22:27:25 +0000 (22:27 +0000)
Documentation/topdocs/NEWS.texi
Documentation/user/notation.itely
lily/parser.yy

index 46d4e25a1706667ac52ca515ef5294464ac0b8a8..32b2295c3d4757f9ec72c70018b924686b722b75 100644 (file)
@@ -8,7 +8,18 @@
 
 @itemize @bullet
 
-@item Music can be used as a markup
+
+@item Music syntax can now be extended seamlessly. As an example,
+here is the new implementation @code{\apply},
+
+@example
+  apply = #(ly:make-music-function
+     (list procedure? ly:music?) ; signature
+     (lambda (where func music)  ; the function
+       (func music)))
+@end example
+
+@item Music can be used as a markup.
 When inserting a @code{score} block as part of a @code{\markup},
 it produces a rendered markup of the music.
 
@@ -17,12 +28,11 @@ it produces a rendered markup of the music.
 @end example
 
 
-@item LilyPond expressions can be embedded into Scheme, thanks to the
-@code{#@{ ... #@}} syntax. Within such a block, Scheme forms, for
+@item LilyPond expressions can be embedded into Scheme. The syntax for
+this is @code{#@{ ... #@}}. Within such a block, Scheme forms, for
 instance variable names, can be introduced thanks to a @code{$}
-character (@code{$$} has to be used to issue a single `$' character).
-These forms are then 'printed' in the pattern, as if they were called
-by (display).
+character (@code{$$} results in a single `$' character).  These forms
+are then printed in the pattern.
 
 @example
 #(define (textoffset dx dy)
@@ -71,22 +81,25 @@ is the same as
 The default value is one octave below middle C.
 
 @c update-me?  formal definition of newaddlyrics, once it works
-@item Combining lyrics with music can be @code{newaddlyrics}
+@item Combining lyrics with music can be @code{newlyrics}
 
 @example
 <<
     \relative @{
        \clef bass
        d2 d c4 bes a2 \break
-       c2 c d4 f g2
     @}
     \newlyrics @{
        My first Li -- ly song,
+    @}
+    \newlyrics @{
        Not much can go wrong!
     @}
 >>
 @end example
 
+Syntactically, @code{\newlyrics} acts like an infix operator
+
 @item The parser is encapsulated in a Scheme function
 @code{ly:parse-file}, so the following fragment processes two files
 
index 067b51b20c26ede20bd06516f6135a566159cde8..8ac4acb22f3c2ab29988286971e9c0302092e2ec 100644 (file)
@@ -3385,6 +3385,9 @@ The definition of lyrics mode is too complex.
 @node The Lyrics context
 @subsection  The Lyrics context
 
+
+@c TODO: document \newlyrics
+
 Lyrics are printed by interpreting them in a @internalsref{Lyrics} context
 @example
  \context Lyrics \lyrics @dots{}
index f94d93a35e555c0a657fc6000f8018a8e7867350..f8efe45b33006c255a4fe7138038aaf7b756832a 100644 (file)
@@ -1009,7 +1009,7 @@ Generic_prefix_music:
                }
                SCM m = SCM_EOL;
                if (ok)
-                       m = scm_apply_0 (func, ly_cdr  ($1));
+                       m = scm_apply_0 (func, ly_cdr ($1));
                if (unsmob_music (m))
                        {
                        $$ = unsmob_music (m);
@@ -1020,7 +1020,7 @@ Generic_prefix_music:
                        loc->error (_ ("Music head function should return Music object.")); 
                        $$ = MY_MAKE_MUSIC ("Music");
                        }
-
+               $$->set_spot (*loc);
        }
        ;