+1.3.143.jcn3
+============
+
+* LilyPond-mode: show what's going on (font building) in *view* buffer.
+
1.3.143.jcn2
============
@lilypondfile[printfilename]{lyrics-multi-stanza.ly}
+@lilypondfile[printfilename]{lyric-phrasing.ly}
+
@section Multiple notes
MAJOR_VERSION=1
MINOR_VERSION=3
PATCH_LEVEL=143
-MY_PATCH_LEVEL=jcn2
+MY_PATCH_LEVEL=jcn3
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
--- /dev/null
+\header{
+ texidoc="Lyric phrasing
+
+ We find start and end of phrases, and align lyrics of multiple stanzas
+ accordingly.
+
+ Also, lyrics at start of melismata should be left aligned.
+ (is that only lyrics that are followed by `__'? Because
+ that seems to be the case now -- jcn)
+
+@example
+ | | | | |
+ x| x| x| x| x|
+
+ 1: Start sentence melisma end.
+ 2: x x x______ x
+@end example
+
+ Only lyrics that are followed by '__' while there's a melisma,
+ are left-aligned, in this case the third x.";
+}
+
+\paper { linewidth = -1.; }
+\score {
+ \addlyrics
+ \context Voice = "v" \notes \relative c'' {
+ \property Staff.automaticMelismata = ##t
+ \autoBeamOff
+ a a a8()a a4
+ }
+ \context Lyrics <
+ \context LyricsVoice = "v-1" \lyrics {
+ \property LyricsVoice . stanza = "1:"
+ Start sentence melisma end.
+ }
+ \context LyricsVoice = "v-2" \lyrics {
+ \property LyricsVoice . stanza = "2:"
+ x x x __ x
+ }
+ >
+}
*/
/*
- We find start and end of phrases, and align lyrics accordingly.
+ We find start and end of phrases, and align lyrics of multiple stanzas
+ accordingly.
+
Also, lyrics at start of melismata should be left aligned.
+ (is that only lyrics that are followed by `__'? Because
+ that seems to be the case now -- jcn)
+
+
+ | | | | |
+ x| x| x| x| x|
+ 1: Start sentence melisma end.
+ 2: x x x_____ x
+
+ Only lyrics that are followed by '__' while there's a melisma,
+ are left-aligned, in this case the third x.
+
+
Alignment and melismata
I've taken [a different] approach:
lastchar = lyric_str[lyric_str.length_i ()-1];
/* If it doesn't end in punctuation then it ain't an end of phrase */
if (! strchr (punc, lastchar)) {
- /* Special case: trailing space. Here examine the previous character and reverse the
+ /*
+ FIXME: Document this.
+
+ Special case: trailing space. Here examine the previous character and reverse the
sense of the test (i.e. trailing space makes a break without punctuation, or
suppresses a break with punctuation).
This behaviour can be suppressed by including a space in the
file))
string)))
+(defun LilyPond-shell-process (name buffer command)
+ (let ((old (current-buffer)))
+ (switch-to-buffer-other-window buffer)
+ (goto-char (point-max))
+ (start-process-shell-command name buffer command)
+ (switch-to-buffer-other-window old)))
+
+
(defun LilyPond-command (name file)
"Run command NAME on the file you get by calling FILE.
;; Don't open new xdvi window, but force redisplay
;; We could make this an option.
(signal-process (process-id process-xdvi) 'SIGUSR1)
- (start-process-shell-command name buffer-xdvi command)))
- (start-process-shell-command name buffer-xdvi command)))
+ (LilyPond-shell-process name buffer-xdvi command)))
+ (LilyPond-shell-process name buffer-xdvi command)))
(progn
(setq LilyPond-command-default name)
(LilyPond-compile-file command name)))))))
+#(set! point-and-click line-column-location)
+
instrument = "Piano"
\header {
}
lyricVerseOne = \lyrics{
- Lei- se fleh- en mei- ne Lie- der
+ Lei- se fleh- en mei- ne Lie- der
Durch die Nacht zu dir;
In den stil- len Hain her- nie- der
Lieb- chen, komm zu mir!
\bar "|.";
}
-allLyrics = \lyrics {
+allLyrics = \lyrics {
\lyricVerseOne
\lyricVerseTwo
\lyricThrough
}
-lyricStaff = \context Lyrics = lyric<
+lyricStaff = \context Lyrics {
\allLyrics
->
+}
-vocals = \notes{
+vocals = \context Voice {
\clef treble;
% certainly no auto-beaming for vocals
\property Voice.noAutoBeaming = ##t
\global
\treble
>
-
bass = {
\clef bass;
\bassIntro
%}
\addlyrics
- %\context Staff=vocal \vocalStaff
- %\context Lyrics=lyric \lyricStaff
\vocalStaff
\lyricStaff
\grandStaff
# setups. Maybe we should check if kpsewhich can find
# feta16.{afm,mf,tex,tfm}, and only set env upon failure.
#
+datadir = '@datadir@'
environment = {
'MFINPUTS' : datadir + '/mf:',
'TEXINPUTS': datadir + '/tex:' + datadir + '/ps:.:',