@ifclear web_version
@c no anchor links, just link to News page
-@ref{News, LilyPond 2.19.57 released - @emph{March 12, 2017}}
+@ref{News, LilyPond 2.19.58 released - @emph{March 26, 2017}}
@ref{News, Two LilyPond projects in Google Summer of Code 2016 - @emph{April 23, 2016}}
@ifset web_version
@c anchor links, link to individual news items by their <a> tag
-@uref{news.html#LilyPond-2_002e19_002e57-released-March-12_002c-2017,
- LilyPond 2.19.57 released - @emph{March 12, 2017}}
+@uref{news.html#LilyPond-2_002e19_002e58-released-March-26_002c-2017,
+ LilyPond 2.19.58 released - @emph{March 26, 2017}}
@uref{news.html#Two-LilyPond-projects-in-Google-Summer-of-Code-2016-April-23_002c-2016,
Two LilyPond projects in Google Summer of Code 2016 - @emph{April 23, 2016}}
@c used for news about the upcoming release; see CG on Release Work
@newsItem
-@subheading LilyPond 2.19.57 released @emph{March 12, 2017}
+@subheading LilyPond 2.19.58 released @emph{March 26, 2017}
We are happy to announce the release of LilyPond
-2.19.57. This release includes a number of enhancements, and contains some
+2.19.58. This release includes a number of enhancements, and contains some
work in progress. You will have access to the very latest features, but
some may be incomplete, and you may encounter bugs and crashes. If you
require a stable version of LilyPond, we recommend using the 2.18
* don't duplicate entries from news-new.itexi
@end ignore
+@newsItem
+@subheading LilyPond 2.19.57 released @emph{March 12, 2017}
+
+We are happy to announce the release of LilyPond
+2.19.57. This release includes a number of enhancements, and contains some
+work in progress. You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes. If you
+require a stable version of LilyPond, we recommend using the 2.18
+version.
+
+@newsEnd
+
@newsItem
@subheading LilyPond 2.19.56 released @emph{February 26, 2017}
PACKAGE_NAME=LilyPond
MAJOR_VERSION=2
MINOR_VERSION=19
-PATCH_LEVEL=58
+PATCH_LEVEL=59
MY_PATCH_LEVEL=
VERSION_STABLE=2.18.2
-VERSION_DEVEL=2.19.57
+VERSION_DEVEL=2.19.58
%% Marks
\test ##[ \mark \default #] % MarkEvent
+\test ##[ \mark #3 #]
+\test ##[ \mark "Z" #]
+\test ##[ \mark \markup \italic "X" #]
\test ##[ \mark "Allegro" #]
\test ##[ \tempo 4 = 120 #] % MetronomeChangeEvent
\test ##[ \tempo 4 = 108 - 116 #]
\remove "Clef_engraver"
} { c4 d4 } #]
%% Context properties
-\test ##[ \once \set Score . skipBars = ##t #] % PropertySet
+\test ##[ \once \set Score.skipBars = ##t #] % PropertySet
\test ##[ \set autoBeaming = ##f #]
-\test ##[ \unset Score . skipBars #] % PropertyUnset
+\test ##[ \unset Score.skipBars #] % PropertyUnset
\test ##[ \unset autoBeaming #]
%% Layout properties
-\test ##[ \override Staff.Stem.thickness = #4.0 #] % OverrideProperty
+\test ##[ \override Staff.Stem.thickness = #4.0 #] % OverrideProperty
\test ##[ \once \override Beam.beam-thickness = #0.6 #]
\test ##[ \revert Staff.Stem.thickness #] % RevertProperty
\test ##[ \revert Beam.beam-thickness #]
m = scm_call_2 (proc, m, context ()->self_scm ());
}
else
- /* FIXME: constant error message. */
- warning (_ ("rehearsalMark must have integer value"));
+ /* Score.rehearsalMark is initialized to #1 so we
+ never should see this case without user error */
+ mark_ev_->origin ()->warning
+ (_ ("rehearsalMark must have integer value"));
}
if (Text_interface::is_markup (m))
text_->set_property ("text", m);
else
- warning (_ ("mark label must be a markup object"));
+ mark_ev_->origin ()->warning (_ ("mark label must be a markup object"));
}
}
%}
-\version "2.19.57" % necessary for upgrading to future LilyPond versions.
+\version "2.19.58" % necessary for upgrading to future LilyPond versions.
\header{
title = "A scale in LilyPond"
%}
-\version "2.19.57" % necessary for upgrading to future LilyPond versions.
+\version "2.19.58" % necessary for upgrading to future LilyPond versions.
\header{
title = "A scale in LilyPond"
(music-invert around to music))
mark =
-#(define-music-function
- (label) ((number-or-markup?))
- "Make the music for the \\mark command."
- (let* ((set (and (integer? label)
- (context-spec-music (make-property-set 'rehearsalMark label)
- 'Score)))
- (ev (make-music 'MarkEvent
- 'origin (*location*))))
-
- (if set
- (make-sequential-music (list set ev))
- (begin
- (if label (set! (ly:music-property ev 'label) label))
- ev))))
+#(define-music-function (label) ((number-or-markup?))
+ "Make the music for the \\mark command."
+ (if label
+ (make-music 'MarkEvent 'label label)
+ (make-music 'MarkEvent)))
markupMap =
#(define-music-function (path markupfun music)
% requirements may be different.
#(newline)
-#(scm-style-repl)
+#(if (guile-v2)
+ (begin
+ (use-modules (system repl repl))
+ (start-repl))
+ (scm-style-repl))
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: lilypond 2.19.57\n"
+"Project-Id-Version: lilypond 2.19.58\n"
"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu."
"lilypond.bugs\n"
-"POT-Creation-Date: 2017-03-12 11:24+0000\n"
+"POT-Creation-Date: 2017-03-26 11:21+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
#: parser.yy:3603
-msgid "unrecognized string, not in text script or \\lyricmode"
+#, c-format
+msgid "not a note name: %s"
msgstr ""
#: parser.yy:3755 parser.yy:3764
msgid "Exporting font file `~a'."
msgstr ""
-#: framework-ps.scm:543
+#: framework-ps.scm:542
#, scheme-format
-msgid "Font export directory `~a' already exists."
+msgid "Making font export directory `~a'."
msgstr ""
-#: framework-ps.scm:546
+#: framework-ps.scm:554
#, scheme-format
-msgid "Making font export directory `~a'."
+msgid "Font export directory `~a' already exists."
msgstr ""
-#: framework-ps.scm:892
+#: framework-ps.scm:901
msgid ""
"\n"
"The PostScript backend does not support the\n"
(music->lily-string (ly:music-property chord 'element)))
(define-display-method MarkEvent (mark)
- (let ((label (ly:music-property mark 'label)))
- (if (null? label)
- "\\mark \\default"
- (format #f "\\mark ~a" (markup->lily-string label)))))
+ (let ((label (ly:music-property mark 'label #f)))
+ (string-append "\\mark "
+ (if label (value->lily-string label) "\\default"))))
(define-display-method KeyChangeEvent (key)
(let ((pitch-alist (ly:music-property key 'pitch-alist))
(define-public (value->lily-string arg)
(cond ((ly:music? arg)
(music->lily-string arg))
- ((string? arg)
- (format #f "#~s" arg))
((markup? arg)
(markup->lily-string arg))
((ly:duration? arg)
(if (and (not (null? once)))
"\\once "
"")
- (if (eqv? (*current-context*) 'Bottom)
+ (if (eq? (*current-context*) 'Bottom)
""
- (format #f "~a . " (*current-context*)))
+ (format #f "~a." (*current-context*)))
property
(value->lily-string value)
(new-line->lily-string))))
(define-display-method PropertyUnset (expr)
(format #f "~a\\unset ~a~a~a"
(if (ly:music-property expr 'once #f) "\\once " "")
- (if (eqv? (*current-context*) 'Bottom)
+ (if (eq? (*current-context*) 'Bottom)
""
- (format #f "~a . " (*current-context*)))
+ (format #f "~a." (*current-context*)))
(ly:music-property expr 'symbol)
(new-line->lily-string)))
(iterator-ctor ,procedure? "Function to construct a
@code{music-event-iterator} object for this music.")
- (label ,markup? "Label of a mark.")
+ (label ,number-or-markup? "Label of a mark.")
(last-pitch ,ly:pitch? "The last pitch after relativization.")
(length ,ly:moment? "The duration of this music.")
(length-callback ,procedure? "How to compute the duration of this music.