-TITLE INFORMATION: AUTHORS - who did what on GNU LilyPond?
-
-Contents
-
-This file lists authors of GNU LilyPond, and what they wrote. This
-list is alphabetically ordered.
-
-o Tom Cato Amundsen <tomcato@xoommail.com>,
- cembalo-partita in mudela.
-o Mats Bengtsson <matsb@s3.kth.se>,
- http://www.s3.kth.se/~matsb
- clef stuff, key stuff, swedish notenames, testing, general
- comments.
-o Eric Bullinger <eric@aut.ee.ethz.ch>,
- accidental transposition.
-o Jan Arne Fagertun <Jan.A.Fagertun@energy.sintef.no>,
- TeX titling and lytodvi.sh
-o Anthony Fok <foka@debian.org>,
- debian package: debian/*
-o Neil Jerram <nj104@cus.cam.ac.uk>.
- parts of Documentation/Vocab*
-o Donald Ervin Knuth, http://www.cs-staff.stanford.edu/~knuth
- mf/ital-*.mf (these were taken from the CM fonts)
-o Werner Lemberg <xlwy01@uxp1.hrz.uni-dortmund.de>,
- misc bugfixes, some Beam and Stem code.
-o David R. Linn <drl@vuse.vanderbilt.edu>,
- Mailing list maintenance.
-o Han-Wen Nienhuys <hanwen@cs.uu.nl>,
- http://www.cs.uu.nl/~hanwen
-
- Main author (initials: HWN).
-o Jan Nieuwenhuizen <janneke@gnu.org>,
- http://www.xs4all.nl/~jantien
-
- Main author (initials: JCN).
-o Alexandre Oliva <oliva@dcc.unicamp.br>,
- http://sunsite.unicamp.br/~oliva
- testing
-o Franc,ois Pinard <pinard@iro.umontreal.ca>,
- parts of Documentation/Vocab*, started internationalization stuff
-o Jeffrey B. Reed <daboys@bga.com>,
- Windows-NT support.
-o Shay Rojanski
- Some mudela source.
-
-Your name could be here! If you want to help, then take a look at the
-SMALLISH PROJECTS section of in the file TODO. Some do not involve
-coding C++
-
-[And of course we sincerely thank J.S.Bach, F.Schubert, T. Merula and
-W.A.Mozart for their beautiful music]
+
+
+
+
+
+
+
+
+ AUTHORS - who did what on GNU LilyPond?
+
+
+Contents
+
+
+This file lists authors of GNU LilyPond, and what they
+wrote. This list is alphabetically ordered.
+
+
+o Tom Cato Amundsen <tomcato@xoommail.com>, cembalo-par-
+ tita in mudela.
+
+o Mats Bengtsson <matsb@s3.kth.se>,
+ http://www.s3.kth.se/~matsb clef stuff, key stuff,
+ swedish notenames, testing, general comments.
+
+o Eric Bullinger <eric@aut.ee.ethz.ch>, accidental trans-
+ position.
+
+o Jan Arne Fagertun <Jan.A.Fagertun@energy.sintef.no>,
+ TeX titling and lytodvi.sh
+
+o Anthony Fok <foka@debian.org>, debian package: debian/*
+
+o Neil Jerram <nj104@cus.cam.ac.uk>. parts of Documenta-
+ tion/Vocab*
+
+o Donald Ervin Knuth, http://www.cs-staff.stan-
+ ford.edu/~knuth mf/ital-*.mf (these were taken from the
+ CM fonts)
+
+o Werner Lemberg <xlwy01@uxp1.hrz.uni-dortmund.de>, misc
+ bugfixes, some Beam and Stem code.
+
+o David R. Linn <drl@vuse.vanderbilt.edu>, Mailing list
+ maintenance.
+
+o Adrian Moriano <> Documentation fixes, glossary.
+
+o Han-Wen Nienhuys <hanwen@cs.uu.nl>,
+ http://www.cs.uu.nl/~hanwen
+ Main author (initials: HWN).
+
+o Jan Nieuwenhuizen <janneke@gnu.org>,
+ http://www.xs4all.nl/~jantien
+ Main author (initials: JCN).
+
+o Alexandre Oliva <oliva@dcc.unicamp.br>, http://sun-
+ site.unicamp.br/~oliva testing
+
+o Franc,ois Pinard <pinard@iro.umontreal.ca>, parts of
+ Documentation/Vocab*, started internationalization
+ stuff
+
+o Jeffrey B. Reed <daboys@bga.com>, Windows-NT support.
+
+o Shay Rojanski Some mudela source.
+
+
+Your name could be here! If you want to help, then take a
+look at the SMALLISH PROJECTS section of in the file TODO.
+Some do not involve coding C++
+
+[And of course we sincerely thank J.S.Bach, F.Schubert, T.
+Merula and W.A.Mozart for their beautiful music]
(yet). Look at file(standchen.ly) for an example.
+question(Do you support Gregorian chant notation?)
+
+No. There is no reason why LilyPond can't be extended to do so, but
+we haven't done it yet (and there are currently no plans to do it).
+
+
sect(How do I ....)
question(How do I change the TeX layout?)
datafiles = $(addprefix $(outdir)/,$(DATA_FILES:.data=.html))
DOC_FILES = $(wildcard *.doc)
DVI_FILES = $(addprefix $(outdir)/,$(DOC_FILES:.doc=.dvi) $(YO_FILES:.yo=.dvi))
+OUT_BIB_FILES = $(addprefix $(outdir)/, $(BIB_FILES))
+
OUTDOC_FILES = $(addprefix $(outdir)/, $(DOC_FILES))
EL_FILES = $(wildcard *.el)
BIB_FILES= $(wildcard *.bib)
STEPMAKE_TEMPLATES=documentation
LOCALSTEPMAKE_TEMPLATES=lilypond mudela
+export BIBINPUTS="$(topdir)/Documentation/tex//"#huh?
include $(depth)/make/stepmake.make
-dvi: $(DVI_FILES)
+dvi: $(OUT_BIB_FILES) $(DVI_FILES)
+
ps: $(PS_FILES)
htmlbodyopt(bgcolor)(white)
htmlcommand(<font color=black>)
-latexpackage()(a4wide) COMMENT(UGH)
latexlayoutcmds(
-%\usepackage[latin1]{inputenc}
-\input mudela-book
+\setlength{\topmargin}{-0.25in}
+\setlength{\textheight}{9in}
+\setlength{\textwidth}{5.875in}
+\setlength{\oddsidemargin}{0.25in}
+\setlength{\evensidemargin}{0.25in}
)
+latexpackage()(a4wide) COMMENT(UGH)
+
whenlatex(notableofcontents())
whentexinfo(notableofcontents())
includeverbatim(DOEXPAND(outdir)/glossary-table.html)
)
-whenlatex(latexcommand(
- \bibliographystyle{plain}
- \bibliography{engraving}
-))
-
-
-COMMENT(The bib stuff is somewhere else on the WWW site)
-COMMENT(
-setchapterstring{}
-
-whenhtml{
- nchapter{Bibliography}
- includeverbatim{out-www/engraving.html}
-})
-
redef(var)(1)(whenlatex(latexcommand({\normalfont\scshape )ARG1+latexcommand(}))\
whenhtml(sc(ARG1)))
-
-
+def(mycode)(1)(tt(ARG1))
COMMENT( This document contains Mudela fragments. You need at least
Yodl-1.30.18 to convert this to tex or html.
To assign an identifier you use:
verb(string = ...)
To use an identifier, you must preceed it with a backslash: code(\).
-verb(oboe = \melodic { ... }
-\score{ \melodic { \oboe }})
+verb(oboe = \notes { ... }
+\score{ \notes { \oboe }})
The left-hand part of the assignment is really a string, so
-verb("Foo bar 4 2 " = \melodic { ... })
+verb("Foo bar 4 2 " = \notes { ... })
is also a valid assignment (but you would have trouble referencing it)
If you reuse identifiers, then the previous contents will be thrown
away after the right hand is evaluated, e.g.
-verb(bla = \melodic { \bla })
+verb(bla = \notes { \bla })
is legal.
COMMENT(It's not clear to me what things are allowed on the RHS of
clef key notenames script type
cm keysignature octave shape transpose
consists mark output skip version
-contains melodic partial staff
+contains notes partial staff
duration musicalpitch paper spandynamic)
COMMENT( I don't know the proper way to make this kind of table in
the information on how to use an identifier, so it should be deleted.
But I'm uncertain about the meaning of \TYPE in the above section.
-Different from \type? Does it refer to \melodic, \lyric? In general,
+Different from \type? Does it refer to \notes, \lyric? In general,
the use of the word "type" seems to be a source of confusion.
)
is treated as a string.
dit(Note mode) Note mode is introduced by the keyword
-code(\melodic). In Note mode, words can only contain alphabetic
+code(\notes). In Note mode, words can only contain alphabetic
characters. If code(word) is encountered, Lilypond first checks for a
notename of code(word). If no notename is found, then code(word) is
treated as a string. If you mistype a notename, the parser will most
duration entry are bound together using an underscore:
code(He_could4 not4). Here is a full example:
mudela(verbatim)(\score{
- < \melodic \transpose c'' {c d e c | c d e c | e f g'2 |
+ < \notes \transpose c'' {c d e c | c d e c | e f g'2 |
e'4 f g'2 \bar "|."; }
\type Lyrics \lyric {
DOEXPAND(Fr\)`e-4 re Ja- que DOEXPAND(Fr\)`e- re Ja- que
mudela(verbatim)(
\score{
- \melodic {
+ \notes {
c' d' e' c' |
c' d' e' c' |
e' f' g'2 |
section ref(sec:running-lilypond) we told you that the music you
enter should be encapsulated in something like:
verb(\score<
- \melodic\relative c{
+ \notes\relative c{
d
}
\paper{ }
LilyPond will embed your file(foo.fly) nop(in)footnote(Or something very
similar. If you want to know exactly, see file(init/init.fly)):
verb(\score<
- \melodic\relative c{
+ \notes\relative c{
<<foo.ly>>
}
\paper{ }
description(
-dit(code(\absdynamic))
+dit(mycode(\absdynamic))
-dit(code(\accepts))
+dit(mycode(\accepts))
-dit(code(\bar) var(bartype)) Prints a special bar symbol, or at
+dit(mycode(\bar) var(bartype)) Prints a special bar symbol, or at
measure boundaries, replaces the regular bar symbol with a special
symbol. The argument var(bartype) is a string which specifies the
kind of bar to print. Options are code(":|"), code("|:"),
thick double bar. If var(bartype) is set to "empty" then nothing is
printed, but a line break is allowed at that spot.
-dit(code(\cadenza) var(togglevalue)) Toggles the automatic generation
+dit(mycode(\cadenza) var(togglevalue)) Toggles the automatic generation
of bar lines. If var(togglevalue) is 0 then bar line generation is
turne off. If var(togglevalue) is 1 then a bar is immediately
printed and bar generation is turned on.
-dit(code(\clear))
+dit(mycode(\clear))
-dit(code(\clef) var(clefname)) Sets the current clef. The argument
+dit(mycode(\clef) var(clefname)) Sets the current clef. The argument
is the name of the clef. Possibilities are code(bass), code(alto),
and code(treble). Treble clef is the default.
-dit(code(\cm)) Specify a width in centimeters.
+dit(mycode(\cm)) Specify a width in centimeters.
-dit(code(\consists))
+dit(mycode(\consists))
-dit(code(\contains))
+dit(mycode(\contains))
-dit(code(\duration) { var(length) var(dotcount) }) Specify note
+dit(mycode(\duration) { var(length) var(dotcount) }) Specify note
duration. The parameter var(length) is the negative logarithm (base
2) of duration: 1 is a half note, 2 is a quarter note, 3 is an eighth
note, etc. The number of dots after the note is given by
var(dotcount).
-dit(code(\font))
+dit(mycode(\font))
-dit(code(\grouping) var(durationlist)) Sets the metric structure of
+dit(mycode(\grouping) var(durationlist)) Sets the metric structure of
the measure.
COMMENT(elaboration is needed here.)
-dit(code(\in)) Specify a width in inches.
+dit(mycode(\in)) Specify a width in inches.
-dit(code(\include) var(file)) Include the specified file.
+dit(mycode(\include) var(file)) Include the specified file.
-dit(code(\lyric) { var(list) } ) Parse var(list) in lyrics mode.
+dit(mycode(\lyric) { var(list) } ) Parse var(list) in lyrics mode.
-dit(code(\key) var(pitch)) Change key signature to that of var(pitch)-major.
+dit(mycode(\key) var(pitch)) Change key signature to that of var(pitch)-major.
-dit(code(\keysignature) var(notelist))
+dit(mycode(\keysignature) var(notelist))
Specify an arbitrary key signature. The notes from var(notelist) will
be printed in the key signature in the order that they appear on the list.
-dit(code(\mark))
+dit(mycode(\mark))
-dit(code(\melodic) var(music)) Enter note mode and process the
+dit(mycode(\notes) var(music)) Enter note mode and process the
specified music.
-dit(code(\musicalpitch) { var(octave) var(note) var(shift) }) Specify
+dit(mycode(\musicalpitch) { var(octave) var(note) var(shift) }) Specify
note pitch. The octave is specified by an integer, zero for the
octave containing middle C. The note is a number from 0 to 7, with 0
corresponding to C and 7 corresponding to B. The shift is zero for a
natural, negative to add flats, or positive to add sharps.
-dit(code(\time) var(numerator)code(/)var(denominator)) Change the time
+dit(mycode(\time) var(numerator)mycode(/)var(denominator)) Change the time
signature. The default time signature is 4/4.
-dit(code(\midi)) Produce musical output. See code(\tempo) for setting
+dit(mycode(\midi)) Produce musical output. See code(\tempo) for setting
the tempo.
-dit(code(\mm)) Specify a width in millimeters.
+dit(mycode(\mm)) Specify a width in millimeters.
-dit(code(\multi))
+dit(mycode(\multi))
-dit(code(\header) { var(key1) = var(val1); var(key2) = var(val2); ... })
+dit(mycode(\header) { var(key1) = var(val1); var(key2) = var(val2); ... })
Specifies information about the music. A header should appear at the
top of the file describing the file's contents. If a file has
multiple code(\score) blocks, then a header should appear in
use this information for generating titles. Some possible key values
are: title, opus, description, composer, enteredby, and copyright.
-dit(code(\notenames) { var(list) }) Define new note names.
+dit(mycode(\notenames) { var(list) }) Define new note names.
The argument var(list) is a list of definitions of the form
var(name) = var(pitch), where var(pitch) is specified with the
code(\musicalpitch) command.
-dit(code(\octave))
-dit(code(\nop(output)))
+dit(mycode(\octave))
+dit(mycode(\nop(output)))
-dit(code(\partial) var(duration)) Specify that the first measure of
+dit(mycode(\partial) var(duration)) Specify that the first measure of
the music lasts only for the specified duration.
-dit(code(\paper) code({) [ code(linewidth = )var(width)code(;) ] code(}))
+dit(mycode(\paper) mycode({) [ mycode(linewidth = )var(width)mycode(;) ] mycode(}))
Appears in a score block to indicate that the music should be printed.
The line width can be set to -1. in order to prevent justification of
small fragments of music, or the width can be specified explicitly
using code(\cm), code(\in), code(\mm), or code(\pt) to specify the
units.
-dit(code(\penalty))
+dit(mycode(\penalty))
-dit(code(\property))
+dit(mycode(\property))
-dit(code(\pt)) Specify a width in points.
+dit(mycode(\pt)) Specify a width in points.
-dit(code(\relative) var(pitch) var(music)) Processes the specified
+dit(mycode(\relative) var(pitch) var(music)) Processes the specified
var(music) in relative pitch
mode. In this mode, the octave of a pitch note is chosen so that the
note is closest to the preceeding note.
first note of a chord is used as the base for the pitches in the next
chord.
-dit(code(\score)) Start a music definition.
+dit(mycode(\score)) Start a music definition.
-dit(code(\script))
+dit(mycode(\script))
-dit(code(\shape))
+dit(mycode(\shape))
-dit(code(\skip))
+dit(mycode(\skip))
-dit(code(\staff))
+dit(mycode(\staff))
-dit(code(\spandynamic))
-dit(code(\symboltables))
-dit(code(\table))
+dit(mycode(\spandynamic))
+dit(mycode(\symboltables))
+dit(mycode(\table))
-dit(code(\tempo) var(duration) = var(perminute)) Used when creating
+dit(mycode(\tempo) var(duration) = var(perminute)) Used when creating
MIDI output to specify the tempo. For example,
`code(\midi { \temp0 4 = 76})' requests output with 76 quarter notes
per minute.
-dit(code(\translator))
-dit(code(\type))
+dit(mycode(\translator))
+dit(mycode(\type))
-dit(code(\transpose) var(pitch) var(music)) Transposes the specified
+dit(mycode(\transpose) var(pitch) var(music)) Transposes the specified
music. Middle C is tranposed to var(pitch).
-dit(code(\version) var(string)) Specify the version of Lilypond that
+dit(mycode(\version) var(string)) Specify the version of Lilypond that
a file was written for. The argument is the version number,
for example code("1.0.4").
redef(var)(1)(whenlatex(latexcommand({\normalfont\scshape )ARG1+latexcommand(}))\
whenhtml(sc(ARG1)))
+def(mycode)(1)(tt(ARG1))
COMMENT( This document contains Mudela fragments. You need at least
Yodl-1.30.18 to convert this to tex or html.
latexcommand(\def\interexample{})
latexcommand(\def\preexample{\par})
latexcommand(\def\postexample{\par\medskip})
-latexcommand(\def\file#1{{code(#1)}})
+latexcommand(\def\file#1{{mycode(#1)}})
whenhtml(
nsubsect(Disclaimer)
This data is what we consider the musical em(definition). Mudela
has a special entry mode where you can conveniently abbreviate this to
-`code(d''4.)'. There are some features that also make the quotes and
-numbers in `code(d''4.)' superfluous in some cases.
+`mycode(d''4.)'. There are some features that also make the quotes and
+numbers in `mycode(d''4.)' superfluous in some cases.
-For those who are curious, the numbers in `code(\musicalpitch { 1 2 0
-})' example mean octave, notename, and accidental respectively. The
-numbers in `code(\duration { 2 1 })' are the (negative) logarithm of the
+For those who are curious, the numbers in
+`mycode(\musicalpitch { 1 2 0 })'
+example mean octave, notename, and accidental respectively. The
+numbers in `mycode(\duration { 2 1 })' are the (negative) logarithm of the
duration (2 is a quarter note, 3 is an eighth note, etc.) and the number
of augmention dots respectively.
The basic building block of music is the note. You can have LilyPond
print a note by specifying its pitch and duration. The pitch of the
-central C is written as code(c'). This is in line with musicological
+central C is written as mycode(c'). This is in line with musicological
notation; there this pitch is transcribed as nop(c)sups(1) or c'. A
-quarter-note duration is written as code(4). So, to print a quarter
+quarter-note duration is written as mycode(4). So, to print a quarter
note whose pitch is central C, you enter the following:
mudela(fragment,verbatim,center)( c'4 )
subsect(Basic pitches)
-The pitch code(c') actually consists of two parts: one part for the
+The pitch mycode(c') actually consists of two parts: one part for the
note name, and one for the octave. The letter specifies which note
-name to use: note names simply are the letters code(a) to code(g).
+name to use: note names simply are the letters mycode(a) to mycode(g).
The number of apostrophes specifies the octave to use: the central C
-is denoted by code(c').footnote(By convention, the A above central C
+is denoted by mycode(c').footnote(By convention, the A above central C
at concert pitch is the tone that is used to tune instruments. Its
frequency is about 440 Hz.) The C which is an eighth higher (the C in
-the ``two-line octave'') is denoted by code(c''): every octave adds a
-quote. A note name without quotes designates the pitch below code(c')
+the ``two-line octave'') is denoted by mycode(c''): every octave adds a
+quote. A note name without quotes designates the pitch below mycode(c')
(the C in the ``small octave''). If you want to go down even further,
commas should be added, e.g., the C in the ``contra octave'' is
-expressed as code(c,,).footnote(The comma is meant to represent a
+expressed as mycode(c,,).footnote(The comma is meant to represent a
sunken apostrophe.)
c'4 d'4 e'4 f'4 g'4 a'4 b'4 c''4
)
-A rest can be entered as a note with the special name code(r), e.g.,
+A rest can be entered as a note with the special name mycode(r), e.g.,
mudela(fragment,verbatim,center)(r4)
This already gives us enough material to make simple songs. In
Variations on this convention are used in a number of germanic
languages, notably Dutch, German, Swedish, and Norwegian. To be
precise, LilyPond actually defaults to Dutch notenames, with
-code(aes), code(aeses), code(ees) and code(eeses) added for
+mycode(aes), mycode(aeses), mycode(ees) and mycode(eeses) added for
consistency.
Throughout this document we will continue to use the Dutch names. To make
(Dutch) pronunciation easier, the a-flat and e-flat are contracted to
-code(as) and code(es). Similarly, the a double flat and e double flat are
-contracted to code(ases) and code(eses).
+mycode(as) and mycode(es). Similarly, the a double flat and e double flat are
+contracted to mycode(ases) and mycode(eses).
If you are not comfortable with these names, you can make your own.
Note names for different languages are included with the example
initialisation files, amongst others English (C sharp is abbreviated
-to code(cs)), Italian, Swedish and Norwegian. If you want to use
+to mycode(cs)), Italian, Swedish and Norwegian. If you want to use
these names, you should look at bind(Section)ref(subsect:include) for
information on how to use include files.
We didn't want to bore you too much with repetitive details, so we
left out some red tape that's needed for a of Mudela in a form that is accepted
by LilyPond. To
-be precise, we wrote code(X Y Z), when we really meant
+be precise, we wrote mycode(X Y Z), when we really meant
verb(\score {
- \melodic { X Y Z }
+ \notes { X Y Z }
\paper {}
})
We will continue to leave out the red tape this, until the time is right to explain what
Because LilyPond uses a language, it is a so called em(batch)
program.
This means, that you use a
-text editor (such as code(emacs) or code(vi)) to create an input
+text editor (such as mycode(emacs) or mycode(vi)) to create an input
file. When you are done editing your input file, you save it, and you
run LilyPond on the file. If LilyPond finds any errors in your input file
then nop(she)footnote(We're sure that if computer programs could have
enumerate(
it()
Fire up your favourite editor (if you don't
-know any editors, try code(joe silly.ly)),
+know any editors, try mycode(joe silly.ly)),
and key in the example from bind(Figure)ref(fig:twinkle1), with red tape:
verb(
\score {
- \melodic {
+ \notes {
c''4 c''4 g''4 g''4
a''4 a''4 g''2
}
files is file(.ly).)
it()
-Run LilyPond on your newly created file: enter code(lilypond twinkle).
+Run LilyPond on your newly created file: enter mycode(lilypond twinkle).
LilyPond will then print all kinds of mumbo jumbo that can safely be
ignored. You might see something like this:
verb(
it()
To do something useful with the output you have to run TeX() on it
- first. Run the command code(tex twinkle). The output should resemble this:
+ first. Run the command mycode(tex twinkle). The output should resemble this:
verb(
This is TeX, Version 3.14159 (C version 6.1)
(twinkle.tex
What is in your window should approximately look like this:
mudela()(
\score {
- \melodic {
+ \notes {
c''4 c''4 g''4 g''4
a''4 a''4 g''2
}
it()
If you want to print file(twinkle.dvi), you should invoke the command
-code(dvips twinkle). Running this command should generate a
+mycode(dvips twinkle). Running this command should generate a
PostScript file called file(twinkle.ps). This file can be printed on
any PostScript compatible printer. You should not use any other
tools: the output from LilyPond contains fragments of PostScript which
In Mudela you can form a chord of several notes by enclosing them in
pointed parentheses, bind(i.e.)bind(langle())bind(and)rangle(). ASCII
doesn't really have these delimiters, so Mudela uses the larger-than
-(code(>)) and smaller-than (code(<)) signs instead. For example, a
+(mycode(>)) and smaller-than (mycode(<)) signs instead. For example, a
D-major nop(chord)footnote(Recall what was said in the previous
-section about flats and sharps: the word code(fis) means an f sharp.)
+section about flats and sharps: the word mycode(fis) means an f sharp.)
can be described by the following fragment:
mudela(fragment,verbatim,center)(
<d'8 fis'8 a'8 d''8>
c''4 % shouldn't this be a different pitch?
)
-Block comments are enclosed in code(%{) and code(%}).
+Block comments are enclosed in mycode(%{) and mycode(%}).
verb(
c''4
following example:
mudela()(
-\score{ \melodic {
+\score{ \notes {
\property Voice.textstyle = typewriter
c''4-._"c''4-." s4
c''4--_"c''4--" s4
Mudela. We hope that this will be fixed in a future version of the
language. In the meantime you can abuse this: the super- and
subscripts can be forced into up or down position respectively by entering an
-a caret (code(^)) or an underscore, code(_) instead of the dash:
+a caret (mycode(^)) or an underscore, mycode(_) instead of the dash:
mudela(fragment,verbatim,center)(
c'4-^ c'4^^ c'''4-^ c'''4_^
)
of the notes. It is merely a device that helps you understand the
rhythms notated. Unfortunately, LilyPond is not smart enough to insert
beams into your music on her own. You will have to instruct her by
-marking the starting and stopping point of the beam with `code([)' and
-`code(])' respectively, e.g.
+marking the starting and stopping point of the beam with `mycode([)' and
+`mycode(])' respectively, e.g.
mudela(fragment,verbatim,center)(
[g'8 g'8]
LilyPond has code that guesses what the pattern should look like, so
that you don't have to specify the beaming for complicated
patterns.footnote(Unfortunately the algorithm used is not foolproof yet:
- code([c8. c32 c32]) will produce incorrect results.)
+ mycode([c8. c32 c32]) will produce incorrect results.)
Again, it is your responsibility to make sure that you end every beam
that you start.
conjunction with chords. Internally, the extra information that is
represented by the tilde has to be attached to a note (or to a rest,
for that matter). For this reason, you can't put the tilde between
-two chords (as in code( <c' g'> ~ <c' g'>)). The tilde sign must be
+two chords (as in mycode( <c' g'> ~ <c' g'>)). The tilde sign must be
directly after a note of the chords. It does not matter which
one. The following example demonstrates this:
mudela(fragment,verbatim,center)(
em(keyword)s are words that have a special meaning to the parser of
Mudela. Because the parser must be able to distinguish the keywords
from note names, they have to be preceded by a so-called escape
-character, the backslash, `code(\)'. To separate the arguments from
+character, the backslash, `mycode(\)'. To separate the arguments from
any notes that might follow the arguments, you have to end your
command with a semicolon. An added benefit of this construction is
that the commands stand out between your notes, because of the
backslashes.
-So the general form actually is `code(\keyword argument argument ... ;)'
+So the general form actually is `mycode(\keyword argument argument ... ;)'
Let us review these commands:
description(
-dit(code(\clef) var(clefname)) This command sets the current clef for notation,
+dit(mymycode(\clef) var(clefname)) This command sets the current clef for notation,
i.e., a clef symbol is printed and the notes following this command
are shifted vertically. The argument is a string, the name of the
new clef. The default clef is the treble clef.
\clef "treble"; c'4
\clef "alto"; c'4
)
-dit(code(\key) var(pitch)) This command changes the current key signature. The
+dit(mymycode(\key) var(pitch)) This command changes the current key signature. The
key signature is printed at the start of every line. The argument
is the name of the corresponding major key. The key of C-minor can
- thus be specified as `code(\key es)'.
+ thus be specified as `mycode(\key es)'.
-dit(code(\keysignature) var(pitchlist))
+dit(mymycode(\keysignature) var(pitchlist))
This command changes the current key signature. Unlike the
-`code(\key)' command, this command can produce arbitrary key
+`mycode(\key)' command, this command can produce arbitrary key
signatures, which can be useful for unconventional keys or modes. The
key signature is given in the form of a list of notes. The notes will
be printed in the key signature in the order that they appear on the list.
For example, the key
-of C-minor can be specified as `code(\keysignature bes es as)'. The
-command `code(\keysignature fis es bis)' provides a more exotic
+of C-minor can be specified as `mycode(\keysignature bes es as)'. The
+command `mycode(\keysignature fis es bis)' provides a more exotic
example.
-dit(code(\time) var(numerator)code(/)var(denominator))
+dit(mymycode(\time) var(numerator)mycode(/)var(denominator))
This command changes the current time signature. LilyPond uses the
time signature to
calculate where to place the bars that start a measure. These bars
)
-dit(code(\cadenza) var(togglevalue)) When typesetting music without a
+dit(mymycode(\cadenza) var(togglevalue)) When typesetting music without a
regular meter (such as an ad libitum cadenza), no bar lines should be
printed. In LilyPond you can achieve this by issuing the command
-`code(\cadenza 1)': it turns off the automatically
+`mycode(\cadenza 1)': it turns off the automatically
generated bar lines.
-You switch them on again with `code(\cadenza 0)', and then a bar line
+You switch them on again with `mycode(\cadenza 0)', and then a bar line
is printed. LilyPond will act as if you are again at the start of a
measure.
-dit(code(\bar) var(bartype))
+dit(mymycode(\bar) var(bartype))
This command lets you print special bar
lines and repeat symbols. You can also use it to allow line breaks
when entering cadenzas. The argument var(bartype) is a string that
\bar "|:"; c'4 \bar ":|:"; c'4 \bar ":|"; c'4 \bar "||";
c'4 \bar "empty"; c'4 \bar "|.";
)
- The command `code(\bar "empty")' does not create any visible bar
+ The command `mycode(\bar "empty")' does not create any visible bar
line, but it does tells LilyPond to allow a linebreak
- at that position. The `code(\bar)' command prints the specified
- symbol immediately. If you give a `code(\bar)' command at the end
+ at that position. The `mycode(\bar)' command prints the specified
+ symbol immediately. If you give a `mycode(\bar)' command at the end
of a measure then
the specified symbol replaces the automatic bar line; otherwise
the specified symbol appears in the middle of the measure. The
- code(\bar) command does not affect metric structure.
+ mycode(\bar) command does not affect metric structure.
-dit(code(\partial) var(duration)) some music starts with a measure that
-isn't fully filled, a so-called upstep. The code(\partial) command
+dit(mymycode(\partial) var(duration)) some music starts with a measure that
+isn't fully filled, a so-called upstep. The mycode(\partial) command
allows you to make
upsteps. The argument is a duration similar to the duration of a note.
-The `code(\partial)' command cannot be used to generate partial
+The `mycode(\partial)' command cannot be used to generate partial
measures in the middle of the music.
Example:
mudela(fragment,verbatim)(
[d'8 dis'] e' c''4 e'8 c''4
)
- dit(code(\grouping) var(durationslist)) sets the metric structure of the measure.
+ dit(mymycode(\grouping) var(durationslist)) sets the metric structure of the measure.
Its effect can best be shown by an example:
mudela(fragment,verbatim)(
\time 5/16;
)
In practice, you won't be needing this command very often: the
-grouping is switched automatically when you issue a code(\time)
+grouping is switched automatically when you issue a mycode(\time)
command. It is set to a combination of groups
of 2 and 3 beats, with as many groups of
3 as possible (in other words: 4/4 is divided in two times two beats
together.
If a piece of music is to be interpreted as a staff, then this can be
-expressed with the code(\type) construct. The following input says
+expressed with the mycode(\type) construct. The following input says
``the quarter note with pitch e should be put on a staff.''
verb(
This looks reasonable, but the effect of this input is not what you
might expect (try it!). When interpreting this chord LilyPond will
start with the first entry. She'll look for a (nameless) staff. Such a
-staff is not found, so it is created. On this staff the code(e) note
-is put. When the second code(\type) entry is read, LilyPond will
+staff is not found, so it is created. On this staff the mycode(e) note
+is put. When the second mycode(\type) entry is read, LilyPond will
start looking for a nameless staff. The staff that contains the
-code(e) is found, and the code(g) is put there as well.
+mycode(e) is found, and the mycode(g) is put there as well.
-The correct solution is to label both code(\type) constructs with
-different names, for example code(trebleStaff) and code(bassStaff).
+The correct solution is to label both mycode(\type) constructs with
+different names, for example mycode(trebleStaff) and mycode(bassStaff).
This makes LilyPond distinguish between them, and create two staffs:
mudela(verbatim,fragment)(
the clef of the second staff. The bass clef will be taken care of in
the next section. If you want a brace, then you have to tell LilyPond
that the chord you just formed is to be interpreted as a so-called
-grand staff. This is also done with the code(\type) command.
+grand staff. This is also done with the mycode(\type) command.
mudela(verbatim,fragment)(
\type GrandStaff <
\type Staff = treblestaff e'4
If we want to put whole voices onto a staff, then we have to
substitute sequential music for the single notes in the example from
-the previous section. A code(\clef) command in the second piece of
+the previous section. A mycode(\clef) command in the second piece of
sequential
music will also set the clef in
the bass staff.
these components. If these components aren't printed, it is still
possible to print music:
mudela()(\score{
-\melodic \relative c' { \time 2/4; g'4 c,4 a'4 f4 e c d2 }
+\notes \relative c' { \time 2/4; g'4 c,4 a'4 f4 e c d2 }
\paper {
linewidth = -1.;
Staff = \translator {
mudela()(
\score {
- \melodic \relative c' { \time 2/4; g'4 c,4 a'4 f4 e c d2 }
+ \notes \relative c' { \time 2/4; g'4 c,4 a'4 f4 e c d2 }
\paper{
linewidth = -1.;
Staff = \translator {
the location within the measure of the notes:
mudela()(
\score {
- \melodic \relative c' { \time 2/4; g'4 c,4 a'4 f4 e c d2 }
+ \notes \relative c' { \time 2/4; g'4 c,4 a'4 f4 e c d2 }
\paper{
linewidth = -1.;
Staff = \translator {
symbol:
mudela()(\score{
- \melodic\relative c' { \time 2/4; g'4 c,4
+ \notes\relative c' { \time 2/4; g'4 c,4
a'4 f4 e c d2 } \paper {
linewidth = -1.;
Staff = \translator {
know what the pitches of the notes above are. So this is still not
enough. But suppose you see the following notation:
mudela()(\score {
- \melodic \relative c' {\clef alto; \time 2/4; g'4 c,4 a'4 f4 e c d2 }
+ \notes \relative c' {\clef alto; \time 2/4; g'4 c,4 a'4 f4 e c d2 }
\paper {
linewidth = -1.;
Staff = \translator {
The example focused mainly on on staffs, but a staff is not the only
type of notation context. Notation contexts may be nested: you can
print polyphonic music by putting multiple `Voice' contexts in one
-`Staff' context. The arguments of the code(\type) command (Staff,
+`Staff' context. The arguments of the mycode(\type) command (Staff,
GrandStaff) were in fact all names of different contexts.
The notions of ``current clef'' and ``current position within the
measure'' are all properties of notation contexts. Commands like
-code(\clef) and code(\cadenza) change these properties.
+mycode(\clef) and mycode(\cadenza) change these properties.
The following is a list of the contexts that are supported by
LilyPond:
description(
-dit(Voice) The code(Voice) context is a context that corresponds to a
+dit(Voice) The mycode(Voice) context is a context that corresponds to a
voice on a staff. This context handles the conversion of noteheads,
dynamic signs, stems, beams, super- and subscripts, slurs, ties and rests
-dit(Staff) The code(Staff) context handles clefs, bar lines, keys,
- accidentals. A code(Staff) context can contain multiple code(Voice)
+dit(Staff) The mycode(Staff) context handles clefs, bar lines, keys,
+ accidentals. A mycode(Staff) context can contain multiple mycode(Voice)
contexts.
-dit(RhythmicStaff) The code(RhythmicStaff) context is like the staff,
+dit(RhythmicStaff) The mycode(RhythmicStaff) context is like the staff,
but much simpler: the notes are printed on one line, and pitches are
- ignored. code(RhythmicStaff) can contain code(Voice) contexts.
+ ignored. mycode(RhythmicStaff) can contain mycode(Voice) contexts.
-dit(GrandStaff) A code(GrandStaff) context contains code(Staff)
+dit(GrandStaff) A mycode(GrandStaff) context contains mycode(Staff)
contexts, and it adds a brace to the output at the
nop(left.)footnote(This is a major deficiency in the current
implementation. Currently stems,
slurs and beams cannot be printed across two staffs.
In reality, a grand staff is a hybrid of one big staff and two stacked staffs.)
- A code(GrandStaff) context can contain multiple
- code(Staff)s. Typically, it will contain two code(Staff)s, one
+ A mycode(GrandStaff) context can contain multiple
+ mycode(Staff)s. Typically, it will contain two mycode(Staff)s, one
treble staff, and one bass staff. The bar lines of the contained
staffs are connected vertically.
-dit(StaffGroup) A code(StaffGroup) context contains code(Staff) or
- code(Lyrics) contexts, and prints a bracket at the left. The bar
+dit(StaffGroup) A mycode(StaffGroup) context contains mycode(Staff) or
+ mycode(Lyrics) contexts, and prints a bracket at the left. The bar
lines in the participating staffs are connected.
-dit(Lyrics) As its name suggests, The code(Lyrics) context deals with
+dit(Lyrics) As its name suggests, The mycode(Lyrics) context deals with
typesetting lyrics. This topic will be covered in
bind(Section)ref(tutorial:lyrics).
-dit(Score) The code(Score) context is the toplevel context: no context can
- contain a code(Score) context. The code(Score) context handles the
+dit(Score) The mycode(Score) context is the toplevel context: no context can
+ contain a mycode(Score) context. The mycode(Score) context handles the
administration of time signatures. It also makes sure that items
such as clefs, time signatures, and key-signatures are aligned across staffs.
- The code(Score) can contain code(Staff), code(StaffGroup), code(Lyrics), code(GrandStaff) and
- code(RhythmicStaff) contexts.
+ The mycode(Score) can contain mycode(Staff), mycode(StaffGroup), mycode(Lyrics), mycode(GrandStaff) and
+ mycode(RhythmicStaff) contexts.
COMMENT(do ChoireStaff)
)
properties that influence the conversion from music to notation. A
simple example of such a property is the clef: the type of clef partially
determines the vertical position of note heads in a staff. Some of
-these properties can be modified by commands such as code(\clef) and
-code(\time). But there is more: notation contexts also have
+these properties can be modified by commands such as mycode(\clef) and
+mycode(\time). But there is more: notation contexts also have
properties are settable in a generic fashion. We will demonstrate
this feature by printing multiple voices on a staff.
graphical object. But the fact that all of the stems in a voice point
in the same direction is not directly graphical. Since this is a
property shared by all the stems in the voice, it is logical to
-consider this property to be a property of the context code(Voice).
-And this is how it's done in LilyPond: the context code(Voice) has an
+consider this property to be a property of the context mycode(Voice).
+And this is how it's done in LilyPond: the context mycode(Voice) has an
attribute whose value is the direction to use
for stems. You can change it to `up'
-by issuing the following phrase:footnote(The name code(ydirection) is
+by issuing the following phrase:footnote(The name mycode(ydirection) is
no mistake. The property also controls the up/down directions of
super-/subscripts, slurs, ties, etc.)
)
This command should be read as ``change the property called
-code(ydirection) within the current code(Voice) context to the value
-code(-1).'' For the property code(ydirection) the value code(1) means
-`up', and code(-1) means `down'. The proper way to code the
+mycode(ydirection) within the current mycode(Voice) context to the value
+mycode(-1).'' For the property mycode(ydirection) the value mycode(1) means
+`up', and mycode(-1) means `down'. The proper way to code the
polyphonic example is given in bind(Figure)ref(tutorial:multi-voice-fig).
latexcommand(\begin{figure}[h])
Other properties can also be set, and they can be within different
contexts. In general, you can set a property by specifying
-code(\property) var(contexttype)code(.)var(propertyname) code(=)
+mycode(\property) var(contexttype)mycode(.)var(propertyname) mycode(=)
var(value). Both var(ContextType), var(PropertyName) and var(Value)
should be strings.
Traditionally, some chords are shifted horizontally to print if this many
voices have to be printed.
LilyPond can also do this, and the property that controls the
-horizontal shifting is called code(hshift). The notes in a
-code(Voice) context that has code(hshift) set to a true value (i.e.,
+horizontal shifting is called mycode(hshift). The notes in a
+mycode(Voice) context that has mycode(hshift) set to a true value (i.e.,
non-zero or non-empty), will be shifted horizontally in the case of a
collision. The following example demonstrates the effect.
durations. Previously we only entered note names, so for entering
lyrics we have to instruct LilyPond that what we enter are not note
names but words---or rather: strings. This instruction is the keyword
-code(\lyric). After entering this keyword you can enter a musical
-construct---sequential music, simultaneous music, code(\type)
+mycode(\lyric). After entering this keyword you can enter a musical
+construct---sequential music, simultaneous music, mycode(\type)
entries, etc.--- but with syllables in stead of pitches. For example:
verb( \lyric { 'got8 me on my knees4, Le-8 lie! })
-The effect of code(\lyric) can be compared with the effect of the
-doublequote character, code("), for it also changes the lexical
+The effect of mycode(\lyric) can be compared with the effect of the
+doublequote character, mycode("), for it also changes the lexical
meaning of spaces and characters. This mode is another example of a
handy input feature of the language.
out that lyrics need different treatment than notes. As a result, the
default conversion will try to put the text you entered as note heads
onto a staff, and this will fail. This default must be overriden with
-a code(\type) keyword. Printing syllables of text in a line is done
-by a context called code(Lyrics). You can select this context with
-the code(\type) keyword. Here is a simple example:
+a mycode(\type) keyword. Printing syllables of text in a line is done
+by a context called mycode(Lyrics). You can select this context with
+the mycode(\type) keyword. Here is a simple example:
mudela(fragment,verbatim)(
\type Lyrics \lyric { 'got8 me on my knees,4 Le-8 lie! })
The strings that makes up each syllable in the lyrics block are passed
along to TeX() verbatim, so if you are proficient with TeX() you can
do various nifty things. Just keep in mind that a syllable either
-starts with a letter (a character in the range `code(a)' to `code(z)'
-or `code(A)' to `code(Z)'), or it is a string enclosed quotes. It ends
+starts with a letter (a character in the range `mycode(a)' to `mycode(z)'
+or `mycode(A)' to `mycode(Z)'), or it is a string enclosed quotes. It ends
with either a number for the duration, or a space. A last feature
that should be mentioned is the space-lyric: if you want to enter
a single ``syllable'' that consists of multiple words, i.e., words
you in the introduction. Mudela has a hierarchical structure for we
have seen that sequential and simultaneous music can be nested.
Mudela also has other `blocks' that can be nested. The general syntax
-for a block is code(\keyword { ... }).
+for a block is mycode(\keyword { ... }).
When you run LilyPond, what happens is that you define music, and
specify one (or more) conversions to apply to that music, for example
a conversion to notation. This is done by putting the definition of
the music and the definition of the conversion together in a
-code(\score) block, e.g.,
+mycode(\score) block, e.g.,
verb(
\score {
% ... music ...
of the previous examples. The precise context reads thus:
verb(
\score {
- \melodic { ... }
+ \notes { ... }
\paper {}
})
On the ellipsis, you entered what shown as the example input.
You can see that in the
-above example, the code(\melodic { ... }) forms the music, the
-code(\paper {}) is a conversion to paper (notation, that is). The
-code(\paper) definition is copied from a default definition
+above example, the mycode(\notes { ... }) forms the music, the
+mycode(\paper {}) is a conversion to paper (notation, that is). The
+mycode(\paper) definition is copied from a default definition
(which is in the initialisation file file(paper16.ly)).
The paper part also contains
the definition of the contexts.
-The keyword code(\melodic) is analogous to the code(\lyric) keyword. It
+The keyword mycode(\notes) is analogous to the mycode(\lyric) keyword. It
will switch the tokenizer into a mode that interprets plain words as
note names. If it can't recognize the words as a note name, it will
assume that they are strings. That is the reason why you can write
-code(\clef bass) in stead of code(\clef "bass"); most of the strings
-in code(\melodic) mode can be written without quotes.
+mycode(\clef bass) in stead of mycode(\clef "bass"); most of the strings
+in mycode(\notes) mode can be written without quotes.
-The braces that you see after the code(\melodic) keyword are the
+The braces that you see after the mycode(\notes) keyword are the
braces that are around sequential music. Because of these braces, the
sequences of notes in our simple examples were sequential (and not
simultaneous). As a result the notes were printed from left to right,
Now that we are comfortable with the toplevel entries in a mudela
file, we can investigate some more of the recreations on toplevel, in
particular em(identifiers). Generally you can define an identifier by
-entering code(identifierName = ... )
+entering mycode(identifierName = ... )
where there can be a variety of things on the ellipsis.
Here is a (partial) list of what you can abbreviate with identifiers
at top-level.
itemize(
-it()The code(\score) block
-it()The code(\paper) block
-it()The code(\midi) block (to be explained in
+it()The mycode(\score) block
+it()The mycode(\paper) block
+it()The mycode(\midi) block (to be explained in
bind(Section)ref(tutorial:sound))
it()Music (sequential music, simultaneous music etc.)
it()Durations
)
When you refer
-to the abbreviated entity, you must precede code(identifierName)
-with a backslash, i.e., code(\identifierName). For example:
+to the abbreviated entity, you must precede mycode(identifierName)
+with a backslash, i.e., mycode(\identifierName). For example:
mudela(verbatim)(
- czerny = \melodic { [c16 g e g] }
+ czerny = \notes { [c16 g e g] }
\score {
- \melodic \type GrandStaff <
+ \notes \type GrandStaff <
{ c''2 g''2 }
{ \clef bass; \czerny \czerny \czerny \czerny}
>
Another interesting feature of this example are the assignments within
-the paper block. Some blocks, such as code(\paper), have a scope of
-their own. In the case of the code(\paper) block, these variables
+the paper block. Some blocks, such as mycode(\paper), have a scope of
+their own. In the case of the mycode(\paper) block, these variables
influence the characteristics of the output. As is shown, you can
tune quantities like the stemlength, and enter simple expressions.
The purpose of the negative linewidth is to prevent the music from
sensible defaults, there usually is no need to tune these values.
Recall the properties of a context, that could be set with
-code(\property). It is a very general mechanism to tune the output of
+mycode(\property). It is a very general mechanism to tune the output of
the music, that is neatly separated from the real music.
Unfortunately, it is not convenient to type or read, and the precise
effect of a setting property isn't always apparent from its
definition. To remedy this, we can use an identifier to capture the
-meaning of a code(\property).
+meaning of a mycode(\property).
mudela(verbatim)(
stemup = \property Voice.ydirection = "1"
stemdown = \property Voice.ydirection = "-1"
shift = \property Voice.hshift = "1"
\score {
- \type "Staff" \melodic <
+ \type "Staff" \notes <
\type "Voice" = "one" {
\stemup
r4 as'4 () as'4 g'4 }
}
)
-Several abbreviations like code(\stemup) are defined in the
+Several abbreviations like mycode(\stemup) are defined in the
standard initialisation file file(property.ly). Setting or changing
context properties can have a similar effect as the commands that were
discussed in bind(Section)ref(sec:commands). Don't be fooled by the
and they have to be terminated by semicolons.
You can also use identifiers to break up the heavy nesting that can occur
-in the code(\score) block. Another useful application is
+in the mycode(\score) block. Another useful application is
parametrisation of the music: if you use identifiers in the
-code(\score) block, you can make variations of the music by simply
+mycode(\score) block, you can make variations of the music by simply
redefining those identifiers. One particular application of this is
part extraction: by using identifiers and redefining them, one can
print extracted parts and a full orchestral score from the same
this the only thing that can be tuned at this
time. This is a limitation: the tempo of music can vary throughout
the music.) for the performance. The syntax for the tempo is
-code(\tempo )var(duration) = var(beatsperminute);), for example:
+mycode(\tempo )var(duration) = var(beatsperminute);), for example:
verb(
\score {
...music...
context should look like:
itemize(
it()It should be part of the ``notation output definition,'' i.e., the
- code(\paper) block
+ mycode(\paper) block
it()
It should contain a specification of what other contexts may be contained
in the context we're defining.
This is encoded by the
-The code(\translator) keyword opens the block for translation (or
-context) definition. The code(\type) keyword explains to Lily that
+The mycode(\translator) keyword opens the block for translation (or
+context) definition. The mycode(\type) keyword explains to Lily that
the context should be formed by taking an (empty) instance of
-code(Engraver_group_engraver). The code(Engraver_group_engraver) is a
-C++ class from the source code to Lily. The code(\accepts) entries
+mycode(Engraver_group_engraver). The mycode(Engraver_group_engraver) is a
+C++ class from the source code to Lily. The mycode(\accepts) entries
explain what kind of contexts this context could contain. If we were
to define a context for a staff, the definition would typically
-contain code(\accepts "Voice";).
+contain mycode(\accepts "Voice";).
-The code(\consists) entries specify which notation constructs should
+The mycode(\consists) entries specify which notation constructs should
be handled. This needs a little explanation: LilyPond contains the
code for quite a large number of basic building blocks for notation
generation, and each building block handles only one notation
construct. The name of such a building block is `engraver'. You can
specify which notation construct a context should handle by specifying
-which engravers should be part of the context. The code(\consists
-"Foobar") entry really means ``add an instance of code(Foobar) to the
+which engravers should be part of the context. The mycode(\consists
+"Foobar") entry really means ``add an instance of mycode(Foobar) to the
translation group.''
For example if this context should print time signatures, the definition
-should include `code(\consists "Time_signature_engraver";)'. Again
-code(Time_signature_engraver) is a class from the source code of LilyPond.
+should include `mycode(\consists "Time_signature_engraver";)'. Again
+mycode(Time_signature_engraver) is a class from the source code of LilyPond.
(time signature, rhythmic grouping) is synchronised across each staff. In
LilyPond this is expressed by having only one registration for timing
information for all staffs. To be precise, there is only one
-code(Timing_engraver), and it is located in the top level context, the
-code(Score) context.
+mycode(Timing_engraver), and it is located in the top level context, the
+mycode(Score) context.
-All staffs use the information in the global code(Timing_engraver)
+All staffs use the information in the global mycode(Timing_engraver)
for generating bar lines and time signatures. In polymetric music, this timing
information can be different for every staff, so we should redefine
-the code(Staff) context to include and the code(Score) context to exclude the
-code(Timing_engraver).
+the mycode(Staff) context to include and the mycode(Score) context to exclude the
+mycode(Timing_engraver).
mudela(verbatim)(
polymetricpaper = \paper {
}
}
\score {
- \melodic <
+ \notes <
\type Staff = one { \time 2/4; c'4 c'4 c'4 c'4 c'4 c'4 }
\type Staff = two { \time 3/4; c'4 c'4 c'4 c'4 c'4 c'4 }
>
}
)
-As you can see, we used the identifier code(polymetricpaper) to break
+As you can see, we used the identifier mycode(polymetricpaper) to break
up the large score block. More of these context definitions appear in
the standard initialisation file file(engraver.ly).
By naming other contexts that you create, you can reference other contexts
than the current context from within the music. For example, from within the music that you
-enter for staff code(One), one could enter a small piece of music,
-and send it to staff code(Two), e.g.,
+enter for staff mycode(One), one could enter a small piece of music,
+and send it to staff mycode(Two), e.g.,
mudela(fragment,verbatim)(
<
\type Staff = one { c''4 \type Staff = two { c4 c4 } c''4 }
demonstrate this. The example makes heavy use of space rests: a space
rest takes up time, like a rest does, but it doesn't print anything.
It can be used as a placeholder, to attach articulation marks to. It
-is entered as a note with the name code(s).
+is entered as a note with the name mycode(s).
mudela(verbatim)(
- bach = \melodic { [c16 g e' d'] [e' g e' g] }
+ bach = \notes { [c16 g e' d'] [e' g e' g] }
- staffStuff = \melodic { \clef bass; \time 4/4; s1 \bar "|."; }
+ staffStuff = \notes { \clef bass; \time 4/4; s1 \bar "|."; }
- slursOne = \melodic { s16( s s s s16 s s )s }
- slursTwo = \melodic { s16-. s s() s s16() s s ()s }
+ slursOne = \notes { s16( s s s s16 s s )s }
+ slursTwo = \notes { s16-. s s() s s16() s s ()s }
\score{
{ < \type Voice = celloVoice { \bach \bach }
)
The slurs that you define should be put on the music that is defined
-by the code(\bach) identifier. By labeling a code(Voice) context, and
-directing both the articulation and the notes to that same code(Voice)
+by the mycode(\bach) identifier. By labeling a mycode(Voice) context, and
+directing both the articulation and the notes to that same mycode(Voice)
context, the articulation is put over the right notes.
sketched earlier. )
One of the things that you can do with music is
em(transposing) it. If you want to transpose a piece of music, then
-you should prefix the keyword code(\transpose) along with the pitch
+you should prefix the keyword mycode(\transpose) along with the pitch
(relative to the central C) for the transposition.footnote(the
-code(\type Staff) is to make sure that no separate staffs are created
-for the code(\scale) and code(\transpose cis' \scale) part.)
+mycode(\type Staff) is to make sure that no separate staffs are created
+for the mycode(\scale) and mycode(\transpose cis' \scale) part.)
mudela(verbatim)(
-scale = \melodic \relative c' { [c8 d e f] }
+scale = \notes \relative c' { [c8 d e f] }
\score {
- \melodic {
+ \notes {
\type Staff { \scale \transpose cis' \scale }
}
\paper { linewidth = -1.0; }
sect(Staff switching)
We have seen that contexts can be nested. This means that they form a
-tree. It is possible to edit this tree: for example, a code(Voice)
-context can be taken out of a code(Staff) context, and put into
+tree. It is possible to edit this tree: for example, a mycode(Voice)
+context can be taken out of a mycode(Staff) context, and put into
another. This has the effect of the voice switching staffs (something
that often happens in keyboard music). The syntax for this operation
-with these particular contexts is code(\translator Staff = newStaffName).
+with these particular contexts is mycode(\translator Staff = newStaffName).
The effect is analogous to the first example in section
-ref(tutorial:urtext), but with the code(\translator) construction it
+ref(tutorial:urtext), but with the mycode(\translator) construction it
is possible to split the real music and the commands that determine in
which staff the music is printed. For example:
mudela(verbatim)(
% real music
-aVoice = \type Voice = voiceA \melodic { c''4 c4 c4 c''4 }
-bVoice = \type Voice = voiceB \melodic { g,4 g,4 g,4 g,4 }
+aVoice = \type Voice = voiceA \notes { c''4 c4 c4 c''4 }
+bVoice = \type Voice = voiceB \notes { g,4 g,4 g,4 g,4 }
% staff switching stuff
-switch = \type Voice = voiceA \melodic { s4 \translator Staff = staffB s4
+switch = \type Voice = voiceA \notes { s4 \translator Staff = staffB s4
s4 \translator Staff = staffA s4 }
\score {
)
To support this notion, Mudela allows you to modify the duration of a
-note by multiplication or division. A code(c'4) note that would be in a
-triplet is written as code(c'4*2/3). If you sequence a few of these
+note by multiplication or division. A mycode(c'4) note that would be in a
+triplet is written as mycode(c'4*2/3). If you sequence a few of these
notes, you get a triplet.footnote(We added a normal staff in the example to
show the difference.)
mudela(fragment,verbatim)(
LilyPond knows that these notes are no normal eighth notes, but the
reader doesn't yet. To help the reader a beam or a bracket with a `3'
-should be printed. The special beam command `code([2/3)' and the
-matching close beam `code(]1/1)' will take care of that, and
-they also abbreviate the code(*2/3) part. If you want brackets in
-stead of beams, you can use `code(\[2/3])' and `code(\]1/1)'.
+should be printed. The special beam command `mycode([2/3)' and the
+matching close beam `mycode(]1/1)' will take care of that, and
+they also abbreviate the mycode(*2/3) part. If you want brackets in
+stead of beams, you can use `mycode(\[2/3])' and `mycode(\]1/1)'.
mudela(fragment,verbatim)(
< \type Staff = staffA {
[2/3 c'8 c'8 c'8 ]1/1
[c''8 c''8 c''8 c''8 c''8 c''8 c''8] } >
)
-For your convenience, code([2/3) can be further abbreviated to code([/3), and
-you can abbreviate code(]1/1) on the closing beam marker to code(]/1).
+For your convenience, mycode([2/3) can be further abbreviated to mycode([/3), and
+you can abbreviate mycode(]1/1) on the closing beam marker to mycode(]/1).
mudela(fragment,verbatim)(
< \type Staff = staffA {
)
-bf(Important) the construct with code([/3) and
-code([/1) is a hack that sets a mode in the parser. This means that
-verb(id = \melodic { c8 c8 c8 }
-notATriplet =\melodic { [2/3 \id ]1/1 })
+bf(Important) the construct with mycode([/3) and
+mycode([/1) is a hack that sets a mode in the parser. This means that
+verb(id = \notes { c8 c8 c8 }
+notATriplet =\notes { [2/3 \id ]1/1 })
does not produce a triplet. It will hopefully
soon be replaced by a construction that mixes more elegantly with the
grammar for Music.
conventional music are small. Therefore, it makes sense to leave out
the quotes when the interval is small. We have built a mode that does
exactly this. It is called the relative mode for octaves. You can
-switch it on by entering code(\relative). Then LilyPond will
+switch it on by entering mycode(\relative). Then LilyPond will
interpret every note as if they mean the note with the same name
closest to the previous. You have to specify the first pitch because
the first note of a list obviously has no predecessor. So, you can
}
)
-LilyPond converts any music with code(\relative) prepended to absolute
+LilyPond converts any music with mycode(\relative) prepended to absolute
music immediately when it is read. Internally it is stored it in
absolute pitches. Since the tutorial mainly deals with how to specify
musical information, and not how to enter it conveniently, the
Briefly introduced before, identifiers are your biggest help in structurising
a large piece of music. As an example, we'll consider a string quartet.
In short, it will look like this: verb(
- global = \melodic{ }
- violinoOne = \melodic \relative c { .. }
- violinoTwo = \melodic \relative c { .. }
- viola = \melodic \relative c { .. }
- violoncello = \melodic \relative c { .. }
+ global = \notes{ }
+ violinoOne = \notes \relative c { .. }
+ violinoTwo = \notes \relative c { .. }
+ viola = \notes \relative c { .. }
+ violoncello = \notes \relative c { .. }
)
-The code(\global) part contains everything that is global, i.e., the
+The mycode(\global) part contains everything that is global, i.e., the
same, for each instrument. This may include time signature, key, repeat
signs, different bar types, time signature- and key changes, rehearsal
marks, etc.
subsect(Including Mudela files)
ref(subsect:include)
-You can include other Mudela files with the command code(\include):
+You can include other Mudela files with the command mycode(\include):
verb(
\include "paper13.ly"
\score {
text: that is a job best left to TeX(). But you can pass messages to
TeX() from the input file. You can write TeX() macros to handle
these messages.
-To do this, you add a code(\header) block
+To do this, you add a mycode(\header) block
to your input file. The format is quite simple,
verb(
})
When the results of the music typesetting are output, the contents of
-code(\header) are also up into the TeX() file. Tools like
-code(ly2dvi) can use this information to generate pretty titling for
-your input file. Consult the manual page of code(ly2dvi) for more
+mycode(\header) are also up into the TeX() file. Tools like
+mycode(ly2dvi) can use this information to generate pretty titling for
+your input file. Consult the manual page of mycode(ly2dvi) for more
details.
-The code(\header) block should be at toplevel in mudela, and
+The mycode(\header) block should be at toplevel in mudela, and
preferably at the top of the file. If you have an input file with
-multiple code(\score) blocks, you should add a header to every score,
+multiple mycode(\score) blocks, you should add a header to every score,
describing the different sub parts of the music piece, eg.
}
)
-If you want you can also put the code(\header) block at the top of the
+If you want you can also put the mycode(\header) block at the top of the
input file; it will then be put into every output file automatically.
This will make it clear what the file contains as soon as you open it.
-TITLE INFORMATION: INSTALL - compiling and installing GNU LilyPond
-AUTHOR INFORMATION: HWN & JCN
-
-Contents
-
-1: ABSTRACT
-2: PREREQUISITES
-3: RUNNING
-4: RECOMMENDED
-5: WEBSITE
-6: CONFIGURING and COMPILING
-7: CONFIGURING FOR MULTIPLE PLATFORMS
-8: INSTALLING
-9: REDHAT LINUX
-10: DEBIAN GNU/LINUX
-11: WINDOWS NT/95
-12: AUTHORS
+
+
+
+
+
+
+
+
+ INSTALL - compiling and installing GNU LilyPond
+
+ HWN & JCN
+
+
+Contents
+
+ 1: ABSTRACT
+2: PREREQUISITES
+3: RUNNING
+4: RECOMMENDED
+5: WEBSITE
+6: CONFIGURING and COMPILING
+7: CONFIGURING FOR MULTIPLE PLATFORMS
+8: INSTALLING
+9: REDHAT LINUX
+10: DEBIAN GNU/LINUX
+11: WINDOWS NT/95
+12: AUTHORS
+
1: ABSTRACT
+
You do something which looks remotely like
- configure # Check out the buildscripts/set-lily.sh script
- make
- make install
-The detailed instructions follow here. The
-buildscripts/set-lily.sh script sets some environment variables
-and symlinks, which comes in handly when you have to compile LilyPond
-very often. It is aimed at people who run (or debug) LilyPond without
-installing.
+
+
+
+ configure # Check out the buildscripts/set-lily.sh script
+ make
+ make install
+
+
+
+
+
+The detailed instructions follow here. The build-
+scripts/set-lily.sh script sets some environment variables
+and symlinks, which comes in handly when you have to compile
+LilyPond very often. It is aimed at people who run (or
+debug) LilyPond without installing.
+
2: PREREQUISITES
+
For compilation you need:
-o A GNU system: GNU LilyPond is known to run on these GNU systems: Linux
- (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and
-Solaris.
-o Lots of disk space: LilyPond takes between 50 and 100 mb to
-compile if you use debugging information. If you are short on
-disk-space run configure with --disable-debugging.
+o A GNU system: GNU LilyPond is known to run on these GNU
+ systems: Linux (PPC, intel), FreeBSD, AIX, NeXTStep,
+ IRIX, Digital Unix and Solaris.
+
+
+o Lots of disk space: LilyPond takes between 50 and 100
+ mb to compile if you use debugging information. If you
+ are short on disk-space run configure with --disable-
+ debugging.
+
+ Although we recommend to use Unix, LilyPond is known to
+ run on Windows NT/95/98 as well. See Section 11.
+
-Although we recommend to use Unix, LilyPond is known to run on Windows
-NT/95/98 as well. See Section [w32].
+o GNU C++ version 2.7 or newer (2.8 and egcs are also
+ fine).
+
+o Python 1.5 (Strictly speaking, you shouldn't need
+ Python for compiling and installing, but you'll need it
+ to regenerate the font tables, e.g.).
-o GNU C++ version 2.7 or newer (2.8 and egcs are also fine).
-o Python 1.5 (Strictly speaking, you shouldn't need Python for
- compiling and installing, but you'll need it to regenerate the font
- tables, e.g.).
3: RUNNING
-GNU LilyPond does use a lot of resources. For operation you need the following:
-o TeX
-o A PostScript printer and/or viewer (such as Ghostscript) is strongly
- recommended. Xdvi will show all embedded PostScript too if you have
- Ghostscript installed.
+GNU LilyPond does use a lot of resources. For operation you
+need the following:
+
+
+o TeX
+
+o A PostScript printer and/or viewer (such as
+ Ghostscript) is strongly recommended. Xdvi will show
+ all embedded PostScript too if you have Ghostscript
+ installed.
+
4: RECOMMENDED
-Although not strictly necessary, these are recommended to have.
-o GNU make.
-Check out ftp://ftp.gnu.org
-or any mirror of this site.
+Although not strictly necessary, these are recommended to
+have.
+
+
+o GNU make. Check out ftp://ftp.gnu.org or any mirror of
+ this site.
+
+
+o Flex (version 2.5.4 or newer). Check out
+ ftp://ftp.gnu.org or any mirror of this site.
+
+o Bison (version 1.25 or newer). Check out
+ ftp://ftp.gnu.org or any mirror of this site.
+
+
+o Python (version 1.5 or newer). Check out
+ ftp://ftp.python.org or ftp://ftp.cwi.nl/pub/python.
-o Flex (version 2.5.4 or newer).
-Check out ftp://ftp.gnu.org
-or any mirror of this site.
-o Bison (version 1.25 or newer).
-Check out ftp://ftp.gnu.org
-or any mirror of this site.
-o Python (version 1.5 or newer). Check out
-ftp://ftp.python.org or ftp://ftp.cwi.nl/pub/python.
+o Yodl. All documentation will be in Yodl. (1.30.17)
+ ftp://pcnov095.win.tue.nl/pub/yodl
+ http://www.cs.uu.nl/~hanwen/yodl
-o Yodl. All documentation will be in Yodl. (1.30.17)
-ftp://pcnov095.win.tue.nl/pub/yodl
- http://www.cs.uu.nl/~hanwen/yodl
-o Texinfo. (version 3.12 or newer)
+o Texinfo. (version 3.12 or newer)
-o GNU find
-Check out ftp://ftp.gnu.org
-or any mirror of this site.
-o The geometry package for LaTeX is needed to use ly2dvi.
- Available at
-ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry
-or at mirror site ftp://ftp.dante.de
+o GNU find Check out ftp://ftp.gnu.org or any mirror of
+ this site.
+
+
+o The geometry package for LaTeX is needed to use ly2dvi.
+ Available at ftp://ftp.ctan.org/tex-
+ archive/macros/latex/contrib/supported/geometry or at
+ mirror site ftp://ftp.dante.de
+
+
+o A fast computer (a full page of music typically takes 1
+ minute on my 486/133, using the --enable-checking com-
+ pile. It's lot slower than most MusiXTeX preprocessors)
-o A fast computer (a full page of music typically takes 1 minute on my
- 486/133, using the --enable-checking compile. It's lot slower than
- most MusiXTeX preprocessors)
5: WEBSITE
-If you want to auto-generate Lily's website, you'll need some additional
-conversion tools.
-o xpmtoppm (from the Portable Bitmap Utilities) (For RedHat Linux
- users: it is included within the package libgr-progs).
-o Bib2html http://pertsserver.cs.uiuc.edu/~hull/bib2html.
- Which, in turn depends on man2html for proper installation.
-man2html can be had from http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05.
+If you want to auto-generate Lily's website, you'll need
+some additional conversion tools.
+
+
+o xpmtoppm (from the Portable Bitmap Utilities) (For Red-
+ Hat Linux users: it is included within the package
+ libgr-progs).
+
+o Bib2html http://pertsserver.cs.uiuc.edu/~hull/bib2html.
+ Which, in turn depends on man2html for proper installa-
+ tion. man2html can be had from http://askdon-
+ ald.ask.uni-karlsruhe.de/hppd/hpux/Network-
+ ing/WWW/Man2html-1.05.
+
+ TeTeX users should not forget to rerun texhash.
- TeTeX users should not forget to rerun texhash.
6: CONFIGURING and COMPILING
+
to install GNU LilyPond, simply type:
- configure --enable-tex-dir=XXXX --enable-mf-dir=YYYY
- make
- make install
+
+
+
+
+ configure --enable-tex-dir=XXXX --enable-mf-dir=YYYY
+ make
+ make install
+
+
+
+
This will install a number of files, something close to:
- /usr/local/man/man1/mi2mu.1
- /usr/local/man/man1/convert-mudela.1
- /usr/local/man/man1/mudela-book.1
- /usr/local/man/man1/lilypond.1
- /usr/local/bin/lilypond
- /usr/local/bin/mi2mu
- /usr/local/share/lilypond/*
- /usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo
- /usr/lib/texmf/texmf/tex/lilypond/*
-
-You should specify directories that are in TeX's and MetaFont's
-include path with the options (--enable-tex-dir) and
---enable-mf-dir. If you don't specify any directories, the TeX
-include directory is detected dynamically, which is unreliable. The
-above assumes that you are root and have the GNU development tools,
-and your make is GNU make. If this is not the case, you can adjust
-your environment variables to your taste:
-
- export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
- configure
-
-CPPFLAGS are the preprocessor flags.
+
+ /usr/local/man/man1/mi2mu.1
+ /usr/local/man/man1/convert-mudela.1
+ /usr/local/man/man1/mudela-book.1
+ /usr/local/man/man1/lilypond.1
+ /usr/local/bin/lilypond
+ /usr/local/bin/mi2mu
+ /usr/local/share/lilypond/*
+ /usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo
+ /usr/lib/texmf/texmf/tex/lilypond/*
+
+
+
+
+
+You should specify directories that are in 's and MetaFont's
+include path with the options (--enable-tex-dir) and
+--enable-mf-dir. If you don't specify any directories, the
+include directory is detected dynamically, which is unreli-
+able. The above assumes that you are root and have the GNU
+development tools, and your make is GNU make. If this is
+not the case, you can adjust your environment variables to
+your taste:
+
+
+
+
+
+
+ export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
+ configure
+
+
+
+
+
+CPPFLAGS are the preprocessor flags.
The configure script is Cygnus configure, and it will accept
---help. If you are not root, you will probably have to make it
-with a different --prefix option. Our favourite location is
+--help. If you are not root, you will probably have to make
+it with a different --prefix option. Our favourite location
+is
+
+
+
+
+
+
+ configure --prefix=$HOME/usr
+
+
+In this case, you will have to set up MFINPUTS, and TEXIN-
+PUTS accordingly.
+
+If you want to install GNU LilyPond in /usr/local, and your
+TeX has no default hooks for local stuff, you can do:
+
+
+
+
+
+
+ configure --prefix=/usr/local --enable-tex-prefix=/usr/lib/texmf
+
- configure --prefix=$HOME/usr
-In this case, you will have to set up MFINPUTS, and TEXINPUTS accordingly.
-If you want to install GNU LilyPond in /usr/local, and your TeX has
-no default hooks for local stuff, you can do:
- configure --prefix=/usr/local --enable-tex-prefix=/usr/lib/texmf
+Since GNU LilyPond currently is beta, you are advised to
+also use
+
+
+
+
+
+
+ --enable-debugging
+ --enable-checking
+
+
-Since GNU LilyPond currently is beta, you are advised to also use
- --enable-debugging
- --enable-checking
Other options include:
-o --enable-shared
- Make a shared library (gnu/linux, solaris (?) only ) (TEMPORARILY
-OUT OF ORDER)
-
-o --enable-printing
- Enable debugging print routines (lilypond -D option)
-o --enable-optimise
- Set maximum optimisation: compile with -O2
-o --enable-profiling
- Compile with support for profiling.
-o --enable-tex-prefix
- Set the directory where TeX and Metafont live.
-o --enable-tex-dir
- Set then directory TeX input is in (detected as a subdir of
- tex-prefix). This should be a directory that is reachable both for
- tex and latex. On my system the best choice would be
- /usr/lib/texmf/texmf/tex/generic//.
-o --enable-mf-dir
- Set the directory metafont input is in (idem). On my system the best
- choice would be /usr/lib/texmf/texmf/fonts/source/public/.
-o --enable-config
- Output to a different configuration file. Needed for multi-platform
- builds
-
-All options are documented in the configure help
-The option --enable-optimise is recommended for Real Life usage.
+
+--enable-shared
+ Make a shared library (gnu/linux, solaris (?) only )
+ (TEMPORARILY OUT OF ORDER)
+
+
+--enable-printing
+ Enable debugging print routines (lilypond -D option)
+
+--enable-optimise
+ Set maximum optimisation: compile with -O2
+
+--enable-profiling
+ Compile with support for profiling.
+
+--enable-tex-prefix
+ Set the directory where TeX and Metafont live.
+
+--enable-tex-dir
+ Set then directory TeX input is in (detected as a
+
+
+ subdir of tex-prefix). This should be a directory that
+ is reachable both for tex and latex. On my system the
+ best choice would be
+ /usr/lib/texmf/texmf/tex/generic//.
+
+--enable-mf-dir
+ Set the directory metafont input is in (idem). On my
+ system the best choice would be
+ /usr/lib/texmf/texmf/fonts/source/public/.
+
+--enable-config
+ Output to a different configuration file. Needed for
+ multi-platform builds
+
+All options are documented in the configure help The option
+--enable-optimise is recommended for Real Life usage.
If you do
- make all
-everything will be compiled, but nothing will be installed. The
-resulting binaries can be found in the subdirectories out/ (which
-contain all files generated during compilation).
+
+
+
+
+ make all
+
+
+
+
+
+everything will be compiled, but nothing will be installed.
+The resulting binaries can be found in the subdirectories
+out/ (which contain all files generated during compilation).
+
7: CONFIGURING FOR MULTIPLE PLATFORMS
-If you want to compile LilyPond with different configuration settings,
-then, you can use the --enable-config option. Example: suppose I
-want to build with and without profiling. Then I'd use the
-following for the normal build,
- configure --prefix=~ --disable-optimise --enable-checking
- make
- make install
+If you want to compile LilyPond with different configuration
+settings, then, you can use the --enable-config option.
+Example: suppose I want to build with and without profil-
+ing. Then I'd use the following for the normal build,
+
+
+
+
+
+
+ configure --prefix=~ --disable-optimise --enable-checking
+ make
+ make install
+
+
+and for the profiling version, I specify a different config-
+uration.
+
+
+
+
+
+
+ configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
+ make config=optprof
+ make config=optprof install
+
+
+
-and for the profiling version, I specify a different configuration.
- configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking
- make config=optprof
- make config=optprof install
8: INSTALLING
+
If you have done a successful make, then a simple
- make install
+
+
+
+
+
+ make install
+
+
+
+
should do the trick.
-If you are doing an upgrade, please remember to remove obsolete
-.pk and .tfm files of the fonts. A script has been
+If you are doing an upgrade, please remember to remove obso-
+lete .pk and .tfm files of the fonts. A script has been
provided to do the work for you, see bin/clean-fonts.sh.
+
CAVEATS
-o The -O2 option to gcc triggers a gcc bug on DEC Alpha in dstream.cc. You
- should turn off this flag for this file.
+
+
+o The -O2 option to gcc triggers a gcc bug on DEC Alpha
+ in dstream.cc. You should turn off this flag for this
+ file.
+
EXAMPLE
+
This is what I type in my xterm:
- lilypond someinput.ly
- tex someinput.tex
- xdvi someinput&
+
+ lilypond someinput.ly
+ tex someinput.tex
+ xdvi someinput&
+
+
+
+
This is what the output looks like over here:
- GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0
- Parsing ... [/home/hw/share/lilypond/init//
- <..etc..>
- init//performer.ly]]][input/kortjakje.ly]
- Creating elements ...[8][16][24][25]
- Preprocessing elements...
- Calculating column positions ... [14][25]
- Postprocessing elements...
- TeX output to someinput.tex ...
- Creating MIDI elements ...MIDI output to someinput.midi ...
- hw:~/musix/spacer$ xdvi someinput&
- [1] 855
-Check out the input files, some of them have comments
-Please refer to the man page for more information.
+
+
+
+ GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0
+ Parsing ... [/home/hw/share/lilypond/init//
+ <..etc..>
+ init//performer.ly]]][input/kortjakje.ly]
+ Creating elements ...[8][16][24][25]
+ Preprocessing elements...
+ Calculating column positions ... [14][25]
+ Postprocessing elements...
+ TeX output to someinput.tex ...
+ Creating MIDI elements ...MIDI output to someinput.midi ...
+
+
+ hw:~/musix/spacer$ xdvi someinput&
+ [1] 855
+
+
+
+
+
+Check out the input files, some of them have comments Please
+refer to the man page for more information.
+
9: REDHAT LINUX
-RedHat Linux users can compile an RPM. A spec file is in
-make/out/lilypond.spec. You should install a gif file called
-lelie_icon.gif along with the sources. You can generate this
-gif file by typing
- make gifs
+RedHat Linux users can compile an RPM. A spec file is in
+make/out/lilypond.spec. You should install a gif file
+called lelie_icon.gif along with the sources. You can gen-
+erate this gif file by typing
+
+
+
+
+
+
+ make gifs
+
in the directory Documentation.
You can make the rpm by issuing
- make rpm
+
+
+
+
+
+ make rpm
+
+
+
+
+
10: DEBIAN GNU/LINUX
-A Debian package is also available; contact Anthony Fok
-<foka@debian.org>. The build scripts are in the subdirectory debian/
+
+A Debian package is also available; contact Anthony Fok
+foka@debian.org <foka@debian.org>. The build scripts are in
+the subdirectory debian/
+
11: WINDOWS NT/95
-Separate instructions on building for W32 are avaible
-in the file README-W32.yo.
+
+Separate instructions on building for W32 are avaible in the
+file README-W32.yo.
+
12: AUTHORS
+
Han-Wen Nienhuys <hanwen@cs.uu.nl>
Jan Nieuwenhuizen <janneke@gnu.org>
+
+(need to fix pictures. I know)
+
+pl 9
+
+pl 8.uu1
+ - junked \staff, \multi
+ - bf Music_list::Music_list (Music_list const&)
+ - AC_SUBST(PATHSEP,DIRSEP)
+ - generate Documentation/tex/out/*.bib (AM)
+ - a4 fixes (AM)
+ - bf: metafont-*.make
+ - parser.yy: intlist mods. (mudela 1.0.2)
+ - \melodic -> \notes (mudela 1.0.3)
+ - typo: calcalute_dependencies ()
+
pl 8.jcn3
- gif -> png
* ps-to-pngs.sh
- bf's: package-diff
pl 8.jcn1
- - removed tutorial from texinfo, yodl2texinfo is still rather broken
- - bf: setlocale NUMERIC to 'C'
- - removed ugly space from print-dimen
+ - removed tutorial from texinfo, yodl2texinfo is still rather broken
+ - bf: setlocale NUMERIC to 'C'
+ - removed ugly space from print-dimen
+*******
pl 8
- make website fixes.
+
+
+
+
+
NAME
-PATCHES - track and distribute your code changes
+ PATCHES - track and distribute your code changes
DESCRIPTION
-This page documents how to distribute your changes to GNU lilypond
-(or in fact any other StepMake package).
+ This page documents how to distribute your changes to
+GNU lilypond (or in fact any other StepMake package).
ABSTRACT
-Distributing a change normally goes like this:
+ Distributing a change normally goes like this:
+
+o make your fix/add your code
-o make your fix/add your code
-o Add changes to NEWS, and add yourself to Documentation/AUTHORS.yo
-o generate a patch,
-o e-mail your patch to one of the mailing lists
- gnu-music-discuss@gnu.org or bug-gnu-music@gnu.org
+o Add changes to NEWS, and add yourself to Documenta-
+ tion/AUTHORS.yo
+
+o generate a patch,
+
+o e-mail your patch to one of the mailing lists gnu-
+ music-discuss@gnu.org or bug-gnu-music@gnu.org
GENERATING A PATCH
-In VERSION, set MY_PATCH_LEVEL:
+ In VERSION, set MY_PATCH_LEVEL:
+
+
+
+
+
+ VERSION:
+ ...
+ MY_PATCH_LEVEL=jcn1
+
+
+
- VERSION:
- ...
- MY_PATCH_LEVEL=jcn1
In NEWS, enter a summary of changes:
- NEWS:
- pl 0.1.73.jcn1
- - added PATCHES.yo
+
+
+
+
+
+ NEWS:
+ pl 0.1.73.jcn1
+ - added PATCHES.yo
+
Then, from the top of Lily's source tree, type
- make diff
+
+
+
+
+
+ make diff
+
+
+
+
which leaves your patch as ./lilypond-0.1.73.jcn1.diff.
If you didn't configure Lily using --srcdir, you can do:
- make release
- tar-ball: ../patches/lilypond-0.1.73.jcn1.gz
- patch: ../patches/lilypond-0.1.73.jcn1.gz
- updeet: ../test/updeet
+
+
+
+
+ make release
+
+ tar-ball: ../patches/lilypond-0.1.73.jcn1.gz
+ patch: ../patches/lilypond-0.1.73.jcn1.gz
+ updeet: ../test/updeet
+
+
+
+
+
PREREQUISITES
+
For creating a patch you need
-o All items mentioned in INSTALL. You're not going to send a patch
- that you haven't even built, right?
-o GNU diff
-o Python (version 1.5 or newer).
- You can of course make a patch by hand, which would go something like:
- make distclean
- cd ..
- diff -urN lilypond-0.1.73 lilypond-0.1.73.jcn1 > lilypond-0.1.73.jcn1
+o All items mentioned in INSTALL. You're not going to
+ send a patch that you haven't even built, right?
+
+o GNU diff
+
+o Python (version 1.5 or newer). You can of course make
+ a patch by hand, which would go something like:
+
+
+ make distclean
+ cd ..
+ diff -urN lilypond-0.1.73 lilypond-0.1.73.jcn1 > lilypond-0.1.73.jcn1
+
-but there are handy python scripts available. If you're doing development,
-you'll need Python for other LilyPond scripts anyway.
-o The Lily directory structure, which looks like:
- doos/ # gnu/windows32 build and binary releases
- harmonia -> harmonia-x.y.z
- harmonia-x.y.z/
- lilypond -> lilypond-x.y.z # symlink to development directory
- lilypond-x.y.z/ # current development
- patches/ # patches between different releases
- RedHat/BUILD # RedHat build and binary releases
- RedHat/RPMS
- RedHat/SPECS
- releases/ # .tar.gz releases
- test/ # tarballs and diffs from current version
- yodl -> yodl-1.30.17
- yodl-1.30.17
-with prefix $HOME/usr/src
-and (for building rpms only) in $HOME/.rpmrc:
+ but there are handy python scripts available. If
+ you're doing development, you'll need Python for other
+ LilyPond scripts anyway.
+
+
+o The Lily directory structure, which looks like:
+
+
+
+
+
+
+ doos/ # gnu/windows32 build and binary releases
+ harmonia -> harmonia-x.y.z
+ harmonia-x.y.z/
+ lilypond -> lilypond-x.y.z # symlink to development directory
+ lilypond-x.y.z/ # current development
+ patches/ # patches between different releases
+ RedHat/BUILD # RedHat build and binary releases
+ RedHat/RPMS
+ RedHat/SPECS
+ releases/ # .tar.gz releases
+ test/ # tarballs and diffs from current version
+ yodl -> yodl-1.30.17
+ yodl-1.30.17
+
+
+
+
+ with prefix $HOME/usr/src and (for building rpms only)
+ in $HOME/.rpmrc:
+
+
+
+
+
+ topdir: /home/fred/usr/src/RedHat
- topdir: /home/fred/usr/src/RedHat
APPLYING PATCHES
-If you're following LilyPond development regularly, you probably want to
-download just the patch for each subsequent release.
-After downloading the patch (into the patches directory, of course), simply
-apply it:
- gzip -dc ../patches/lilypond-0.1.74.diff.gz | patch -p1 -E
+If you're following LilyPond development regularly, you
+probably want to download just the patch for each subsequent
+release. After downloading the patch (into the patches
+directory, of course), simply apply it:
+
+
+
+
+
+
+ gzip -dc ../patches/lilypond-0.1.74.diff.gz | patch -p1 -E
+
+
+
+
and don't forget to make automatically generated files:
- autoconf footnote(patches don't include automatically generated files,
- i.e. file(configure) and files generated by file(configure).)
- configure
+
+
+
+
+ autoconf footnote(patches don't include automatically generated files,
+ i.e. file(configure) and files generated by file(configure).)
+
+ configure
+
+
+
+
+
SYNCHRONISE
-If you're not very quick with sending your patch, there's a good chance
-that an new release of LilyPond comes available. In such a case (and
-sometimes for other unkown reasons :-), the maintainer will probably ask
-you to make a new patch against the latest release.
-Your best bet is to download the latest release, and apply your patch
-against this new source tree:
- cd lilypond-0.1.74
- gzip -dc ../patches/lilypond-0.1.73.jcn1.diff.gz | patch -p1 -E
- autoconf
- configure
+If you're not very quick with sending your patch, there's a
+good chance that an new release of LilyPond comes available.
+In such a case (and sometimes for other unkown reasons :-),
+the maintainer will probably ask you to make a new patch
+against the latest release. Your best bet is to download
+the latest release, and apply your patch against this new
+source tree:
+
+
+ cd lilypond-0.1.74
+ gzip -dc ../patches/lilypond-0.1.73.jcn1.diff.gz | patch -p1 -E
+ autoconf
+ configure
+
+
+
+
Then, make a patch as shown above.
+
SEE ALSO
+
stepmake/INSTALL.txt
+
MAINTAINER
+
Han-Wen Nienhuys <hanwen@cs.uu.nl>
Just keep on sending those patches!
-This is the toplevel README to LilyPond
- LilyPond is the GNU Project music typesetter. This program can print
-beautiful sheet music from a music definition file. It can also play
-mechanical performances to a MIDI file. Features include multiple
-staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,
-beams, slurs, triplets, formatting scores, part extraction. It includes
-a nice font of musical symbols.
-1: VERSIONING
-if you have downloaded a
- *.pre*
-version, then this is version is *not* meant for producing nice output
-(but to keep your patchsets up to date). It might not even compile.
-The same goes for a version with a 4th version number, eg
+This is the toplevel README to LilyPond LilyPond is the GNU
+Project music typesetter. This program can print beautiful
+sheet music from a music definition file. It can also play
+mechanical performances to a MIDI file. Features include
+multiple staffs, meters, clefs, keys, lyrics, versatile
+input language, cadenzas, beams, slurs, triplets, formatting
+scores, part extraction. It includes a nice font of musical
+symbols.
- 1.2.3.mypatch2
+1: VERSIONING
-It will be safer if you download 1.2.3 or wait for 1.2.4.
+ if you have downloaded a *.pre* version, then this is
+version is *not* meant for producing nice output (but to
+keep your patchsets up to date). It might not even compile.
+The same goes for a version with a 4th version number, eg
+1.2.3.mypatch2 It will be safer if you download 1.2.3 or
+wait for 1.2.4.
2: REQUIREMENTS
-For the compilation and running of LilyPond you need some additional
-packages. Please refer to the installation instructions.
-
-NOTE: If you downloaded a binary (.rpm or a W95/NT .zip file), then
-you don't have to compile LilyPond.
+ For the compilation and running of LilyPond you need
+some additional packages. Please refer to the installation
+instructions. NOTE: If you downloaded a binary (.rpm or a
+W95/NT .zip file), then you don't have to compile LilyPond.
3: INSTALLATION
-For your convenience, a formatted copy of the INSTALL instructions are
-in the toplevel directory, as INSTALL.txt
-
-The process is fairly straightforward, but chances are that you have
-to specify directories for TeX to configure: this is done with
-the options --enable-tex-dir and --enable-mf-dir
+ For your convenience, a formatted copy of the INSTALL
+instructions are in the toplevel directory, as INSTALL.txt
+The process is fairly straightforward, but chances are that
+you have to specify directories for to configure: this is
+done with the options --enable-tex-dir and --enable-mf-dir
4: DOCUMENTATION
-The real documentation is the directory Documentation/
+ The real documentation is the directory Documentation/
+To generate the pretty-printed docs, you have to run config-
+ure first, and then do this: make doc You can also simply
+read the .yo sources. They are ASCII text. The complete
+documentation is accessible in formatted form at the website
+http://www.cs.uu.nl/people/hanwen/lilypond/index.html
-To generate the pretty-printed docs, you have to run configure first,
-and then do this:
+5: COMMENTS
+
+ LilyPond is a long way from finished and polished. We
+do appreciate criticism, comments, bugreports, patches, etc.
+Please send your e-mail to one of the MAILING LISTS and not
+to us personally. See Documentation/links.yo for more info.
- make doc
+6: DOZE
-You can also simply read the .yo sources. They are ASCII text.
-The complete documentation is accessible in formatted form at the
-website http://www.cs.uu.nl/people/hanwen/lilypond/index.html
+ If you have received this file as part of a DOS/Win-
+dow32 distribution (lilypond-*.zip), then it is advisable to
+also download the source package, since it might contain
-5: COMMENTS
-LilyPond is a long way from finished and polished. We do appreciate
-criticism, comments, bugreports, patches, etc.
+more documentation ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/ If
+you decide to build LilyPond from source, please read the
+INSTALL.txt document first, especially the Windows NT/95
+section.
- Please send your e-mail to one of the MAILING LISTS
+7: CAVEATS
-and not to us personally. See Documentation/links.yo for more info.
+ * Please read the file BUGS for some ugly bugs. This
+especially applies Linux-Intel unix users. * If you have
+installed a previous version, be sure to remove old font
+files, eg
-6: DOZE
-If you have received this file as part of a DOS/Window32 distribution
-(lilypond-*.zip), then it is advisable to also download the source
-package, since it might contain more documentation
-ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/
-If you decide to build LilyPond from source, please read the INSTALL.txt
-document first, especially the Windows NT/95 section.
-7: CAVEATS
+ rm `find /var/lib/texmf/fonts -name 'feta*'`
+
-* Please read the file BUGS for some ugly bugs. This especially applies
-Linux-Intel unix users.
-* If you have installed a previous version, be sure to remove old font
-files, eg
-rm `find /var/lib/texmf/fonts -name 'feta*'`
a script to do this for you is in bin/cleanfonts.sh
+
8: CDROM DISTRIBUTIONS
-If you have received LilyPond on a cdrom, chances are that development
-has moved a some patchlevels up. If possible, please check the latest
-version of LilyPond before reporting bugs.
+
+If you have received LilyPond on a cdrom, chances are that
+development has moved a some patchlevels up. If possible,
+please check the latest version of LilyPond before reporting
+bugs.
Most of the items are marked in the code as well, with full explanation.
grep for TODO and ugh/ugr/urg
- * egcs-1.1a support
+ * egcs-1.1 support
* fix LOCALE settings, and \def\foo{2,000pt} output
* abbrev -> tremolo
+ * junking \skip req in lyrics
+
+ * \shape 1st dim skipped?
+
* Language:
- general plet mechanism.
- \type -> \context ?
- \translator -> ?
- fix \partial
- - \melodic -> \notes
- \bla {} vs \bla ;
- mix engraver hacking with music ?
- \once\property KEY = VAL
- \addtranslator, \removetranslator
- junk ^ and _ for scripts
+ - junk _ for lyrics.
+ - abstract grammar.
* install TeX stuff into tex/generic directory.
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=0
-PATCH_LEVEL=8
-MY_PATCH_LEVEL=jcn3
+PATCH_LEVEL=9
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
# -O is necessary to get inlining
OPTIMIZE=""
CXXFLAGS=${CXXFLAGS:-""}
+ CFLAGS=${CFLAGS:-""}
checking_b=yes
optimise_b=no
profile_b=no
AC_SUBST(LN_S)
AC_SUBST(INSTALL)
AC_DEFINE_UNQUOTED(DIRSEP, '${DIRSEP}')
- AC_SUBST(PATHSEP)
AC_DEFINE_UNQUOTED(PATHSEP, '${PATHSEP}')
+ AC_SUBST(PATHSEP)
+ AC_SUBST(DIRSEP)
AC_STEPMAKE_DATADIR
list_item(ex + ex_ext + '.txt', 'The input')
for pageno in range(1,100):
- f = ex + '-page%d.gif' % pageno
+ f = ex + '-page%d.png' % pageno
if not file_exist_b (f):
break
list_item(f, 'The output (picture, page %d)' % pageno)
- cat >> confdefs.h <<EOF
+ cat >> confdefs.h <<EOF
#define DIRSEP '${DIRSEP}'
EOF
- cat >> confdefs.h <<EOF
+ cat >> confdefs.h <<EOF
#define PATHSEP '${PATHSEP}'
EOF
+
+
# -O is necessary to get inlining
OPTIMIZE=""
CXXFLAGS=${CXXFLAGS:-""}
+ CFLAGS=${CFLAGS:-""}
checking_b=yes
optimise_b=no
profile_b=no
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1035: checking for $ac_word" >&5
+echo "configure:1038: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1064: checking for $ac_word" >&5
+echo "configure:1067: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1112: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1115: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 1122 "configure"
+#line 1125 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1129: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1146: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1149: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1151: checking whether we are using GNU C" >&5
+echo "configure:1154: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1160: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1163: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1175: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1178: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:1232: checking how to run the C++ preprocessor" >&5
+echo "configure:1235: checking how to run the C++ preprocessor" >&5
if test -z "$CXXCPP"; then
if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
cross_compiling=$ac_cv_prog_cxx_cross
CXXCPP="${CXX-g++} -E"
cat > conftest.$ac_ext <<EOF
-#line 1245 "configure"
+#line 1248 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1250: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1253: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1281: checking for $ac_word" >&5
+echo "configure:1284: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1312: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:1315: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
ac_ext=C
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 1322 "configure"
+#line 1325 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1326: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
ac_cv_prog_cxx_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1346: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1349: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
cross_compiling=$ac_cv_prog_cxx_cross
echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:1351: checking whether we are using GNU C++" >&5
+echo "configure:1354: checking whether we are using GNU C++" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
yes;
#endif
EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1360: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1363: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gxx=yes
else
ac_cv_prog_gxx=no
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1375: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:1378: checking whether ${CXX-g++} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6
-echo "configure:1405: checking for FlexLexer.h" >&5
+echo "configure:1408: checking for FlexLexer.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1410 "configure"
+#line 1413 "configure"
#include "confdefs.h"
#include <FlexLexer.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1415: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1418: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6
-echo "configure:1465: checking whether explicit instantiation is needed" >&5
+echo "configure:1468: checking whether explicit instantiation is needed" >&5
if eval "test \"`echo '$''{'lily_cv_need_explicit_instantiation'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1470 "configure"
+#line 1473 "configure"
#include "confdefs.h"
template <class T> struct foo { static int baz; };
return foo<int>::baz;
; return 0; }
EOF
-if { (eval echo configure:1480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
lily_cv_need_explicit_instantiation=no
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1507: checking for $ac_word" >&5
+echo "configure:1510: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1549: checking for $ac_word" >&5
+echo "configure:1552: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1583: checking for $ac_word" >&5
+echo "configure:1586: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1650: checking for $ac_word" >&5
+echo "configure:1653: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1682: checking for $ac_word" >&5
+echo "configure:1685: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:1737: checking language" >&5
+echo "configure:1740: checking language" >&5
case "$language" in
En* | en* | Am* | am* | US* | us*)
lang=English;;
echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:1773: checking for gettext in -lintl" >&5
+echo "configure:1776: checking for gettext in -lintl" >&5
ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1781 "configure"
+#line 1784 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
gettext()
; return 0; }
EOF
-if { (eval echo configure:1795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
for ac_func in gettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1825: checking for $ac_func" >&5
+echo "configure:1828: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1830 "configure"
+#line 1833 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:1856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1888: checking for $ac_word" >&5
+echo "configure:1891: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
test -n "$MSGFMT" || MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh "
echo $ac_n "checking whether msgfmt accepts -o""... $ac_c" 1>&6
-echo "configure:1918: checking whether msgfmt accepts -o" >&5
+echo "configure:1921: checking whether msgfmt accepts -o" >&5
msgfmt_output="`msgfmt -o bla 2>&1 | grep usage`"
if test "$msgfmt_output" = ""; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking TeX/MF root dir directory""... $ac_c" 1>&6
-echo "configure:1971: checking TeX/MF root dir directory" >&5
+echo "configure:1974: checking TeX/MF root dir directory" >&5
find_root_prefix="$prefix"
echo $ac_n "checking MF input directory""... $ac_c" 1>&6
-echo "configure:2012: checking MF input directory" >&5
+echo "configure:2015: checking MF input directory" >&5
find_dirdir=`(cd $find_texprefix;
$FIND ./ -type d -a -name source -print |sort|head -1|sed 's#^\./##')`
echo $ac_n "checking TeX input directory""... $ac_c" 1>&6
-echo "configure:2037: checking TeX input directory" >&5
+echo "configure:2040: checking TeX input directory" >&5
find_dirdir=`(cd $find_texprefix;
$FIND ./ -type d -a -name tex -print |sort|head -1|sed 's#^\./##')`
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2068: checking for $ac_word" >&5
+echo "configure:2071: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2102: checking for $ac_word" >&5
+echo "configure:2105: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2HTML'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2136: checking for $ac_word" >&5
+echo "configure:2139: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2LATEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2169: checking for $ac_word" >&5
+echo "configure:2172: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2MAN'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2203: checking for $ac_word" >&5
+echo "configure:2206: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2MSLESS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2237: checking for $ac_word" >&5
+echo "configure:2240: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2TEXINFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2271: checking for $ac_word" >&5
+echo "configure:2274: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2TXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:2330: checking for 8-bit clean memcmp" >&5
+echo "configure:2333: checking for 8-bit clean memcmp" >&5
if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_func_memcmp_clean=no
else
cat > conftest.$ac_ext <<EOF
-#line 2338 "configure"
+#line 2341 "configure"
#include "confdefs.h"
#ifdef __cplusplus
extern "C" void exit(int);
}
EOF
-if { (eval echo configure:2351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_func_memcmp_clean=yes
else
test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o"
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2369: checking for vprintf" >&5
+echo "configure:2372: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2374 "configure"
+#line 2377 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
; return 0; }
EOF
-if { (eval echo configure:2400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2424: checking for _doprnt" >&5
+echo "configure:2427: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2429 "configure"
+#line 2432 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
; return 0; }
EOF
-if { (eval echo configure:2455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
for ac_func in memmem snprintf vsnprintf gettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2482: checking for $ac_func" >&5
+echo "configure:2485: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2487 "configure"
+#line 2490 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:2513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2552: checking for $ac_word" >&5
+echo "configure:2555: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
s%@LN@%$LN%g
s%@LN_S@%$LN_S%g
s%@INSTALL@%$INSTALL%g
+s%@PATHSEP@%$PATHSEP%g
+s%@DIRSEP@%$DIRSEP%g
s%@DIR_DATADIR@%$DIR_DATADIR%g
s%@subdirs@%$subdirs%g
s%@CC@%$CC%g
% Toplevel initialisation file.
-\version "1.0.1";
+\version "1.0.3";
\include "declarations.ly"
\include "paper16.ly"
\score {
- \melodic {
+ \notes {
\maininput
}
\paper { \paper_sixteen
% Toplevel initialisation file.
-\version "1.0.1";
+\version "1.0.3";
\include "declarations.ly";
% Toplevel initialisation file.
-\version "1.0.1";
+\version "1.0.3";
\include "declarations.ly"
}
\score {
-% \melodic\relative c {
- \melodic {
+% \notes\relative c {
+ \notes {
\maininput
}
\paper {
% Toplevel initialisation file.
-\version "1.0.1";
+\version "1.0.3";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.0.1";
+\version "1.0.3";
\include "declarations.ly"
}
\score {
-% \melodic\relative c {
- \melodic {
+% \notes\relative c {
+ \notes {
\maininput
}
\paper {
% Toplevel initialisation file.
-\version "1.0.1";
+\version "1.0.3";
\include "declarations.ly"
\score {
- \melodic\relative c {
+ \notes\relative c {
\maininput
}
\paper { }
% Toplevel initialisation file.
-\version "1.0.1";
+\version "1.0.3";
\include "declarations.ly";
-\version "1.0.1";
+\version "1.0.3";
paper_sixteen = \paper {
staffheight = 16.0\pt;
\include "table13.ly";
\include "table16.ly";
-\version "1.0.1";
+\version "1.0.3";
paper_twenty = \paper {
staffheight = 20.0\pt;
-\version "1.0.2";
+\version "1.0.3";
-blah = \melodic {
+blah = \notes {
\transpose c'' {
\time 4/4;
Tested Features: example file with comments
%}
-\version "1.0.2";
+\version "1.0.3";
% the % is a comment.
% declare melody (which will be in *one* staff ) for the lead voice
-melodie = \melodic \relative c' {
+melodie = \notes \relative c' {
% switch Lilypond in note-mode
\clef"violin";
\time 2/4 ;
}
% more of this.
-begeleiding = \melodic \relative c {
+begeleiding = \notes \relative c {
\clef "bass";
\time 2/4 ;
% \lbheel \lbheel \lfheel \lftoe
% \rbheel \rbtoe \rfheel \rftoe
-\version "1.0.2";
+\version "1.0.3";
\score{
- \melodic {
+ \notes {
\time 4/4;
\key D;
\clef bass;
* organ staff...
%}
-\version "1.0.2";
+\version "1.0.3";
-praeludium_commands = \melodic {
+praeludium_commands = \notes {
\time 4/4;
\key e;
}
-praeludium_right = \melodic\transpose c'' {
+praeludium_right = \notes\transpose c'' {
\$praeludium_commands
\clef violin;
% 16
}
-praeludium_left = \melodic {
+praeludium_left = \notes {
\$praeludium_commands
\clef bass;
% 16
}
-praeludium_pedal = \melodic {
+praeludium_pedal = \notes {
\$praeludium_commands
\clef bass;
}
-fuga2_commands = \melodic{
+fuga2_commands = \notes{
\time 3/4;
\key e; % E-major
}
-fuga2_right = \melodic\transpose c'' {
+fuga2_right = \notes\transpose c'' {
\$fuga2_commands
\clef violin;
% 19
}
-fuga2_left = \melodic {
+fuga2_left = \notes {
\$fuga2_commands
\clef bass;
% 19
}
-fuga2_pedal = \melodic {
+fuga2_pedal = \notes {
\$fuga2_commands
\clef bass;
% 19
}
-breakmusic = \melodic {
+breakmusic = \notes {
%\time 4/4;
r1
}
-\version "1.0.2";
+\version "1.0.3";
-ritme = \melodic\transpose c'' {
+ritme = \notes\transpose c'' {
\partial 8;
\time 4/4;
another =
- \melodic{ \time 4/4;
+ \notes{ \time 4/4;
c1. c1. c4 c4 c4 c4 \time 4/4; c1 c1 c1
}
yanother =
- \melodic{ \time 4/4;
+ \notes{ \time 4/4;
c1 c1 c1 c4 c4 c4 c4 c1 c1 c1
}
% scales with accents.
%
-\version "1.0.2";
-blah = \melodic {
+\version "1.0.3";
+blah = \notes {
\time 6/8;
\transpose c {
\clef "bass";
\score{
- \melodic {\blah}
+ \notes {\blah}
\paper{
castingalgorithm = \Wordwrap;
}
-\version "1.0.2";
+\version "1.0.3";
-blah = \melodic{ \transpose c'' {
+blah = \notes{ \transpose c'' {
c,4 ->-.-\fermata-"text"
c ->-.-\fermata-"text"
+\version "1.0.3";
\score{
- \melodic \transpose c'''{
+ \notes \transpose c'''{
\stemup
% \stemdown
% default abbreviations
-onestaff = \type Staff = foo\melodic {
+\version "1.0.3";
+
+onestaff = \type Staff = foo\notes {
\property Staff.instr = instr
\property Staff.instrument = instrument \mark "B";
c1 \mark "A"; \break c2 c2 \break
}
-grstaff = \melodic \type GrandStaff <
+grstaff = \notes \type GrandStaff <
\type Staff = bar {
\property Staff.instr = instr
+\version "1.0.3";
+
\score{
- \melodic\transpose c''{
+ \notes\transpose c''{
\property Score.beamquantisation = 3 % TEST
[c8 c] [c c] [c c] [c c]
TestedFeatures = "beams and beamflags";
}
-\version "1.0.2";
+\version "1.0.3";
\score{
<
% \property Score.beamquantisation = \none
\type GrandStaff <
- \melodic\transpose c' {
+ \notes\transpose c' {
\time 8/4;
\stemup [c8 c'' a' f']
}
>
<
- \melodic {
+ \notes {
\transpose c' {
\time 8/4;
\stemdown [a'8 a, c e]
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.2";
+\version "1.0.3";
-shortlong = \melodic{
+shortlong = \notes{
c4()c( c c |
c c c c |
c c c c |
c c c )c |
}
-broken = \melodic\transpose c''{
+broken = \notes\transpose c''{
c c c c()
c c c c(
}
\score{
- \melodic{
+ \notes{
% \shortlong
\broken
}
+\version "1.0.3";
+
\score {
- \melodic{
+ \notes{
\clef "violin"; c'1^"{violin}" \bar "||";
\clef "french";c'1^"{french}" \bar "||";
\clef "soprano";c'1^"{soprano}" \bar "||";
copyright = "public domain";
Tested = "test the Collision resolution ";
}
-\version "1.0.2";
+\version "1.0.3";
-two_voice = \melodic
+two_voice = \notes
\type Staff <
{ \stemdown
c4 d e f g2~ g4 a [c8 d e f] c2| }
>
-two_voice_steminvert = \melodic
+two_voice_steminvert = \notes
\type Staff <
{
\stemup
>
-three_voice = \melodic
+three_voice = \notes
\type Staff <
{ \stemup
g4 f e f g a g2 }
>
-rests = \melodic
+rests = \notes
\type Staff <
{ \stemup
| r8 r r r r r r r
}
>
-restsII = \melodic {
+restsII = \notes {
\type Staff <
{ \stemup g' f' e' d' c' b a g f e d c }
{ \stemdown r r r r r r r r r r r r }
}
\score{
- \melodic \transpose c' { \two_voice
+ \notes \transpose c' { \two_voice
\two_voice_steminvert
\three_voice
\rests
+\version "1.0.3";
+
\score {
- \melodic {
+ \notes {
\property Staff.barAlways = "1"
\property Staff.defaultBarType = ":|:"
c4 c4 c4 c4 }
\include "paper20.ly"
-\version "1.0.2";
+\version "1.0.3";
oden = \lyric{
O8 |
licht8. ge-16 spreid.4 _8
}
-oboom = \melodic\transpose c''{
+oboom = \notes\transpose c''{
g,8 |
c8. c16 c4. d8 |
e8. e16 e4. e8 |
d8. c16 c4 r8
}
-bos = \melodic\transpose c''{
+bos = \notes\transpose c''{
g8 |
g e a4. g8 |
g8. f16 f4 r8 f8 |
f8. e16 e4 r8
}
-global = \melodic{
+global = \notes{
\time 3/4;
\partial 8;
\skip 4*48;
\bar "|.";
}
-melody = \melodic{
+melody = \notes{
\oboom
\oboom
\bos
\melody
>
-$verse_one = \melodic{
+$verse_one = \notes{
\oden
\oden
\ikheb
\$verse_one
>
-$verse_two = \melodic{
+$verse_two = \notes{
\oden
\oden
\ugloeit
+\version "1.0.3";
+
\score{
- \melodic{
+ \notes{
c( d e )c |
\slurdotted;
c( d e )c |
+\version "1.0.3";
+
\score{
- \melodic \relative c {
+ \notes \relative c {
c d c f c g c b, c g, c f, c c'' c
% run with find-quarts should suggest:
% c d c f c g' c, b c g c f, c' c'' c,,
-\version "1.0.2";
+\version "1.0.3";
-FontBody= \melodic\transpose c''{
+FontBody= \notes\transpose c''{
\bar "|:";
\time 4/4;
\type Staff < { \stemup e'\longa a\breve | }
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.2";
+\version "1.0.3";
\include "font-body.ly"
\score{
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.2";
+\version "1.0.3";
\include "font-body.ly"
\score{
TestedFeatures = "This file tests some nasty Gourlay spacings";
}
-\version "1.0.2";
+\version "1.0.3";
%{
%}
\score{
- \melodic \type Staff \transpose c''<
+ \notes \type Staff \transpose c''<
{ \stemup; d2 d | d d | d4 d2. | \break; c1 }
\transpose c, { \stemdown; g4 g g g | \[2/3 g2 g2 g2 \] | g4. g8 g2 | c1 }
>
+\version "1.0.3";
+
\include "table13.ly";
\include "table16.ly";
\score{
<
- \type Staff = a \melodic\relative c <
+ \type Staff = a \notes\relative c <
% {\grace b''8 \graceat a4 \ecarg g fis2 | a2 a }
{\tiny b''8*1/16 \normalsize a4*31/32 g fis2 | a2 a }
>
- \type Staff = b \melodic\relative c <
+ \type Staff = b \notes\relative c <
% {\grace g''16 b16 \graceat a4 \ecarg g fis2 | }
{\tiny g''16*1/16 b16*1/16 \normalsize a4*31/32 g fis2 | a1 }
>
- \type Staff = c \melodic\relative c <
+ \type Staff = c \notes\relative c <
% {\grace [2/48 g''16 b g]/1 \graceat a4 \ecarg g fis2 | a1 }
{\tiny [2/48 g''16 b g]/1 \normalsize a4*31/32 g fis2 | a1 }
>
+\version "1.0.3";
-toeter_i = \melodic\relative c {
+toeter_i = \notes\relative c {
\property Staff.instrument = "Toeters"
\property Staff.instr = "Ttr."
c'''4 c c c \break
g g g g
}
-toeter_ii = \melodic \relative c {
+toeter_ii = \notes \relative c {
c''4 c c c \break
d d d d \break
R1 \break
>
>
-zager = \type Staff = zager \melodic \relative c {
+zager = \type Staff = zager \notes \relative c {
\clef bass;
\property Staff.instrument = "Zager"
\property Staff.instr = "Zag."
f e d c
}
-zoger = \type Staff = zoger \melodic \relative c {
+zoger = \type Staff = zoger \notes \relative c {
\clef bass;
\property Staff.instrument = "Zoger"
\property Staff.instr = "Zog."
+\version "1.0.3";
+
%{
test key itemv breaking
%}
\score {
- \melodic
+ \notes
{
\key bes; c1 \key c; c1
\break
-\version "1.0.2";
+\version "1.0.3";
\score{
- \melodic\relative c'{
+ \notes\relative c'{
[c16 \stemdown c'' \stemboth c,, d]
\stemdown [d'' a \stemboth c,, g,]
\stemup [g c' \stemboth a'' d']
-global = \melodic {
+\version "1.0.3";
+
+global = \notes {
s1 | \mark "A";
s1*2 | \mark "'12";
}
-one = \melodic\relative c{
+one = \notes\relative c{
c'' c c c
c c c c
c c c c
}
-two = \melodic\relative c{
+two = \notes\relative c{
b' b b b
b b b b
b b b b
-voice_one = \melodic\transpose c' { \stemup
+\version "1.0.3";
+
+voice_one = \notes\transpose c' { \stemup
R1 * 2 | f'4-. r r2 | R1 * 3 |
f'4-. r r2 | R1 * 3 |
es'4-. r r2 | r1 |
r2 r4 g4-. |
}
-voice_two = \melodic
+voice_two = \notes
{ \transpose c, { \stemdown
R1 * 2 | f'4-. r r2 | R1 * 3 |
f'4-. r r2 | R1 * 3 |
}}
-\score { \melodic
+\score { \notes
\type Staff <
\$voice_two
\$voice_one
+\version "1.0.3";
+
\score {
-\melodic { c1 c1 < {\clef "treble"; c1 c1 } \type Staff=stb{ c1 c1}>}
+
+\notes { c1 c1 < {\clef "treble"; c1 c1 } \type Staff=stb{ c1 c1}>}
}
-onestaff = \type Staff = foo\melodic {
+\version "1.0.3";
+
+onestaff = \type Staff = foo\notes {
\property Staff.instr = instr
\property Staff.instrument = instrument \mark "B"; c1 \mark "A"; \break c2 c2 \break }
-grstaff = \melodic \type GrandStaff <
+grstaff = \notes \type GrandStaff <
\type Staff = bar {
\property Staff.instr = instr
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.2";
+\version "1.0.3";
-shortlong = \melodic{
+shortlong = \notes{
c4()c( c c |
c c c c |
c c c c |
c c c )c |
}
-dirs = \melodic\transpose c' {
+dirs = \notes\transpose c' {
c'1() g' () c () g () c |
}
-complex = \melodic{
+complex = \notes{
\transpose c'{
c,16( e,( g,( b,( d( f( a( c'())))))))c4 c4 |}
\transpose c'''{
c,16( a( f( d( b,( g,( e,( c,())))))))c4 c4 |}
}
-over = \melodic\transpose c'{
+over = \notes\transpose c'{
e( g' g' )e
e( c'' f )e
}
-under = \melodic\transpose c'{
+under = \notes\transpose c'{
\stemdown
f'( \stemboth d d \stemdown )f'
f'( e, f )f'
}
-eccentric = \melodic\transpose c'{
+eccentric = \notes\transpose c'{
\stemup
\[4/7 f( a' f f f f )f \] |
\[4/7 e'( e' e' e' e' c )e' \] |
}
-tiltup = \melodic\transpose c'{
+tiltup = \notes\transpose c'{
e( c'' c'' )e'
\stemup
e( c'' c'' )e'
f'( a, a, )f''
}
-tiltdown = \melodic\transpose c'{
+tiltdown = \notes\transpose c'{
e'( c'' c'' )e
\stemup
e'( c'' c'' )e
f''( a, a, )f'
}
-broken = \melodic\transpose c''{
+broken = \notes\transpose c''{
c c c c()
c c c c(
c )c c c(
f,( c c )f,
}
-blend = \melodic\transpose c'{
+blend = \notes\transpose c'{
e( c'' c'' )e
\stemup
f'( c'' c'' )f'
}
-bug = \melodic\transpose c'{
+bug = \notes\transpose c'{
a()g( f )e
b'()a'( g' )f'
c' () b () c' c'
}
-clipping = \melodic\transpose c'{
+clipping = \notes\transpose c'{
\stemboth
c( c''' c''')c
c( c''' c )c''
}
\score{
- \melodic{
+ \notes{
% use blend for fast check
\blend
% {
+\version "1.0.3";
+
% bug
% excentric slur can't handle this ...
\score{
- \melodic{
+ \notes{
\stemdown
\[4/5c8( c f,, c c\]1/1 c c c )c |
}
% test damping
-\version "1.0.2";
+\version "1.0.3";
\score{
- \melodic\relative c'{
+ \notes\relative c'{
c'()b' ~ b, c
c c c c
+\version "1.0.3";
+
% urg, the direction of the slur gets swapped!
\score{
- \melodic\relative c{
+ \notes\relative c{
\slurup
\stemup
[e'8( c' a b]
-\version "1.0.2";
+\version "1.0.3";
\score{
- \melodic\transpose c'{
+ \notes\transpose c'{
c,4 ~ c, c'' ~ c'' ~ g ~ c ~
d ~ e ~ f ~ g ~
TestedFeatures = "This file tests various spacings";
}
-\version "1.0.2";
+\version "1.0.3";
-multipart = \melodic{
+multipart = \notes{
\type StaffGroup <
{
c4
>
}
-singlepart = \melodic{
+singlepart = \notes{
c4 d e f
c4 d e [f8 f]
c4 d e f8 [f16 f]
}
\score{
- \melodic {
+ \notes {
% \singlepart
\multipart
}
}
-\version "1.0.2";
+\version "1.0.3";
-beamintervals = \melodic{
+beamintervals = \notes{
\time 7/4;
\stemup
\transpose c'{
}}
\score{
- \melodic\transpose c'{
+ \notes\transpose c'{
\stemup
\time 17/4;
g,4 a, b, c d e f g a b c' d' e' f' g' a' b' |
+\version "1.0.3";
+
$somewhat_long = \lyric{
\textstyle "roman" ;
AaaaaaA2
\$quite_long
>
-melody = \melodic
+melody = \notes
\transpose c'{
c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4
c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4
+\version "1.0.3";
+
% middle tie is wrong
\score{
- \melodic\relative c'{
+ \notes\relative c'{
{ <c4 e g~ > <d f a>
}
}}
-tie = \melodic\transpose c''{
+\version "1.0.3";
+
+tie = \notes\transpose c''{
e4 ~ e e e ~ |
e ~ a a a ~ |
instrument= "Instrument";
}
-\version "1.0.2";
+\version "1.0.3";
\score{
- \melodic
+ \notes
\relative c'{
c' d e f f e d c \break
c d e f f e d c
\score{
- \melodic
+ \notes
\relative c' {
f' e d c c d e f \break
f e d c c d e f
}
-\version "1.0.2";
+\version "1.0.3";
-vOne = \melodic \relative c''{
+vOne = \notes \relative c''{
\clef"violin";
\key d;
\time 2/4 ;
c4 c |
}
-vTwo = \melodic \relative c''\transpose d' { \vOne }
+vTwo = \notes \relative c''\transpose d' { \vOne }
-vThree = \melodic \relative c''{
+vThree = \notes \relative c''{
\clef"violin";
\keysignature fis cis;
\time 2/4 ;
cis4 ais4 |
}
-vFour = \melodic \relative c''\transpose d' \vThree
+vFour = \notes \relative c''\transpose d' \vThree
\score {
\type StaffGroup <
+\version "1.0.3";
+
\score {
-\melodic <
+\notes <
\type GrandStaff < {
\property GrandStaff . maxVerticalAlign = "60."
\property GrandStaff . minVerticalAlign = "35."
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.0.2";
+\version "1.0.3";
\score{
- \melodic{
+ \notes{
c-\prall c-\mordent c-\prallprall c-\prallmordent
c-\upprall c-\downprall
}
Tested Features lyrics and chords
%}
-\version "1.0.2";
+\version "1.0.3";
-melodie = \melodic\relative c {
+melodie = \notes\relative c {
\clef"violin";
\time 2/4 ;
}
\score {
- < \melodic \type Staff \melodie
+ < \notes \type Staff \melodie
\lyric \type Lyrics \text
>
\paper { }
Tested Features: lyrics, interleaving lyrics and staffs
%}
-\version "1.0.2";
+\version "1.0.3";
-melody = \melodic \relative c'' {
+melody = \notes \relative c'' {
\clef violin;
\property Staff.instrument = "alto sax"
f f | e e | d d8.( e16 | )c2 |
}
-accompany = \melodic \relative c {
+accompany = \notes \relative c {
\clef "bass";
c4 c' | e c | f c | e c |
d b | c a | f g | c,2 |
d b | c a | f g | c,2
}
-global = \melodic {
+global = \notes {
\time 2/4;
\skip 2*24;
\bar ":|";
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=0
-PATCH_LEVEL=8
-MY_PATCH_LEVEL=jcn3
+PATCH_LEVEL=9
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
int size_i_;
// ugh: no protection. Denk na, Vrij Veilig
- void calcalute_dependencies (int final, int busy, Score_element_method_pointer funcptr);
+ void calculate_dependencies (int final, int busy, Score_element_method_pointer funcptr);
protected:
/**
Music_list::Music_list (Music_list const &s)
- : Pointer_list<Music*> (s)
+ : Pointer_list<Music*> ()
{
for (PCursor<Music*> i(s.top()); i.ok (); i++)
add_music (i->clone());
{"duration", DURATION},
{"font", FONT},
{"grouping", GROUPING},
+ {"header", HEADER},
{"in", IN_T},
{"lyric", LYRIC},
{"key", KEY},
{"keysignature", KEYSIGNATURE},
{"mark", MARK},
- {"melodic" , MELODIC},
{"musicalpitch", MUSICAL_PITCH},
{"time", TIME_T},
{"midi", MIDI},
{"mm", MM_T},
- {"multi", MULTI},
- {"header", HEADER},
{"notenames", NOTENAMES},
+ {"notes" , NOTES},
{"octave", OCTAVE},
{"output", OUTPUT},
{"partial", PARTIAL},
{"script", SCRIPT},
{"shape", SHAPE},
{"skip", SKIP},
- {"staff", STAFF},
{"table", TABLE},
{"spandynamic", SPANDYNAMIC},
{"symboltables", SYMBOLTABLES},
// mmm
-Mudela_version oldest_version ("1.0.1");
-Mudela_version version ("1.0.2");
+Mudela_version oldest_version ("1.0.3");
+Mudela_version version ("1.0.3");
// needed for bison.simple's malloc() and free()
#define THIS ((My_lily_parser *) my_lily_parser_l)
#define yyerror THIS->parser_error
+#define ARRAY_SIZE(a,s) if (a.size () != s) THIS->parser_error (_f("expecting %d arguments", s))
+
%}
%token MARK
%token MUSIC
%token MUSICAL_PITCH
-%token MELODIC
+%token NOTES
%token MIDI
%token TIME_T
%token MM_T
-%token MULTI
+
%token NOTENAMES
%token OCTAVE
%token OUTPUT
%token SHAPE
%token SKIP
%token SPANDYNAMIC
-%token STAFF
+
%token START_T
%token SYMBOLTABLES
%token TABLE
%type <duration> steno_duration notemode_duration
%type <duration> entered_notemode_duration explicit_duration
%type <interval> dinterval
-%type <intvec> intastint_list
+%type <intvec> intastint_list int_list
%type <lookup> symtables symtables_body
%type <pitch> explicit_musical_pitch steno_musical_pitch musical_pitch absolute_musical_pitch
midi_body: /* empty */ {
$$ = THIS->default_midi_p ();
}
+ | MIDI_IDENTIFIER {
+ $$ = $1-> access_Midi_def ();
+ }
| midi_body STRING '=' translator_spec {
$$-> assign_translator (*$2, $4);
delete $2;
| Sequential_music { $$ = $1; }
| transposed_music { $$ = $1; }
| MUSIC_IDENTIFIER { $$ = $1->access_Music (); }
- | MELODIC
+ | NOTES
{ THIS->lexer_p_->push_note_state (); }
Music
{ $$ = $3;
;
explicit_musical_pitch:
- MUSICAL_PITCH '{' int int int '}' {/* ugh */
+ MUSICAL_PITCH '{' int_list '}' {/* ugh */
+ Array<int> &a = *$3;
+ ARRAY_SIZE(a,3);
$$ = new Musical_pitch;
- $$->octave_i_ = $3;
- $$->notename_i_ = $4;
- $$->accidental_i_ = $5;
+ $$->octave_i_ = a[0];
+ $$->notename_i_ = a[1];
+ $$->accidental_i_ = a[2];
+ delete &a;
}
;
+
musical_pitch:
steno_musical_pitch
| explicit_musical_pitch
explicit_duration:
- DURATION '{' int unsigned '}' {
+ DURATION '{' int_list '}' {
$$ = new Duration;
- $$-> durlog_i_ = $3;
- $$-> dots_i_ = $4;
+ Array<int> &a = *$3;
+ ARRAY_SIZE(a,2);
+
+ $$-> durlog_i_ = a[0];
+ $$-> dots_i_ = a[1];
+
+ delete &a;
}
;
}
;
+
+int_list:
+ /**/ {
+ $$ = new Array<int>
+ }
+ | int_list int {
+ $$->push ($2);
+ }
+ ;
+
unsigned:
UNSIGNED {
$$ = $1;
void
-Score_element::calcalute_dependencies (int final, int busy,
+Score_element::calculate_dependencies (int final, int busy,
Score_element_method_pointer funcptr)
{
if (status_i_ >= final)
status_i_= busy;
for (int i=0; i < dependency_size(); i++)
- dependency (i)->calcalute_dependencies (final, busy, funcptr);
+ dependency (i)->calculate_dependencies (final, busy, funcptr);
Link_array<Score_element> extra (get_extra_dependencies());
for (int i=0; i < extra.size(); i++)
- extra[i]->calcalute_dependencies (final, busy, funcptr);
+ extra[i]->calculate_dependencies (final, busy, funcptr);
invalidate_cache (X_AXIS);
invalidate_cache (Y_AXIS);
void
Super_element::pre_processing ()
{
- calcalute_dependencies (PRECALCING, PRECALCED, &Score_element::do_pre_processing);
+ calculate_dependencies (PRECALCING, PRECALCED, &Score_element::do_pre_processing);
}
void
Super_element::space_processing ()
{
- calcalute_dependencies (SPACING, SPACED, &Score_element::do_space_processing);
+ calculate_dependencies (SPACING, SPACED, &Score_element::do_space_processing);
}
/* for break processing, use only one status, because copies have to
void
Super_element::breakable_col_processing ()
{
- calcalute_dependencies (PREBROKEN, PREBROKEN, &Score_element::do_breakable_col_processing);
+ calculate_dependencies (PREBROKEN, PREBROKEN, &Score_element::do_breakable_col_processing);
}
void
Super_element::break_processing ()
{
- calcalute_dependencies (BROKEN, BROKEN, &Score_element::do_break_processing);
+ calculate_dependencies (BROKEN, BROKEN, &Score_element::do_break_processing);
}
void
Super_element::post_processing ()
{
- calcalute_dependencies (POSTCALCING, POSTCALCED, &Score_element::do_post_processing);
+ calculate_dependencies (POSTCALCING, POSTCALCED, &Score_element::do_post_processing);
}
void
Super_element::output_all ()
{
pscore_l_->outputter_l_->start_line ();
- calcalute_dependencies (BREWING, BREWED, &Score_element::do_brew_molecule);
+ calculate_dependencies (BREWING, BREWED, &Score_element::do_brew_molecule);
pscore_l_->outputter_l_->stop_line ();
}
void
Super_element::unlink_all ()
{
- calcalute_dependencies (UNLINKING, UNLINKED, &Score_element::junk_links);
+ calculate_dependencies (UNLINKING, UNLINKED, &Score_element::junk_links);
}
1.0.8.uu1
1.0.8
1.0.8.jcn1
-1.0.8.jcn2
-1.0.8.jcn3
+1.0.8.uu1
+1.0.9
+
export PATH:=$(topdir)/lily/out:$(topdir)/buildscripts/out:$(PATH)
export MFINPUTS:=$(topdir)/mf/$(PATHSEP)$(MFINPUTS)$(PATHSEP)$(PATHSEP)
export TEXINPUTS:=$(topdir)/tex/$(PATHSEP)$(TEXINPUTS)$(PATHSEP)$(PATHSEP)
-export LILYINCLUDE=$(topdir)/init$(PATHSEP)$(topdir)/mf/out
+export LILYINCLUDE:=$(topdir)/init$(PATHSEP)$(topdir)/mf/out$(PATHSEP)$(LILYINCLUDE)
Begin3
Titel: LilyPond
-Versie: 1.0.8
-Inschrijf datum: 14SEP98
+Versie: 1.0.9
+Inschrijf datum: 17SEP98
Beschrijving: @FLAPTEKST@
Trefwoorden: muziek typezetten midi notatie
Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
janneke@gnu.org (Jan Nieuwenhuizen)
Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
- 770k lilypond-1.0.8.tar.gz
+ 770k lilypond-1.0.9.tar.gz
Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.0.8.tar.gz
+ 770k lilypond-1.0.9.tar.gz
Copi-eer voorwaarden: GPL
End
Begin3
Title: LilyPond
-Version: 1.0.8
-Entered-date: 14SEP98
+Version: 1.0.9
+Entered-date: 17SEP98
Description:
LilyPond is the GNU Project music typesetter. This program can print
beautiful sheet music from a music definition file. It can also play
janneke@gnu.org (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 770k lilypond-1.0.8.tar.gz
+ 770k lilypond-1.0.9.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.0.8.tar.gz
+ 770k lilypond-1.0.9.tar.gz
Copying-policy: GPL
End
Name: lilypond
-Version: 1.0.8
+Version: 1.0.9
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.0.8.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.0.9.tar.gz
Summary: A program for printing sheet music.
URL: http://www.cs.uu.nl/~hanwen/lilypond
Packager: Han-Wen Nienhuys <hanwen@cs.uu.nl>
%build
./configure --disable-checking --disable-debugging --enable-printing --prefix=/usr --enable-optimise --enable-shared --enable-tex-dir='${prefix}/lib/texmf/texmf/tex/generic' --enable-mf-dir='${prefix}/lib/texmf/texmf/fonts/source/'
make all
-make -C Documentation texinfo || true
+make -C Documentation info || true
make htmldoc
%install
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
\include "global.ly"
\include "violoncello.ly"
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
\include "global.ly"
\include "clarinetti.ly"
}
-\version "1.0.2";
+\version "1.0.3";
\include "clarinetto-1.ly"
\include "clarinetto-2.ly"
% urg: can't; only My_midi_lexer:<non-static> () parses pitch?
%\property Staff.transposing = "bes"
\property Staff.transposing = -3
- \melodic \type Voice=one <
+ \notes \type Voice=one <
\time 4/4;
\key F;
\$clarinetto1
}
-\version "1.0.2";
+\version "1.0.3";
-clarinetto1 = \melodic \relative c {
+clarinetto1 = \notes \relative c {
R1 *2 | d''4-.\ff r r2 | R1 *3 | e4-. r r2 | R1 *3 |
f4-. r r2 | r1 | f4-. r r2 | e4-. r r2 | R1 *4 |
bes'2\p_"\ \ \ cresc." ( a |
}
-\version "1.0.2";
+\version "1.0.3";
-clarinetto2 = \melodic \relative c {
+clarinetto2 = \notes \relative c {
R1*2 bes''4-.\ff r r2 | R1*3 | cis4-. r r2 | R1 *3 |
d4-. r r2 | r1 | d4-. r r2 | cis4-. r r2 | R1 *5 |
%20
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
\include "global.ly"
\include "contrabasso.ly"
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-contrabasso = \melodic \relative c {
+contrabasso = \notes \relative c {
% \translator Staff=violoncello
\skip 1*21;
% \translator Staff=contrabasso
\property Staff.instrument = "Contrabasso"
\property Staff.instr = "Cb."
\clef "bass";
- \melodic \type Voice=one<
+ \notes \type Voice=one<
\global
\$contrabasso
>
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
\include "global.ly"
$timpani_g = \type StaffGroup = timpani_group <
\$timpani_staff
- \type Staff = urgtimpany \melodic{ \skip 1*34; }
+ \type Staff = urgtimpany \notes{ \skip 1*34; }
>
$violini = \type GrandStaff = violini_group <
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
\include "global.ly"
\include "corni.ly"
}
-\version "1.0.2";
+\version "1.0.3";
\include "corno-1.ly"
\include "corno-2.ly"
% urg: can't; only My_midi_lexer:<non-static> () parses pitch?
%\property Staff.transposing = "es"
\property Staff.transposing = 3
- \melodic \type Voice=corni <
+ \notes \type Voice=corni <
\time 4/4;
\$corno1
\$corno2
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-corno1 = \melodic \relative c {
+corno1 = \notes \relative c {
R1 *2 | f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
c4-. r r2 | r1 | e4-. r r2 | e4-. r r2 | R1 *5 |
%20
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-corno2 = \melodic \relative c {
+corno2 = \notes \relative c {
R1 *2 | d''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
c4-. r r2 | r1 | e,4-. r r2 | e4-. r r2 | R1 *5 |
%20
}
-\version "1.0.2";
+\version "1.0.3";
\include "global.ly"
\include "fagotti.ly"
}
-\version "1.0.2";
+\version "1.0.3";
\include "fagotto-1.ly"
\include "fagotto-2.ly"
\property Staff.instrument = "2 Fagotti"
\property Staff.instr = "Fg."
\clef "bass";
- \melodic \type Voice=fagotti <
+ \notes \type Voice=fagotti <
\global
\$fagotto1
\$fagotto2
}
-\version "1.0.2";
+\version "1.0.3";
-fagotto1 = \melodic \relative c {
+fagotto1 = \notes \relative c {
R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
a4-. r r2 | r1 | c4-. r r2 | b4-. r r2 | R1 *5 |
%20
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-fagotto2 = \melodic \relative c {
+fagotto2 = \notes \relative c {
R1 *2 | f4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
fis4-. r r2 | r1 | g4-. r r2 | g4-. r r2 | R1 *5 |
%20
}
-\version "1.0.2";
+\version "1.0.3";
\include "global.ly"
\include "flauti.ly"
}
-\version "1.0.2";
+\version "1.0.3";
\include "flauto-1.ly"
\include "flauto-2.ly"
\property Staff.midi_instrument = "flute"
\property Staff.instrument = "2 Flauti"
\property Staff.instr = "Fl."
- \melodic \type Voice=flauti <
+ \notes \type Voice=flauti <
\global
\$flauto1
\$flauto2
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-flauto1 = \melodic \relative c {
+flauto1 = \notes \relative c {
R1 *2 | c'''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
es4-. r r2 | r1 | g4-. r r2 | b,4-. r r2 | R1 *4 |
r2 es\p_"\ \ \ cresc." ( |
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-flauto2 = \melodic \relative c {
+flauto2 = \notes \relative c {
R1 *2 | as'''4-.\ff r r2 | R1 *3 | b4-. r r2 | R1 *3 |
c4-. r r2 | r1 | es4-. r r2 | d,4-. r r2 | R1 *4 |
r2 r2 |
}
-\version "1.0.2";
+\version "1.0.3";
-global = \melodic {
+global = \notes {
\time 4/4;
\key es;
\skip 1*314;
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-oboe1 = \melodic \relative c'' {
+oboe1 = \notes \relative c'' {
R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
a4-. r r2 | r1 | g4-. r r2 | g4-. r r2 | R1 *4 |
as2\p_"\ \ \ cresc." ( g |
}
-\version "1.0.2";
+\version "1.0.3";
-oboe2 = \melodic \relative c{
+oboe2 = \notes \relative c{
R1 *2| f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
es4-. r r2 | r1 | es4-. r r2 | b4-. r r2 | R1 *5 |
%20
}
-\version "1.0.2";
+\version "1.0.3";
\include "global.ly"
\include "oboi.ly"
}
-\version "1.0.2";
+\version "1.0.3";
\include "oboe-1.ly"
\include "oboe-2.ly"
\property Staff.midi_instrument = "oboe"
\property Staff.instrument = "2 Oboi"
\property Staff.instr = "Ob."
- \melodic \type Voice=oboi <
+ \notes \type Voice=oboi <
\global
\$oboe1
\$oboe2
}
-\version "1.0.2";
+\version "1.0.3";
-timpani = \melodic \relative c {
+timpani = \notes \relative c {
R1 *2 | c4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
c4-. r r2 | r1 | g4-. r r2 | g4-. r r2 | R1 *5 |
%20
\property Staff.instrument = "2 Timpani (C-G)"
\property Staff.instr = "Timp."
\clef "bass";
- \melodic<
+ \notes<
% \global
\time 4/4;
\$timpani
}
-\version "1.0.2";
+\version "1.0.3";
\include "global.ly"
\include "trombe.ly"
}
-\version "1.0.2";
+\version "1.0.3";
\include "trombo-1.ly"
\include "trombo-2.ly"
\property Staff.midi_instrument = "trumpet"
\property Staff.instrument = "2 Trombe (C)"
\property Staff.instr = "Tbe."
- \melodic \type Voice=trombe <
+ \notes \type Voice=trombe <
% \global
\time 4/4;
\$trombo1
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-trombo1 = \melodic \relative c {
+trombo1 = \notes \relative c {
R1 *2 | c''4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
c4-. r r2 | r1 | g4-. r r2 | g4-. r r2 | R1 *5 |
%20
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-trombo2 = \melodic \relative c {
+trombo2 = \notes \relative c {
R1 *2 | c'4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
c4-. r r2 | r1 | g4-. r r2 | g4-. r r2 | R1 *5 |
%20
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-viola1 = \melodic \relative c {
+viola1 = \notes \relative c {
\type Voice=one
c'1\ff ~ | c | f,4-. r r2 | r1 |
% copied 3 bars from three back...
\property Staff.instrument = "Viola"
\property Staff.instr = "Vla."
\clef "alto";
- \melodic \type Voice=one <
+ \notes \type Voice=one <
\global
\$viola1
>
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-viola2 = \melodic \relative c {
+viola2 = \notes \relative c {
% starts on (actualy, most part is on) same staff as viola1
%urg, parse error
%urg \translator Staff=viola1
\property Staff.instrument = "Viola II"
\property Staff.instr = "Vla. II"
\clef "alto";
- \melodic \type Voice=one<
+ \notes \type Voice=one<
\global
\$viola2
>
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
\include "global.ly"
\include "viola-1.ly"
\property Staff.instrument = "Viola"
\property Staff.instr = "Vla."
\clef "alto";
- \melodic \type Voice=one <
+ \notes \type Voice=one <
\global
\$viola1
\$viola2
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
\include "global.ly"
\include "violino-1.ly"
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-violino1 = \melodic \relative c {
+violino1 = \notes \relative c {
c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
c1 ~ | c | <d4-. d'-. d'-.> r r2 | R1 |
c1 ~ | c | <es'4-. es'-.> r r2 | R1 |
\property Staff.midi_instrument = "violin"
\property Staff.instrument = "Violino I"
\property Staff.instr = "Vl. I"
- \melodic<
+ \notes<
\global
\$violino1
>
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
\include "global.ly"
\include "violino-2.ly"
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-violino2 = \melodic \relative c {
+violino2 = \notes \relative c {
c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
c1 ~ | c | <d4-. b'-. as'-.> r r2 | R1 |
c1 ~ | c | <fis4-. es'-. c'-.> r r2 | R1 |
\property Staff.midi_instrument = "violin"
\property Staff.instrument = "Violino II"
\property Staff.instr = "Vl. II"
- \melodic<
+ \notes<
\global
\$violino2
>
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
\include "global.ly"
\include "violoncello.ly"
}
-\version "1.0.2";
+\version "1.0.3";
-violoncello = \melodic \relative c {
+violoncello = \notes \relative c {
c1\ff ~ | c | f,4-. r r2 | r1 | c'1\ff ~ | c | f,4-. r r2 |
\property Staff.instr = "Vc. \& Cb."
r1 |
\property Staff.instrument = "Violoncello"
\property Staff.instr = "Vc."
\clef "bass";
- \melodic \type Voice=one<
+ \notes \type Voice=one<
\global
\$violoncello
>
piece = "Allemande";
}
-\version "1.0.2";
+\version "1.0.3";
-global = \melodic{
+global = \notes{
\time 4/4;
\partial 8*3;
\key es;
\bar ":|";
}
-hoyreEn = \melodic\relative c'''{
+hoyreEn = \notes\relative c'''{
% \partial 4.;
[as16 g f] |
[g16 d es b][c f es d][es b c g][as d c b] |
> s8
}
-venstreEn = \melodic\relative c{
+venstreEn = \notes\relative c{
\clef bass;
% \partial 4.;
r16 r8 |
copyright = "Public Domain";
}
-\version "1.0.2";
+\version "1.0.3";
-global = \melodic {
+global = \notes {
\time 4/4;
\key es;
\skip 1*7;
\bar "|.";
}
-hoyreOpp = \melodic\relative c'' {
+hoyreOpp = \notes\relative c'' {
\stemup
es4^"Grave adagio" r16 [es d. es32] f4 r16 [f16 f. g32] |
[as8. as16] [as16 g32 f g16. d32] es4 r16 [g g. as32] |
> g2
}
-hoyreNed = \melodic\relative c'' {
+hoyreNed = \notes\relative c'' {
\clef violin;
\stemdown
<c4 g> r16 [c b. c32] d4 r16 [d d. es32] |
g4 <c8 a> r <d2 b>
}
-venstreOpp = \melodic\relative c' {
+venstreOpp = \notes\relative c' {
\clef bass;
\stemup
<c4 g es> r <b as f d> r |
r <a es c> <g2 d>
}
-venstreNed = \melodic\relative c{
+venstreNed = \notes\relative c{
\stemdown
c4 r c r | r c c r | c r r c | c r r16 [c c. bes32] bes4 |
r16 [bes bes. as32] as4_"tr" g r16 [d' d. es32] |
r g g2
}
-andanteEn = \melodic\relative c''{
+andanteEn = \notes\relative c''{
[g16^"andante" c32 d es8~] [es16 d32 c es d c b] [c16 g as f] [g c g f] |
[es16 c'32 d es d c16] [g' c, as' c,] [b c d b] g16 r16 r8 |
%10
>
}
-andanteTo = \melodic\relative c{
+andanteTo = \notes\relative c{
%8
[c8 c'] [f, g] [es c] [es g] |
[c as] [es f] [g g,]
>
}
-allegroEn = \melodic\relative c''{
+allegroEn = \notes\relative c''{
%30
[g8^"allegro" g16 a] [b8 c d es] |
[f16 es d es] [f8 g as d,] |
{ \stemdown r8 r16 <a16 es> <g2 d> | <g es> }
>
}
-allegroTo = \melodic\relative c'{
+allegroTo = \notes\relative c'{
\clef bass;
%30
\type Staff <
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-one = \melodic\relative c {
+one = \notes\relative c {
\property Voice . textstyle = "italic"
r16\p_"legato"\< [g''-1( c-3 )e-5] r [g,-1( c )e]
r [g,( c )d] r [b-1( d-2 \!)g-5] |
\bar "|.";
}
-two = \melodic\relative c{
+two = \notes\relative c{
\property Voice . textstyle = "roman"
c4-5 e-3 g-\mordent^"(\\textsharp)" g,4 |
d'-\mordent-5 f-3 a-\mordent^"(\\textsharp)" a,4 |
\bar "|.";
}
-global = \melodic{
+global = \notes{
\time 4/4;
}
copyright = "public domain";
}
-\version "1.0.2";
-one = \melodic\relative c{
+\version "1.0.3";
+one = \notes\relative c{
\property Voice . textstyle = "italic"
r8\mf [c'-1( e-2 g-4] [e-2 c-1 bes'-5 g-3] |
[)a-4\< c,-1( f-2 a-4] [f c c'-5 a-3] |
\bar "|.";
}
-two = \melodic\relative c{
+two = \notes\relative c{
\type Staff <
{ \voiceone c1 ~ | c ~ | c }
{ \voicetwo c,1 ~ | c ~ | c }
\bar "|.";
}
-global = \melodic{
+global = \notes{
\time 4/4;
}
copyright = "public domain";
}
-\version "1.0.0";
+\version "1.0.3";
-one = \melodic \transpose c`` {
+one = \notes \transpose c`` {
\textstyle "italic";
%# s(^c@ ^es@ ^g@ ^\p(\<@ ^\!@ ^)\!@ ^\>@)
t(c,es,g,^\p(\<@,\!,^)\!@,\>)
\bar "|.";
}
-two = \melodic{
+two = \notes{
\clef bass;
% c4 r [g8-.(\ped )es-.\*] |
c4 r [g8-.( )es-.] |
\bar "|.";
}
-global = \melodic{
+global = \notes{
\meter 3/4;
\key es;
}
enteredby = "jcn";
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-one = \melodic\relative c{
+one = \notes\relative c{
\property Voice . textstyle = "italic"
r16\p_"legato"
\property Voice . textstyle = "finger"
\bar "|.";
}
-two = \melodic\relative c{
+two = \notes\relative c{
\property Voice . textstyle = "finger"
fis4-1( e8-2 a4 a4 gis8-2 |
) a8
\bar "|.";
}
-three = \melodic\relative c{
+three = \notes\relative c{
% \stemdown
d4-3 c-4 b e-3 |
a16 [a,-5\mf( cis-3 a-5] [d-2 e-1 fis-2 d-4]
[d a-2~] [a16 a-2 b cis-2] d2 |
}
-four = \melodic\relative c{
+four = \notes\relative c{
\skip 1*9;
% \stemup
% \property Voice.hshift = 1
d2 d2
}
-global = \melodic{
+global = \notes{
\time 4/4;
\key D;
}
enteredby = "jcn";
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-one = \melodic\relative c{
+one = \notes\relative c{
\property Voice . textstyle = "italic"
[d'8-1\p a'-5-"legato" f-3 d-1 a'-5 f-3] |
[d-1 a'-5 f-3 d-1 a'-5 f-3] |
}
-two = \melodic\relative c{
+two = \notes\relative c{
\clef "bass";
% [d32( cis )d8.] r4 r |
d4-\mordent r r |
\bar "|.";
}
-global = \melodic{
+global = \notes{
\time 3/4;
\key F;
}
enteredby = "jcn";
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
-one = \melodic\relative c{
+one = \notes\relative c{
\skip 1; |
\stemup
r4 d''2-5( cis4-4 |
\bar "|.";
}
-two = \melodic\relative c{
+two = \notes\relative c{
r16\p [d''-5( c-4 bes-3] [a-2 bes-3 f-1 g-2]
[a8.-\mordent bes16-1] [g8.-\prall f16-1] |
\stemdown
fis1-2
}
-three = \melodic\relative c{
+three = \notes\relative c{
\stemup
f2-1( e-2 |
\stemboth
\bar "|.";
}
-four = \melodic\relative c{
+four = \notes\relative c{
\stemdown
d2-3 cis-4 |
\skip 1*3; |
d,1-5
}
-global = \melodic{
+global = \notes{
\time 4/4;
\key F;
}
dotted slurs
%}
-\version "1.0.2";
+\version "1.0.3";
\include "allemande-urtext.ly";
-allemande_cello_global = \melodic{
+allemande_cello_global = \notes{
\time 4/4;
\key f;
\partial 16;
\bar ":|";
}
-allemande_cello_scripts = \melodic{
+allemande_cello_scripts = \notes{
}
allemande_cello_staff = \type Staff <
d = { \slurdotted }
comma = "\\sethuge\\ \\ ,";
-allemande_a = \melodic \relative c {
+allemande_a = \notes \relative c {
\voiceone a'16 |
[a8 bes16()a] \onevoice
[g()f e()d][d()cis d()e][a,8 \d bes16()g] |
\stemup [d,16 \stemboth d''(c!)a][bes!(g)e cis'][d a f d] d,8.
}
-allemande_b = \melodic \relative c {
+allemande_b = \notes \relative c {
\voicetwo
s16 |
% <d'8 g' f'> s8 s2. |
bes8.
}
-allemande = \type Staff \melodic<
+allemande = \type Staff \notes<
\$allemande_a
\$allemande_b
>
dotted slurs
%}
-\version "1.0.2";
+\version "1.0.3";
\include "allemande-urtext.ly";
-allemande_viola_global = \melodic{
+allemande_viola_global = \notes{
\time 4/4;
\key f;
\partial 16;
\bar ":|";
}
-allemande_viola_scripts = \melodic{
+allemande_viola_scripts = \notes{
}
allemande_viola_staff = \type Staff <
- \melodic \transpose c'' \$allemande
+ \notes \transpose c'' \$allemande
\$allemande_viola_global
\$allemande_viola_scripts
>
dotted slurs
%}
-\version "1.0.2";
+\version "1.0.3";
\include "courante-urtext.ly";
-courante_cello_global = \melodic{
+courante_cello_global = \notes{
\time 3/4;
\key f;
\partial 16;
\bar ":|";
}
-courante_cello_scripts = \melodic{
+courante_cello_scripts = \notes{
}
courante_cello_staff = \type Staff <
n = { \slurnormal }
d = { \slurdotted }
-courante_a = \melodic \relative c {
+courante_a = \notes \relative c {
d'16 |
[d a f a] [d, f g a]\d[bes()a bes()g] |
\voiceone <g4 a> s4 \onevoice \d[g16()f g()e] |
d,8.
}
-courante_b = \melodic \relative c {
+courante_b = \notes \relative c {
\voicetwo
\stemdown
s16 |
bes4 s s
}
-courante = \type Staff \melodic<
+courante = \type Staff \notes<
\$courante_a
\$courante_b
>
dotted slurs
%}
-\version "1.0.2";
+\version "1.0.3";
\include "courante-urtext.ly";
-courante_viola_global = \melodic{
+courante_viola_global = \notes{
\time 3/4;
\key f;
\partial 16;
\bar ":|";
}
-courante_viola_scripts = \melodic{
+courante_viola_scripts = \notes{
}
courante_viola_staff = \type Staff <
- \melodic \transpose c' \$courante
+ \notes \transpose c' \$courante
\$courante_viola_global
\$courante_viola_scripts
>
dotted slurs
%}
-\version "1.0.2";
+\version "1.0.3";
\include "gigue-urtext.ly";
-gigue_cello_global = \melodic{
+gigue_cello_global = \notes{
\time 3/8;
\key f;
\clef bass;
\bar ":|";
}
-gigue_cello_scripts = \melodic{
+gigue_cello_scripts = \notes{
}
gigue_cello_staff = \type Staff <
%
% urg, Thread is gone, try Voice
-% gigue_notes = \type Thread = gigue \melodic \relative c {
+% gigue_notes = \type Thread = gigue \notes \relative c {
-gigue_notes = \type Voice = gigue \melodic \relative c {
+gigue_notes = \type Voice = gigue \notes \relative c {
a'8 |
d,4 bes'8 | cis,4 g'8 | f16 e f g a8 |
d,4 d'8 | e,16(f)g8 bes | c,16(d)e8 c' | a16 g a bes c a |
d4
}
-gigue_b = \melodic \relative c {
+gigue_b = \notes \relative c {
\voicetwo
s8
s4.*14
<g4 e'>
}
-gb = \melodic { [s16 s s s s s] }
+gb = \notes { [s16 s s s s s] }
% urg, Thread is gone, try Voice
-% gigue_beams = \type Thread = gigue \melodic{
-gigue_beams = \type Voice = gigue \melodic{
+% gigue_beams = \type Thread = gigue \notes{
+gigue_beams = \type Voice = gigue \notes{
s8 |
s4. s4. \gb
s4. \gb \gb \gb
\gb \gb \gb
}
-gigue_a = \type Voice \melodic<
+gigue_a = \type Voice \notes<
\$gigue_notes
\$gigue_beams
>
-gigue = \melodic<
+gigue = \notes<
\$gigue_a
\$gigue_b
>
dotted slurs
%}
-\version "1.0.2";
+\version "1.0.3";
\include "gigue-urtext.ly";
-gigue_cello_global = \melodic{
+gigue_cello_global = \notes{
\time 3/8;
\key f;
\clef bass;
\bar ":|";
}
-gigue_cello_scripts = \melodic{
+gigue_cello_scripts = \notes{
}
gigue_cello_staff = \type Staff <
- \melodic \transpose c' \$gigue
+ \notes \transpose c' \$gigue
\$gigue_cello_global
\$gigue_cello_scripts
>
dotted slurs
%}
-\version "1.0.2";
+\version "1.0.3";
\include "menuetto-urtext.ly";
-menuetto_i_cello_global = \melodic{
+menuetto_i_cello_global = \notes{
\time 3/4;
\key f;
\clef bass;
\bar ":|";
}
-menuetto_i_cello_scripts = \melodic{
+menuetto_i_cello_scripts = \notes{
s2.
s8^"~"^1_2_4 s8 s4 s^4
s4^0_1 s_4 s
\header{ piece = "Menuetto I"; }
}
-menuetto_ii_cello_global = \melodic{
+menuetto_ii_cello_global = \notes{
\time 3/4;
\key D;
\clef bass;
But merging melodic and scripts doen't work too well yet (see viola_scripts).
%}
-menuetto_i_a = \melodic \relative c {
+menuetto_i_a = \notes \relative c {
<d2\f f a> bes'4 |
[bes8 a bes g] a4 |
<d,4 bes> g [f8 e] |
<d2. a d,> |
}
-menuetto_i_b = \melodic \relative c {
+menuetto_i_b = \notes \relative c {
\slurdotted
\skip 2.*1; |
<e8 c> \skip 8*5; |
}
% UGH, fix this like in sarabande
-menuetto_i_a_voice_urg = \melodic{
+menuetto_i_a_voice_urg = \notes{
\skip 2.*1; \voiceone
\skip 2.*1; \onevoice
\skip 2.*1; \voiceone
% \bar "|.";
}
-menuetto_i_a_voice_urg_urg = \melodic<
+menuetto_i_a_voice_urg_urg = \notes<
\$menuetto_i_a_voice_urg
\$menuetto_i_a
>
-menuetto_i_b_voice_urg = \melodic{
+menuetto_i_b_voice_urg = \notes{
\voicetwo
% urg urg, huh?
\skip 2.*8; \voicetwo
}
-menuetto_i_b_voice_urg_urg = \melodic<
+menuetto_i_b_voice_urg_urg = \notes<
\$menuetto_i_b_voice_urg
\$menuetto_i_b
>
-menuetto_i = \type Staff \melodic<
+menuetto_i = \type Staff \notes<
{ \$menuetto_i_a_voice_urg_urg }
{ \$menuetto_i_b_voice_urg_urg }
>
-menuetto_ii = \melodic \relative c {
+menuetto_ii = \notes \relative c {
\slurdotted
fis4^\trill [d8( e fis )g] |
a4 fis, a' |
dotted slurs
%}
-\version "1.0.2";
+\version "1.0.3";
\include "menuetto-urtext.ly";
-menuetto_i_viola_global = \melodic{
+menuetto_i_viola_global = \notes{
\time 3/4;
\key f;
\clef alto;
\bar ":|";
}
-menuetto_i_viola_scripts = \melodic{
+menuetto_i_viola_scripts = \notes{
s2.
s8^"~"^1_2_4 s8*5
s2.*5
}
menuetto_i_viola_staff = \type Staff <
- \melodic \transpose c' \$menuetto_i
+ \notes \transpose c' \$menuetto_i
\$menuetto_i_viola_global
% \$menuetto_i_viola_scripts
>
\header{ piece = "Menuetto I"; }
}
-menuetto_ii_viola_global = \melodic{
+menuetto_ii_viola_global = \notes{
\time 3/4;
\key D;
\clef alto;
}
menuetto_ii_viola_staff = \type Staff <
- \melodic \transpose c' \$menuetto_ii
+ \notes \transpose c' \$menuetto_ii
\$menuetto_ii_viola_global
% \$menuetto_ii_viola_scripts
>
dotted slurs
%}
-\version "1.0.2";
+\version "1.0.3";
\include "prelude-urtext.ly";
-prelude_cello_global = \melodic{
+prelude_cello_global = \notes{
\time 3/4;
\key f;
\clef bass;
\bar "|.";
}
-prelude_cello_scripts = \melodic{
+prelude_cello_scripts = \notes{
}
prelude_cello_staff = \type Staff <
%}
% urg, Thread is gone, try Voice
-% prelude_notes = \type Thread = prelude \melodic \relative c {
-prelude_notes = \type Voice = prelude \melodic \relative c {
+% prelude_notes = \type Thread = prelude \notes \relative c {
+prelude_notes = \type Voice = prelude \notes \relative c {
d8 f a4 ~ a16 f e d |
cis e g a bes4 ~ bes16 a g f |
e g bes cis e8. bes16 a16 g f e |
\voiceone <cis2. g> | <d f,> | <d e,> | <cis e,> | <d f,>
}
-prelude_b = \melodic \relative c {
+prelude_b = \notes \relative c {
\voicetwo
s2.*47
%48
a'2. a a a <a d,>
}
-% pat1 = \melodic { [s8 s]s4[s16 s s s] }
-pat1 = \melodic { [s16 s s s]s4[s16 s s s] }
-pat2 = \melodic { [s16 s s s][s8.s16][s s s s] }
-pat3 = \melodic { [s16 s s s][s8 s s s] }
+% pat1 = \notes { [s8 s]s4[s16 s s s] }
+pat1 = \notes { [s16 s s s]s4[s16 s s s] }
+pat2 = \notes { [s16 s s s][s8.s16][s s s s] }
+pat3 = \notes { [s16 s s s][s8 s s s] }
% of course, i just type pat1, and add the \ and the silly $ later
% urg, Thread is gone, try Voice
-% prelude_beams = \type Thread = prelude \melodic{
-prelude_beams = \type Voice = prelude \melodic{
+% prelude_beams = \type Thread = prelude \notes{
+prelude_beams = \type Voice = prelude \notes{
\$pat1
\$pat1
\$pat2
%{
properties, urg!
-fig1 = \melodic{ s16( s s )s }
-fig2 = \melodic{ s16( s ) s s }
-fig3 = \melodic{ s16 s( s )s }
-fig4 = \melodic{ s16( s s s s s s )s }
-fig5 = \melodic{ s8.()s16 }
+fig1 = \notes{ s16( s s )s }
+fig2 = \notes{ s16( s ) s s }
+fig3 = \notes{ s16 s( s )s }
+fig4 = \notes{ s16( s s s s s s )s }
+fig5 = \notes{ s8.()s16 }
%}
-fig1 = \melodic{ \slurnormal s16( s s )s }
-fig2 = \melodic{ \slurnormal s16( s ) s s }
-fig3 = \melodic{ s16 \slurnormal s( s )s }
-fig4 = \melodic{ \slurnormal s16( s s s s s s )s }
-fig5 = \melodic{ \slurnormal s8.()s16 }
+fig1 = \notes{ \slurnormal s16( s s )s }
+fig2 = \notes{ \slurnormal s16( s ) s s }
+fig3 = \notes{ s16 \slurnormal s( s )s }
+fig4 = \notes{ \slurnormal s16( s s s s s s )s }
+fig5 = \notes{ \slurnormal s8.()s16 }
% of course, i just type fig1, and add the \ and the silly $ later
% urg, Thread is gone, try Voice
-% prelude_slurs = \type Thread = prelude \melodic{
-prelude_slurs = \type Voice = prelude \melodic{
+% prelude_slurs = \type Thread = prelude \notes{
+prelude_slurs = \type Voice = prelude \notes{
s4 s4 \$fig3 |
\$fig1 s4 \$fig3 |
\$fig1 s4 \$fig3 |
s4 \$fig3 s4 |
}
-fig1 = \melodic{ \slurdotted s16( s s )s }
-fig2 = \melodic{ \slurdotted s16( s ) s s }
-fig3 = \melodic{ s16 \slurdotted s( s )s }
-fig4 = \melodic{ \slurdotted s16( s s s s s s )s }
-fig5 = \melodic{ \slurdotted s8.()s16 }
-fig6 = \melodic{ \slurdotted s16()s \slurdotted s()s }
+fig1 = \notes{ \slurdotted s16( s s )s }
+fig2 = \notes{ \slurdotted s16( s ) s s }
+fig3 = \notes{ s16 \slurdotted s( s )s }
+fig4 = \notes{ \slurdotted s16( s s s s s s )s }
+fig5 = \notes{ \slurdotted s8.()s16 }
+fig6 = \notes{ \slurdotted s16()s \slurdotted s()s }
% urg, Thread is gone, try Voice
-% prelude_suggested_slurs = \type Thread = prelude \melodic{
-prelude_suggested_slurs = \type Voice = prelude \melodic{
+% prelude_suggested_slurs = \type Thread = prelude \notes{
+prelude_suggested_slurs = \type Voice = prelude \notes{
\slurdotted
s2. |
s2. |
\$fig3 s2 |
}
-prelude_a = \type Voice \melodic<
+prelude_a = \type Voice \notes<
\$prelude_notes
\$prelude_beams
\$prelude_slurs
\$prelude_suggested_slurs
>
-prelude = \melodic<
+prelude = \notes<
\$prelude_a
\$prelude_b
>
dotted slurs
%}
-\version "1.0.2";
+\version "1.0.3";
\include "prelude-urtext.ly";
-prelude_viola_global = \melodic{
+prelude_viola_global = \notes{
\time 3/4;
\key f;
\clef alto;
\bar "|.";
}
-prelude_viola_scripts = \melodic{
+prelude_viola_scripts = \notes{
}
prelude_viola_staff = \type Staff <
- \melodic \transpose c' \$prelude
+ \notes \transpose c' \$prelude
\$prelude_viola_global
\$prelude_viola_scripts
>
dotted slurs
%}
-\version "1.0.2";
+\version "1.0.3";
\include "sarabande-urtext.ly";
-sarabande_cello_global = \melodic{
+sarabande_cello_global = \notes{
\time 3/4;
\key f;
\clef bass;
\bar ":|";
}
-sarabande_cello_scripts = \melodic{
+sarabande_cello_scripts = \notes{
}
sarabande_cello_staff = \type Staff <
%
% ugh, the non-shortened beamstems of voice in forced direction
% look ugly here!
-sarabande_a = \melodic \relative c {
+sarabande_a = \notes \relative c {
\voiceone \d[d8.()e16] e4.-\trill([d16 )e] |
f4. \onevoice [e8(d)c] |
[bes g']\n[f e16(f][g a bes)d,] |
d4 d,,2 |
}
-sarabande_b = \melodic \relative c {
+sarabande_b = \notes \relative c {
\voicetwo
% dispute
% d4 a2 |
}
-sarabande = \type Staff \melodic<
+sarabande = \type Staff \notes<
\$sarabande_a
\$sarabande_b
>
dotted slurs
%}
-\version "1.0.2";
+\version "1.0.3";
\include "sarabande-urtext.ly";
-sarabande_viola_global = \melodic{
+sarabande_viola_global = \notes{
\time 3/4;
\key f;
\clef alto;
\bar ":|";
}
-sarabande_viola_scripts = \melodic{
+sarabande_viola_scripts = \notes{
}
sarabande_viola_staff = \type Staff <
- \melodic \transpose c' \$sarabande
+ \notes \transpose c' \$sarabande
\$sarabande_viola_global
\$sarabande_viola_scripts
>
%{
%}
-\version "1.0.2";
+\version "1.0.3";
global =
- \melodic {
+ \notes {
\time 4/4; % should be \time C
}
tenor =
- \melodic \relative c' {
+ \notes \relative c' {
\clef "violin";
\stemdown
soprane =
- \melodic \relative c' {
+ \notes \relative c' {
\stemup
r1 |
}
alt =
- \melodic \relative c {
+ \notes \relative c {
\clef "bass";
}
bass =
- \melodic \relative c {
+ \notes \relative c {
\clef "bass";
\score {
- \melodic \type GrandStaff <
+ \notes \type GrandStaff <
\type Staff = one <
\global
\soprane
Tested Features: stem direction, multivoice, forced accidentals.
%}
-\version "1.0.2";
+\version "1.0.3";
\include "nederlands.ly" % for correct parsing of note names
-global = \melodic {
+global = \notes {
\time 4/4;
\keysignature bes es as;
\skip 1*31;
\bar "|."; |
}
-dux = \melodic \relative c'' {
+dux = \notes \relative c'' {
\clef violin;
\stemdown
}
-comes = \melodic \relative c'' {
+comes = \notes \relative c'' {
\stemup
r1 |
}
-bassdux = \melodic \relative c' {
+bassdux = \notes \relative c' {
\clef bass;
r1 |
copyright = "Public Domain";
}
-\version "1.0.2";
+\version "1.0.3";
global =
- \melodic {
+ \notes {
\time 4/4; % should be \time C
}
% should do programmable input.
soprane =
- \melodic \transpose c'' {
+ \notes \transpose c'' {
\clef "violin";
\type Staff <
}
bass =
- \melodic {
+ \notes {
\clef "bass";
\score {
- \melodic \type GrandStaff <
+ \notes \type GrandStaff <
<
\global
\soprane
-trebleIntro=\melodic \transpose c'' {
+trebleIntro=\notes \transpose c'' {
handymeasure(c' es d c)
handymeasure(as f e c)
handymeasure(b f es d)
handymeasure(as c B d)
}
-bassIntro = \melodic {
+bassIntro = \notes {
handymeasure(c g f es)
handymeasure(c as g f)
handymeasure(c as g f)
}
-middlepiece = \melodic
+middlepiece = \notes
{
\stemdown
[G B d]
Ugh.. Wish we had grace notes.... It adds another dimension to this
piece of music. %}
-\version "1.0.2";
+\version "1.0.3";
-cad = \melodic \relative c' {
+cad = \notes \relative c' {
\property Score.instrument = "french horn"
\type Staff {
\cadenza 1;
c4
}}
\score {
- \melodic { \cad }
+ \notes { \cad }
\midi { \tempo 4 = 90; }
\paper {
}
}
-\version "1.0.2";
+\version "1.0.3";
allegro =
- \melodic
+ \notes
\relative c'
{
\time 4/4;
}
-romanze = \melodic \relative c' {
+romanze = \notes \relative c' {
\key F;
\time 2/2;
\bar "|.";
}
-rondotheme = \melodic \relative c' {
+rondotheme = \notes \relative c' {
[c'8 c c] [c c c]
c4( cis8 )d r g,
[d'8 d d] [d d d]
e4.()d8 r r |
}
-lipbreaker = \melodic \relative c'
+lipbreaker = \notes \relative c'
{
r8 [g'-. g-.] [c()e g,-.]
[c()e g,-.] [c()e g,-.]
[c c c] [c c c]
}
-rondo = \melodic \relative c'
+rondo = \notes \relative c'
{
\partial 8;
g'8 |
definition below. --MB
%}
-\version "1.0.2";
+\version "1.0.3";
-vi1=\melodic \relative c'' {
+vi1=\notes \relative c'' {
\time 4/4;
[d8 d d d] d4 [a16 b c a] |
\bar "|.";
}
-vi2=\melodic \relative c'' {
+vi2=\notes \relative c'' {
\time 4/4;
r1 | r | r |
}
-bc=\melodic\transpose c'{
+bc=\notes\transpose c'{
\clef "bass";
\time 4/4;
copyright = "public domain";
latexheaders= "headers";
}
-\version "1.0.2";
+\version "1.0.3";
%{
Silly latex file dropped; use ly2dvi
\include "paper16.ly"
-hoboonestart = \melodic
+hoboonestart = \notes
\relative c'{
% ugh: cant copy: allegro/primo tempo
\property Voice . textstyle = "large"
\property Voice . textstyle = "italic"
}
-hobooneintro = \melodic \relative c'{
+hobooneintro = \notes \relative c'{
% \property Voice . textstyle = "roman"
% [es''16-.-"Allegro" es-. es-. es-.] [es8-. d-.] |
[)g8 r d'] r |
}
-hoboonemid = \melodic \relative c'{
+hoboonemid = \notes \relative c'{
[g'16-. g-. g-. g-.] [g8-. f-.] |
as2-> |
}
-hoboonesecondstart = \melodic \relative c'{
+hoboonesecondstart = \notes \relative c'{
% ugh: cant copy: allegro/primo tempo
\property Voice . textstyle = "large"
}
-hoboonelast = \melodic \relative c'{
+hoboonelast = \notes \relative c'{
% could transpose/copy from measure 19...
[d''16-.\p d-. d-. d-.] [d8-. c-.] |
es2-> |
g8-. r r4 |
}
-hoboone = \melodic {
+hoboone = \notes {
\hoboonestart
\hobooneintro
\hoboonemid
\hoboonelast
}
-global = \melodic{
+global = \notes{
\key es;
\time 2/4;
\skip 4*110;
copyright = "public domain";
}
-\version "1.0.2";
+\version "1.0.3";
\include "standchen.ly"
description = "A schubert song in 20 pt";
}
-\version "1.0.2";
+\version "1.0.3";
% fool make-website
% \include "standchen.ly";
Note: Original key F.
%}
-\version "1.0.2";
+\version "1.0.3";
-$vocal_verse1 = \melodic\relative c{
+$vocal_verse1 = \notes\relative c{
% ugh: treble/bass
% \clef treble;
% \clef violin;
c!2. |
}
-$vocal_through = \melodic\relative c{
+$vocal_through = \notes\relative c{
\property Voice.dynamicdir=1
g''8. g16 b8. b16 d8. d16 |
c4 b r |
mich!2 _4 |
}
-$treble_intro = \melodic\relative c{
+$treble_intro = \notes\relative c{
\clef violin;
% ugh: id like to type this!
%r8\pp [<g'-. c-.> <c-. es-.> <g-. c-.> <c-. es-.> <g-. c-.>] |
\break
}
-$treble_verse1 = \melodic\relative c{
+$treble_verse1 = \notes\relative c{
% \clef violin;
%5
r8 <[g' c> <c es> <g c> <c es> <g c]> |
<{[/3 f'8\f( e f]1/1 a4.-> )f8 } {\[/3 f' e f \]/1 a4. f8 } > |
}
-$treble_eentje = \melodic\relative c'{
+$treble_eentje = \notes\relative c'{
<e2 e'> <e4 g>|
<f2\mf as!(> <[as8.->( c> <)f16 )as]> |
<e4. g> <[e8-. g-.(> <e-. g-.> <e-. )g-.]> |
<e2. g> |
}
-$treble_through = \melodic\relative c'{
+$treble_through = \notes\relative c'{
<e2. e'> |
%61
R2. |
<g2.-\fermata e' g> |
}
-$bass_intro = \melodic\relative c{
+$bass_intro = \notes\relative c{
\clef bass;
\property Voice.dynamicdir=1
%1
<g2 g'> r4 |
}
-$bass_verse1 = \melodic\relative c{
+$bass_verse1 = \notes\relative c{
% \clef bass;
\property Voice.dynamicdir=1
%5
c,8 <[c' e g> <e g c> <c e g> <e g c> <c e g]> |
}
-$bass_eentje = \melodic\relative c{
+$bass_eentje = \notes\relative c{
\property Voice.dynamicdir=1
<c,8 c'> <[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]> |
c,8 <[e' g> <g c> <e g> <g c> <e g]> |
}
-$bass_through = \melodic\relative c{
+$bass_through = \notes\relative c{
\property Voice.dynamicdir=1
%61
<g,8^"cresc." g'> <[g' b d> <b d f> <g b d> <as!-> b-> d->> <b d f]> |
<c,2._\fermata g' c> |
}
-global = \melodic{
+global = \notes{
\time 3/4;
\key es;
\skip 4 * 12;
\$lyrics
>
-vocals = \melodic{
+vocals = \notes{
\property Voice.dynamicdir=UP
\skip 4 * 12;
\$vocal_verse1
% To get original, \transpose d'
% \transpose a gives a' to d'' (for basses, who sing an octave down)
<
- { \melodic \transpose a { \$vocal_staff } }
+ { \notes \transpose a { \$vocal_staff } }
\$lyric_staff
- { \melodic \transpose a { \$grand_staff } }
+ { \notes \transpose a { \$grand_staff } }
>
\include "score-paper.ly";
\midi{
version = '0.2'
-
import os
import sys
import __main__
conversions.append ((1,0,2), conv, '\header { key = concat + with + operator }\n')
+if 1:
+ def conv(lines):
+ newlines =[]
+ for x in lines:
+ x = regsub.gsub ('\\\\melodic', '\\\\notes',x)
+ newlines.append (x)
+ return newlines
+
+ conversions.append ((1,0,3), conv, '\melodic -> \notes\n')
+
+
############################
def get_conversions (from_version, to_version):
pass
def do_one_file (infile_name):
+ sys.stderr.write ('Processing `%s\' ... '% infile_name)
outfile_name = ''
if __main__.edit:
outfile_name = infile_name + '.NEW'
# -O is necessary to get inlining
OPTIMIZE=""
CXXFLAGS=${CXXFLAGS:-""}
+ CFLAGS=${CFLAGS:-""}
checking_b=yes
optimise_b=no
profile_b=no
AC_SUBST(LN_S)
AC_SUBST(INSTALL)
AC_DEFINE_UNQUOTED(DIRSEP, '${DIRSEP}')
- AC_SUBST(PATHSEP)
AC_DEFINE_UNQUOTED(PATHSEP, '${PATHSEP}')
+ AC_SUBST(PATHSEP)
+ AC_SUBST(DIRSEP)
AC_STEPMAKE_DATADIR
- cat >> confdefs.h <<EOF
+ cat >> confdefs.h <<EOF
#define DIRSEP '${DIRSEP}'
EOF
- cat >> confdefs.h <<EOF
+ cat >> confdefs.h <<EOF
#define PATHSEP '${PATHSEP}'
EOF
+
+
echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:952: checking language" >&5
+echo "configure:954: checking language" >&5
case "$language" in
En* | en* | Am* | am* | US* | us*)
lang=English;;
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:984: checking for $ac_word" >&5
+echo "configure:986: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1018: checking for $ac_word" >&5
+echo "configure:1020: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2HTML'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1052: checking for $ac_word" >&5
+echo "configure:1054: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2LATEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1085: checking for $ac_word" >&5
+echo "configure:1087: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2MAN'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1119: checking for $ac_word" >&5
+echo "configure:1121: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2MSLESS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1153: checking for $ac_word" >&5
+echo "configure:1155: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2TEXINFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1187: checking for $ac_word" >&5
+echo "configure:1189: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2TXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1242: checking for $ac_word" >&5
+echo "configure:1244: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
s%@LN@%$LN%g
s%@LN_S@%$LN_S%g
s%@INSTALL@%$INSTALL%g
+s%@PATHSEP@%$PATHSEP%g
+s%@DIRSEP@%$DIRSEP%g
s%@DIR_DATADIR@%$DIR_DATADIR%g
s%@YODL@%$YODL%g
s%@YODL2HTML@%$YODL2HTML%g
Begin3
Title: StepMake
-Version: 0.1.49
-Entered-date: 14SEP98
+Version: 0.1.50
+Entered-date: 17SEP98
Description:
Keywords: music notation typesetting midi fonts engraving
Author: janneke@gnu.org (Jan Nieuwenhuizen)
hanwen@cs.ruu.nl (Han-Wen Nienhuys)
Maintained-by: janneke@gnu.org (Jan Nieuwenhuizen)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 40k stepmake-0.1.49.tar.gz
+ 40k stepmake-0.1.50.tar.gz
Original-site: pcnov095.win.tue.nl /pub/lilypond/development/
- 40k stepmake-0.1.49.tar.gz
+ 40k stepmake-0.1.50.tar.gz
Copying-policy: GPL
End
Name: stepmake
-Version: 0.1.49
+Version: 0.1.50
Release: 1
Copyright: GPL
Group: Development
-Source0: pcnov095.win.tue.nl:/pub/lilypond/development/stepmake-0.1.49.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/development/stepmake-0.1.50.tar.gz
Summary: generic make package
Packager: janneke@gnu.org (Jan Nieuwenhuizen)
Buildroot: /tmp/stepmake-install
$(outdir)/%.tfm: %.mf
mf '\mode:=ljfour; input $<;'
mv $(@F) $(outdir)
- rm $(basename $<).*{gf,log}
+ rm $(basename $<).gf $(basename $<).log
% stacked horizontal lines
-
\def\interscoreline{\vskip 16pt}
\def\setdynamic#1{\dynfont #1}
\def\setfinger#1{\fingerfont #1}
%
% macros suck. \ifundefined{nolilyfooter} gives wierd errors from time
-% to time.
+% to time.
+%
\ifx\csname nolilyfooter\endcsname\relax
- \message{footer defined}%
+ \message{footer defined}%
\csname lilyfooter\texsuffix\endcsname
\else
- \message{page empty!}
- \csname nolilyfooter\texsuffix\endcsname
+ \message{page empty!}
+ \csname nolilyfooter\texsuffix\endcsname
\fi