+2003-08-25 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * scripts/convert-ly.py
+ (FatalConversionError.articulation_substitute): add
+ convert-new-chords code. Remove convert-new-chords.py
+
+ * Documentation/user/refman.itely (Octave check): document
+ \octave.
+
+ * Documentation/topdocs/NEWS.texi: add \octave, postfix and
+ \relative changes.
+
+ * lily/parser.yy (command_element): octave check:
+
+ \octave PITCH
+
+ checks that PITCH (without octave) yields PITCH (with octave) in
+ \relative
+
+ * lily/relative-octave-music.cc (to_relative_octave): octave check.
+
+ * lily/scm-option.cc: ly:set-option now has the default argument
+ #t.
+
+ * lily/lexer.ll: add \renameinput
+
+ * python/lilylib.py (command_name): robustifications.
+
+ * scripts/ly2dvi.py (run_latex): use >& for redirection iso. of
+ /dev/stderr. This is ash compatible.
+
+ * ly/init.ly: add warning if compatibility was not necessary.
+
+ * lily/scm-option.cc (LY_DEFINE): add ly:get-option
+
+ * flower/include/string-handle.icc: formatting cleanups, rename
+ references by ref_count_.
+
2003-08-25 Heikki Junes <hjunes@cc.hut.fi>
* make/lilypond.mandrake.spec.in: syncronize the spec file with
invoking `unset out', declare menus, use only one icon-file, fix
doc-path in menu.
-2003-08-25 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
- * flower/include/string-handle.icc: formatting cleanups, rename
- references by ref_count_.
-
2003-08-23 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* scripts/convert-ly.py (FatalConversionError.conv): typo
LOCALSTEPMAKE_TEMPLATES=lilypond ly
LILYPOND_BOOK_FLAGS=--extra-options '-e "(ly:set-option (quote internal-type-checking) \#t)"'
README_TOP_FILES= DEDICATION ChangeLog
-EXTRA_DIST_FILES= ChangeLog-1.5
+EXTRA_DIST_FILES=
include $(depth)/make/stepmake.make
@node Top, , ,
@top
+@chapter New features in 1.9 since 1.8
+
+@itemize
+
+@item
+Octave checks make octave errors easier to correct.
+The syntax is
+@example
+ \octave @var{pitch}
+@end example
+
+This checks that @var{pitch} (without octave) yields @var{pitch} (with
+octave) in \relative mode. If not, a warning is printed, and the
+octave is corrected.
+
+@item
+All articulations must now be entered postfix. For example,
+
+@example
+ c8[( d8])
+@end example
+is a pair of beamed slurred eighth notes.
+
+@item
+The definition of @code{\relative} has been simplified. Octaves are
+now always propagated in the order that music is entered. In the
+following example,
+@example
+ PRE
+ \repeat "unfold" 3 BODY \alternative { ALT1 ALT2 ALT3 }
+ POST
+@end example
+the octave of BODY is based on PRE, the starting octave of ALT1 on
+BODY, the starting octave of ALT2 on ALT1, etc.
+
+The same mechanism is used for all other music expressions, except the
+chord. Backwards compatibility is retained through a special option,
+which is invoked as
+
+@example
+ #(ly:set-option 'old-relative)
+@end example
+
+
+
@chapter New features in 1.8 since 1.6
@end lilypond
-@item @code{-( -)}
+@item @code{( )}
@tab slur
@tab
@lilypond[fragment, relative 1]
\property Staff.TimeSignature = \turnOff
\property Staff.autoBeaming = ##f
\property Staff.Clef = \turnOff
-c-( d e-)
+c( d e)
@end lilypond
-@item @code{-\( -\)}
+@item @code{\( \)}
@tab phrasing slur
@tab
@lilypond[fragment, relative 1]
\property Staff.TimeSignature = \turnOff
\property Staff.autoBeaming = ##f
\property Staff.Clef = \turnOff
-c-\( c-( d-) e-\)
+c\( c( d) e\)
@end lilypond
@end lilypond
-@item @code{-\mf -\sfz}
+@item @code{\mf \sfz}
@tab dynamics
@tab
@lilypond[fragment, relative 1]
\property Staff.TimeSignature = \turnOff
\property Staff.Clef = \turnOff
-c-\mf c-\sfz
+c\mf c\sfz
@end lilypond
-@item @code{-\< -\!}
+@item @code{\< \!}
@tab crescendo
@tab
@lilypond[fragment, relative 1]
a\< a \!a
@end lilypond
-@item @code{-\> -\!}
+@item @code{\> \!}
@tab decrescendo
@tab
@lilypond[fragment, relative 1]
\property Staff.TimeSignature = \turnOff
\property Staff.autoBeaming = ##f
\property Staff.Clef = \turnOff
-a-\> a a-\!
+a\> a a\!
@end lilypond
be concatenated with the @code{+} operator.
-
@node Output details
@section Output details
\property Staff.Custos \set #'adjust-if-on-staffline = ##t
\property Staff.Custos \set #'style = #'hufnagel
- c'1^"Custos style = \#'hufnagel"
+ c'1
\break << d' a' f''>>1
}
\paper {
@menu
* Relative octaves::
+* Octave check::
* Bar check::
* Skipping corrected music::
* Automatic note splitting ::
want to use relative within transposed music, you must place an
additional @code{\relative} inside the @code{\transpose}.
+@node Octave check
+@subsection Octave check
+
+
+Octave checks make octave errors easier to correct.
+The syntax is
+@example
+ \octave @var{pitch}
+@end example
+
+This checks that @var{pitch} (without octave) yields @var{pitch} (with
+octave) in \relative mode. If not, a warning is printed, and the
+octave is corrected, for example, the first check is passed
+successfully. The second check fails with an error message. The
+octave is adjusted so the following notes are in the correct octave
+once again.
+@example
+ \relative c' @{
+ e
+ \octave a'
+ \octave b'
+ @}
+@end example
+
+
+The octave of a note following an octave check is determined with
+respect to the note preceding it. In the next fragment, the last note
+is a @code{a'}, above central C.
+
+@lilypond[verbatim,fragment]
+ \relative c' {
+ e
+ \octave b
+ a
+ }
+@end lilypond
+
+
@node Bar check
@subsection Bar check
respectively:
@lilypond[fragment,verbatim,center,relative]
- \time 6/4 c'-\( d( e) f( e) d-\)
+ \time 6/4 c'\( d( e) f( e) d\)
@end lilypond
Typographically, the phrasing slur behaves almost exactly like a
\relative c' { c1
\property Voice.TextSpanner \set #'direction = #-1
\property Voice.TextSpanner \set #'edge-text = #'("rall " . "")
- c2-\startTextSpan b c-\stopTextSpan a }
+ c2\startTextSpan b c\stopTextSpan a }
@end lilypond
@lilypond[singleline,verbatim]
\score { \notes \relative c'' {
- c4-\startGroup-\startGroup
- c4-\stopGroup
- c4-\startGroup
- c4-\stopGroup-\stopGroup
+ c4\startGroup\startGroup
+ c4\stopGroup
+ c4\startGroup
+ c4\stopGroup\stopGroup
}
\paper { \translator {
\StaffContext \consists "Horizontal_bracket_engraver"
@end lilypond
Other symbols can be added using the syntax
-@var{note}@code{-\}@var{name}, e.g. @code{c4-\fermata}. Again, they
-can be forced up or down using @code{^} and @code{_}:
+@var{note}@code{\}@var{name}, e.g. @code{c4\fermata}. Again, they
+can be forced up or down using @code{^} and @code{_},
+eg.
+
+@lilypond[verbatim,fragment,relative 2]
+ c\fermata c^\fermata c_\fermata
+@end lilypond
+
+
@cindex accent
@cindex marcato
specific notation flavour without need for introducing any new
notational concept.
-@menu
-* Ancient note heads::
-* Ancient accidentals::
-* Ancient rests::
-* Ancient clefs::
-* Ancient flags::
-* Ancient time signatures::
-@end menu
Other aspects of ancient notation can not that easily be expressed as
in terms of just changing a style property of a graphical object.
ancient notation, see @ref{Custodes}, @ref{Divisiones},
@ref{Ligatures}, and @ref{Figured bass}.
+
@menu
+* Ancient note heads::
+* Ancient accidentals::
+* Ancient rests::
+* Ancient clefs::
+* Ancient flags::
+* Ancient time signatures::
* Custodes::
* Divisiones::
* Ligatures::
* Figured bass::
+* Vaticana style contexts::
@end menu
If this all is way too much of documentation for you, and you just
set up predefined style-specific voice and staff contexts, and
directly go ahead with the note entry.
-@menu
-* Vaticana style contexts::
-@end menu
-
@refbugs
Ligatures need special spacing that has not yet been implemented. As
Dynamic signs are made by adding the markings to the note:
@quotation
@lilypond[verbatim,relative 1]
-c-\ff c-\mf
+c\ff c\mf
@end lilypond
@end quotation
@separate
is attached to:
@quotation
@lilypond[verbatim,relative 1]
-c2-\< c2-\!-\ff c2-\> c2-\!
+c2\< c2\!\ff c2\> c2\!
@end lilypond
@end quotation
@separate
@quotation
@lilypond[fragment,relative 1, verbatim]
-a8(-\( ais b c) cis2 b'2 a4 cis, c-\)
+a8(\( ais b c) cis2 b'2 a4 cis, c\)
@end lilypond
@end quotation
@quotation
@example
-r4 <<c e g>>8-\>( <<c e g>> <<c e g>> <<c f a>>8-\!)
+r4 <<c e g>>8\>( <<c e g>> <<c e g>> <<c f a>>8\!)
@end example
@lilypond[relative 0, fragment]
\slurUp
-r4 <<c e g>>8-\>( <<c e g>> <<c e g>> <<c f a>>8-\!)
+r4 <<c e g>>8\>( <<c e g>> <<c e g>> <<c f a>>8\!)
@end lilypond
@end quotation
@separate
tweak}:
@lilypond[relative 1]
- c2-\fermata
+ c2\fermata
\property Voice.Script \set #'padding = #3
- b2-\fermata
+ b2\fermata
@end lilypond
@end itemize
+++ /dev/null
-
-# to nwe chord syntax.
-import re
-import string
-import sys
-import getopt
-import os
-
-
-def sub_chord (m):
- str = m.group(1)
-
- origstr = '<%s>' % str
- if re.search (r'\\\\', str):
- return origstr
-
- if re.search (r'\\property', str):
- return origstr
-
- if re.match (r'^\s*\)?\s*\\[a-zA-Z]+', str):
- return origstr
-
- durs = []
- def sub_durs (m):
- durs.append(m.group(2))
- return m.group (1)
-
- str = re.sub ("([a-z]+[,'!? ]*)([0-9.]+)", sub_durs, str)
- dur_str = ''
-
- for d in durs:
- if dur_str == '':
- dur_str = d
- if dur_str <> d:
- return '<%s>' % m.group (1)
-
- pslur_strs = ['']
- dyns = ['']
- slur_strs = ['']
-
- last_str = ''
- while last_str <> str:
- last_str = str
- def sub_dyn_end (m):
- dyns.append (' -\!')
- return ' ' + m.group(2)
-
- str = re.sub (r'(\\!)\s*([a-z]+)', sub_dyn_end, str)
- def sub_slurs(m):
- if '-)' not in slur_strs:
- slur_strs.append ( '-)')
- return m.group(1)
- def sub_p_slurs(m):
- if '-\)' not in slur_strs:
- slur_strs.append ( '-\)')
- return m.group(1)
- str = re.sub (r"\)[ ]*([a-z]+)", sub_slurs, str)
- str = re.sub (r"\\\)[ ]*([a-z]+)", sub_p_slurs, str)
- def sub_begin_slurs(m):
- if '-(' not in slur_strs:
- slur_strs.append ( '-(')
- return m.group(1)
- str = re.sub (r"([a-z]+[,'!?0-9 ]*)\(", sub_begin_slurs, str)
- def sub_begin_p_slurs(m):
- if '-\(' not in slur_strs:
- slur_strs.append ( '-\(')
- return m.group(1)
-
- str = re.sub (r"([a-z]+[,'!?0-9 ]*)\\\(", sub_begin_p_slurs, str)
-
- def sub_dyns (m):
- s = m.group(0)
- if s == '@STARTCRESC@':
- slur_strs.append ("-\\<")
- elif s == '@STARTDECRESC@':
- slur_strs.append ("-\\>")
- elif s == r'-?\\!':
- slur_strs.append ('-\\!')
- return ''
-
- str = re.sub (r'@STARTCRESC@', sub_dyns, str)
- str = re.sub (r'-?\\!', sub_dyns, str)
-
- def sub_articulations (m):
- a = m.group(1)
- if a not in slur_strs:
- slur_strs.append (a)
- return ''
-
- str = re.sub (r"([_^-]\@ACCENT\@)", sub_articulations, str)
- str = re.sub (r"([_^-]\\[a-z]+)", sub_articulations, str)
- str = re.sub (r"([_^-][>_.+|^-])", sub_articulations, str)
-
- def sub_pslurs(m):
- slur_strs.append ( ' -\\)')
- return m.group(1)
- str = re.sub (r"\\\)[ ]*([a-z]+)", sub_pslurs, str)
-
- suffix = string.join (slur_strs, '') + string.join (pslur_strs, '') \
- + string.join (dyns, '')
-
- return '@STARTCHORD@%s@ENDCHORD@%s%s' % (str , dur_str, suffix)
-
-
-
-
-simend = '}'
-simstart = "\n\\simultaneous {"
-chordstart = '<'
-chordend = '>'
-
-old_syntax = 1
-
-if old_syntax:
- simend = '>'
- simstart = "<"
- chordstart = '<<'
- chordend = '>>'
-
-
-marker_str = '%% new-chords-done %%'
-
-def sub_chords (str):
- if re.search (marker_str,str):
- return str
- str= re.sub (r'\\<', '@STARTCRESC@', str)
- str= re.sub (r'\\>', '@STARTDECRESC@', str)
- str= re.sub (r'([_^-])>', r'\1@ACCENT@', str)
- str = re.sub ('<([^<>{}]+)>', sub_chord, str)
-
- str = re.sub (r'\[ *(@STARTCHORD@[^@]+@ENDCHORD@[0-9.]+)',
- r'\1-[',
- str)
- str = re.sub (r'\\! *(@STARTCHORD@[^@]+@ENDCHORD@[0-9.]+)',
- r'\1-\\!',
- str)
- str = re.sub ('<([^?])', r'%s\1' % simstart, str)
- str = re.sub ('>([^?])', r'%s\1' % simend, str)
- str = re.sub ('@STARTCRESC@', r'\\<', str)
- str = re.sub ('@STARTDECRESC@', r'\\>' ,str)
- str = re.sub (r'\\context *Voice *@STARTCHORD@', '@STARTCHORD@', str)
- str = re.sub ('@STARTCHORD@', chordstart, str)
- str = re.sub ('@ENDCHORD@', chordend, str)
- str = re.sub (r'@ACCENT@', '>', str)
- return str
-
-def articulation_substitute (str):
- str = re.sub (r"""([^-])\[ *([a-z]+[,']*[!?]?[0-9:]*\.*)""",
- r" \1 \2-[", str)
- str = re.sub (r"""([^-])\) *([a-z]+[,']*[!?]?[0-9:]*\.*)""",
- r"\1 \2-)", str)
- str = re.sub (r"""([^-])\\! *([a-z]+[,']*[!?]?[0-9:]*\.*)""",
- r"\1 \2-\\!", str)
- return str
-
-def help ():
- print r"""
-new-chords.py -- update .ly files to new syntax.
-
-Usage:
- new-chords.py [OPTIONS] FILE(S)
-
-Options
-
- -e, --edit in-place edit
- -h, --help this help
-
-Description
-
- This script converts old chord notation to new chord notation, i.e.
-
- \< <a )b>
-
- becomes
-
- <<a b>> -\< -)
-
- It will also convert slur-end, beam-start and cresc-end to postfix
- notation, i.e.
-
- [ \! )a
-
- becomes
-
- a-\!-)-[
-
- By default, the script will print the result on stdout. Use with -e
- if you are confident that it does the right thing.
-
-Warning
-
- This conversion does not convert all files correctly. It is
- recommended to verify the output of the new file manually.
- In particular, files with extensive Scheme code (markups, like
-
- #'(italic "foo")
-
- and Scheme function definitions may be garbled by the textual
- substitution.
-
-"""
-
-
-(opts, files)= getopt.getopt( sys.argv[1:], 'eh',['help','edit'])
-edit = 0
-for (o,a) in opts:
- if o == '-e' or o == '--edit':
- edit = 1
- if o == '-h' or o == '--help':
- help ()
- sys.exit (0)
-
-if not files:
- print 'Error: no input files.\n use -h for help.'
- sys.exit(2)
-
-
-for a in files:
- str = open (a).read()
- if re.search (marker_str, str):
- continue
-
- sys.stderr.write ("processing %s\n" %a)
-
- str = sub_chords (str) + marker_str + '\n'
- str = articulation_substitute (str)
-
- if edit:
- open (a + '.NEW', 'w').write (str)
- os.rename (a, a + '~')
- os.rename (a + '.NEW', a)
- else:
- print str
-
-
-##
-## regexes for postfix slur & beam:
-##
-#PYTHON
-##
-#EMACS
-## \([^-]\)\[ *\([a-z]+[!?]?[,']*[0-9:]*\.*\)
-#### ->
-## \1 \2-[
-##
-## \([^-]\)) *\([a-z]+[!?]?[,']*[0-9:]*\.*\)
-#### ->
-## \1 \2-)
-
for d in dirs:
allfiles = allfiles + find ('*.ly.txt', d)
-print allfiles
-
gen_list (allfiles, outfile)
/// decrease ref count. Named kind of like a Tanenbaum semafore
void down ();
- /// increase ref count
void up (String_data *d);
/** make sure data has only one reference.
THIS does not have to be initialized.
*/
-
INLINE void
String_handle::up (String_data *d)
{
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% ASCII Art output
%
% Process as:
+#(ly:set-option 'old-relative)
-\version "1.7.18"
+\version "1.9.0"
\score {
\context Voice \notes\relative c {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% test for ascii-art output
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% ASCII Art output
%
% Process as:
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% ASCII Art output
%
% Process as:
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% ASCII Art output
%
% Process as:
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% ASCII Art output
%
% Process as:
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% ASCII Art output
% Process as:
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% ASCII Art output
%
% Process as:
-\version "1.7.18"
+\version "1.9.0"
%% +.ly: Be the first .ly file for lys-to-tely.py.
%% Better to make lys-to-tely.py include "introduction.texi" or
%% other .texi documents too?
+#(ly:set-option 'old-relative)
\header{
% what's the problem?
% well, that's elementary my dear watson
the a2 and c2 should be a chord in one voice. Using the commented
version, with a c2 instead of a2, the decrescendo reappears."
}
-\version "1.7.18"
+\version "1.9.0"
\score{
\context Staff <
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% A simple scale in LilyPond
%
% Type:
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% Some beamed and slurred notes of different taste in LilyPond
%
% Type:
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
one = \notes\relative c{
c'' d e f
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
composer = "ARTHUR GRAY"
-\version "1.7.18"
+\version "1.9.0"
\header {
title = "Title"
subtitle = "Subtitle"
+#(ly:set-option 'old-relative)
\header {
title = "Petite Ouverture \\`a danser"
subtitle = "4"
copyright = "Public Domain"
}
-\version "1.7.18"
+\version "1.9.0"
\include "nederlands.ly"
+#(ly:set-option 'old-relative)
% #(ly:set-point-and-click 'line-column)
footer = "Mutopia-2001/04/27-xx"
}
-\version "1.7.18"
+\version "1.9.0"
dynamicUp = \property Voice.DynamicLineSpanner \override #'direction = #1
dynamicRevert = \property Voice.DynamicLineSpanner \revert #'direction
<<e e'>>2. |
%61
R2. |
- [<<g, g'>>8.-\< <<g g'>>16 <<b b'>>8. <<b b'>>16-\>-\! <<d d'>>8. <<d d'>>16] |
+ <<g, g'>>8.[\< <<g g'>>16 <<b b'>>8. <<b b'>>16-\>-\! <<d d'>>8. <<d d'>>16] |
%% score has double slur on chord.
<<c c'>>4-( <<b c'>>-) r-\!
- <<g g'>>4. <<b b'>>8 [<<d' d, >>8.-> c16] |
+ <<g g'>>4. <<b b'>>8 <<d' d, >>8.->[ c16] |
%65
<<d, e b'>>2.-~-(-\f
<<c e a>>2-) r4
<<as as'>>2 r4 |
<<g g'>>2 r4 |
<<c c'>>2 r4 |
- <<g g'>>8 [<<g'' d'>> <<d' f>> <<g, d'>> <<d' f>> <<g, d'>>] |
+ <<g g'>>8 <<g'' d'>>[ <<d' f>> <<g, d'>> <<d' f>> <<g, d'>>] |
%10
- <<c,, c'>>8 [<<g'' c>> <<c es>> <<g c>> <<c es>> <<g c>>] |
+ <<c,, c'>>8 <<g'' c>>[ <<c es>> <<g c>> <<c es>> <<g c>>] |
<<c,, c'>>2 r4 |
<<as as'>>2 r4 |
<<bes bes'>>2 r4 |
<<es, es'>>2 r4 |
%15
- bes'8 [<<bes' f'>> <<f' as>> <<bes, f'>> <<f' as>> <<bes, f'>>] |
- es,8 [<<bes' es>> <<es g>> <<bes es>> <<es g>> <<bes es>>] |
+ bes'8 <<bes' f'>>[ <<f' as>> <<bes, f'>> <<f' as>> <<bes, f'>>] |
+ es,8 <<bes' es>>[ <<es g>> <<bes es>> <<es g>> <<bes es>>] |
<<g, g'>>2 r4 |
<<c c'>>2 r4 |
<<as as'>>2 r4 |
<<es es'>>2 r4 |
- <<bes' bes'>>8 [<<f'' bes>> <<bes d>> <<f bes>> <<bes d>> <<f bes>>] |
- <<es,, es'>>8 [<<es'' g bes>> <<g bes es>> <<es g bes>> <<g bes es>> <<es g bes>>] |
+ <<bes' bes'>>8 <<f'' bes>>[ <<bes d>> <<f bes>> <<bes d>> <<f bes>>] |
+ <<es,, es'>>8 <<es'' g bes>>[ <<g bes es>> <<es g bes>> <<g bes es>> <<es g bes>>] |
<<g,, g'>>2 r4 |
<<c c'>>2 r4 |
<<f, f'>>2 r4 |
<<c' c'>>2 r4 |
- <<g g'>>8 [<<d'' g>> <<g b>> <<d g>> <<g b>> <<d g>>] |
- c,8 [<<c' e g>> <<e g c>> <<c e g>> <<e g c>> <<c e g>>] |
+ <<g g'>>8 <<d'' g>>[ <<g b>> <<d g>> <<g b>> <<d g>>] |
+ c,8 <<c' e g>>[ <<e g c>> <<c e g>> <<e g c>> <<c e g>>] |
}
bassEentje = \notes\relative c{
\dynamicUp
- <<c, c'>>8 [<<c' f as!>> <<f as c>> <<c f as>> <<f as c>> <<c f as>>] |
- c,8 [<<c' e g>> <<e g c>> <<c e g>> <<e g c>> <<c e g>>] |
- <<g, g'>>8 [<<d'' g>> <<g b>> <<d g>> <<g b>> <<d g>>] |
- c,8 [<<e' g>> <<g c>> <<e g>> <<g c>> <<e g>>] |
- <<c, c'>>8 [<<c' f a>> <<f a c>> <<c f a>> <<f a c>> <<c f a>>] |
- c,8 [<<c' e g>> <<e g c>> <<c e g>> <<e g c>> <<c e g>>] |
- <<g, g'>>8 [<<d'' g>> <<g b>> <<d g>> <<g b>> <<d g>>] |
- c,8 [<<e' g>> <<g c>> <<e g>> <<g c>> <<e g>>] |
+ <<c, c'>>8 <<c' f as!>>[ <<f as c>> <<c f as>> <<f as c>> <<c f as>>] |
+ c,8 <<c' e g>>[ <<e g c>> <<c e g>> <<e g c>> <<c e g>>] |
+ <<g, g'>>8 <<d'' g>>[ <<g b>> <<d g>> <<g b>> <<d g>>] |
+ c,8 <<e' g>>[ <<g c>> <<e g>> <<g c>> <<e g>>] |
+ <<c, c'>>8 <<c' f a>>[ <<f a c>> <<c f a>> <<f a c>> <<c f a>>] |
+ c,8 <<c' e g>>[ <<e g c>> <<c e g>> <<e g c>> <<c e g>>] |
+ <<g, g'>>8 <<d'' g>>[ <<g b>> <<d g>> <<g b>> <<d g>>] |
+ c,8 <<e' g>>[ <<g c>> <<e g>> <<g c>> <<e g>>] |
}
bassThrough = \notes\relative c{
\dynamicUp
%61
- <<g, g'>>8^"cresc." [<<g' b d>> <<b d f>> <<g b d>> <<as! b d >>-> <<b d f>>] |
- <<g, g'>>8 [<<g' d'>> <<d' f>> <<g, d'>> <<as b d >>-> <<b d f>>] |
+ <<g, g'>>8^"cresc." <<g' b d>>[ <<b d f>> <<g b d>> <<as! b d >>-> <<b d f>>] |
+ <<g, g'>>8 <<g' d'>>[ <<d' f>> <<g, d'>> <<as b d >>-> <<b d f>>] |
% copied
- <<g, g'>>8 [<<g' d'>> <<d' f>> <<g, d'>> <<as b d >>-> <<b d f>>] |
- <<g, g'>>8 [<<g' d'>> <<d' f>> <<g, d'>> <<gis b d >>-> <<b d f>>] |
+ <<g, g'>>8 <<g' d'>>[ <<d' f>> <<g, d'>> <<as b d >>-> <<b d f>>] |
+ <<g, g'>>8 <<g' d'>>[ <<d' f>> <<g, d'>> <<gis b d >>-> <<b d f>>] |
%65
- <<gis, gis'>>8 [<<d'' e>>-\> <<e b'>> <<d e>> <<e b'>> <<d e>> -\!] |
- <<a, a'>>8 [<<c' e>> <<e a>> <<c e>> <<e a>> <<c e>>] |
- <<a, a'>>8 [<<a' d f>> <<d f a>> <<a d f>> <<d f a>> <<a d f>>] |
- <<a, a'>>8 [<<a' c e>> <<c e a>> <<a c e>> <<c e a>> <<a c e>>] |
+ <<gis, gis'>>8 <<d'' e>>[-\> <<e b'>> <<d e>> <<e b'>> <<d e>> -\!] |
+ <<a, a'>>8 <<c' e>>[ <<e a>> <<c e>> <<e a>> <<c e>>] |
+ <<a, a'>>8 <<a' d f>>[ <<d f a>> <<a d f>> <<d f a>> <<a d f>>] |
+ <<a, a'>>8 <<a' c e>>[ <<c e a>> <<a c e>> <<c e a>> <<a c e>>] |
% 4 bars copied from end verse1
<<f, f'>>2-\p r4 |
%70
<<c' c'>>2 r4 |
- <<g g'>>8 [<<d'' g>> <<g b>> <<d g>> <<g b>> <<d g>>] |
- c,8\> [<<c' e g>> << e g c>> -\! <<c e g>> <<e g c>> <<c e g>>] |
+ <<g g'>>8 <<d'' g>>[ <<g b>> <<d g>> <<g b>> <<d g>>] |
+ c,8\> <<c' e g>>[ << e g c>> -\! <<c e g>> <<e g c>> <<c e g>>] |
- <<c, c'>>8 [<<c' es! g>> <<es g c>> <<c es g>> <<es g c>> <<c es g>>] |
- <<f,, f'>>8 [<<d'' f>> <<f as!>> <<d f>> <<f as>> <<d f>>] |
+ <<c, c'>>8 <<c' es! g>>[ <<es g c>> <<c es g>> <<es g c>> <<c es g>>] |
+ <<f,, f'>>8 <<d'' f>>[ <<f as!>> <<d f>> <<f as>> <<d f>>] |
%75
- <<g,, g'>>8 [<<d'' f>> <<f g>> <<d f>> <<f g>> <<d f>>] |
- c,8 [<<c' e>> <<e g>> <<c e>> <<e g>> <<c e>>] |
- c,8 [<<c' f>> <<f as>> <<c f>> <<f as>> <<c f>>] |
- c,8 [<<c' e>> <<e g>> <<c e>> <<e g>> <<c e>>] |
- g,8 [<<g' d'>> <<d' f>> <<g, d'>> <<d' f>> <<g, d'>>] |
+ <<g,, g'>>8 <<d'' f>>[ <<f g>> <<d f>> <<f g>> <<d f>>] |
+ c,8 <<c' e>>[ <<e g>> <<c e>> <<e g>> <<c e>>] |
+ c,8 <<c' f>>[ <<f as>> <<c f>> <<f as>> <<c f>>] |
+ c,8 <<c' e>>[ <<e g>> <<c e>> <<e g>> <<c e>>] |
+ g,8 <<g' d'>>[ <<d' f>> <<g, d'>> <<d' f>> <<g, d'>>] |
%80
- c,8 [<<c' e>> <<e g>> <<c e>> <<e g>> <<c e>>] |
- c,8 [<<c' g>> <<e c>> <<c g>> <<e c>> <<c g>>] |
+ c,8 <<c' e>>[ <<e g>> <<c e>> <<e g>> <<c e>>] |
+ c,8 <<c' g>>[ <<e c>> <<c g>> <<e c>> <<c g>>] |
<<c, g' c>>2._\fermata |
}
textheight = 270.0\mm
linewidth = 180.0\mm
- \translator { \HaraKiriStaffContext }
+ \translator { \RemoveEmptyStaffContext }
}
\midi{
\tempo 4 = 54
-\version "1.7.18"
+\version "1.9.0"
% #(ly:set-point-and-click 'line-column)
%% check spacing without accs:
%% c4.-\trill bes8-[ a g] |
- \relative c < { d'8. e16 e4.-\trill d16 e |
+ < { d'8. e16 e4.-\trill d16 e |
f4. d8-[ e f] }
\\
{ <<a, f>>4 a2 <<a d,>>4. } > |
%%7
g8 bes16(a-) c(bes-) a(g-) d'8 f, |
- \relative c < e4.-\trill
+ < e4.-\trill
\\ <<c, g'>>4 >
d8-[ c bes]
%%9
- \relative c < { f8 g16(a-) a4. g16(f-) |
+ < { f'8 g16(a-) a4. g16(f-) |
g8 a16(bes-) bes4. c16(d-) }
\\
{ a,4 <<bes d >>4. r8 bes4 <<g f'>>2 }
\forcedBreak
%% 11
- e'8-[ f] c,-[ g'] f'-[ e] |
+ e,8-[ f] c,-[ g'] f'-[ e] |
f4 f,2 |
< { a'4 a4.-\trill bes8
c bes16 a } \\
\stemBoth
\forcedLastBreak
%%25
- \relative c' < { a16(b c b-) c4. b16(a-) |
+ < { a16(b c b-) c4. b16(a-) |
b cis d cis d4. e16(f-) | }
\\
{ f,4 fis4. s8 |
<<d g,>>4 gis4. } >
\voiceOne
- d'16(cis d-) f,
+ d16(cis d-) f,
a,8-[ e']
\oneVoice
d'-[ cis] |
-\version "1.8.0"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
%{
Header for Petites Preludes.
+#(ly:set-option 'old-relative)
\header {
title = "Fuga a 3 voci"
opus = "BWV 847-Fuga"
%}
-\version "1.7.18"
+\version "1.9.0"
+#(ly:set-option 'old-relative)
% NOT FINISHED!!!!
\include "deutsch.ly"
%% 19 is broken --hwn.
%\include "paper19.ly"
\include "paper16.ly"
-\version "1.7.18"
+\version "1.9.0"
\header {
title = "Romanzen"
pagenumber = no
linewidth = 17.0 \cm
\translator {
- \HaraKiriStaffContext
+ \RemoveEmptyStaffContext
}
\translator {
\ScoreContext
%}
-\version "1.7.18"
+\version "1.9.0"
\include "mozart-hrn3-defs.ly"
\include "mozart-hrn3-allegro.ly"
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\include "mozart-hrn3-defs.ly"
allegro =
dis4 ( e4-) r8 c8-[-. c-. c-.]
c4.( d16-[ e] f4 e-)
a,( d g, c-)
- d-. d-. \grace e16( [ d8.-) c16 d8. e16]
+ d-. d-. \grace e16( d8.[) c16 d8. e16]
c4 r r2
R1*3
c,2 ~ c8-[ e g c]
b-[( a-)] a4 r8 a-[ a a]
a4( cis e g-)
\grace { \longgrace g16( \endlonggrace }
- [ fis8-)( e16 d-)] d4-. r2 |
+ fis8[)( e16 d-)] d4-. r2 |
\mark "B"
R1*3
r2 r4 d8-[-(_\markup { \italic \bold "con espressione" } b-) ]
a, ( d g, c-)
d d
\grace { e8( }
- [ d8.-) c16 d8. e16]
+ d8.[) c16 d8. e16]
c4 r r2
\mark "F"
R1*3
c,8-[ e g c ] e-[ ( g-) e c]
c-[( b-)] b4 r2
c2 (bes a-) a8-[(b c cis-)]
- d2( ~ d8-[ e16 d] \grace { \longgrace d16( \endlonggrace } [ c8-) b16 c-)]
+ d2( ~ d8-[ e16 d] \grace { \longgrace d16( \endlonggrace } c8[) b16 c-)]
\grace { \longgrace c16 \endlonggrace } b8-[( a16 g-)] g4 r2 |
R1*3
r2 r4 g'8-[( e-)]
f4. ( d8-) f8-[ ( d-) f d]
- c-[ (e] g2-) \grace { \longgrace f16( \endlonggrace } [ e8-)( d16 c-)]
+ c-[ (e] g2-) \grace { \longgrace f16( \endlonggrace } e8[)( d16 c-)]
< d1-\trill (
{ s2 \grace { c16-[ d] } } >
endlonggrace = \property Voice.Stem \revert #'stroke-style
ritenuto = \markup { \italic "rit." }
-\version "1.7.18"
+\version "1.9.0"
cresc = \notes {
#(ly:export (make-event-chord (list (make-span-event 'CrescendoEvent START))))
+#(ly:set-option 'old-relative)
-\version "1.7.18"
+\version "1.9.0"
\include "mozart-hrn3-defs.ly"
romanze = \notes \relative c' {
f8-) a,4 a
bes8-[( c d bes] g4-) r8 g
a r bes r c r d-[( bes-)]
- a2( [ g8-) a( bes b-)]
+ a2( g8[-) a( bes b-)]
c4. ( f8-) a,4 a |
% 6
bes8-[ (c d bes-)] g4 r8 c,
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% \include "mozart-hrn3-defs.ly"
-\version "1.7.18"
+\version "1.9.0"
\header {
-\version "1.7.18"
+\version "1.9.0"
\header {
-\version "1.7.18"
+\version "1.9.0"
\header{
filename = "denneboom.ly"
enteredby = "jcn"
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "a staff should really die, if no one's referencing it."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{ texidoc = "Tests MIDI output with grace notes. " }
\score {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Transposing
The transposing property leaves output invariant, but has effect on MIDI. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "
-\version "1.7.19"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "@cindex Midi Volume Equaliser
The full orchestra plays a notes, where groups stop one after
-\version "1.7.18"
+\version "1.9.0"
% Test parser error
-\version "1.7.18"
+\version "1.9.0"
% Test parser error
-\version "1.7.18"
+\version "1.9.0"
% Test parser error
-\version "1.7.18"
+\version "1.9.0"
% Test parser error
-\version "1.7.18"
+\version "1.9.0"
%If you specify two different key sigs at one point, a
%warning is printed.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% move to regtest once it works?
\consists "Thread_devnull_engraver"
}
\translator{
- \HaraKiriStaffContext
+ \RemoveEmptyStaffContext
\consists "Mark_engraver"
}
\translator {
-\version "1.7.18"
+\version "1.9.0"
\header{
texidoc="crashes lily"
}
-\version "1.8.0"
+\version "1.9.0"
\header {
title = "Puer natus est nobis (excerptum)"
subtitle = "Antiphona ad introitum VII"
-\version "1.7.18"
+\version "1.9.0"
%% +.ly: Be the first .ly file for lys-to-tely.py.
%% Better to make lys-to-tely.py include "introduction.texi" or
%% other .texi documents too?
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Cautionary accidentals are indicated using either
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "If two forced accidentals happen at the same time, only one
sharp sign is printed."
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Ledger lines are shortened when there are accidentals."
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
A sharp sign after a double sharp sign, as well as a flat sign
+#(ly:set-option 'old-relative)
\header {
texidoc = "Tied accidentaled notes (which cause reminder accidentals) don't wreak havoc in
the spacing when unbroken."
}
-\version "1.7.18"
+\version "1.9.0"
\include "deutsch.ly"
rechts = \notes \relative c' {
-\version "1.7.18"
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+\version "1.9.0"
\header{
texidoc="
-\version "1.5.68"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
\property Voice.TextScript \set #'font-style = #'large
f4-\ff^""^"Largo" \mark "B" g
}
- \paper { linewidth = -1.0
+ \paper { raggedright = ##t
% \translator {\BarNumberingStaffContext} }
}
}
+#(ly:set-option 'old-relative)
\header {
texidoc = "Ambituses indicate pitch ranges for voices.
%}
-\version "1.7.18"
+\version "1.9.0"
upper = \notes \relative c {
\clef "treble"
-\version "1.7.23"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "The @code{\applyoutput} expression is the most flexible way to
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Arpeggio stays clear of accidentals and flipped note heads.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
Arpeggios are supported, both cross-staff and broken single staff.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
+#(ly:set-option 'old-relative)
\header
{
texidoc = "Automatic beaming is also done on tuplets."
}
-\version "1.7.18"
+\version "1.9.0"
\score{
\notes\relative c''{
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Tuplet-spanner should not put (visible) brackets on
+#(ly:set-option 'old-relative)
\header {
texidoc="Test automatic beamer: the last measure should have a single beam."
}
-\version "1.7.18"
+\version "1.9.0"
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{ texidoc="Automatic kneeing. A knee is made when a horizontal
beam fits in a gap between note heads that is larger than a predefined
+#(ly:set-option 'old-relative)
\header {
texidoc = "Beams can be printed across line breaks if forced.
"
}
-\version "1.7.19"
+\version "1.9.0"
\paper { raggedright= ##t }
\score { \notes \relative c'' {
+#(ly:set-option 'old-relative)
-\version "1.7.18"
+\version "1.9.0"
\header{
texidoc="Simple beams on middle staffline are allowed to be
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "If the first and last outer notes of a beam are the same,
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc = "Concave beams should be horizontal. Informally spoken,
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Cross staff (kneed) beams don't cause extreme slopes."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
Beams can be typeset over fixed distance aligned staves, beam
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Beam Damp
Beams are less steep than the notes they encompass. " }
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="Beamed stems have standard lengths if possible."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
Beams should behave reasonably well, even under extreme circumstances.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc=" Funky kneed beams with beamlets also work. The beamlets
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Knee beaming, complex configurations. According to
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Point-symmetric beams should receive the same
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.23"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Kneed beams (often happens with cross-staff beams)
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Explicit beams may cross barlines. "
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
Beams should always reach the middle staff line. The second beam
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Beams and ties may be entered in postfix notation, separating the
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header
{
texidoc= "Quarter notes may be beamed: the beam is halted momentarily."
+#(ly:set-option 'old-relative)
\header {
texidoc = "The number of beams doesn't change on a rest."
}
-\version "1.7.18"
+\version "1.9.0"
\score { \notes \relative c, {
\clef bass
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
Seconds are tricky. We used to have problems with seconds being too
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="Beams in unnatural direction, have shortened stems, but do not look too short."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc = "Hairy case for beam, chord, and automatic knees."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Automatic beaming works also in ternary time sigs."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Beams (simple)."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
Breathing signs, also used for phrasing, do normally not influence
-\version "1.7.18"
+\version "1.9.0"
\header{
texidoc="Property chordChanges: display chord names only when
-\version "1.7.18"
+\version "1.9.0"
\header {
-\version "1.7.23"
+\version "1.9.0"
\header {
-\version "1.7.18"
+\version "1.9.0"
\header { texidoc = "The property @code{chordNameExceptions} can used
to store a list of special notations for specific chords.
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "The layout of the major 7 can be tuned with
@code{majorSevenSymbol}."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Scripts can also be attached to chord elements."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.23"
+\version "1.9.0"
\header {
-\version "1.7.18"
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Clusters are a device to denote that a complete range of
notes is to be played."
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Collisions for single head notes. "
}
on the right side."
}
-\version "1.7.18"
+\version "1.9.0"
\paper { raggedright= ##t }
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Note heads in collisions should be merged if
they have the same positions in the extreme note heads.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc =
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "If NoteCollision has merge-differently-dotted set, note
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Oppositely stemmed chords, meshing into each other,
are resolved."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
Normal collisions. We have support for polyphony, where the
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Completion heads are broken across bar lines. This was
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Custodes in various styles."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Dots move to the right when a collision with the (up)flag happens."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
Noteheads can have dots, and rests can too. Augmentation dots should
\include "drumpitch-init.ly"
-\version "1.7.18"
+\version "1.9.0"
drh = \notes { cymc4.^"crash" hhc16^"h.h." hh \repeat "unfold" 5 {hhc8 hho hhc8 hh16 hh} hhc4 r4 r2 }
drl = \notes {\repeat "unfold" 3 {bd4 sn8 bd bd4 < bd ss > } bd8 tommh tommh bd toml toml bd tomfh16 tomfh }
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc = "Broken crescendi should be open on one side."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {texidoc = "Dynamic letters are kerned, and their weight
matches that of the hairpin signs. The dynamic scripts should be
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc=" Dynamics appear below or above the staff. If multiple
dynamics are linked with (de)crescendi, they should be on the same
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Crescendi may start off-notes. In that case, they should not collapse into flat lines."
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = " Ez-notation prints names in note heads.
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "
Figured bass is created by the FiguredBass context which eats
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "With the new chord syntax it's possible to associate
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Automatic fingering tries to put fingering instructions
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc = "
When put across line breaks, only the part before the line break is
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "The magnification can be set for any font. Note
that this doesn't change variable symbols such as beams or slurs. " }
-\version "1.7.28"
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.22"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header
{
texidoc = "The autobeamer is not confused by grace notes."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Bar line should come before the grace note."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Grace notes do tricky things with timing. If a measure
+#(ly:set-option 'old-relative)
\header
{
texidoc = "Grace beams and normal beams may occur simultaneously.
\paper { raggedright= ##t }
-\version "1.7.18"
+\version "1.9.0"
\score { \notes\relative c'' { c4 d8-[ \grace { e32-[ d c d] } e8] e-[ e \grace { f16 } e8 e] }}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
% ?
% niet zo onschuldig! je hebt graces gefixt in 1.5, zie maar eens 1.3.150
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc="@cindex Grace End
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Grace code should not be confused by nested sequential musics, containing grace notes; practically speaking, this means that the end-bar and measure bar coincide in this example."
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Grace code should not be confused by nested sequential musics, containing grace notes; practically speaking, this means that the end-bar and measure bar coincide in this example."
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Grace code should not be confused by nested sequential musics, containing grace notes; practically speaking, this means that the end-bar and measure bar coincide in this example."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Another nested grace situation."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Another combination of grace note nesting."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Another nested grace situation."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Partcombiner and grace notes can go together."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc = "Stripped version of trip.ly. Staffs should be of correct length."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Pieces may begin with grace notes."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc = "Here startGraceMusic should set no-stem-extend to true;
the two grace beams should be the same here.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Grace notes in different voices/staves are synchronized."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Grace notes and unfolded repeats.
Line breaks may happen before grace notes.
-\version "1.7.22"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.19"
+\version "1.9.0"
\header { texidoc =
}
-\version "1.7.18"
+\version "1.9.0"
textFlat = \markup {\smaller \musicglyph #"accidentals--1"}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Instrument names are also printed on partial starting measures."
}
-\version "1.7.18"
+\version "1.9.0"
\header{
texidoc="
Staff margins are also markings attached to barlines. They should be
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "Tests placement of accidentals in every clef. " }
\score { \notes
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "Key signatures can be set per pitch
individually. This can be done by setting @code{Staff.keySignature}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
Key signatures appear on key changes. They may also
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc ="Polyphonic rhythms and rests don't disturb
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc= "Lyrics can be set to a melody automatically. Excess lyrics will be
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc= "Tests lyric extenders. "}
\paper { raggedright= ##t }
-\version "1.7.18"
+\version "1.9.0"
\header {texidoc="Tests lyric hyphens. "}
\score{
<
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="Lyric phrasing
-\version "1.7.18"
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc =
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header
{
texidoc = "Melismata are triggered by manual beams."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Lyrics syllables are aligned according to
texidoc = "The note markup function is used to make metronome
markings. It works for a variety of flag dot and duration settings."
}
-\version "1.7.18"
+\version "1.9.0"
\score { \notes { c4^\markup {
\note #0 #0 #1
-\version "1.7.18"
+\version "1.9.0"
\header {texidoc="Stacking of markup scripts."}
\paper { raggedright = ##t}
\score { \notes { c''^\markup { "a" \column << "1" \bold "2" "3" >> } } }
+#(ly:set-option 'old-relative)
\header
{
}
-\version "1.7.18"
+\version "1.9.0"
%% TODO: should have 2/4 + 5/8 time sig style.
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "There is limited support for mensural notation: note head
+#(ly:set-option 'old-relative)
\header {
}
-\version "1.7.18"
+\version "1.9.0"
\score { \notes \relative c'' { \tempo \breve = 100 c1 c1 \tempo 8.. = 50 c1 }
\paper { raggedright = ##t }
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+\version "1.9.0"
\header { texidoc = "Tests a collision between multimeasure rests in
different voices. " }
\score {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc=" You can write molecule callbacks in Scheme, thus
providing custom glyphs for notation elements. A simple example is
-\version "1.7.18"
+\version "1.9.0"
\header
{
texidoc = "The multimeasure rest is centered exactly between bar lines."
-\version "1.7.23"
+\version "1.9.0"
\header {
-\version "1.7.18"
+\version "1.9.0"
\header { texidoc = "This combines instrument names and multimeasure rests (there was an
interesting bug in 1.3.98). " }
-\version "1.7.23"
+\version "1.9.0"
\header {
-\version "1.7.18"
+\version "1.9.0"
\header{
texidoc="
+#(ly:set-option 'old-relative)
\header {
texidoc =
}
-\version "1.7.18"
+\version "1.9.0"
#(define (notes-to-skip m)
"Convert all stuff with duration (notes, lyrics, bass figures, etc.) to skips.
texidoc = "New markup syntax."
}
-\version "1.7.18"
+\version "1.9.0"
\score {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Note heads are flipped on the stem to prevent collisions.
-\version "1.8.0"
+\version "1.9.0"
\header{
texidoc="
Note head shapes are settable. The stem endings should be adjusted
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Note head lines (e.g. glissando)
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc=" The number of stafflines of a staff can be set. Ledger
+#(ly:set-option 'old-relative)
\header
{
}
-\version "1.7.19"
+\version "1.9.0"
\paper { raggedright = ##t}
+#(ly:set-option 'old-relative)
\header
{
texidoc = "Ottava brackets are supported, through the
"
}
-\version "1.7.18"
+\version "1.9.0"
\paper { raggedright = ##t}
+#(ly:set-option 'old-relative)
\header { texidoc = "
Setting @code{\outputproperty} is a clumsy and deprecated way of changing
}
-\version "1.7.18"
+\version "1.9.0"
#(define (make-text-checker text)
(lambda (grob) (equal? text (ly:get-grob-property grob 'text))))
-\version "1.7.19"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc="Multi measure rests of second voice should not disappear."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="The partcombiner should not combine two small slurs into a big one."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc="Slurs play well with phrasing slur."
-\version "1.7.18"
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Prefatory spacing.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Once properties take effect during a single time step only."
}
+#(ly:set-option 'old-relative)
\header { texidoc= " Rehearsal marks are printed over barlines. They
can be incremented automatically or manually. "}
-\version "1.7.18"
+\version "1.9.0"
global = \notes {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.23"
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Measure repeats are supported, and may be nested with beat repeats."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Beat repeats are supported."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Repeats may be unfolded through the Scheme function @code{unfold-repeats}."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "When too few alternatives are present, the first alternative is repeated,
by printing a range for the 1st repeat."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header
{
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
Rests should not collide with beams, stems and noteheads. Rests may
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Whole and half rests moving outside the staff should get
ledger lines."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Rests can have pitches--these will be affected by
-\version "1.7.18"
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+\version "1.9.0"
\header
{
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Scripts can be stacked. The order is determined by a
priority field, but when objects have the same priority, the input
-\version "1.7.18"
+\version "1.9.0"
\paper { raggedright= ##t }
-\version "1.7.18"
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+\version "1.9.0"
foollilypondbook = "
\score
"
-\version "1.7.18"
+\version "1.9.0"
foollilypondbook = "
\score
"
-\version "1.7.18"
+\version "1.9.0"
foollilypondbook = "
\score
"
-\version "1.7.18"
+\version "1.9.0"
foollilypondbook = "
\score
"
-\version "1.7.18"
+\version "1.9.0"
foollilypondbook = "
\score
"
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "The area underneath an (up) slur is minimised to improve the shape. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
The same goes for slurs. They behave decently when broken across
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="Slurs should not get confused by augmentation dots. We use a lot
of dots here, to make problems more visible."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
Slurs should look nice and symmetric. The curvature may increase
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header
{
texidoc ="Slurs may be placed over rest. The slur will avoid colliding with
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc="Manual hack for slur and staccato."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc="Trend of broken slur with user-overridden stem attachment should also
follow the same vertical direction it would have had in unbroken state."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header
{
texidoc = "Symmetric figures should lead to symmetric slurs."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header
{
texidoc = "Symmetric figures should lead to symmetric slurs."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Accidentals in different staffs don't effect the
-\version "1.7.21"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Accidentals don't influence the amount of stretchable space. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Accidentals sticking out to the left
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Downstem notes following a barline are
printed with some extra space. This is an optical correction similar
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Clef changes at the start of a line get much more space
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc ="Broken matter at the end of line does not upset the
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "
A voicelet (a very short voice to get polyphonic chords correct)
should not confuse the spacing engine."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "A clef can be folded below notes in a different staff, if
this doesn't disrupt the flow of the notes."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "A clef can be folded below notes in a different staff, if
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Spacing uses the duration of the notes, but disregards
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Grace note spacing. Should be tuned? "
}
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "For knees, the spacing correction is such that the
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc = "Concurrent tuplets should be spaced equidistantly on
all staffs.
+#(ly:set-option 'old-relative)
\header {
texidoc = "The flags of 8th notes take some space, but not
}
}
-\version "1.7.18"
+\version "1.9.0"
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Rests get a little less space, since they are narrower.
However, the feta quarter rest is relatively wide, causing this effect to be
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Notes that are shorter than the common shortest note, Get a
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Upstem notes before a barline are printed with some extra
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "For juxtaposed chords with the same direction, a
slight optical correction is used. It is constant, and only works if
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc ="Space from a normal note/barline to a grace note is
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "
When tightly spaced, hinterfleisch -> 0.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Span bars draw only in between staff bar lines, so setting those to transparent shows bar lines between systems only.
"
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "The staff is a grob, and may be adjusted as well: this one
shows a staff with 6 thick line, and a slightly large staffspace.
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Stanza numbers may differ for the first and following systems."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
Stem tremolos or rolls are tremolo signs that look like beam segments
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "LilyPond correctly determines the size of every
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc =
"
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc= "Text spanners should not repeat start text when broken."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "First and second bes (tied across line break)
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Tie engraver uses @code{busyGrobs} to keep track of
+#(ly:set-option 'old-relative)
\header {
texidoc = "Tieing only parts of chords is possible. It requires
to a different thread."
}
-\version "1.7.18"
+\version "1.9.0"
\paper { raggedright= ##t }
\score {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
When tieing chords, the outer slurs point outwards, the inner slurs
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Ties should not collide with dots."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Tieing a grace to the to a following grace or main note works."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "In combination with a beam, the bracket of the tuplet
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc="Manual hack for nested tuplets, move outer tuplet up."
}
+#(ly:set-option 'old-relative)
\header {
texidoc = "Tuplet bracket formatting supports numerous options:
NB should have no bracket, B should have bracket.
}
-\version "1.7.18"
+\version "1.9.0"
\score {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {texidoc = "Tests tuplet rests. "}
\score {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Horizontal tuplet brackets are shifted vertically
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.23"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc= "
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc ="Broken volta spanners behave correctly at left edge in all cases."
+#(ly:set-option 'old-relative)
\header {
texidoc = "By setting @code{voltaOnThisStaff}, repeats can be put on more staffs in a score."
}
-\version "1.7.22"
+\version "1.9.0"
vmus = \notes { \repeat volta 2 c1 \alternative { d e } }
-
-\version "1.7.23"
-
+\version "1.9.0"
+\header {
+ title = "Screech and boink"
+ subtitle = "Random complex notation"
+ composer = "Han-Wen Nienhuys"
+ }
\score {
\notes \context PianoStaff <
-\version "1.7.23"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+\version "1.9.0"
\header {
dedication = "dedication"
title = "Title"
-\version "1.7.23"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
title = "Song"
subtitle = "(tune)"
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Lead sheet format: chords with melody."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Popsong format: chords, melody and lyrics."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Melody and lyrics."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Only a melody."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc ="Polyphonic piano music"
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc ="
Template that puts dynamics on a separate line, so it is neatly
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc ="Lyrics between two staffs."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc ="Classical song format: one staff with melody and lyrics,
>
>
\paper {
- \translator { \HaraKiriStaffContext }
+ \translator { \RemoveEmptyStaffContext }
}
\midi { }
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Simple piano music."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "
-\version "1.7.18"
+\version "1.9.0"
%% +.ly: Be the first .ly file for lys-to-tely.py.
%% Better to make lys-to-tely.py include "introduction.texi" or
%% other .texi documents too?
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
%% I don't know what this example is supposed to do. delete it?
%% It shows how to use the autochange feature together with an extra
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.23"
+\version "1.9.0"
\header {
texidoc= "@cindex make-music Fingering
+#(ly:set-option 'old-relative)
\header {
texidoc = "@cindex Ancient Accidentals
Accidentals are available in different ancient styles. This
"
}
-\version "1.7.18"
+\version "1.9.0"
\score {
\context Voice \notes\relative c {
-\version "1.7.19"
+\version "1.9.0"
% TODO: split ancient-font into seperate files; possibly in
% different locations.
\header {
-\version "1.7.18"
+\version "1.9.0"
% TODO: move stuff from ancient-font into here? See comment
% for ancient-font.ly
\header {
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "@cindex Bagpipe Music
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "@cindex Bars Always
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Bar line lyric only
You can move around @code{Bar_engraver} and
@code{Span_bar_engraver} if you want bar lines on lyrics. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "@cindex Bar Lines
Different types of bar lines demonstrated.
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "@cindex Bar Number Every Fifth Reset
" }
-\version "1.7.18"
+\version "1.9.0"
\score {
\context Staff \notes \transpose c c' {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="@cindex Bar Number Show All
Second line has bar numbers on start of every measure.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% keep for now, although merging into beam-auto-override is a possibility.
\header {
texidoc = "@cindex Auto Beaming 4/8
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "@cindex Auto Beaming Override
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc = "@cindex Beaming Presets
The auto-beam engraver has presets for common time signatures. " }
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="@cindex Beam Position Control
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="@cindex Beam Count
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "@cindex Beam Dir Functions
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="@cindex Beam Isknee
LilyPond can beam across a Piano Staff.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="@cindex Beam Neutral Direction
When a beam falls in the middle of the staff, LilyPond normally
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="@cindex Beam Over Rests
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% possible rename to invis-notes.ly
% check if other documents call this "blank notes", though. I think
% invisible notes sounds better, but whatever it is, it should be
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "@cindex Blank Paper Tab
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc="@cindex Blank Paper
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "@cindex Boxed Molecule
You can override the molecule callback to draw a box around
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "@cindex Capital Letters
You can set the font to use small caps.
-\version "1.7.18"
+\version "1.9.0"
\header{
texidoc="@cindex Cautionary Accidentals
LilyPond can display cautionary accidentals in different ways.
-\version "1.7.20"
+\version "1.9.0"
\header {
texidoc = "@cindex Chord Names German
By setting @code{ChordNames.chordRootNamer}, the root
-\version "1.7.23"
+\version "1.9.0"
\header {
-\version "1.7.18"
+\version "1.9.0"
\header { texidoc= "@cindex Chord Names No Inversions
Chord names don't attempt to find inversions and
bass notes. " }
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "Jazz chords can also be used without notes."
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "@cindex Chord Octavation
Appending @code{_8} or @code{^8} to a clef name will
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "@cindex Clef End of Line
-\version "1.7.18"
+\version "1.9.0"
\header{ texidoc = "
@cindex Clef Manual Control
-\version "1.7.19"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% Ugh, we need to override some LaTeX titling stuff
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="@cindex Count Systems
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="@cindex Crescendi
LilyPond can print crescendi in a number of different ways.
-\version "1.7.18"
+\version "1.9.0"
% TODO: check to see if this example can be simplified using \small
% or \tiny.
\header { texidoc = "@cindex Cue Notes
@code{caesura}.
" }
-\version "1.7.18"
+\version "1.9.0"
\include "gregorian-init.ly"
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% possible rename to slurs-?
% TODO: find out what drarn means, and if there's an overlap with drarn.ly
\header{
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{texidoc="@cindex Drarn
You can attach slurs and ties to noteheads.
" }
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "@cindex Dynamic Absolute Volume
Absolute dynamics have effect in MIDI files.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% probably should be merged into refman.
\header{
texidoc = "@cindex Dynamic Piu Forte
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "@cindex Embedded Postscript
By inserting the @TeX{} command \embeddedps, you can
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% TODO: does this work? It doesn't do anything with 1.7.20
\header {texidoc="@cindex Embedded scm
You can embed scm functions in your scores.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{ texidoc="@cindex Embedded Tex
You can embed Tex commands in your score. "}
-\version "1.7.18"
+\version "1.9.0"
\header{ texidoc="@cindex Explicit Pitch and Duration
Explicit pitches and durations. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Scheme Move Notehead
You can move objects around with scheme. This example shows how to
move noteheads around. " }
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% definately wil be renamed to something.
%{
(Message vers:9)
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
%possible rename to paper-fill-a4.ly -gp
% candidate for reg -gp
% Han says no, but keeping this comment temporarily so that I don't
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% MERGED: stuff from follow-break.ly to follow-thread.ly
% followVoice: connect note heads with line when thread switches staff
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc="@cindex Force hshift
Force hshift to override collisions. " }
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="@cindex Gourlay
-\version "1.8.0"
+\version "1.9.0"
\header {
title = "Gregorian Scripts"
texidoc = "@cindex Gregorian Scripts
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc ="@cindex Artificial Harmonics
For stringed instruments, artificial harmonics are notated with
-\version "1.7.20"
+\version "1.9.0"
#(define (my-ly-version)
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Horizontal Shift
You can manually shift notes horizontally. " }
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc =
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Incipit
This shows how to make an ``incipit'' to indicate scordatora
tuning of a violin part, using the clefStyle property.
-\version "1.7.18"
+\version "1.9.0"
\header { texidoc = "@cindex Instrument Name Grandstaff
You can name the whole grandstaff in addition to individual staffs. " }
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% MERGE with title.ly -gp
%{
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% possible rename to rest-foo
\header {
texidoc = "@cindex Rest Collision Count
-\version "1.7.19"
+\version "1.9.0"
% TODO:
% check with ancient- stuff. rename, merge, something. -gp
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% candidate for regression. -gp
\header {
texidoc="MIDI and midi2ly test file. Diff between this and midi2ly.py should be minimal."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% possible rename to scheme- or something like that. -gp
\header { texidoc= "@cindex Scheme Manual Accidentals
Positions of accidentals may be manually set. This
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% possible rename to scheme- or something like that. -gp
\header { texidoc = "@cindex Scheme Move Text
You can move objects around with scheme. This example shows how to
-\version "1.7.18"
+\version "1.9.0"
\include "deutsch.ly"
% possible rename to scheme- something. -gp
% TODO: ask if it needs to have so many empty bars in the middle. -gp
-\version "1.7.18"
+\version "1.9.0"
pat = \notes \transpose c c' \repeat unfold 2 {
< { \context Staff=up {r8 e16 f g e f g } }
-\version "1.7.18" %% or actually: 1.7.1 ...
+\version "1.9.0" %% or actually: 1.7.1 ...
% possible rename to scheme- something. -gp
\header { texidoc = "@cindex Scheme Music Creation
You can create music expressions from Scheme. The
-\version "1.7.18"
+\version "1.9.0"
\header{ texidoc="@cindex Nested Staff Groups
LilyPond can print nested groups of staffs. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% possible rename to bar-lines-foo. -gp
\header{ texidoc = "@cindex Bar Lines Remove
-\version "1.7.18"
+\version "1.9.0"
% possible rename to staff-something. -gp
\header{ texidoc = "@cindex Staff Remove
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc="@cindex Octave Doubling
Octave doubling parts of music. "
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% pretty much a duplicate of extra-staff.ly. candidate for merge or delete. -gp
\header { texidoc = "@cindex Ossia
-\version "1.7.19"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% TODO: this example has a ton of text for very little output.
% Is it all needed? -gp
% should this go to regression or be delete'd? -gp
-\version "1.7.19"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Part Combine Staff
You can combine parts on two staffs, as well as two voices. "
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{ texidoc="@cindex Part Combine
In orchestral scores and hymns, voices are traditionally combined onto
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% check with invisible-notes or blank-notes. possible rename. -gp
\header{ texidoc = "@cindex Partial Blank
When entering half music (i.e. for students to complete by hand)
-\version "1.7.28"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{ texidoc = "@cindex Pedal
Piano pedal symbols merge stop and start. The strings are configurable.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{ texidoc="@cindex Phrasing Slur Height
Make PhrasingSlur higher, to avoid colission from other slurs. "
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{ texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{ texidoc="@cindex Time Signature Multiple
-\version "1.7.18"
+\version "1.9.0"
\header { texidoc = "
@cindex Preset Extent
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Repeat Manual
You can manually control repeat signs and numbers to produce
unusual output. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% possible rename to lyric-repeat or repeat-lyric.
\header{ texidoc = "@cindex Repeat Lyrics
You can use alternate lyrics as well as alternate notes for repeats. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% candidate for regression. -gp
\header { texidoc = "@cindex Rest Dot Positions
This file tests dotted rests. " }
-\version "1.8.0"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "@cindex Rests
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% possible rename to scheme-something.
\header { texidoc="@cindex Scheme Reverse Music
Simple customised music apply. "
-\version "1.7.18"
+\version "1.9.0"
\header { texidoc = "@cindex Rhythm Exercise
This example shows a way to generate rhythm exercises with
LilyPond (e.g. no staff but retaining the barlines). "
-\version "1.7.18"
+\version "1.9.0"
\header {
texidoc = "@cindex Scales Greek
Show different scales."
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Scheme Interactions
With @code{ly:export}, you can pass of the result of
Scheme expressions as lilypond input. Within a Scheme expression,
% this chart is used in the manual too.
-\version "1.7.18"
+\version "1.9.0"
\header { texidoc = "@cindex Script Abbreviations
Some scripts may be entered using an abbreviation.
-\version "1.7.18"
+\version "1.9.0"
% this chart is used in the manual too.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Script Priority
Relative placements of different script types can be controlled
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Stacked Text Articulation
You can stack text and articulations. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% possible rename. -gp
\header { texidoc="@cindex Seperate Staccato
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
texidoc="@cindex Slur Attachment Override
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% TODO bit too wordy; edit a bit to cut stuff. -gp
\header { texidoc ="@cindex Slur Beautiful
Similarly, the curvature of a slur is adjusted to stay clear of note
-\version "1.7.18"
+\version "1.9.0"
\header {texidoc = "@cindex Slur, dotted
You can print different kinds of slurs (dotted, dashed, etc). "
}
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Slur Minimum Length
You can set the minimum length of a slur. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc = "Slurs become flatter as they grow longer. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc="@cindex Slur Ugly
You can get ugly slurs, if you want. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc="@cindex Smart Transpose
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% more yummy regression goodness. -gp
\header {
texidoc = "
-\version "1.7.21"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Spanner after break
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{texidoc = "@cindex Staff Bracket
Here's an example of staff brackets. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc="@cindex Staff Lines
Staff symbol property set workaround. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Staff Size
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{ texidoc ="@cindex Staff Space
Setting staff space on a staff. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% possible rename to ancient- something.
\header {
texidoc ="@cindex Ancient Mensural Note Heads
-\version "1.7.18"
+\version "1.9.0"
\header { texidoc = "@cindex Stem Cross Staff
There is no support for putting chords across staves.
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Stem Extend
You can stop LilyPond from extending stems to the center line. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{ texidoc = "@cindex Stem Length
You can alter the length of stems. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {texidoc = "@cindex Tablature hammer
You can fake a hammer in tablature with slurs. "
}
-\version "1.7.18"
+\version "1.9.0"
\header{ texidoc = "@cindex Tabulature
A sample tablature, with both normal staff and tab.
-\version "1.7.22"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% TODO: check about other ottava functions.
\header { texidoc = "@cindex Ottava Spanner
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Textscript
Test font selection and scm text markup. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc = "@cindex Tie Sparse
Setting sparseTies causes only one tie to be
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header { texidoc= "@cindex Time Signature Double
Double time signatures are not supported
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% TODO: This file could be old. Ask about it later. -gp
\header { texidoc = "@cindex Time
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% possible rename to bar-something.
\header{ texidoc = "@cindex Bar Length
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
% MERGE with ly2dvi-
\header {
filename = "title.ly"
-\version "1.7.18"
+\version "1.9.0"
fooBar = \notes { < c''4 \\ g'4 > }
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{ texidoc = "@cindex Transposition
Transposition test file."
-\version "1.7.22"
+\version "1.9.0"
\header { texidoc="@cindex Trill
Show trill line type. "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header {
texidoc="@cindex Trills
-\version "1.7.18"
+\version "1.9.0"
% regression. -gp
\header {
-\version "1.8.0"
+\version "1.9.0"
% possible rename to ancient-something.
\header { texidoc = "Ancient Vaticana
-\version "1.7.30"
+\version "1.9.0"
\header {
texidoc = "By putting the output of @code{lilypond-version}
-\version "1.7.18"
+\version "1.9.0"
% TODO: huh? what's this file about? -gp
\header { texidoc = "
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\score {
\notes\context PianoStaff <
\context Staff = up
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\score {
\notes\context PianoStaff <
\context Staff = up
-\version "1.7.18"
+#(ly:set-option 'old-relative)
+\version "1.9.0"
\header{
filename = "twinkle-pop.ly"
xtitle = "Ah, vous dirais-je, maman "
Music* make_music_by_name (SCM sym);
-extern bool lily_1_8_relative;
-
#endif // MUSIC_HH
virtual Pitch to_relative_octave (Pitch);
};
-
#endif /* RELATIVE_MUSIC_HH */
+
--- /dev/null
+/*
+ relative-octave-check.hh -- declare Relative_octave_octave-check
+
+ source file of GNU LilyPond
+
+ (c) 2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef RELATIVE_OCTAVE_CHECK_HH
+#define RELATIVE_OCTAVE_CHECK_HH
+
+#include "music.hh"
+
+class Relative_octave_check : public Music
+{
+public:
+ VIRTUAL_COPY_CONS(Music);
+ virtual Pitch to_relative_octave (Pitch);
+};
+
+
+#endif /* RELATIVE_MUSIC_HH */
+
+
extern bool midi_debug_global_b;
extern int testing_level_global;
extern bool lily_1_8_relative;
+extern bool lily_1_8_compatibility_used;
#endif /* SCM_OPTION_HH */
char const* pos_str0_;
SCM get_port()const { return str_port_; }
+ String name_;
+
private:
- String name_string_;
Link_array<char> newline_locations_;
std::istream* istream_;
char * contents_str0_;
{
header_ = SCM_EOL;
global_input_file = this;
- ly_set_point_and_click (SCM_BOOL_F);
sources_.set_path (&global_path);
#include <iostream>
using namespace std;
+#include "source-file.hh"
#include "parse-scm.hh"
#include "lily-guile.hh"
#include "string.hh"
%option never-interactive
%option warn
+%x renameinput
%x version
%x chords
%x incl
<INITIAL,chords,lyrics,notes,figures>\\version{WHITE}* {
yy_push_state (version);
}
+<INITIAL,chords,lyrics,notes,figures>\\renameinput{WHITE}* {
+ yy_push_state (renameinput);
+}
<version>\"[^"]*\" { /* got the version number */
String s (YYText ()+1);
s = s.left_string (s.index_last ('\"'));
- yy_pop_state ();
- if (!valid_version_b (s))
+ yy_pop_state();
+ if (!valid_version_b (s))
return INVALID;
}
+<renameinput>\"[^"]*\" { /* got the version number */
+ String s (YYText ()+1);
+ s = s.left_string (s.index_last ('\"'));
+
+ yy_pop_state();
+ this->here_input().source_file_->name_ = s;
+}
+
<version>. {
LexerError ("No quoted string found after \\version");
yy_pop_state ();
}
+<renameinput>. {
+ LexerError ("No quoted string found after \\renameinput");
+ yy_pop_state ();
+}
<longcomment>{
[^\%]* {
}
-/* 1.3.146 == removal of ; */
-Lilypond_version oldest_version ("1.3.146");
+/* 1.9.0 == postfix articulations */
+Lilypond_version oldest_version ("1.9.0");
bool
static Keyword_ent the_key_tab[]={
+ {"accepts", ACCEPTS},
+ {"addlyrics", ADDLYRICS},
{"alias", ALIAS},
+ {"alternative", ALTERNATIVE},
{"apply", APPLY},
{"applycontext", APPLYCONTEXT},
{"applyoutput", APPLYOUTPUT},
{"autochange", AUTOCHANGE},
- {"simultaneous", SIMULTANEOUS},
- {"sequential", SEQUENTIAL},
- {"accepts", ACCEPTS},
- {"alternative", ALTERNATIVE},
{"bar", BAR},
{"breathe", BREATHE},
{"chordmodifiers", CHORDMODIFIERS},
{"denies", DENIES},
{"description", DESCRIPTION},
{"duration", DURATION},
- {"grobdescriptions", GROBDESCRIPTIONS},
{"figures",FIGURES},
{"grace", GRACE},
+ {"grobdescriptions", GROBDESCRIPTIONS},
{"header", HEADER},
- {"lyrics", LYRICS},
{"key", KEY},
+ {"lyrics", LYRICS},
{"mark", MARK},
{"markup", MARKUP},
- {"once", ONCE},
- {"pitch", PITCH},
- {"time", TIME_T},
- {"times", TIMES},
{"midi", MIDI},
{"name", NAME},
- {"pitchnames", PITCHNAMES},
{"notes", NOTES},
+ {"octave", OCTAVE},
+ {"once", ONCE},
{"outputproperty", OUTPUTPROPERTY},
{"override", OVERRIDE},
- {"set", SET},
- {"rest", REST},
- {"revert", REVERT},
- {"partial", PARTIAL},
{"paper", PAPER},
+ {"partcombine", PARTCOMBINE},
+ {"partial", PARTIAL},
+ {"pitch", PITCH},
+ {"pitchnames", PITCHNAMES},
{"property", PROPERTY},
{"relative", RELATIVE},
{"remove", REMOVE},
{"repeat", REPEAT},
- {"addlyrics", ADDLYRICS},
- {"partcombine", PARTCOMBINE},
+ {"rest", REST},
+ {"revert", REVERT},
{"score", SCORE},
+ {"sequential", SEQUENTIAL},
+ {"set", SET},
+ {"simultaneous", SIMULTANEOUS},
{"skip", SKIP},
{"tempo", TEMPO},
+ {"time", TIME_T},
+ {"times", TIMES},
{"translator", TRANSLATOR},
{"transpose", TRANSPOSE},
{"type", TYPE},
#include <stdlib.h>
-
+#include "scm-option.hh"
#include "translator-def.hh"
#include "lily-guile.hh"
#include "misc.hh"
%token COMMANDSPANREQUEST
%token TEMPO
%token OUTPUTPROPERTY
+%token OCTAVE
%token TIME_T
%token TIMES
%token TRANSLATOR
%token UNSET
%token CONTEXT
%token REST
-
%token CHORD_OPEN
%token CHORD_CLOSE
command_req {
$$ = MY_MAKE_MUSIC("EventChord");
$$->set_mus_property ("elements", scm_cons ($1->self_scm (), SCM_EOL));
- scm_gc_unprotect_object ($1->self_scm());
+ scm_gc_unprotect_object ($1->self_scm());
$$-> set_spot (THIS->here_input ());
$1-> set_spot (THIS->here_input ());
}
+ | OCTAVE { THIS->push_spot (); }
+ pitch {
+ Music *l = MY_MAKE_MUSIC("RelativeOctaveCheck");
+ $$ = l;
+ $$->set_spot (THIS->pop_spot ());
+ $$->set_mus_property ("pitch", $3);
+ }
| E_LEFTSQUARE {
Music *l = MY_MAKE_MUSIC("LigatureEvent");
l->set_mus_property ("span-direction", gh_int2scm (START));
--- /dev/null
+#include "relative-octave-check.hh"
+#include "input.hh"
+#include "pitch.hh"
+
+/*
+ yeah, so this should be in a separate file.
+ I'm lazy.
+ */
+Pitch
+Relative_octave_check::to_relative_octave (Pitch p)
+{
+ Pitch * check_p = unsmob_pitch (get_mus_property ("pitch"));
+
+ int delta_oct = 0;
+ if (check_p)
+ {
+ Pitch no_octave (-1,
+ check_p->get_notename (),
+ check_p->get_alteration());
+
+ Pitch result = no_octave.to_relative_octave (p);
+
+ if (result != *check_p)
+ {
+ String s = _("Failed octave check, got: ");
+ s += result.to_string ();
+
+ origin ()->warning (s);
+
+ delta_oct = check_p->get_octave () - result.get_octave ();
+ }
+ }
+
+ return Pitch (p.get_octave () + delta_oct,
+ p.get_notename (), p.get_alteration ());
+}
+
+ADD_MUSIC(Relative_octave_check);
(c) 1998--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
-
#include "relative-music.hh"
#include "warn.hh"
-
+#include "scm-option.hh"
Pitch
{
if (lily_1_8_relative)
{
-
- /*
- ugh: last-pitch should be junked.
+ lily_1_8_compatibility_used = true;
+ /*
+ ugh: last-pitch should be junked.
- Change this for lilypond 2.0. When you do,
- then B should start where A left off.
+ Change this for lilypond 2.0. When you do,
+ then B should start where A left off.
- \relative { A \relative { ...} B }
+ \relative { A \relative { ...} B }
- */
+ */
return * unsmob_pitch (get_mus_property ("last-pitch"));
}
else
}
ADD_MUSIC (Relative_octave_music);
+
+
#include "pitch.hh"
#include "warn.hh"
#include "music-sequence.hh"
+#include "scm-option.hh"
Music *
Repeated_music::body ()const
{
if (lily_1_8_relative)
{
+ lily_1_8_compatibility_used = true;
if (body ())
p = body ()->to_relative_octave (p);
Backwards compatibility.
*/
bool lily_1_8_relative = true;
+bool lily_1_8_compatibility_used = false;
+
/*
crash if internally the wrong type is used for a grob property.
*/
@item -t,--test
Switch on any experimental features. Not for general public use. */
-LY_DEFINE (ly_set_option, "ly:set-option", 2, 0, 0, (SCM var, SCM val),
+LY_DEFINE (ly_set_option, "ly:set-option", 1, 1, 0, (SCM var, SCM val),
"Set a global option value. Supported options include\n"
"\n"
"@table @code\n"
"@end table\n"
"\n"
"This function is useful to call from the command line: @code{lilypond -e\n"
-"\"(ly-set-option 'midi-debug #t)\"}.\n")
+"\"(ly-set-option 'midi-debug #t_)\"}.\n")
{
+ if (val == SCM_UNDEFINED)
+ val = SCM_BOOL_T;
+
if (var == ly_symbol2scm ("help"))
{
/* lilypond -e "(ly-set-option 'help #t)" */
else if (var == ly_symbol2scm ("old-relative"))
{
lily_1_8_relative = true;
+ lily_1_8_compatibility_used = false;
}
else if (var == ly_symbol2scm ("new-relative"))
{
}
+LY_DEFINE (ly_get_option, "ly:get-option", 1, 0, 0, (SCM var),
+ "Get a global option setting. Supported options include\n"
+ "@table @code\n"
+ "@item old-relative-used\n"
+ "Report whether old-relative compatibility mode is necessary\n"
+ "@item old-relative\n"
+ "Report whether old-relative compatibility mode is used\n"
+ "@end table\n"
+ "\n")
+{
+ if (var == ly_symbol2scm ("old-relative-used"))
+ {
+ return gh_bool2scm (lily_1_8_compatibility_used);
+ }
+ if (var == ly_symbol2scm ("old-relative"))
+ {
+ return gh_bool2scm (lily_1_8_relative);
+ }
+ else
+ {
+ warning (_("Unknown internal option!"));
+ }
+
+ return SCM_UNSPECIFIED;
+}
+/*
+ simultaneous-music.cc -- implement Simultaneous_music
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1998--2003 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+*/
+
#include "input.hh"
#include "moment.hh"
#include "pitch.hh"
#include "music-list.hh"
+#include "scm-option.hh"
Moment
Simultaneous_music::get_length () const
Pitch
Simultaneous_music::to_relative_octave (Pitch p)
{
- return music_list_to_relative (music_list(),p, lily_1_8_relative);
+ if (lily_1_8_relative)
+ lily_1_8_compatibility_used = true;
+
+ return music_list_to_relative (music_list(), p, lily_1_8_relative);
}
ADD_MUSIC (Simultaneous_music);
*/
Source_file::Source_file (String filename, String data)
{
- name_string_ = filename;
+ name_ = filename;
istream_ = 0;
contents_str0_ = data.get_copy_str0();
length_ = data.length();
Source_file::Source_file (String filename_string)
{
- name_string_ = filename_string;
+ name_ = filename_string;
istream_ = 0;
contents_str0_ = 0;
str_port_ = scm_mkstrport (SCM_INUM0, str, SCM_OPN | SCM_RDNG,
__FUNCTION__);
scm_set_port_filename_x (str_port_,
- scm_makfrom0str (name_string_.get_str0()));
+ scm_makfrom0str (name_.get_str0()));
}
int
String
Source_file::name_string () const
{
- return name_string_;
+ return name_;
}
Source_file::~Source_file ()
-\version "1.7.18"
+\version "1.9.0"
% a3-init.ly
hsize = 296.9 \mm
-\version "1.7.18"
+\version "1.9.0"
% a4.ly
hsize = 210.0 \mm
-\version "1.7.18"
+\version "1.9.0"
% Symbols needed to print accordion music
%
% 2' = T
% Toplevel initialisation file.
-\version "1.7.18"
+\version "1.9.0"
\include "declarations-init.ly"
-\version "1.7.18"
+\version "1.9.0"
% Toplevel initialisation file.
-\version "1.7.18"
+\version "1.9.0"
\include "declarations-init.ly"
-\version "1.7.18"
+\version "1.9.0"
\chordmodifiers #default-chord-modifier-list
+#(ly:set-option 'old-relative)
-\version "1.7.18"
+\version "1.9.0"
breve = \duration #(ly:make-duration -1 0)
longa = \duration #(ly:make-duration -2 0 )
maxima = \duration #(ly:make-duration -3 0)
-\version "1.7.18"
+\version "1.9.0"
)
-\version "1.7.18"
+\version "1.9.0"
-\version "1.7.18"
+\version "1.9.0"
%
% declare the standard dynamic identifiers.
(bss . ,(ly:make-pitch -1 6 2 ))
)
-\version "1.7.18"
+\version "1.9.0"
-\version "1.7.18"
+\version "1.9.0"
Beam \override #'auto-knee-gap = #'()
}
-HaraKiriStaffContext = \translator {
+RemoveEmptyStaffContext = \translator {
\RemoveEmptyStaffContext
\accepts "VaticanaVoice"
\accepts "GregorianTranscriptionVoice"
-\version "1.7.18"
+\version "1.9.0"
-\version "1.7.18"
+\version "1.9.0"
%
% Running LilyPond on this file generates the documentation
-\version "1.7.18"
+\version "1.9.0"
%
% Running LilyPond on this file generates the short interface doc
-\version "1.7.18"
+\version "1.9.0"
\paper {
texsetting = ""
-\version "1.7.18"
+\version "1.9.0"
%%
%% TODO: these definitions should be read and executed out dynamically
-\version "1.8.0"
+\version "1.9.0"
%%%%%%%%
%%%%%%%% shortcuts common for all styles of gregorian chant notation
#(reset-drum-kit)
-\version "1.7.18"
+\version "1.9.0"
\include "declarations-init.ly"
+#(ly:set-option 'old-relative #t)
+#(ly:set-point-and-click #f)
+
\maininput
+
+#(if (and (ly:get-option 'old-relative)
+ (not (ly:get-option 'old-relative-used)))
+ (ly:warn "Old relative compatibility was not used."))
(sidd . ,(ly:make-pitch -1 6 2 ))
)
-\version "1.7.18"
+\version "1.9.0"
-\version "1.7.18"
+\version "1.9.0"
% ledger.ly
-\version "1.7.18"
+\version "1.9.0"
% legal-init.ly
hsize = 8.5 \in
-\version "1.7.18"
+\version "1.9.0"
% letter-init.ly
hsize = 8.5 \in
-\version "1.7.18"
+\version "1.9.0"
\midi {
\tempo 4=60
\include "performer-init.ly"
-\version "1.7.18"
+\version "1.9.0"
%{
common dutch names for notes. es means flat, is means sharp
%}
-\version "1.7.18"
+\version "1.9.0"
% paper-as5-init.ly
-\version "1.7.18"
+\version "1.9.0"
paperAsFive = \paper {
staffheight = 5.\char
-\version "1.7.18"
+\version "1.9.0"
\include "paper-as5-init.ly"
% paper-as9-init.ly
-\version "1.7.18"
+\version "1.9.0"
paperAsNine = \paper {
staffheight = 9.\char
-\version "1.7.18"
+\version "1.9.0"
\include "paper-as9-init.ly"
-\version "1.7.18"
+\version "1.9.0"
% paper-init.ly
%% Why som complicated? /MB
% paper11-init.ly
-\version "1.7.18"
+\version "1.9.0"
paperEleven = \paper {
staffheight = 11.0\pt
-\version "1.7.18"
+\version "1.9.0"
\include "paper11-init.ly"
% paper13-init.ly
-\version "1.7.18"
+\version "1.9.0"
paperThirteen = \paper {
staffheight = 13.0\pt
-\version "1.7.18"
+\version "1.9.0"
\include "paper13-init.ly"
% paper16-init.ly
-\version "1.7.18"
+\version "1.9.0"
paperSixteen = \paper {
staffheight = 16.0\pt
-\version "1.7.18"
+\version "1.9.0"
\include "paper16-init.ly"
% paper19-init.ly
-\version "1.7.18"
+\version "1.9.0"
paperNineteen = \paper {
staffheight = 19.0\pt
-\version "1.7.18"
+\version "1.9.0"
\include "paper19-init.ly"
% paper20-init.ly
-\version "1.7.18"
+\version "1.9.0"
paperTwenty = \paper {
staffheight = 20.0\pt
-\version "1.7.18"
+\version "1.9.0"
\include "paper20-init.ly"
% paper23-init.ly
-\version "1.7.18"
+\version "1.9.0"
paperTwentythree = \paper {
staffheight = 23.0\pt
-\version "1.7.18"
+\version "1.9.0"
\include "paper23-init.ly"
% paper26-init.ly
-\version "1.7.18"
+\version "1.9.0"
paperTwentysix = \paper {
staffheight = 26.0\pt
-\version "1.7.18"
+\version "1.9.0"
\include "paper26-init.ly"
-\version "1.7.18"
+\version "1.9.0"
% params-as-init.ly
% generic paper parameters
-\version "1.7.18"
+\version "1.9.0"
% JUNKME.
%% deprecated
-\version "1.7.18"
+\version "1.9.0"
% JUNKME
%part-paper-init.ly
-\version "1.7.18"
+\version "1.9.0"
%
% setup for Request->Element conversion. Guru-only
% property-init.ly
-\version "1.7.18"
+\version "1.9.0"
stemUp = \property Voice.Stem \set #'direction = #1
stemDown = \property Voice.Stem \set #'direction = #-1
-\version "1.7.18"
+\version "1.9.0"
major = #'(
-\version "1.7.18"
+\version "1.9.0"
dashHat= "marcato"
-\version "1.7.18"
+\version "1.9.0"
startGroup = #(make-span-event 'NoteGroupingEvent START)
stopGroup = #(make-span-event 'NoteGroupingEvent STOP)
(his . ,(ly:make-pitch -1 6 1 ))
(hisis . ,(ly:make-pitch -1 6 2 ))
)
-\version "1.7.18"
+\version "1.9.0"
(hiss . ,(ly:make-pitch -1 6 1 ))
(hississ . ,(ly:make-pitch -1 6 2 ))
)
-\version "1.7.18"
+\version "1.9.0"
return __main__.temp_dir
def command_name (cmd):
- return re.match ('^[ \t]*([^ \t]*)', cmd).group (1)
+ return re.match ('^[^a-z0-9_-]*([a-z0-9_-]*)', cmd).group (1)
def error_log (name):
- name = re.sub('[/:]','x',name)
+ name = re.sub('[^a-z]','x',name)
return tempfile.mktemp ('%s.errorlog' % name)
def read_pipe (cmd, mode = 'r'):
(types . (general-music pes-or-flexa-event event))
))
+ (RelativeOctaveCheck
+ . ((description . "Check if a pitch is in the correct octave.")
+ (internal-class-name . "Relative_octave_check")
+ (types . (general-music relative-octave-check))
+ ))
+
(RepeatedMusic
. (
(description . "Repeat music in different ways")
+if 1:
+
+ def sub_chord (m):
+ str = m.group(1)
+
+ origstr = '<%s>' % str
+ if re.search (r'\\\\', str):
+ return origstr
+
+ if re.search (r'\\property', str):
+ return origstr
+
+ if re.match (r'^\s*\)?\s*\\[a-zA-Z]+', str):
+ return origstr
+
+ durs = []
+ def sub_durs (m):
+ durs.append(m.group(2))
+ return m.group (1)
+
+ str = re.sub ("([a-z]+[,'!? ]*)([0-9.]+)", sub_durs, str)
+ dur_str = ''
+
+ for d in durs:
+ if dur_str == '':
+ dur_str = d
+ if dur_str <> d:
+ return '<%s>' % m.group (1)
+
+ pslur_strs = ['']
+ dyns = ['']
+ slur_strs = ['']
+
+ last_str = ''
+ while last_str <> str:
+ last_str = str
+ def sub_dyn_end (m):
+ dyns.append (' -\!')
+ return ' ' + m.group(2)
+
+ str = re.sub (r'(\\!)\s*([a-z]+)', sub_dyn_end, str)
+ def sub_slurs(m):
+ if '-)' not in slur_strs:
+ slur_strs.append ( '-)')
+ return m.group(1)
+ def sub_p_slurs(m):
+ if '-\)' not in slur_strs:
+ slur_strs.append ( '-\)')
+ return m.group(1)
+ str = re.sub (r"\)[ ]*([a-z]+)", sub_slurs, str)
+ str = re.sub (r"\\\)[ ]*([a-z]+)", sub_p_slurs, str)
+ def sub_begin_slurs(m):
+ if '-(' not in slur_strs:
+ slur_strs.append ( '-(')
+ return m.group(1)
+ str = re.sub (r"([a-z]+[,'!?0-9 ]*)\(", sub_begin_slurs, str)
+ def sub_begin_p_slurs(m):
+ if '-\(' not in slur_strs:
+ slur_strs.append ( '-\(')
+ return m.group(1)
+
+ str = re.sub (r"([a-z]+[,'!?0-9 ]*)\\\(", sub_begin_p_slurs, str)
+
+ def sub_dyns (m):
+ s = m.group(0)
+ if s == '@STARTCRESC@':
+ slur_strs.append ("-\\<")
+ elif s == '@STARTDECRESC@':
+ slur_strs.append ("-\\>")
+ elif s == r'-?\\!':
+ slur_strs.append ('-\\!')
+ return ''
+
+ str = re.sub (r'@STARTCRESC@', sub_dyns, str)
+ str = re.sub (r'-?\\!', sub_dyns, str)
+
+ def sub_articulations (m):
+ a = m.group(1)
+ if a not in slur_strs:
+ slur_strs.append (a)
+ return ''
+
+ str = re.sub (r"([_^-]\@ACCENT\@)", sub_articulations, str)
+ str = re.sub (r"([_^-]\\[a-z]+)", sub_articulations, str)
+ str = re.sub (r"([_^-][>_.+|^-])", sub_articulations, str)
+
+ def sub_pslurs(m):
+ slur_strs.append ( ' -\\)')
+ return m.group(1)
+ str = re.sub (r"\\\)[ ]*([a-z]+)", sub_pslurs, str)
+
+ suffix = string.join (slur_strs, '') + string.join (pslur_strs, '') \
+ + string.join (dyns, '')
+
+ return '@STARTCHORD@%s@ENDCHORD@%s%s' % (str , dur_str, suffix)
+
+
+
+
+
+ def sub_chords (str):
+ simend = '>'
+ simstart = "<"
+ chordstart = '<<'
+ chordend = '>>'
+
+ if re.search (marker_str,str):
+ return str
+ str= re.sub (r'\\<', '@STARTCRESC@', str)
+ str= re.sub (r'\\>', '@STARTDECRESC@', str)
+ str= re.sub (r'([_^-])>', r'\1@ACCENT@', str)
+ str = re.sub ('<([^<>{}]+)>', sub_chord, str)
+
+ str = re.sub (r'\[ *(@STARTCHORD@[^@]+@ENDCHORD@[0-9.]+)',
+ r'\1-[',
+ str)
+ str = re.sub (r'\\! *(@STARTCHORD@[^@]+@ENDCHORD@[0-9.]+)',
+ r'\1-\\!',
+ str)
+ str = re.sub ('<([^?])', r'%s\1' % simstart, str)
+ str = re.sub ('>([^?])', r'%s\1' % simend, str)
+ str = re.sub ('@STARTCRESC@', r'\\<', str)
+ str = re.sub ('@STARTDECRESC@', r'\\>' ,str)
+ str = re.sub (r'\\context *Voice *@STARTCHORD@', '@STARTCHORD@', str)
+ str = re.sub ('@STARTCHORD@', chordstart, str)
+ str = re.sub ('@ENDCHORD@', chordend, str)
+ str = re.sub (r'@ACCENT@', '>', str)
+ return str
+
+ def articulation_substitute (str):
+ str = re.sub (r"""([^-])\[ *([a-z]+[,']*[!?]?[0-9:]*\.*)""",
+ r" \1 \2-[", str)
+ str = re.sub (r"""([^-])\) *([a-z]+[,']*[!?]?[0-9:]*\.*)""",
+ r"\1 \2-)", str)
+ str = re.sub (r"""([^-])\\! *([a-z]+[,']*[!?]?[0-9:]*\.*)""",
+ r"\1 \2-\\!", str)
+ return str
+
+ def conv_relative(str):
+ if re.search (r"\\relative", str):
+ str= "#(ly:set-option 'old-relative)\n" + str
+
+ return str
+
+ def conv (str):
+ str = conv_relative (str)
+ if re.search (marker_str, str) == None :
+ str = sub_chords (str)
+
+ str = articulation_substitute (str)
+
+ return str
+
+ conversions.append (((1,9,0), conv, """New relative mode,
+Postfix articulations, new chord syntax."))
+
################################
# END OF CONVERSIONS
################################
}
'''
+ orig_name = ''
for o in opts:
m= re.search ('relative(.*)', o)
v = 0
pitch = pitch + '\'' * v
body = '\\relative %s { %s }' % (pitch, body)
-
+ m =re.search ("filename=(.*)", o)
+ if m:
+ orig_name = m.group (1)
+
if is_fragment:
body = r'''
\score {
}
''' % (optstring, music_size, linewidth, indent, notime) + body
+ if orig_name:
+ body = '\\renameinput \"%s\"\n%s' % (orig_name, body)
+
+
# ughUGH not original options
return body
f.close ()
cmd = latex_cmd + ' \\\\nonstopmode \\\\input %s' % latex_fn
+
# Ugh. (La)TeX writes progress and error messages on stdout
# Redirect to stderr
- cmd += ' 1>/dev/stderr'
+ cmd = '(( %s >&2 ) >&- )' % cmd
status = ly.system (cmd, ignore_error = 1)
signal = 0xf & status
- exit_status = status >> 8
+ exit_status = status >> 8
if exit_status: