********
-[Linux ppc, egcs-1.0.2]
+[LinuxPPC-R5, egcs-1.1.2-12c]
-All compiling with -O2 is suspect, in particular guile-1.3, and
-Lily herself will break.
+Serious egcs-1.1.2-12c (stock LinuxPPC R5) bug on ppc:
+ *dest++ = *src++;
-[All platforms]
+Bug report filed, fixed in egcs-1.1.2-12f.
+Although we've currently got a workaround in place, the compiler
+is buggy; you should upgrade:
-When dealing with beaming that is not correct (eg quarter notes in
-beams.), you can get the following assert. This is a serious bug, but
-a good solution is quite a lot of work.
+ ftp://dev.linuxppc.org/users/fsirl/R5/RPMS/ppc/
- \score{
- \melodic{
- [c2 c]
- }
- }
-results in
+[LinuxPPC-R4, egcs-1.0.2]
+
+All compiling with -O2 is suspect, in particular guile-1.3, and
+Lily herself will break.
- lilypond: ../flower/include/varray.hh:141: struct Rhythmic_grouping *& Array<Rhythmic_grouping *>::elem(int) const: Assertion `i >=0&&i<size_' failed.
-And this
+[LinuxPPC, egcs-1.1b]
- \score{
- \melodic{
- [c]
- }
- }
+Lilypond 1.1.35-1.1.51,...: Wierd errors in guile scm_gc_mark ()
-in
- lilypond: ../flower/include/cursor.tcc:104: int Cursor<void *>::operator -(class Cursor<void *>) const: Assertion `c.ok()' failed.
- Aborted (core dumped)
+[All platforms]
+Some bugs may be captured in input/bugs/*y
[Linux libg++ 2.7]
includefile(convert-mudela.yo)
includefile(lilypond.yo)
includefile(ly2dvi.yo)
-includefile(mi2mu.yo)
+includefile(midi2ly.yo)
includefile(mudela-book.yo)
)
\vskip5mm
-\listfont{\fetatwenty}{0}{102}
+\listfont{\fetatwenty}{0}{105}
% urg
\vskip-\charheight
\listfont{\fetanumber}{48}{58}
Grace notes are typeset as an encapsulated piece of music. You can
have beams, notes, chords, stems etc. within a \verb|\grace|
section. Slurs that start within a grace section, but aren't ended are
-attached to the next normal note. Grace notes have zero duration
+attached to the next normal note. Grace notes have zero duration. If
+there are tuplets, the grace notes won't be under the brace.
code(\rc) and code(\rced) go after the last note. Because these marks are
bound to notes, if you want to get several marks during one note, you must use
spacer notes.
-mudela(fragment,verbatim,center)(
+COMMENT(Broken
+m udela(fragment,verbatim,center)(
c'' \< \! c'' d'' \decr e'' \rced
< f''1 {s4 \< \! s4 \> \! s2 } >)
+)
COMMENT(Broken!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
Chords can be entered either by name or by listing the notes in angle brackets.
Chords can be displayed either as notes or by name. To enter chords by name,
-either place them inside the code(\chords) keyword, or use
-code(\notes) and surround them with
-code(@) characters.
+either place them inside the code(\chords) keyword.
Chord names have the form
var(tonic)[var(duration)][code(-)var(modifier)][code(^)var(subtractions)][code(/)var(inversion)]
The var(tonic) should be the tonic note of the chord, and the var(duration) is
code(-) to indicate raising or lowering by half a step. A chord additions has
two effects: it adds the specified interval and all lower odd numbered
intervals to the chord, and it may lower or raise the specified interval.
-Intervals can be separated by a dot (code(.)) if you need to list
-several unmodified intervals.
+Intervals must be separated by a dot (code(.)).
Repeating a code(-) character will remove a half step from the preceeding
interval.
mudela(fragment,verbatim,center)(
\transpose c''{
\chords{
c1 c-3- c-7 c-8 c-9
- c-9-5+7+ c-3-5- c-4.6.8
+ c-9-.5+.7+ c-3-.5- c-4.6.8
}})
The second type of modifier that may appear after the code(-) is
a named modifier.
specified note is not in the chord then a warning will be printed.
mudela(fragment,verbatim,center)(
\transpose c'''{
- @c1@ @c/e@ @c/g@ @c-7/e@
+ \chords { c1 c/e c/g c-7/e }
})
Throughout these examples, chords have been shifted around the staff
using code(\transpose). The code(\relative) keyword has odd effects
description(
dit(code(C)) 4/4 and 2/2 are typeset as C and struck C,
respectively. All other time signatures are written with two digits.
- dit(code(old)) 2/2, 3/2, 3/4, 4/4, 6/4, 9/4, 6/8 and 9/8 are typeset
- with old-style mensuration marks. All other time signatures are
- written with two digits.
+ dit(code(old)) 2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8 and
+ 9/8 are typeset with old-style mensuration marks. All other time
+ signatures are written with two digits.
dit(code(1)) All time signatures are typeset with a single
digit, e.g. 3/2 is written as 3.
dit(code(C2/2), code(C4/4), code(old2/2), code(old3/2),
- code(old3/4), code(old4/4), code(old6/4), code(old9/4),
- code(old6/8) or code(old9/8))Tells Lilypond to use a
- specific symbol as time signature.
+ code(old2/4), code(old3/4), code(old4/4), code(old6/4),
+ code(old9/4), code(old4/8), code(old6/8), code(old6/8alt)
+ or code(old9/8))Tells Lilypond to use a specific symbol as
+ time signature.
)
The different time signature characters are shown below with
their names:
\time 2/2; a2^"old2/2" a2
\property Staff.timeSignatureStyle = "old3/2"
\time 2/2; a2^"old3/2" a2
+\property Staff.timeSignatureStyle = "old2/4"
+\time 2/2; a2^"old2/4" a2
\property Staff.timeSignatureStyle = "old4/4"
\time 2/2; a2^"old4/4" a2
\property Staff.timeSignatureStyle = "old6/4"
\time 2/2; a2^"old6/4" a2
\property Staff.timeSignatureStyle = "old9/4"
\time 2/2; a2^"old9/4" a2
+\property Staff.timeSignatureStyle = "old4/8"
+\time 2/2; a2^"old4/8" a2
\property Staff.timeSignatureStyle = "old6/8"
\time 2/2; a2^"old6/8" a2
+\property Staff.timeSignatureStyle = "old6/8alt"
+\time 2/2; a2^"old6/8alt" a2
\property Staff.timeSignatureStyle = "old9/8"
\time 2/2; a2^"old9/8" a2
}
)
)
-The commands described above do not music that you could hear, but
-within the language, they are "Music": they are grammatically
+The commands described above do not give music that you could hear,
+but within the language, they are "Music": they are grammatically
equivalent to notes, so they can appear in the same places as notes.
sect(Notation context)
make pnmtopng
)
-You can then install the new pnmtopng into /usr/local/bin/
+You can then install the new pnmtopng into file(/usr/local/bin/)
it()Bib2html lurl(http://pertsserver.cs.uiuc.edu/~hull/bib2html.)
Which, in turn depends on man2html for proper installation.
man2html can be had from lurl(http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05).
+The website will build without this utility, but you will not see our
+hypertextified bibliography.
+
TeTeX users should not forget to rerun texhash.
)
redef(article)(3)(chapter(ARG1))
redef(includefile)(1)(INCLUDEFILE(tex/ARG1))
-includefile(refman.yo)
+includefile(reference-manual.yo)
redef(article)(3)(nodeprefix()chapter(ARG1)nodeprefix(Mutopia ))
COMMENT(yodl2texinfo should be able to cope now, although ugly...)
Most of the items are marked in the code as well
Grep for TODO and ugh/ugr/urg.
-.* BUGS
+.* TODO before 1.2
+. * rename abc2ly mup2ly
+. * rename 'staff_line_leading' (who is being lead where?) to
+staff_space, interline; (or other meaningful name) and use throughout lily
+. * rename files to class-name:
+. * heads-engraver
+. * request-iterator
+. * p-score
+. * engraver-group
+. * standardise(d) switches: -v, --version; -d, --debug,
+. * Auto_beam debugging output (waarom/wanneer heb jij die weggehaald?)
+. * Auto_beam debugging output (waarom/wanneer heb jij die weggehaald?)
+. * Rename illegal to invalid
+. * Mats:
+
+- The Postscript output is still very experimental
+
+- The reference manual contain a number of exampels that don't
+ pass lilypond, among other the chord syntax.
+
+- Accidentals for grace notes are drawn at the wrong place. See
+ comment in grace.ly
+
+- It is impossible to typeset two textual scripts that are stacked
+ on top of eachother and avoids note collisions and at the same
+ time are typeset with different textStyle. I tried to move around
+ the text_engraver and other engravers between Voice and Thread
+ but the granularity is not fine enough, the scripts have to
+ share the same engraver in order to be get correct vertical
+ position but than they cannot have different style.
+ In my opinion, all scripts that share the same staff, should
+ be stacked vertically, avoiding collisions with the notes
+ in all voices.
+
+- If an \alternative is directly followed by a new \repeat,
+ Lily gives an assertion failure. See the comment in volta.fly
+
+- I'd like to change the \repetitions command to Jan's suggested
+ syntax: \repeat "repeatsymbol" 2 {...}, but I'm not sure that
+ I understand the implementation of repeats well enough.
+
+- The paper11/13/26 files have to be updated.
+. * Grace_slur_engraver.
+. * Break_req handling is silly (break_forbid () + \break fucks up.)
+. * hangOnClef with non-breakable clefs.
+. * do scaled fonts generally
+. * fix partial measures in meaningful way.
+. * relative mode for midi2ly
+. * uniformise recent feta contributions.
+. * bigger and fatter 4/4 C
+. * sort out directory stuff.
+. * --prefix option?
+. * -I option per filetype?
+. * kpathsea?
+. * ly2dvi/lilypond logfile.
+. * fractional chord durs.
+. * hang Item on Spanner
+. * do --safe for PS output?
+. * convert-mudela --output
+. * Staff_margin (with a partial measure.)
+. * fix convert-mudela manpage
+. * decimal point in \paper {}
+. * msgfmt -o check?
+. * add new glyphs to font.ly
+. * formatting of input stuff.
+. * deps for ly2dvi
+. * decide wether to junk _ in lyrics.
. * sane strategy for extensions (assume .ly):
02:22:24 appel ~/usr/src/lilypond$ lilypond foo
GNU LilyPond 1.1.54.
[/home/fred/usr/src/lilypond/scm/lily.scm]
warning: can't find file: `init'
. * indent = 0.0 with linewidth=-1.0
+. * auto-beaming in input/test/spacing.ly.
+huh, snap niks van: gewone beam gaat wel goed. hoe kan abe nu
+invloed hebben op beam-creatie, stopt toch gewoon stokken in?
. * music ending in grace notes.
. * PostScript
. * half notes in pfa
. * didot / big point.
-. * check EGCS version
-. * input/test/stem-spacing.ly: 12/4 touches first note
. * \shape 1st dim skipped?
. * turn slope-damping on/off
. * We need feta-din*.mf files for more sizes than 10.
. * fix dynamics decently, ie. use kerning & ligatures.
-. * dots & rest collisions?
. * behavior of "that the obvious solution
\lyrics { foo1*4 __ _ }" is unintuitive.
. * Lyrics and scripts collide.
-. * a note with a circle after it, meaning:
-
- note + circle = note + 1/4 of its length
-
- the circle is like a dot that's not filled in. for example, on
- page three, the c-sharp on the second line should be a quarter with
- a circle, not a quarter tied to a sixteenth. is this at all
- possible with lily?
. * grace_align_item -> stackingdir = left, weird placement.
-. * grace before triplet, see standchen
-. * tuplets that are written as "number : note", for example
- "3 : [image of a half note here]". possible?
-
. * filenames : junk lily.x
-. * Matanya's tips:
-. * don't shorten stems/staffs closer to each other.
-. * accidentals closer to note head
-. * to space the staffs/staffgroups contained in the score.
-. * heavier beams?
-
.* Cleanups needed
. * \$ and $ identifier syntax in examples.
. * bracket ps code.
. * clef engraver
. * parser
-.* TODO before 1.2
-. * rename midi2ly, abc2ly mup2ly
-. * Grace_slur_engraver.
-. * Break_req handling is silly (break_forbid () + \break fucks up.)
-. * Morally pure LilyPond.
-. * Remove non-free software links.
-. * Remove meta article LilyPond.
+.* BUGS
+. * [c8. c16 c16 c16] in 6/8 timesig.
+
+.* STUFF
. * break priority setting from SCM.
-. * hangOnClef with non-breakable clefs.
+. * Matanya's tips:
+. * don't shorten stems/staffs closer to each other.
+. * accidentals closer to note head
+. * to space the staffs/staffgroups contained in the score.
+. * heavier beams?
+
+. * tuplets that are written as "number : note", for example
+ "3 : [image of a half note here]". possible?
+. * a note with a circle after it, meaning:
+
+ note + circle = note + 1/4 of its length
+
+ the circle is like a dot that's not filled in. for example, on
+ page three, the c-sharp on the second line should be a quarter with
+ a circle, not a quarter tied to a sixteenth. is this at all
+ possible with lily?
+. * scm-ify \property values.
+. * make dependencies () a virtual function.
. * Abstraction for engravers:
. * make "in-between" engraver (Tie, Extender)
. * make wide_spanner_engraver (line_group_spanner, staff_symbol)
-. * do scaled fonts generally
-. * make dependencies () a virtual function.
. * store req -> element, element -> element causes for warnings
-. * include examples in RPM.
-. * fix partial measures in meaningful way.
-. * relative mode for mi2mu
-. * uniformise recent feta contributions.
-. * bigger and fatter 4/4 C
-. * sort out directory stuff.
-. * --prefix option?
-. * -I option per filetype?
-. * kpathsea?
-. * ly2dvi/lilypond logfile.
-. * fractional chord durs.
-. * hang Item on Spanner
-. * do --safe for PS output?
-. * convert-mudela --output
-. * Staff_margin (with a partial measure.)
-. * fix convert-mudela manpage
-. * decimal point in \paper {}
-. * scm-ify \property values.
-. * move class Lookup {} into scm
-. * msgfmt -o check?
-. * add new glyphs to font.ly
-. * formatting of input stuff.
-. * broken scripts:
- lbheel = \script { "bheel" 0 0 -1 0 0 }
- rbheel = \script { "bheel" 0 0 1 0 0 }
- lbtoe = \script { "btoe" 0 0 -1 0 0 }
- rbtoe = \script { "btoe" 0 0 1 0 0 }
- lfheel = \script { "fheel" 0 0 -1 0 0 }
- rfheel = \script { "fheel" 0 0 1 0 0 }
- lftoe = \script { "ftoe" 0 0 -1 0 0 }
- rftoe = \script { "ftoe" 0 0 1 0 0 }
-. * deps for ly2dvi
-
-. * decide wether to junk _ in lyrics.
-
-.* STUFF
. * compulsory hshift
+. * dots & rest collisions?
. *
My wish list for lyrics. I dream of a time when I will have enough time to
become familiar enough with the source code to be able to implement some of
beginning of each new line. This would make it easier to follow songs with a
large number of stanzas.
-2. Hyphens between syllables. At the moment there appears to be no easy way
-to position a hyphen mid-way between the syllables it breaks.
-
3. Notes centred above/below lyrics rather than left-aligned.
4. It would be very nice to be able to build some kind of phrasing into the
. * strip EXEs before installing
. * zip target for binary windows dist (JBR)
. * junking \skip req in lyrics
-. * mi2mu empty staffs.
+. * midi2ly empty staffs.
. * use Fourier transformation for rhythmic quantisation.
. * horizontal centering of dynamics
. * $DEPENDENCIES_OUTPUT support
. * tetex: mfplain.mem
. * timesig: sometimes bottom digit too high: Xdvi doesn't handle
newly created fonts correctly.
-.* 3RD PARTY PROJECTS:
-. * make GCC warn about ctor that leaves member vars uninitialised.
-. * GNU patch
-. * 'double-fix' mode: ignore identical fix, rather than suggest
- to revert patch direction when (more or less? exactly) the same
- thing is fixed
+
.* PROJECTS
. * Scripts:
. * stack scripts in chords:
. * Debug logs:
. * derive lily_stream, Dstream, texstream from ostream?
. * indentable stream as baseclass for TeX stream, lily stream, Dstream.
-. * use dstream feature in mi2mu
+. * use dstream feature in midi2ly
. * integrate IO checking into stream class
. * input converters
. * input property
. * abstract grammar.
. * Figure out semicolons.
-. * c4 4 4 4 for c4 c4 c4 c4?
. * <c f a>4 ?
. * Viola mode?
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=1
-PATCH_LEVEL=55
+PATCH_LEVEL=56
MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# env. vars for the C-shell.
# set environment for LilyPond. To be installed in /etc/profile.d/
-setenv GS_LIB "@datadir@/afm"
-setenv GS_FONTPATH "@datadir@/ps"
+setenv GS_LIB "@datadir@/ps"
+setenv GS_FONTPATH "@datadir@/afm"
# bit silly. for ly2dvi, overrules compiled-in datadir...
setenv LILYPONDPREFIX "@datadir@"
# set environment for LilyPond. To be installed in /etc/profile.d/
-GS_LIB="@datadir@/afm"
-GS_FONTPATH="@datadir@/ps"
+GS_LIB="@datadir@/ps"
+GS_FONTPATH="@datadir@/afm"
# bit silly. for ly2dvi, overrules compiled-in datadir...
LILYPONDPREFIX="@datadir@"
echo Setting up links
echo
showln -sf $LILYPOND_SOURCEDIR/lily/out/lilypond $prefix/bin/lilypond
-showln -sf $LILYPOND_SOURCEDIR/mi2mu/out/mi2mu $prefix/bin/mi2mu
+showln -sf $LILYPOND_SOURCEDIR/midi2ly/out/midi2ly $prefix/bin/midi2ly
showln -sf $LILYPOND_SOURCEDIR/scripts/out/ly2dvi $prefix/bin/ly2dvi
showln -sf $LILYPOND_SOURCEDIR/scripts/out/mudela-book $prefix/bin/mudela-book
showln -sf $LILYPOND_SOURCEDIR/buildscripts/out/genheader $prefix/bin/genheader
# rename to .dstreamrc and place in the directory where you're doing
# the debugging.
+# Set this to 1 to get default silence for unlisted classes
+Dstream_default_silence 0
+
+# In any case: for listed classes:
+# 0: verbose
+# 1: silent
+
# class name silence?
+
Dstream 0
# yydebug
Atom 1
Axis_group_administration 1
Axis_group_spanner 1
-Auto_beam_engraver 0
+Articulation_req 1
+Auto_beam_engraver 1
Audio_column 1
Audio_element 1
Audio_item 1
Engraver 1
Engraver_group_engraver 1
General_script_def 1
+Global_translator 1
Graphical_element 1
Graphical_axis_group 1
Group_change_req 1
Note_performer 1
Note_req 1
Paper_column 1
+Paper_outputter 1
Paper_score 1
Paper_def 1
Partial_measure_req 1
Staff_commands 1
Staff_symbol 1
Stem 1
-Stem_info 1
+Stem_info 0
Stem_req 1
String_identifier 1
Relative_octave_music 1
Text_def 1
Text_item 1
Text_req 1
+Text_script_req 1
Time_description 1
Time_signature_change_req 1
Translation_property 1
--- /dev/null
+\score{\notes{
+c'' \< \! c'' d'' \decr e'' \rced
+< f''1 {s4 \< \! s4 \> \! s2 } >
+}}
\score {\notes \context Voice = VA \relative c'' {
\grace c8 c4
- \grace { [c32 c32] } c4
+ \grace { [c32 cis32] } c4
+ \grace { [c32 c32] } \times 2/3 { [c8 c c] }
\grace { [b32 ( c32] } c4
- \grace c8 [c8 c8]
+ \grace c16 [c8 c8]
}
}
c''1^"timeSignatureStyle = \"C\""
\time 2/2;
c1
+\time 2/4;
+c2
\time 3/4;
c2.
\time 4/4;
c1^"timeSignatureStyle = \"old\""
\time 2/2;
c1
+\time 2/4;
+c2
\time 3/4;
c2.
\time 4/4;
c1^"timeSignatureStyle = \"\""
\time 2/2;
c1
+\time 2/4;
+c2
\time 3/4;
c2.
\time 4/4;
c1^"timeSignatureStyle = \"1\""
\time 2/2;
c1
+\time 2/4;
+c2
\time 3/4;
c2.
\time 4/4;
\property Staff.timeSignatureStyle = "old6/8"
\time 1/1;
c1^"old6/8"
+\property Staff.timeSignatureStyle = "old6/8alt"
+\time 1/1;
+c1^"old6/8alt"
\property Staff.timeSignatureStyle = "old9/4"
\time 1/1;
c1^"old9/4"
\property Staff.timeSignatureStyle = "old2/2"
\time 1/1;
c1^"old2/2"
+\property Staff.timeSignatureStyle = "old2/4"
+\time 1/1;
+c1^"old2/4"
+\property Staff.timeSignatureStyle = "old4/8"
+\time 1/1;
+c1^"old4/8"
\property Staff.timeSignatureStyle = "C4/4"
\time 1/1;
c1^"C4/4"
--- /dev/null
+% Test of prima/secunda volta brackets in conjunction with
+% line breaks and special bars.
+
+c' d e f |
+\repeat semi 2 { g a b c }
+\alternative { { c b a g a g a g} { f e d c } } \break
+c, d e f | % Assertion failure if this line is removed!!
+\repeat semi 2 { g a b c }
+\alternative { { c b a g \break a g a g} { f e d c } } \break
+c, d e f |
+\repeat semi 2 { g a b c }
+\alternative { { c b a g \break a g a g \break a b a b } { f e d c } } \break
+c, d e f |
+\repeat semi 2 { g a b c }
+\alternative { { c b a g } { f e d c \break a g a g} } \break
+c, d e f |
+\repeat semi 2 { g a b c }
+\alternative { { c b a g a g a g} { f e d c \bar "|.";} }
Atom::Atom(SCM s)
{
func_ = s;
+ magn_ = gh_int2scm (0);
}
timer_l_ = dynamic_cast<Timing_engraver*> (t);
}
+bool
+Auto_beam_engraver::do_try_music (Music* m)
+{
+ /*
+ Mag dit? Nu word-i toch maar geswallowed, en
+ komt er dus ook geen announce...
+ */
+ if (Skip_req* s = dynamic_cast <Skip_req*> (m))
+ {
+ if (stem_l_arr_p_)
+ end_beam ();
+ return true;
+ }
+ return false;
+}
+
void
Auto_beam_engraver::do_process_requests ()
{
- consider_end_and_begin ();
+ consider_end_and_begin (shortest_mom_);
}
void
-Auto_beam_engraver::consider_end_and_begin ()
+Auto_beam_engraver::consider_end_and_begin (Moment test_mom)
{
if (!timer_l_)
return;
int num = time->whole_per_measure_ / time->one_beat_;
int den = time->one_beat_.den_i ();
String time_str = String ("time") + to_str (num) + "_" + to_str (den);
+
String type_str;
- if (shortest_mom_.num () != 1)
- type_str = to_str (shortest_mom_.num ());
- if (shortest_mom_.den () != 1)
- type_str = type_str + "_" + to_str (shortest_mom_.den ());
+ if (test_mom.num () != 1)
+ type_str = to_str (test_mom.num ());
+ if (test_mom.den () != 1)
+ type_str = type_str + "_" + to_str (test_mom.den ());
/*
Determine end moment for auto beaming (and begin, mostly 0==anywhere)
reconsider ending/starting beam first.
*/
Moment mom = rhythmic_req->duration_.length_mom ();
+ consider_end_and_begin (mom);
+ if (!stem_l_arr_p_)
+ return;
if (mom < shortest_mom_)
{
if (stem_l_arr_p_->size ())
{
shortest_mom_ = mom;
- consider_end_and_begin ();
+ consider_end_and_begin (shortest_mom_);
if (!stem_l_arr_p_)
return;
}
representing a musical notation symbol. */
Protected_scm func_;
Protected_scm font_;
+ Protected_scm magn_;
};
VIRTUAL_COPY_CONS (Translator);
protected:
+ virtual bool do_try_music (Music*);
virtual void do_pre_move_processing ();
virtual void do_post_move_processing ();
virtual void do_removal_processing ();
virtual void do_creation_processing ();
private:
void begin_beam ();
- void consider_end_and_begin ();
+ void consider_end_and_begin (Moment test_mom);
Beam* create_beam_p ();
void end_beam ();
void junk_beam ();
Molecule text (String style, String text, Paper_def*) const;
Molecule staff_brace (Real dy, int) const;
Molecule staff_bracket (Real dy) const;
- Molecule volta (Real h, Real w, Real thick, bool last_b) const;
+ Molecule volta (Real h, Real w, Real thick, bool vert_start, bool vert_end) const;
Molecule special_time_signature (String, int,int, Paper_def*) const;
Molecule time_signature (int n,int d, Paper_def*) const;
class Spanner : public virtual Score_element {
public:
Drul_array<Item*> spanned_drul_;
+ Array<Breaking_information> broken_info_;
void set_bounds (Direction d, Item*);
*/
virtual void break_into_pieces ();
- Array<Breaking_information> broken_info_;
friend Axis_group_spanner; // UGH
virtual void do_space_processing ();
}
<*>. {
- String msg = _f ("illegal character: `%c\'", YYText ()[0]);
+ String msg = _f ("invalid character: `%c\'", YYText ()[0]);
LexerError (msg.ch_C ());
return YYText ()[0];
}
gh_int2scm (cm.code ()),
SCM_UNDEFINED));
at.font_ = ly_symbol (font_name_.ch_C());
+ at.magn_ = gh_int2scm (0);
+
m.dim_ = cm.dimensions();
m.add_atom (&at);
return m;
if (style.empty_b ())
style = "roman";
- int font_mag = 1;
+ int font_mag = 0;
Real font_h = paper_l->get_var ("font_normal");
if (paper_l->scope_p_->elem_b ("font_" + style))
{
if (font_mag > 1 && font_mag < 7 )
{
/* UGH */
- style = style + String(" scaled \\magstep ") + to_str (font_mag);
w *= mag_steps[font_mag];
ydims *= mag_steps[font_mag];
}
gh_str02scm (text.ch_C()),
SCM_UNDEFINED));
at.font_ = ly_symbol (style);
+ at.magn_ = gh_int2scm (font_mag);
m.add_atom (&at);
return m;
String hairpin = String (decresc ? "de" : "") + "crescendo";
Atom at (gh_list (ly_symbol (hairpin),
+ gh_double2scm (thick),
gh_double2scm (width),
gh_double2scm (height),
gh_double2scm (continued ? height/2 : 0.0),
- gh_double2scm (thick),
SCM_UNDEFINED));
m.dim_.x () = Interval (0, width);
m.dim_.y () = Interval (-2*height, 2*height);
}
Molecule
-Lookup::volta (Real h, Real w, Real thick, bool last_b) const
+Lookup::volta (Real h, Real w, Real thick, bool vert_start, bool vert_end) const
{
Molecule m;
gh_double2scm (h),
gh_double2scm (w),
gh_double2scm (thick),
- gh_int2scm (last_b),
+ gh_int2scm (vert_start),
+ gh_int2scm (vert_end),
SCM_UNDEFINED));
m.dim_[Y_AXIS] = Interval (- h/2, h/2);
else if (measures_i_ > 1)
{
Molecule s ( lookup_l ()->text ("number", to_str (measures_i_), paper_l ()));
-
+ s.align_to (X_AXIS, CENTER);
s.translate_axis (3.0 * interline_f, Y_AXIS);
mol_p->add_molecule (s);
}
{
output_scheme (gh_list (ly_symbol ("select-font"),
gh_str02scm (symbol_to_string (i->font_).ch_C()),
+ SCM (i->magn_),
SCM_UNDEFINED));
}
}
char c = (dir_ == UP) ? 'u' : 'd';
- return lookup_l ()->afm_find (String ("flags-") + to_str (c) + to_str (flag_i_) + style);
+ Molecule m = lookup_l ()->afm_find (String ("flags-") + to_str (c) +
+ to_str (flag_i_));
+ if (!style.empty_b ())
+ m.add_molecule(lookup_l ()->afm_find (String ("flags-") + to_str (c) + style));
+ return m;
}
Interval
{
String s ("Time_description { ");
if (cadenza_b_)
- s += String ("(") + _("cadenza") + ")";
+ s += String ("(") + _("cadenza") + ")";
s += "at ";
s += when_.str ();
s +="\ntime_signature " + (whole_per_measure_/one_beat_).str () +":" +
- (Moment (Moment (1)/one_beat_)).str ();
+ (Moment (Moment (1)/one_beat_)).str ();
s += "\nposition " + to_str (bars_i_) + ":"+ whole_in_measure_.str () +"\n}\n";
return s;
}
DOUT << str ();
#endif
}
+
void
Time_description::OK() const
{
#ifndef NDEBUG
if (!cadenza_b_)
- assert (whole_in_measure_ < whole_per_measure_);
+ assert (whole_in_measure_ < whole_per_measure_);
assert (Moment (0) <= whole_in_measure_);
assert (one_beat_);
#endif
{
if (cadenza_b_ && !b)
{
- if (whole_in_measure_)
- {
- bars_i_ ++; // should do?
- whole_in_measure_ = 0;
- }
+ if (whole_in_measure_)
+ {
+ bars_i_ ++; // should do?
+ whole_in_measure_ = 0;
+ }
}
cadenza_b_ = b ;
}
while (!cadenza_b_ && whole_in_measure_ >= whole_per_measure_)
{
- whole_in_measure_ -= whole_per_measure_;
- bars_i_ ++;
+ whole_in_measure_ -= whole_per_measure_;
+ bars_i_ ++;
}
}
Time_description::try_set_partial_str (Moment p) const
{
if (p<Moment (0))
- return (_ ("partial measure must be non-negative"));
+ return (_ ("partial measure must be non-negative"));
if (p > whole_per_measure_)
- return (_ ("partial measure too large"));
+ return (_ ("partial measure too large"));
return "";
}
return whole_per_measure_-whole_in_measure_;
}
-int
-Time_description::compare (Time_description const &t1, Time_description const&t2)
-{
- int i = sign (t1.when_-t2.when_);
-
- if (!i)
- {
- assert (t1.bars_i_==t2.bars_i_);
- assert (t1.one_beat_ == t2.one_beat_);
- assert (t1.whole_in_measure_ == t2.whole_in_measure_);
- assert (t1.whole_per_measure_ == t2.whole_per_measure_);
- }
-
- return i;
-}
-
Moment
Time_description::next_bar_moment() const
{
void
Tuplet_engraver::acknowledge_element (Score_element_info i)
{
+ bool grace= (i.elem_l_->get_elt_property (grace_scm_sym) != SCM_BOOL_F);
+ if (grace != get_property ("weAreGraceContext",0).to_bool ())
+ return;
+
if (Note_column *nc = dynamic_cast<Note_column *> (i.elem_l_))
{
for (int j =0; j <started_span_p_arr_.size (); j++)
if (!bar_arr_.size ())
return mol_p;
+
+ bool no_vertical_start = false;
+ bool no_vertical_end = last_b_;
+ Spanner *orig_span = dynamic_cast<Spanner*> (original_l_);
+ if (orig_span && orig_span->broken_info_[0].broken_spanner_l_ != this)
+ no_vertical_start = true;
+ if (orig_span && orig_span->broken_info_.top ().broken_spanner_l_ != this)
+ no_vertical_end = true;
+ if (bar_arr_.top ()->type_str_.length_i () > 1)
+ no_vertical_end = false;
Real interline_f = paper_l ()->get_realvar (interline_scm_sym);
Real internote_f = interline_f/2;
Real dx = internote_f;
Real w = extent (X_AXIS).length () - dx;
Real h = paper_l()->get_var ("volta_spanner_height");
- Molecule volta (lookup_l ()->volta (h, w, t, last_b_));
+ Molecule volta (lookup_l ()->volta (h, w, t, no_vertical_start, no_vertical_end));
Molecule num (lookup_l ()->text ("volta", number_str_, paper_l ()));
mkdir -p $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc
mkdir htmldocs
tar -C htmldocs -xzf out/htmldoc.tar.gz
-#tar -C $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc -xzf out/htmldoc.tar.gz
+mkdir -p out/examples/
+tar -cf - input/ | tar -C out/examples/ -xf-
strip lily/out/lilypond midi2ly/out/midi2ly
make prefix="$RPM_BUILD_ROOT/usr" install
%files
%doc htmldocs/
+%doc out/examples/
# hairy to hook it in (possibly non-existing) emacs
%doc mudela-mode.el
draw (0, 0) .. (0,-2 interline);
fet_endchar;
-fet_beginchar("grace 8th Flag (up)", "u3grace", "graceeighthflag")
+fet_beginchar("grace dash (up)", "ugrace", "gracedash")
save flare,
hip_depth_ratio, hip_width,
- foot_depth, foot_width_ratio;
+ foot_depth;
flare# = 1.0 interline#;
hip_depth_ratio = .72;
- foot_width_ratio = .8;
hip_width# = upflag_width# - hip_thickness#/2;
foot_depth# = 3 interline#;
- set_char_box(hip_width# * hip_depth_ratio,
- hip_width# + stemthickness#/2 + right_upflag_space#,
- foot_depth# + foot_thickness#/2, stemthickness#/2)
-
define_pixels(flare, hip_width, hip_thickness,
foot_depth, foot_thickness);
- draw_flag((stemthickness/2,0), flare,
- (hip_width, foot_depth),
- hip_depth_ratio, foot_width_ratio, hip_thickness, foot_thickness);
+
+ set_char_box(hip_width# * hip_depth_ratio,
+ hip_width# + stemthickness#/2 + right_upflag_space#,
+ foot_depth# * hip_depth_ratio, -flare#)
pickup pencircle scaled 1.5 stemthickness;
- draw (0, 0) .. (0,-2 interline);
- draw (-b ,-foot_depth * hip_depth_ratio) ..
- (w, -flare);
+ draw (-b ,-d) ..
+ (w, h);
fet_endchar;
fet_beginchar("8th (down)", "d3", "deighthflag")
fet_endchar;
-fet_beginchar("grace 8th (down)", "d3grace", "dgraceeighthflag")
- save flare,
- hip_depth_ratio, hip_width,
- foot_depth, foot_width_ratio;
+fet_beginchar("grace dash (down)", "dgrace", "dgracedash")
+ save flare, hip_depth_ratio, hip_width, foot_depth;
save flagspace, total_depth, flag_count;
flag_count = 1;
foot_width_ratio = .8;
- set_char_box(hip_width# * hip_depth_ratio,
- hip_width# + stemthickness#/2 + right_downflag_space#,
- total_depth# + foot_thickness#/2, stemthickness#/2)
-
define_pixels(flare, hip_width, hip_thickness,
- flagspace,
- foot_depth, foot_thickness);
-
- draw_flag((stemthickness/2,- (flag_count-1) *flagspace), flare,
- (hip_width, foot_depth),
- hip_depth_ratio,foot_width_ratio, hip_thickness, foot_thickness);
+ flagspace, foot_depth);
+ set_char_box(hip_width# * hip_depth_ratio,
+ hip_width# + stemthickness#/2 + right_downflag_space#,
+ foot_depth# * hip_depth_ratio, -flare#)
pickup pencircle scaled 1.5 stemthickness;
- draw (0, 0) .. (0,-2 interline);
- draw (-b, -foot_depth * hip_depth_ratio) .. (w,-flare);
+ draw (-b, -d) .. (w,h);
y_mirror_char;
fet_endchar;
input feta-klef;
input feta-timesig;
else:
-% input feta-bolletjes;
+ input feta-bolletjes;
% input feta-banier;
% input feta-eindelijk;
% input feta-klef;
%
% source file of the Feta (not an abbreviation of Font-En-Tja) music font
%
-% (c) 1998 Mats Bengtsson <matsb@s3.kth.se>
+% (c) 1998--1999 Mats Bengtsson <matsb@s3.kth.se>,
+% Christian Mondrup <scancm@biobase.dk>
fet_begingroup("timesig");
draw_block((-Cthickness/2, -d), (Cthickness/2, h));
fet_endchar;
+%% tempus imperfectum cum prolatione imperfecta diminutio simplex
+fet_beginchar ("Mensural 4/8 meter", "old4/8", "oldfoureightmeter")
+ set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
+ .5 Cdiameter#, .5 Cdiameter#);
+
+ pickup pencircle scaled Cthickness;
+ draw threequartercircle rotated 225 scaled Cdiameter;
+fet_endchar;
+
+%% tempus imperfectum cum prolatione perfecta diminutio simplex
+fet_beginchar ("Mensural 6/8 meter", "old6/8alt", "oldsixeightmeteralt")
+ set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
+ .5 Cdiameter#, .5 Cdiameter#);
+
+ pickup pencircle scaled Cthickness;
+ draw threequartercircle rotated 225 scaled Cdiameter;
+ pickup pencircle scaled 4 stafflinethickness;
+ draw (0,0);
+fet_endchar;
+
+%% tempus imperfectum cum prolatione imperfecta diminutio duplex
+fet_beginchar ("Mensural 2/4 meter", "old2/4", "oldtwofourmeter")
+ set_char_box(.5 Cdiameter# + interline#, .5 Cdiameter# + interline#,
+ interline#, interline#);
+
+ pickup pencircle scaled Cthickness;
+ draw threequartercircle rotated 225 scaled Cdiameter;
+ draw_block((-Cthickness, -d), (0, h));
+fet_endchar;
+
fet_endgroup("timesig");
font_identifier "GRAYCX";
-boolean lightweight;
+%boolean lightweight;
input grayf
-# mi2mu/TODO
+# midi2ly/TODO
Most of the items are marked in the code as well, with full explanation.
grep for TODO and ugh/ugr
* junk one in list vs. array
- * add mi2mu example output (.midi.ly and .gif) to website
+ * add midi2ly example output (.midi.ly and .gif) to website
* important? lily is important, go work on lily!
- * faq about mi2mu midi t1. ?
+ * faq about midi2ly midi t1. ?
PROJECTS
- * write something interesting in mi2mu manual page
+ * write something interesting in midi2ly manual page
* check/use type 0 / 1 / 2 of midi file
* steal good ideas of other gpl midi parsers
* lily: add mudela info into midi as specials
- mi2mu: use special info
+ midi2ly: use special info
#include "proto.hh"
#include "moment.hh"
-#include "mi2mu-proto.hh"
+#include "midi2ly-proto.hh"
struct Midi_parser_info
{
#include "midi-parser.hh"
#include "proto.hh"
-#include "mi2mu-proto.hh"
+#include "midi2ly-proto.hh"
#include "parray.hh"
class Midi_score_parser : public Midi_parser
#include "proto.hh"
#include "cons.hh"
#include "moment.hh"
-#include "mi2mu-proto.hh"
+#include "midi2ly-proto.hh"
#include "midi-parser.hh"
class Midi_track_parser : public Midi_parser
--- /dev/null
+//
+// midi2ly-global.hh -- declare global (sic) stuff for midi2ly
+//
+// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+
+#ifndef MIDI2LY_GLOBAL_HH
+#define MIDI2LY_GLOBAL_HH
+
+#include "string.hh"
+#include "proto.hh"
+
+#define monitor_p_g &cout
+enum Verbose { QUIET_ver, BRIEF_ver, NORMAL_ver, VERBOSE_ver, DEBUG_ver };
+extern Verbose level_ver;
+#if 0 // NPRINT
+ // not what i want, all output goes through tors.
+ // set verbosity level.
+ #define LOGOUT(threshold) if (0) *monitor_p_g
+#else
+ #define LOGOUT(threshold) if (level_ver >= threshold) *monitor_p_g
+#endif
+
+extern Sources* source_l_g;
+// huh?
+void message (String message_str); //, char const* context_ch_C);
+void warning (String message_str); //, char const* context_ch_C);
+void error (String message_str); //, char const* context_ch_C);
+
+String midi2ly_version_str();
+extern bool no_timestamps_b_g;;
+
+#endif // MIDI2LY_GLOBAL_HH
+
--- /dev/null
+/*
+ midi2ly-proto.hh -- declare type names in midi2ly
+
+ source file of midi2ly, part of the GNU LilyPond package,
+
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef MIDI2LY_PROTO_HH
+#define MIDI2LY_PROTO_HH
+
+class Midi_parser;
+struct Midi_parser_info;
+class Midi_score_parser;
+class Midi_track_parser;
+class Mudela_stream;
+class Mudela_item;
+class Mudela_key;
+class Mudela_time_signature;
+class Mudela_note;
+class Mudela_tempo;
+class Mudela_text;
+class Mudela_score;
+class Mudela_staff;
+class Mudela_voice;
+class Mudela_column;
+
+#endif // MIDI2LY_PROTO_HH
#define MUDELA_COLUMN_HH
#include "proto.hh"
-#include "mi2mu-proto.hh"
+#include "midi2ly-proto.hh"
#include "moment.hh"
#include "cons.hh"
#ifndef MUDELA_ITEM_HH
#define MUDELA_ITEM_HH
-#include "mi2mu-proto.hh"
+#include "midi2ly-proto.hh"
#include "string.hh"
#include "moment.hh"
#include "duration.hh"
#ifndef MUDELA_SCORE_HH
#define MUDELA_SCORE_HH
-#include "mi2mu-proto.hh"
+#include "midi2ly-proto.hh"
#include "proto.hh"
#include "cons.hh"
#include "parray.hh"
#ifndef MUDELA_STAFF_HH
#define MUDELA_STAFF_HH
-#include "mi2mu-proto.hh"
+#include "midi2ly-proto.hh"
#include "proto.hh"
#include "cons.hh"
#include "string.hh"
#ifndef MUDELA_STREAM_HH
#define MUDELA_STREAM_HH
-#include "mi2mu-proto.hh"
+#include "midi2ly-proto.hh"
#include "string.hh"
#include "scalar.hh"
#ifndef MUDELA_VOICE_HH
#define MUDELA_VOICE_HH
-#include "mi2mu-proto.hh"
+#include "midi2ly-proto.hh"
#include "cons.hh"
/// (mudela_voice)
#include "duration-convert.hh"
#include "source.hh"
-#include "mi2mu-global.hh"
+#include "midi2ly-global.hh"
#include "midi-score-parser.hh"
#include "mudela-item.hh"
#include "mudela-score.hh"
void
usage()
{
- cout << _f ("Usage: %s [OPTION]... [FILE]", "mi2mu");
+ cout << _f ("Usage: %s [OPTION]... [FILE]", "midi2ly");
cout << '\n';
cout << _ ("Translate midi-file to mudela");
cout << '\n';
void
identify()
{
- LOGOUT(NORMAL_ver) << mi2mu_version_str() << endl;
+ LOGOUT(NORMAL_ver) << midi2ly_version_str() << endl;
}
void
notice()
{
LOGOUT(NORMAL_ver) << '\n';
- LOGOUT(NORMAL_ver) << _ ("Mi2mu, translate midi to mudela");
+ LOGOUT(NORMAL_ver) << _ ("Midi2ly, translate midi to mudela");
LOGOUT(NORMAL_ver) << '\n';
LOGOUT(NORMAL_ver) << _f ("Copyright (c) %s by", "1997, 1998");
LOGOUT(NORMAL_ver) << '\n';
#include <assert.h>
#include "string-convert.hh"
#include "source-file.hh"
-#include "mi2mu-global.hh"
+#include "midi2ly-global.hh"
#include "midi-parser.hh"
Midi_parser_info::Midi_parser_info ()
String
Midi_parser::message (String str)
{
- return String ("mi2mu: ")
+ return String ("midi2ly: ")
+ info_l_->source_l_->name_str () + ": "
+ String_convert::i2dec_str (info_l_->source_l_->line_i ((char const*)info_l_->byte_L_), 0, 0) + ": "
+ str + "\n"
#include "moment.hh"
#include "source-file.hh"
#include "source.hh"
-#include "mi2mu-global.hh"
+#include "midi2ly-global.hh"
#include "midi-score-parser.hh"
#include "midi-track-parser.hh"
#include "mudela-item.hh"
#include <assert.h>
#include "string-convert.hh"
-#include "mi2mu-global.hh"
+#include "midi2ly-global.hh"
#include "midi-track-parser.hh"
#include "mudela-column.hh"
#include "mudela-item.hh"
--- /dev/null
+//
+// version.cc -- implement inexpensive versioning
+//
+// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+
+#include <stdio.h>
+#include "config.hh"
+#include "version.hh"
+
+#define VERSION_SZ MAJOR_VERSION "." MINOR_VERSION "." PATCH_LEVEL "." MY_PATCH_LEVEL
+
+static char *s = "midi2ly " VERSION_SZ;
+
+
+const char *
+midi2ly_version_sz()
+{
+ return s;
+}
+
// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
#include <assert.h>
-#include "mi2mu-global.hh"
+#include "midi2ly-global.hh"
#include "string-convert.hh"
#include "duration-convert.hh"
#include "mudela-column.hh"
#include "moment.hh"
#include "duration.hh"
#include "duration-convert.hh"
-#include "mi2mu-global.hh"
+#include "midi2ly-global.hh"
#include "mudela-column.hh"
#include "mudela-item.hh"
#include "mudela-score.hh"
#include "moment.hh"
#include "duration-convert.hh"
#include "string-convert.hh"
-#include "mi2mu-proto.hh"
-#include "mi2mu-global.hh"
+#include "midi2ly-proto.hh"
+#include "midi2ly-global.hh"
#include "mudela-column.hh"
#include "mudela-item.hh"
#include "mudela-staff.hh"
#include <assert.h>
#include <time.h>
#include <fstream.h>
-#include "mi2mu-global.hh"
+#include "midi2ly-global.hh"
#include "mudela-item.hh"
#include "mudela-stream.hh"
#include "string-convert.hh"
if (no_timestamps_b_g)
*os_p_ << "GNU LilyPond\n";
else
- *os_p_ << mi2mu_version_str() << '\n';
+ *os_p_ << midi2ly_version_str() << '\n';
*os_p_ << _ ("% Automatically generated");
if (no_timestamps_b_g)
*os_p_ << ".\n";
// copyright 1997 Jan Nieuwenhuizen <janneke@gnu.org>
#include "string-convert.hh"
-#include "mi2mu-global.hh"
+#include "midi2ly-global.hh"
#include "mudela-column.hh"
#include "mudela-item.hh"
#include "mudela-staff.hh"
#include "proto.hh"
#include "string.hh"
-const char * mi2mu_version_sz();
+const char * midi2ly_version_sz();
// should simply have Root class...
String
-mi2mu_version_str()
+midi2ly_version_str()
{
- return String (mi2mu_version_sz ())
+ return String (midi2ly_version_sz ())
+ " " + _("of") + " " + __DATE__ + " " + __TIME__;
}
+\version "1.1.52";
+
$global_ii = \notes{
\time 4/4;
\property Staff.timeSignatureStyle = "C2/2"
copyright = "Public Domain";
}
+\version "1.1.52";
+
\include "global-ii.ly"
\include "violoncello-ii.ly";
\$global_ii
\notes\transpose c'' \$violoncello_ii
>
-\version "1.1.52";
\version "1.1.52";
+% {
+
\include "global-i.ly"
\include "viola-i.ly"
-%{
\score{
\$viola_i_staff
\paper{
\translator { \BarNumberingStaffContext }
}
\midi{
-%urg real/duration
+%urg, real/duration
% \tempo 4. = 69;
\tempo 4 . = 50;
}
}
-%}
+
+% }
\include "global-ii.ly"
\include "viola-ii.ly"
\score{
\$viola_ii_staff
\paper{
- castingalgorithm=0.0;
+% castingalgorithm=0.0;
\translator { \BarNumberingStaffContext }
- \translator { \ScoreContext skipBars = 1; }
+ %\translator { \ScoreContext skipBars = 1; }
}
\midi{
- \tempo 2 = 96;
+% \tempo 2 = 96;
+ \tempo 2 = 75;
}
}
copyright = "Public Domain";
}
+\version "1.1.52";
+
$violino_ii = \notes\relative c''{
R1*8 |
r2 e |
\version "1.1.52";
+% {
+
\include "global-i.ly"
\include "violino-i.ly"
-%{
\score{
\$violino_i_staff
\paper{
\tempo 4 . = 50;
}
}
-%}
+
+% }
\include "global-ii.ly"
\include "violino-ii.ly"
\$violino_ii_staff
\paper{
\translator { \BarNumberingStaffContext }
- castingalgorith=0;
+% castingalgorith=0;
}
\midi{
-% \tempo 4. = 69;
- \tempo 4 . = 50;
+% \tempo 2 = 96;
+ \tempo 2 = 75;
}
}
\version "1.1.52";
+% {
\include "violino-i.ly";
\include "viola-i.ly";
}
}
+% }
\include "violino-ii.ly";
\include "viola-ii.ly";
\version "1.1.52";
+% {
\include "violino-i.ly";
\include "violoncello-i.ly";
}
}
+% }
+
\include "violino-ii.ly";
\include "violoncello-ii.ly";
}
}
\midi{
- \tempo 2 = 96;
+% \tempo 2 = 96;
+ \tempo 2 = 75;
}
}
\version "1.1.52";
+% {
+
\include "global-i.ly"
\include "violoncello-i.ly"
-%{
\score{
\$violoncello_i_staff
\paper{
\tempo 4 . = 69;
}
}
-%}
+
+% }
\include "global-ii.ly"
\include "violoncello-ii.ly"
\score{
\$violoncello_ii_staff
\paper{
- castingalgorithm=0.;
+ %castingalgorithm=0.;
\translator { \BarNumberingStaffContext }
}
\midi{
- \tempo 2 = 96;
+% \tempo 2 = 96;
+ \tempo 2 = 75;
}
}
) g r r |
g [g8. ( a16 ] ) g4 |
R2. |
-r4 r [g8^""^"solo" \mf \< () \! e' ] |
-\grace d8 g2 \> ( [ \! e8. c16 ] |
+r4 r [g8^""^"solo" \mf \< () e' ] |
+\grace d8 \! g2 \> ( [ \! e8. c16 ] |
) g2 r4 |
R2. |
r4 r \times 2/3 {[e'8 \f ( g, ) g'] } |
\globalNoKey
}
-marks=\notes {
+marks= \notes {
\time 3/4;
-\property Voice.textStyle = "Large"
-\skip 2.*31;
-s2 s8 s^"\\Allegromoltovivace"
+%\property Thread.textStyle = "Large"
+s2.^"\\raisebox{4mm}{\\bfseries\Large Andante con moto}"
+\skip 2.*30;
+s2 s8 s^"\\raisebox{4mm}{\\bfseries\Large Allegro molto vivace}"
\time 2/4;
\skip 2*12;
\mark "A";
-% Defined as macros so Lilypond doesn't assign any horisontal spacing.
-\newcommand{\Allegromoltovivace}{\hspace{-10mm}\raise 20pt\hbox{
- \Large \textbf{Allegro molto vivace}}}
-%\newcommand{\Andanteconmoto}{\hspace{-12mm}\raise 20pt\hbox{
-% \Large Andante con moto}}
-\newcommand{\Andanteconmoto}{}
-\renewcommand{\thepiece}{Andante con moto}
+\def\fetdef#1#2{%
+ \def#1{\hbox{\fetchar{#2}}}}
+\font\fetasixteen = feta16
+\def\fetchar#1{{\fetasixteen\char#1}}
+\input{feta20} %%% Add lilypond-xxx/mf/out/ to TEXINPUTS
\newcommand{\okt}{$8^{va}$}
\vspace*{-10mm}%
\begin{center}
\bfseries
- \ifx\mudelanull\thetitle\else\sethuge{\thetitle}\\ \fi
- \ifx\mudelanull\thesubtitle\else\setLarge{\thesubtitle}\\ \fi
+ \ifx\mudelanull\thetitle\else{\huge\thetitle}\\ \fi
+ \ifx\mudelanull\thesubtitle\else{\Large\thesubtitle}\\ \fi
\end{center}
\bigskip
% urg
\edef\saveparskip{\parskip}\parskip-5mm
\begin{minipage}[t]{0.45\textwidth}
- \ifx\mudelanull\thepoet\else\settext{\thepoet}\\ \fi
- \ifx\mudelanull\themetre\else\settext{\themetre}\\ \fi
+ \ifx\mudelanull\thepoet\else{\thepoet}\\ \fi
+ \ifx\mudelanull\themetre\else{\themetre}\\ \fi
\end{minipage}\hspace*{\fill}
\begin{minipage}[t]{0.45\textwidth}
\begin{flushright}
- \ifx\mudelanull\thecomposer\else\setlarge{\normalfont\scshape\thecomposer}\\ \fi
- \ifx\mudelanull\theopus\else\settext{\theopus}\\ \fi
- \ifx\mudelanull\thearranger\else\settext{\thearranger}\\ \fi
+ \ifx\mudelanull\thecomposer\else{\large\normalfont\scshape\thecomposer}\\ \fi
+ \ifx\mudelanull\theopus\else{\theopus}\\ \fi
+ \ifx\mudelanull\thearranger\else{\thearranger}\\ \fi
\end{flushright}%
\end{minipage}\par
\parskip\saveparskip
-% {\center\setlarge{\theinstrument}\par}
-% {\flushleft\setLarge{\normalfont\scshape\thepiece}}
- {\flushleft\setLarge{\textbf\thepiece}}
- \leavevmode
- \enlargethispage*{5mm}
+ {\flushleft{\Large\textbf\thepiece}\par}%
+% \leavevmode%
+ \enlargethispage*{5mm}%
}
skipBars = 1;
markScriptPadding = "6.0";
barNumberScriptPadding = "11.0";
+ dynamicPadding = 3.0;
textScriptPadding = 5.0;
textStyle = "italic";
textEmptyDimension = 1;
\clarI
>
\header{
- instrument = "Clarinetto I in B\\textflat";
+ instrument = "Clarinetto I in B\\flat";
}
\paper{
\my_paper
\clarII
>
\header{
- instrument = "Clarinetto II in B\\textflat";
+ instrument = "Clarinetto II in B\\flat";
}
\paper{
\my_paper
\context Voice = help \trpIhelp
>
\header{
- instrument = "Tromba I in B\\textflat";
+ instrument = "Tromba I in B\\flat";
}
\paper{
\my_paper
\context Voice = help \trpIIhelp
>
\header{
- instrument = "Tromba II in B\\textflat";
+ instrument = "Tromba II in B\\flat";
}
\paper{
\my_paper
\oboe
>
\context Voice = clarI <
- \property Staff.instrument = "Clarinetto I"
+ \property Staff.instrument = "Clar. I in B\\flat "
\property Staff.instr = "Cl. I"
\globalNoKey
\clarI
>
\context Voice = clarII <
- \property Staff.instrument = "Clarinetto II"
+ \property Staff.instrument = "Clar. II in B\\flat "
\property Staff.instr = "Cl. II"
\globalNoKey
\clarII
}
>
\context Staff = trp <
- \property Staff.instrument = "2 Trp. in B\\textflat "
+ \property Staff.instrument = "2 Trp. in B\\flat "
\property Staff.instr = "Trp."
\context Voice = trpI <
\globalNoKey
\translator { \StaffContext
\consists "Staff_margin_engraver";
marginScriptPadding = "15.0";
+ dynamicPadding = 3.0;
textStyle = "italic";
textScriptPadding = 5.0;
textEmptyDimension = 1;
\header{
-title = "Konzert Nr. 3 Es dur"
+title = "Konzert Nr. 3 Es dur";
subtitle = "f\\\"ur Horn und Orchester";
description = "Third horn concerto, for horn in Es";
composer = "W. A. Mozart (1756-1792)";
c, r
R1*1
r8 [g' g g] [g g e c]
- g4 g, r2
+ g'4 g, r2
R1*18
r2 r4 g'4 |
e'4. () c8 [f (d c )b ]
[g'()d ] d4-- r4 d
[d8 () c] c4.( [d16 e] [d8 )c]
[c8(-\trill )b] b4 r2 |
- d2~( [d8 e16 d] [c8 )b] |
+ d2( ~ [d8 e16 d] [c8 )b] |
[b()a-.] a4-> r8 [a-. a-. a-.]
a4 cis e g
- [g16( fis e )d] d4-. r2 | % The g16 really is a grace note.
- % mark B
+ [ \grace g16( fis8 e16 )d] d4-. r2 |
+ \mark "B";
R1*3
r2 r4 [d8 (b ]
[a )g d'( b] [a )g e'( c ]
r1
c,2\p e4 g c e g4. e8 |
d4. [e16 fis] [g () fis e d] [c() b a g]
- a1(-\trill % \grace{g a}
+ a1(-\trill \grace{ g16 a}
)g4 r r2
R1*15
- % mark D
+ \mark "D";
bes2 d4 f
g,2~ [g8 g'( es )c]|
- bes4()a. [c8 d es]
+ bes4( )a4. [c8 d es]
cis4()d r8 [bes (c )d]
es2 () d4 r
es2\p () d4 r
r8 [fis, b dis] fis4 r
r8 [gis, b d] f4 r
r8 [g, b d] f4 r
- %mark E
+ \mark "E";
R1*8
r2 r8 [g,-. g-. g-.]
e'4.() c8 [f( d c )b]
c4.( [d16 e] f4 )e
a, ( d g, )c
d d [
- % \grace {e}
+ \grace { e8 }
d8. c16 d8. e16]
c4 r r2
- % mark F
+ \mark "F";
R1*3
c,2~[c8( e g )c]
[c8()b] b4 r2
r2 r4 [g'8()e]
[d()c g'()e] [d()c a'()f]
[e()d] d4 r [d8 d]
- d4~( [d16 e d )e] [g8() f e d] |
+ d4(~ [d16 e d )e] [g8() f e d] |
c4 r r2
r1
c1 ~
d1-\trill % \grace { c d}
c4 r r2
r1 |
- % mark H
+ \mark "H";
\times 2/3 { [ c8 ()b a ] } \times 2/3 { [ g a b] } \times 2/3 { [ c d e] } \times 2/3 { [ f()e d] } |
\times 2/3 { [ c () b a ] } \times 2/3 { [ g a b] } \times 2/3 { [ c d e] } \times 2/3 { [ f()e d] }|
c4 \times 2/3 { r8 [g'()e]} c4 \times 2/3 { r8 [e () c]} |
c'4.() 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 |
[bes8 (c d) bes] g4 r8 c,-.
[c8( e g )bes] [a( c f ) d]
c r e r f r r4
- % mark A
+ \mark "A";
R1*8
g4. f8 [e d c bes]
[bes( a d )c] c4 r
[c16\mf () d c-. d-.] [e () f e-. f-.] [g()e c-. c-.] [f()d b-. b-.]
[c16\p () d c-. d-.] [e () f e-. f-.] [g()e c-. c-.] [f()d b-. b-.]
[c8 c, c c] [c c c c]
- % mark B
+ \mark "B";
c1\f
R1*9
f'4.(\p )d8 b4 r8 g
[c ()e g g] [g( f e )d]
c4( % \grace { e}
[d8. )c16] [c8 c--( c-- )c--]
- % mark C
+ \mark "C";
des1\sf %\sfp
g,1\sf %\sfp
c\sf %\sfp
r8 [c c c] c2~
[c8 c' c c] c2~
[c8 e( g f] [e d c bes]
- % mark D
+ \mark "D";
)a4 r r2
R1*3
c4. () f8 a,4 a |
[g()e c-.] [d()e d-.]
c4 r8 r4 r8 |
R2.*7
- % mark A
+ \mark "A";
c4.\p [d8 c d]
c4 r8 r4 r8
e4. [f8 e f]
d2.~
[d8 c b] [b a g]
g'4()e8 b4()cis8
- %mark B
+ \mark "B";
d4 r8 r4 r8
R2.*3 |
r8 [d-. d-.] [d()g d---.]
d4()g8 [c, d e]
[d()g fis] [e d c]
[b () e d] [c b a]
- % mark C
+ \mark "C";
g4 r8 r4 r8
r2. |
%
\rondotheme
R2.*12
r4 r8 r4 c8
- % mark D
+ \mark "D";
c4 f8 c4 a8
a4.~a4 a8
bes4 c8 d4 bes8
bes4. ~ bes4 g8
a4 c8 [f () d b]
d4. () c8 r r
- % mark E
+ \mark "E";
R2.*9 |
\lipbreaker
[c8 c' c] c4.~
r8 [g g] [g g g]
es4.\f~ [es8 d c]
b4. c4. d4. e4.
- % mark F
+ \mark "F";
f2.\f ~ |
f4 r8 r4 r8
r8 [g\> g] [g g g]
[a bes \! b]
\rondotheme
R2.*7
- % mark G
+ \mark "G";
R2.*4
c,4.\mf c4 c8
c4. e4 c8
r4 r8 r4 g'8
[c ()e g,-.] [c ()e g,-.]
[c ()e g,-.] [c ()e g,-.]
- % mark H
+ \mark "H";
g'2._"cresc." bes,2.
a4. [b16 c d e f g]
a4. f4 d8
c4 r8 r4 r8
}
- \include "part-paper.ly"
+\paper{
+ casting_algorithm = \Wordwrap;
+ \translator { \StaffContext \consists Mark_engraver; }
+ \translator { \ScoreContext
+ skipBars = 1;
+ }
+
+}
+
\score
{
\allegro
\score
{
- { \property Score.skipBars = 1
- \romanze
+ { \romanze
}
- \paper{ \tempo 4 = 70; }
- \midi{}
+ \midi{ \tempo 4 = 70; }
+ \paper{}
}
\score
{
\rondo
\paper{
- \tempo 4 = 100;
}
- \midi{}
+ \midi{ \tempo 4 = 100;
+}
}
stroke
} bind def
-/draw_volta % h w thick last
+/draw_volta % h w thick vert_start vert_end
{
- /last exch def
+ /vert_end exch def
+ /vert_start exch def
setlinewidth
/volta_w exch def
/volta_h exch def
% true setstrokeadjust
1 setlinecap
1 setlinejoin
- 0 0 moveto
- 0 volta_h lineto
+ vert_start 0 eq {
+ 0 0 moveto
+ 0 volta_h lineto
+ } if
+ 0 volta_h moveto
volta_w volta_h lineto
- last 0 eq {
+ vert_end 0 eq {
volta_w 0 lineto
} if
stroke
(string-append
"\\lilyfont"
(make-string 1 (integer->char (+ 65 i)))))
-
- (define (select-font font-name)
+
+ (define (select-font font-name magnification)
(if (not (equal? font-name current-font))
(begin
(set! current-font font-name)
(set! font-count (+ 1 font-count))
(if (equal? font-name "")
(error "Empty fontname -- SELECT-FONT"))
- (string-append "\\font" font-cmd "=" font-name font-cmd))
+ (if (> magnification 0)
+ (string-append "\\font" font-cmd "=" font-name
+ " scaled \\magstep "
+ (number->string magnification) font-cmd)
+ (string-append "\\font" font-cmd "=" font-name font-cmd)))
+
(cdr font-cmd)))
"" ;no switch needed
))
(define (dashed-slur thick dash l)
(embedded-ps ((ps-scm 'dashed-slur) thick dash l)))
- (define (crescendo w h cont)
- (embedded-ps ((ps-scm 'crescendo) w h cont)))
+ (define (crescendo thick w h cont)
+ (embedded-ps ((ps-scm 'crescendo) thick w h cont)))
(define (char i)
(string-append "\\char" (inexact->string i 10) " "))
- (define (decrescendo w h cont)
- (embedded-ps ((ps-scm 'decrescendo) w h cont)))
+ (define (decrescendo thick w h cont)
+ (embedded-ps ((ps-scm 'decrescendo) thick w h cont)))
;This sets CTM so that you get to the currentpoint
; by executing a 0 0 moveto
(maxht (* 7 minht))
)
(string-append
- (select-font (string-append "feta-braces" (number->string (inexact->exact staffht))))
+ (select-font (string-append "feta-braces" (number->string (inexact->exact staffht))) 0)
(char (max 0 (/ (- (min y (- maxht step)) minht) step))))
)
)
(define (tuplet ht gapx dx dy thick dir)
(embedded-ps ((ps-scm 'tuplet) ht gapx dx dy thick dir)))
- (define (volta h w thick last)
- (embedded-ps ((ps-scm 'volta) h w thick last)))
+ (define (volta h w thick vert_start vert_end)
+ (embedded-ps ((ps-scm 'volta) h w thick vert_start vert_end)))
;; TeX
;; The procedures listed below form the public interface of TeX-scm.
(string-append
"lilyfont"
(make-string 1 (integer->char (+ 65 i)))))
-
- (define (select-font font-name)
+
+ (define (mag-to-size m)
+ (number->string (case m
+ ('0 12)
+ ('1 12)
+ ('2 14) ; really: 14.400
+ ('3 17) ; really: 17.280
+ ('4 21) ; really: 20.736
+ ('5 24) ; really: 24.888
+ ('6 30) ; really: 29.856
+ )))
+
+ (define (select-font font-name magnification)
(if (not (equal? font-name current-font))
(begin
(set! current-font font-name)
(set! font-alist (acons font-name font-cmd font-alist))
(set! font-count (+ 1 font-count))
(string-append "\n/" font-cmd " {/"
- font-name
- " findfont 12 scalefont setfont} bind def \n"
+ font-name " findfont "
+ (mag-to-size magnification)
+ " scalefont setfont} bind def \n"
font-cmd " \n"))
(string-append (cdr font-cmd) " ")))
; font-name == current-font no switch needed
(define (char i)
(invoke-char " show" i))
- (define (crescendo w h cont thick)
+ (define (crescendo thick w h cont )
(string-append
(numbers->string (list w h (inexact->exact cont) thick))
" draw_crescendo"))
(number->string (* 2 thick))
" ] 0 draw_dashed_slur"))
- (define (decrescendo thick w h cont)
+ (define (decrescendo w h cont thick)
(string-append
(numbers->string (list w h (inexact->exact cont) thick))
" draw_decrescendo"))
(maxht (* 7 minht))
)
(string-append
- (select-font (string-append "feta-braces" (number->string (inexact->exact staffht))))
+ (select-font (string-append "feta-braces" (number->string (inexact->exact staffht))) 0)
(char (max 0 (/ (- (min y (- maxht step)) minht) step))))
)
)
(string-append "(" s ") show "))
- (define (volta h w thick last)
+ (define (volta h w thick vert_start vert_end)
(string-append
- (numbers->string (list h w thick (inexact->exact last)))
+ (numbers->string (list h w thick (inexact->exact vert_start) (inexact->exact vert_end)))
" draw_volta"))
(define (tuplet ht gap dx dy thick dir)
'\\wheel -> \\coda')
-if 1:
- def conv(lines):
- newlines =[]
- for x in lines:
- x = re.sub ('\\\\wheel','\\\\coda', x)
- newlines.append (x)
- return newlines
-
- conversions.append ((1,1,55), conv,
- '\\wheel -> \\coda')
-
-
-
############################
do_deps = 1
elif o == '--default-mudela-fontsize':
if not fontsize_pt2i.has_key(a):
- sys.stderr.write("Error: illegal fontsize: %s" % a)
+ sys.stderr.write("Error: invalid fontsize: %s" % a)
sys.stderr.write(" accepted fontsizes are: 11pt, 13pt, 16pt, 20pt, 26pt")
sys.exit()
Props.setMudelaFontsize(fontsize_pt2i[a], 'init')
elif o == '--force-mudela-fontsize':
if not fontsize_pt2i.has_key(a):
- sys.stderr.write("Error: illegal fontsize: %s" % a)
+ sys.stderr.write("Error: invalid fontsize: %s" % a)
sys.stderr.write(" accepted fontsizes are: 11pt, 13pt, 16pt, 20pt, 26pt")
sys.exit()
Props.force_mudela_fontsize = fontsize_pt2i[a]
$(YODL2TEXINFO) -doutdir=$(outdir) --live-data=3 -o $@ $<
$(outdir)/%.txt: %.yo
- $(YODL2TXT) -doutdir=$(outdir) --live-data=3 -o $@ $<
-# $(YODL2MSLESS) -doutdir=$(outdir) --live-data=3 $< > $@
+# $(YODL2TXT) -doutdir=$(outdir) --live-data=3 -o $@ $<
+ $(YODL2MSLESS) -doutdir=$(outdir) --live-data=3 $< > $@
# rm -f $(basename $<).ms
\message{LaTeX definitions}
\def\texsuffix{LaTeX}
-
-\def\cmrelevenLaTeX{
- \def\settext##1{{\normalfont\tiny ##1}}
- \def\setitalic##1{\textit{\tiny ##1}}
- \def\setbold##1{\textbf{\tiny ##1}}
- \def\setlarge##1{\textbf{\footnotesize ##1}}
- \def\setLarge##1{\textbf{\small ##1}}
- \def\sethuge##1{\textbf{\normalsize ##1}}
-}
-\def\cmrthirteenLaTeX{
- \def\settext##1{{\normalfont\scriptsize ##1}}
- \def\setitalic##1{\textit{\scriptsize ##1}}
- \def\setbold##1{\textbf{\scriptsize ##1}}
- \def\setlarge##1{\textbf{\small ##1}}
- \def\setLarge##1{\textbf{\normalsize ##1}}
- \def\sethuge##1{\textbf{\large ##1}}
-}
-\def\cmrsixteenLaTeX{
- \def\settext##1{{\normalfont\footnotesize ##1}}
- \def\setitalic##1{\textit{\small ##1}}
- \def\setbold##1{\textbf{\footnotesize ##1}}
- \def\settypewriter##1{\texttt{\normalsize ##1}}
- \def\setlarge##1{\textbf{\normalsize ##1}}
- \def\setLarge##1{\textbf{\large ##1}}
- \def\sethuge##1{\textbf{\Large ##1}}
-}
-\def\cmrtwentyLaTeX{
- \def\settext##1{{\normalfont ##1}}
- \def\setitalic##1{\textit{\normalsize ##1}}
- \def\setbold##1{\textbf{\normalsize ##1}}
- \def\settypewriter##1{\texttt{\normalsize ##1}}
- \def\setlarge##1{\textbf{\large ##1}}
- \def\setLarge##1{\textbf{\Large ##1}}
- \def\sethuge##1{\textbf{\huge ##1}}
-}
-
-%%%%%%%%UGH
- \def\settext#1{{\normalfont #1}}
- \def\setitalic#1{\textit{\normalsize #1}}
- \def\setbold#1{\textbf{\normalsize #1}}
- \def\settypewriter#1{\texttt{\normalsize #1}}
- \def\setlarge#1{\textbf{\large #1}}
- \def\setLarge#1{\textbf{\Large #1}}
- \def\sethuge#1{\textbf{\huge #1}}
-
-
\def\lilyfooterLaTeX{
\let\nopagenumbers\relax
%% FIXME
\message{LilyPond Plain TeX settings}
\def\texsuffix{PlainTeX}
-\def\cmrtwentyPlainTeX{
- \font\normaltextfont=cmr10 %\textfont is a primitive
- \font\italicfont=cmti10 scaled \magstep1
- \font\boldfont=cmbx10
- \font\largefont=cmbx12
- \font\typewriterfont=cmtt10
- \font\Largefont=cmbx12 scaled \magstep 2
- \font\hugefont=cmbx12 scaled \magstep 3
-}
-\def\cmrsixteenPlainTeX{
- \font\normaltextfont=cmr8 %\textfont is a primitive
- \font\italicfont=cmti9
- \font\boldfont=cmbx8
- \font\typewriterfont=cmtt9
- \font\largefont=cmbx10
- \font\Largefont=cmbx12
- \font\hugefont=cmbx12 scaled \magstep 2
-}
-\def\cmrthirteenPlainTeX{
- \font\normaltextfont=cmr7
- \font\italicfont=cmti7
- \font\boldfont=cmbx7
- \font\largefont=cmbx9
- \font\typewriterfont=cmtt7
- \font\Largefont=cmbx10
- \font\hugefont=cmbx12
-}
-
-\def\cmrelevenPlainTeX{
- \font\normaltextfont=cmr6
- \font\italicfont=cmti6
- \font\boldfont=cmbx6
- \font\typewriterfont=cmtt6
- \font\largefont=cmbx8
- \font\Largefont=cmbx9
- \font\hugefont=cmbx10
-}
-
\def\lilyfooterPlainTeX{
\footline={\ifnum\pageno=1\smalltextfont\mudelacopyright\hfil \mudelatagline
\else\hfil\the\pageno\hfil\fi}%
}
\advance\hoffset by -.6in
-
-
-\def\settext#1{\normaltextfont #1}
-\def\setitalic#1{\italicfont #1}
-\def\setbold#1{\boldfont #1}
-\def\settypewriter#1{\typewriterfont #1}
-\def\setlarge#1{\largefont #1}
-\def\setLarge#1{\Largefont #1}
-\def\sethuge#1{\hugefont #1}
-
-\def\nolilyfooterPlainTeX{\nopagenumbers
-}
+\def\nolilyfooterPlainTeX{\nopagenumbers}
% ful of pars, needs the above
\input lilyponddefs
+
+% generates par
+\def\interscoreline{}
% generates par
\musixsixteendefs
\def\musixsixteendefs{}
-% generates par
-\turnOnPostScript%
-\def\turnOnPostScript{}
-% generates par
-\def\interscoreline{}
\def\nolilyfooter{}
+%urg: missing \begin{document}?
+\def\noindent{}
\parskip\saveparskip
{\center{\large\theinstrument}\par}
{\flushleft{\large\normalfont\scshape\thepiece}}
- \leavevmode
+% \leavevmode
}
\def\makelilypiecetitle
{