-1.3.28.jcn4
+
+1.3.29.hwn1
===========
+* Report type errors for \property. Helps with converting 1.2 input
+
+* Use Scheme for Align_element; fixed graceAlignPosition
+and removed \property alignmentReference in the process.
+
+* Use generic properties for lyrics too. This fixes \property
+Lyrics.textStyle
+
+
+* Add relative distance for constraints between non-column items.
+
+* Automatic \marks: use "\mark ; ". The mark numbers or letters are
+increased automatically.
+
+* Translators now only change properties of their own context. This
+removes the 2nd argument to Translator::get_property()
+
+* Bugfix for Metapost mode
+
+1.3.29.uu1
+==========
+
+* Updates of glossary (Christian Mondrup)
+
+* Bugfix with bar number placement
+
+* Moved links to bibliography/ and misc/ to main index.
+
+1.3.29
+======
+
* Moved Slur-specific code from Bezier_bow to Slur and Slur_bezier_bow.
Slurs are now calculated just once.
-1.3.28.jcn3
-===========
-
* Bezier_bow gets constants from paper. Still no sensible solution for
magic asymmetry gradient step constants.
between area asymmetry and tangent-controls. My guess is, tangent controls
will be junked in 1.3.30.
-1.3.28.jcn2
-===========
-
* Slur area: only look at x-gradient.
* Added credits for some symbols of as5/9 fonts.
title = {Music notation},
year = 1991,
publisher={Hal Leonard Publishing Corporation},
-
+isbn ={0793508479}
note={HWN writes: `Book' edition of lecture notes from XXX school of
music. The book looks like it is xeroxed from bad printouts. The
content has nothing you won't find in other books like\cite{read} or
-\cite{heussenstamm}. Available at amazon, but do not buy. ISBN 0793508479.}
+\cite{heussenstamm}. }
}
@Book{ross,
@Book {read-notation,
note = {This is as close to the ``standard''
- reference work for music notation issues as one is likely to get.
- [Available at amazon]},
+ reference work for music notation issues as one is likely to get.},
title = {Music Notation: a Manual of Modern Practice},
author = {Gardner Read},
craftsmen. It includes detailed specs of characters, dimensions
etc. II. a thorough overview of a anonymous (by now antiquated)
automated system. EDV Means e(lektronischen) D(aten)v(erarbeitung),
-electronic data processing HWN. Available at amazon.de},
+electronic data processing HWN.},
year = {1988},
title = {Musiknotation --- Von der Syntax des Notenstichs zum EDV-gesteuerten Notensatz},
a bit behind. But don't hesitate to point out inaccuracies. Whip up
your mail reader and write to the mailing list.
+@subsubsection Please take me off your mailing list, I get so much mail!
+
+Don't ask Han-wen, don't ask David. Instead, read about
+@uref{../../index.html#mailing-lists, the mailing lists} here.
+
@node Language- mudela, Do you support -, Documentation, FAQ - GNU LilyPond FAQs
@section Language: mudela
\input texinfo @c -*-texinfo-*-
@setfilename index.info
-@settitle index
+@settitle Index to LilyPond documentation
@node Top, , , (dir)
@top
+
@unnumberedsubsec Info
@itemize @bullet
@item @uref{../topdocs/out-www/AUTHORS.html, Authors}
@item @uref{../topdocs/out-www/README.html, Readme file}
@item @uref{../topdocs/out-www/INSTALL.html, Installation instructions}
+@item @uref{faq.html,FAQ: Frequently asked questions}, with answers
@end itemize
+
@unnumberedsubsec Manuals
@itemize @bullet
-@item @uref{faq.html,FAQ: Frequently asked questions}, with answers
-@item @uref{programs.html,`Manual pages'}
-
@item @uref{../user/out-www/lilypond.html,LilyPond reference manual}
also available in @uref{../user/out-www/lilypond.ps.gz,Postscript}
@item @uref{../user/out-www/glossary.html,A glossary of musical
@item @uref{../user/out-www/mudela-book.html,mudela-book}, a tool for
integrating text and music in LaTeX and texinfo; also available in
@uref{../user/out-www/mudela-book.ps.gz,Postscript}
+@item @uref{ly2dvi.html,ly2dvi} manual. Ly2dvi does page layout for
+LilyPond prints
+@item @uref{midi2ly.html,midi2ly} manual. midi2ly converts MIDI files to
+LilyPond input
@item @uref{../programmer/out-www/index.html,Programmer documentation}
-@item @uref{../bibliography/out-www/index.html,Bibliography}
-@item @uref{../misc/out-www/index.html,Miscellaneous texts}:
-announcements and change logs for old versions; background information.
@end itemize
@item @uref{../pictures/out-www/lelie-icon.png, logo} in small size
@end itemize
+
+
+@unnumberedsubsec Literature
+
+@itemize @bullet
+@item @uref{../bibliography/out-www/colorado.html,University of
+Colorado Engraving music bibliography}. Books refered from the
+@uref{http://www.cc.colorado.edu/Dept/MU/Musicpress/,Big Site of Music
+Notation and Engraving} at University of Colorado.
+@item References on
+@uref{../bibliography/out-www/engraving.html,engraving and music
+notation}.
+@item Papers on
+@uref{../bibliography/out-www/computer-notation.html,music notation
+by computer}.
+@end itemize
+
+
+@unnumberedsubsec Miscellaneous texts
+
+@itemize @bullet
+@item @uref{../misc/out-www/CHANGES-0.0.txt, Change logs from 0.0 till 0.1 }
+@item @uref{../misc/out-www/CHANGES-0.1.txt, Change logs from 0.1 till 1.0 }
+@item @uref{../misc/out-www/CHANGES-1.0.txt, Change logs from 1.0 till 1.1 }
+@item @uref{../misc/out-www/CHANGES-1.1.txt, Change logs from 1.1 till 1.2 }
+@item @uref{../misc/out-www/NEWS-1.2.txt, summary of changes from 1.1 till 1.2 }
+@item @uref{../misc/out-www/ANNOUNCE-0.1.txt, Announcement of 0.1 (includes summary of
+changes)}
+@item @uref{../misc/out-www/ANNOUNCE-1.0.txt, Announcement of 1.0 (includes summary of
+changes)}
+@item @uref{../misc/out-www/ANNOUNCE-1.2.txt, Announcement of 1.2 (includes summary of changes)}
+@item @uref{../misc/out-www/AIMS.txt, Why LilyPond?}
+@item @uref{../misc/out-www/interview.txt, Answers} to the Brave GNU world standard questions.
+@end itemize
+
+
+
@bye
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@setfilename ly2dvi.info
+@settitle ly2dvi
+
+@node Top, , ,
+@menu
+* Ly2dvi DESCRIPTION:: Ly2dvi DESCRIPTION
+* Ly2dvi SYNOPSIS:: Ly2dvi SYNOPSIS
+* Ly2dvi OPTIONS:: Ly2dvi OPTIONS
+* Ly2dvi Features:: Ly2dvi Features
+* Ly2dvi Environment:: Ly2dvi Environment
+* Ly2dvi Files:: Ly2dvi Files
+* Ly2dvi Initialization Sequence::Ly2dvi Initialization Sequence
+* Ly2dvi See Also:: Ly2dvi See Also
+* Ly2dvi Bugs:: Ly2dvi Bugs
+* Ly2dvi Remarks:: Ly2dvi Remarks
+* Ly2dvi Authors:: Ly2dvi Authors
+@end menu
+@chapter Ly2dvi
+
+@node Ly2dvi DESCRIPTION, , , Top
+@section DESCRIPTION
+ly2dvi is a Python script which creates input file for LaTeX,
+based on information from the output files from LilyPond.
+The script handles multiple files. If a mudela file name is
+specified LilyPond is run to make an output (TeX) file.
+
+One or more LaTeX files are created, based on information found
+in the output (TeX) files, and latex is finally run to create
+one or more DVI files.
+
+The majority of this utility came from a bourne script written by Jan
+Arne Fagertun name @file{ly2dvi}.
+
+@node Ly2dvi SYNOPSIS, , , Top
+@section SYNOPSIS
+
+ ly2dvi [options] inputfile[.ly] [....]
+
+@node Ly2dvi OPTIONS, , , Top
+@section OPTIONS
+
+@table @samp
+@item -D,--debug
+ Set debug mode. There are two levels - in level one some debug
+ info is written, in level two the command @strong{set -x} is run, which
+ echoes every command in the ly2dvi script.
+@item -F,--headers=
+ Name of additional LaTeX headers file. This is included in the
+ tex file at the end of the headers, last line before @code{\begin@{document@}}
+@item -H,--Heigth=
+ Set paper heigth (points). Used together with width and LaTeX name of
+ papersize in case of papersize unknown to ly2dvi.
+@item -K,--keeplilypond
+ Keep LilyPond output after the run.
+@item -L,--landscape
+ Set landscape orientation - portrait is the default.
+ (@strong{-L} produces @code{\usepackage[landscape]@{article@}})
+@item -N,--nonumber
+ Switch off page numbering.
+@item -O,--orientation=
+ Set orientation landscape - obsolete, use @strong{-L} instead.
+@item -P,--postscript
+ In addition to the DVI file, also Generate a postsript file.
+@item -W,--Width=
+ Set paper width (points). Used together with heigth and LaTeX name of
+ papersize in case of papersize unknown to ly2dvi.
+@item -d,--dependencies
+ Tell lilypond to make dependencies file.
+@item -h,--help
+ Print help.
+@item -k,--keeply2dvi
+ Keep the LaTeX file after the run.
+@item -l,--language=
+ Specify LaTeX language.
+ (@strong{-l norsk} produces @code{\usepackage[norsk]@{babel@}}).
+@item -o,--output=
+ Set output directory.
+@item -p,--papersize=
+ Specify papersize.
+ (@strong{-p a4} produces @code{\usepackage[a4paper]@{article@}})
+@item -s,--separate
+ Normally all output files are included into one LaTeX file.
+ With this switch all files are run separately, to produce one
+ DVI file for each.
+@end table
+
+@node Ly2dvi Features, , , Top
+@section Features
+
+ly2dvi responds to several parameters specified in the mudela
+file. They are overridden by corresponding command line options.
+
+@table @samp
+@item language="";
+ Specify LaTeX language
+@item latexheaders="";
+ Specify additional LaTeX headers file
+@item orientation="";
+ Set orientation.
+@item paperlinewidth="";
+ Specify the width (pt, mm or cm) of the printed lines.
+@item papersize="";
+ Specify name of papersize.
+@end table
+
+@node Ly2dvi Environment, , , Top
+@section Environment
+
+@table @samp
+@item LILYPONDPREFIX
+ Sets the root directory of the LilyPond installation
+@item LILYINCLUDE
+ Additional directories for input files.
+@item TMP
+ Temporary directory name. Default is /tmp
+@end table
+
+@node Ly2dvi Files, , , Top
+@section Files
+
+@file{titledefs.tex} is inspected for definitions used to extract
+additional text definitions from the mudela file. In the current
+version the following are defined:
+
+@table @samp
+@item title
+ The title of the music. Centered on top of the first page.
+@item subtitle
+ Subtitle, centered below the title.
+@item poet
+ Name of the poet, leftflushed below the below subtitle.
+@item composer
+ Name of the composer, rightflushed below the subtitle.
+@item metre
+ Meter string, leftflushed below the below poet.
+@item opus
+ Name of the opus, rightflushed below the below composer.
+@item arranger
+ Name of the arranger, rightflushed below the opus.
+@item instrument
+ Name of the instrument, centered below the arranger
+@item piece
+ Name of the piece, leftflushed below the instrument
+@end table
+
+@file{$LILYPONDPREFIX/share/.lilyrc $HOME/.lilyrc ./.lilyrc} are files
+to set up default running conditions. On Windows OS initialization
+files are named @file{_lilyrc}. The file syntax is as follows:
+
+@example
+VARIABLE-NAME=VALUE
+@end example
+
+
+Where @strong{VARIABLE-NAME} is the name of the variable documented below
+and @strong{VALUE} is either a string, a 1, or a 0. All files are parsed,
+in the shown sequence. In the current version the following are
+allowed:
+
+@table @samp
+@item DEBUG=value
+This turns off (default) or on the debug capabilities. Possible
+values are 0 (off) and 1 (on).
+@item DEPENDENCIES=value
+This turns off (default) or on the ability to generate a Makefile
+dependency list. Possible values are 0 (off) and 1 (on).
+@item KEEPLILYPOND=value
+This turns off (default) or on the ability to keep the log file
+associated with the LilyPond job. Possible values are 0 (off) and 1
+(on).
+@item KEEPLY2DVI=value
+This turns off (default) or on the ability to keep the temporary files
+that are generated by the ly2dvi job. Possible values are 0 (off) and
+1 (on)
+@item LANGUAGE=value
+Specify LaTeX language. Possible value is a valid LaTeX language.
+@item LATEXHF=value
+Specify additional LaTeX headers file. Possible value is a file
+specification.
+@item LILYINCLUDE=value
+Additional directories for input files. Possible value is a delimited
+directory path list.
+@item LILYPONDPREFIX=value
+This defines the LilyPond root directory. Possible value is a valid
+directory specification to the LilyPond distribution location.
+@item NONUMBER=value
+This turns off (default) or on the page numbering capability.
+Possible values are 0 (page numbering enabled) and 1 (page numbering
+disabled).
+@item ORIENTATION=value
+This sets the image orientation. Possible values are
+portrait (default) and landscape.
+@item OUTPUTDIR=value
+This defines the directory where the resultant files will be
+generated. Possible value is a valid directory specification.
+Default is the current working directory.
+@item PAPERSIZE=value
+This defines the papersize the image will be sized to fit. Possible
+values are a0, a1, a2, a3, a4 (default), a5, a6, a7, a8, a9, a10, b0,
+b1, b2, b3, b4, b5, archA, archB, archC, archD, archE, flsa, flse,
+halfletter, ledger, legal, letter, or note.
+@item PHEIGHT=value
+Specify paperheight (points - an inch is 72.27, a cm is 28.453 points).
+@item POSTSCRIPT=value
+This turns off (default) or on the capability of additionally
+generating a postscript file. Possible values are 0 (off) and 1 (on).
+@item PWIDTH=value
+Specify paperwidth (points - an inch is 72.27, a cm is 28.453 points).
+@item SEPARATE=value
+This turns off (default) or on the capability of generating multiple
+dvi and postscript files from multiple source files. The default is
+to generate a concatenation of the source files. Possible values are
+0 (single file) and 1 (separate files).
+@item TMP=value
+This defines the emporary directory. Actually this is not used at the
+present. Possible value is a valid directory specification that is
+writable to the user.
+@end table
+
+@node Ly2dvi Initialization Sequence, , , Top
+@section Initialization Sequence
+The initialization process reads inputs for several sources. Below is
+a list of priorities for lowest to hightest proirity.
+
+@itemize @bullet
+@item Program's defaults
+@item Values found in LilyPond output file
+@item Environment variables
+@item $LILYPONDPREFIX/share/lilypond/.lilyrc
+@item $HOME/.lilyrc
+@item ./.lilyrc
+@item command line options
+@end itemize
+
+Note that this differs slightly from the original bourne shell
+version.
+
+@node Ly2dvi See Also, , , Top
+@section See Also
+
+lilypond(1), tex(1), latex(1)
+
+@node Ly2dvi Bugs, , , Top
+@section Bugs
+
+If you have found a bug, you should send a bugreport.
+
+@itemize @bullet
+@item Send a copy of the input which causes the error.
+@item Send a description of the platform you use.
+@item Send a description of the LilyPond and ly2dvi version you use.
+@item Send a description of the bug itself.
+@item Send it to @email{bug-gnu-music@@gnu.org} (you don't have to subscribe
+ to this mailinglist).
+@end itemize
+
+@node Ly2dvi Remarks, , , Top
+@section Remarks
+
+Many papersizes are now supported. Information on other sizes
+(LaTeX names, horizontal and vertical sizes) should be mailed to
+the author or to the mailing list.
+
+Supported papersizes are:
+
+a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, archA, archB, archC, archD,
+archE, b0, b1, b2, b3, b4, b5, flsa, flse, halfletter, ledger, legal,
+letter, note
+
+@node Ly2dvi Authors, , , Top
+@section Authors
+Python Version author:
+@email{daboys@@austin.rr.com, Jeffrey B. Reed},
+@uref{http://home.austin.rr.com/jbr/jeff/lilypond/}
+
+Original bourne shell version author:
+@email{Jan.A.Fagertun@@energy.sintef.no, Jan Arne Fagertun},
+@uref{http://www.termo.unit.no/mtf/people/janaf/}
+
+
+
+
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@setfilename midi2ly.info
+@settitle midi2ly
+
+@node midi2ly, , , Top
+@menu
+* midi2ly DESCRIPTION:: midi2ly DESCRIPTION
+* midi2ly OPTIONS:: midi2ly OPTIONS
+@end menu
+@chapter midi2ly
+
+@node midi2ly DESCRIPTION, , , midi2ly
+@section DESCRIPTION
+midi2ly translates a MIDI input file to Mudela (GNU LilyPond source
+format). midi2ly is part of the GNU LilyPond music typesetting package.
+
+ midi2ly [options] midi-file
+
+@node midi2ly OPTIONS, , , midi2ly
+@section OPTIONS
+
+@table @samp
+@item -b, --no-quantify,
+ Write exact durations, e.g.: `a4*385/384'.
+@item -D, --debug,
+ Print lots of debugging stuff.
+@item -h, --help,
+ Show a summary of usage.
+@item -I, --include=@file{DIR},
+ Add DIR to search path.
+@item -k, --key=ACC[:MINOR],
+ Set default key. ACC > 0 sets number of sharps; ACC < 0 sets number
+ of flats. A minor key is indicated by ":1".
+@item -n, --no-silly,
+ Assume no plets or double dots, assume smallest (reciprocal) duration 16.
+@item -o, --output=@file{FILE},
+ Set @file{FILE} as default output.
+@item -p, --no-plets,
+ Assume no plets.
+@item -q, --quiet,
+ Be quiet.
+@item -s, --smallest=N,
+ Assume no shorter (reciprocal) durations than N.
+@item -v, --verbose,
+ Be verbose.
+@item -w, --warranty,
+ Show the warranty with which midi2ly comes. (It comes with @strong{NO WARRANTY}!)
+@item -x, --no-double-dots,
+ Assume no double dotted notes.
+@end table
+
+@bye
+++ /dev/null
-\input texinfo @c -*-texinfo-*-
-@setfilename programs.info
-@settitle Programs
-
-@node Top, , , (dir)
-@top
-@menu
-* Programs:: Your Softs-
-* Ly2dvi:: Python utility to convert mudela to DVI
-* midi2ly:: convert MIDI to -mudela-
-@end menu
-
-
-
-
-@node Programs, , , Top
-@chapter Programs
-
-
-
-
-
-
-
-@node Ly2dvi, , , Top
-@menu
-* Ly2dvi DESCRIPTION:: Ly2dvi DESCRIPTION
-* Ly2dvi SYNOPSIS:: Ly2dvi SYNOPSIS
-* Ly2dvi OPTIONS:: Ly2dvi OPTIONS
-* Ly2dvi Features:: Ly2dvi Features
-* Ly2dvi Environment:: Ly2dvi Environment
-* Ly2dvi Files:: Ly2dvi Files
-* Ly2dvi Initialization Sequence::Ly2dvi Initialization Sequence
-* Ly2dvi See Also:: Ly2dvi See Also
-* Ly2dvi Bugs:: Ly2dvi Bugs
-* Ly2dvi Remarks:: Ly2dvi Remarks
-* Ly2dvi Authors:: Ly2dvi Authors
-@end menu
-@chapter Ly2dvi
-
-@node Ly2dvi DESCRIPTION, , , Ly2dvi
-@section DESCRIPTION
-ly2dvi is a Python script which creates input file for LaTeX,
-based on information from the output files from LilyPond.
-The script handles multiple files. If a mudela file name is
-specified LilyPond is run to make an output (TeX) file.
-
-One or more LaTeX files are created, based on information found
-in the output (TeX) files, and latex is finally run to create
-one or more DVI files.
-
-The majority of this utility came from a bourne script written by Jan
-Arne Fagertun name @file{ly2dvi}.
-
-@node Ly2dvi SYNOPSIS, , , Ly2dvi
-@section SYNOPSIS
-
- ly2dvi [options] inputfile[.ly] [....]
-
-@node Ly2dvi OPTIONS, , , Ly2dvi
-@section OPTIONS
-
-@table @samp
-@item -D,--debug
- Set debug mode. There are two levels - in level one some debug
- info is written, in level two the command @strong{set -x} is run, which
- echoes every command in the ly2dvi script.
-@item -F,--headers=
- Name of additional LaTeX headers file. This is included in the
- tex file at the end of the headers, last line before @code{\begin@{document@}}
-@item -H,--Heigth=
- Set paper heigth (points). Used together with width and LaTeX name of
- papersize in case of papersize unknown to ly2dvi.
-@item -K,--keeplilypond
- Keep LilyPond output after the run.
-@item -L,--landscape
- Set landscape orientation - portrait is the default.
- (@strong{-L} produces @code{\usepackage[landscape]@{article@}})
-@item -N,--nonumber
- Switch off page numbering.
-@item -O,--orientation=
- Set orientation landscape - obsolete, use @strong{-L} instead.
-@item -P,--postscript
- In addition to the DVI file, also Generate a postsript file.
-@item -W,--Width=
- Set paper width (points). Used together with heigth and LaTeX name of
- papersize in case of papersize unknown to ly2dvi.
-@item -d,--dependencies
- Tell lilypond to make dependencies file.
-@item -h,--help
- Print help.
-@item -k,--keeply2dvi
- Keep the LaTeX file after the run.
-@item -l,--language=
- Specify LaTeX language.
- (@strong{-l norsk} produces @code{\usepackage[norsk]@{babel@}}).
-@item -o,--output=
- Set output directory.
-@item -p,--papersize=
- Specify papersize.
- (@strong{-p a4} produces @code{\usepackage[a4paper]@{article@}})
-@item -s,--separate
- Normally all output files are included into one LaTeX file.
- With this switch all files are run separately, to produce one
- DVI file for each.
-@end table
-
-@node Ly2dvi Features, , , Ly2dvi
-@section Features
-
-ly2dvi responds to several parameters specified in the mudela
-file. They are overridden by corresponding command line options.
-
-@table @samp
-@item language="";
- Specify LaTeX language
-@item latexheaders="";
- Specify additional LaTeX headers file
-@item orientation="";
- Set orientation.
-@item paperlinewidth="";
- Specify the width (pt, mm or cm) of the printed lines.
-@item papersize="";
- Specify name of papersize.
-@end table
-
-@node Ly2dvi Environment, , , Ly2dvi
-@section Environment
-
-@table @samp
-@item LILYPONDPREFIX
- Sets the root directory of the LilyPond installation
-@item LILYINCLUDE
- Additional directories for input files.
-@item TMP
- Temporary directory name. Default is /tmp
-@end table
-
-@node Ly2dvi Files, , , Ly2dvi
-@section Files
-
-@file{titledefs.tex} is inspected for definitions used to extract
-additional text definitions from the mudela file. In the current
-version the following are defined:
-
-@table @samp
-@item title
- The title of the music. Centered on top of the first page.
-@item subtitle
- Subtitle, centered below the title.
-@item poet
- Name of the poet, leftflushed below the below subtitle.
-@item composer
- Name of the composer, rightflushed below the subtitle.
-@item metre
- Meter string, leftflushed below the below poet.
-@item opus
- Name of the opus, rightflushed below the below composer.
-@item arranger
- Name of the arranger, rightflushed below the opus.
-@item instrument
- Name of the instrument, centered below the arranger
-@item piece
- Name of the piece, leftflushed below the instrument
-@end table
-
-@file{$LILYPONDPREFIX/share/.lilyrc $HOME/.lilyrc ./.lilyrc} are files
-to set up default running conditions. On Windows OS initialization
-files are named @file{_lilyrc}. The file syntax is as follows:
-
-@example
-VARIABLE-NAME=VALUE
-@end example
-
-
-Where @strong{VARIABLE-NAME} is the name of the variable documented below
-and @strong{VALUE} is either a string, a 1, or a 0. All files are parsed,
-in the shown sequence. In the current version the following are
-allowed:
-
-@table @samp
-@item DEBUG=value
-This turns off (default) or on the debug capabilities. Possible
-values are 0 (off) and 1 (on).
-@item DEPENDENCIES=value
-This turns off (default) or on the ability to generate a Makefile
-dependency list. Possible values are 0 (off) and 1 (on).
-@item KEEPLILYPOND=value
-This turns off (default) or on the ability to keep the log file
-associated with the LilyPond job. Possible values are 0 (off) and 1
-(on).
-@item KEEPLY2DVI=value
-This turns off (default) or on the ability to keep the temporary files
-that are generated by the ly2dvi job. Possible values are 0 (off) and
-1 (on)
-@item LANGUAGE=value
-Specify LaTeX language. Possible value is a valid LaTeX language.
-@item LATEXHF=value
-Specify additional LaTeX headers file. Possible value is a file
-specification.
-@item LILYINCLUDE=value
-Additional directories for input files. Possible value is a delimited
-directory path list.
-@item LILYPONDPREFIX=value
-This defines the LilyPond root directory. Possible value is a valid
-directory specification to the LilyPond distribution location.
-@item NONUMBER=value
-This turns off (default) or on the page numbering capability.
-Possible values are 0 (page numbering enabled) and 1 (page numbering
-disabled).
-@item ORIENTATION=value
-This sets the image orientation. Possible values are
-portrait (default) and landscape.
-@item OUTPUTDIR=value
-This defines the directory where the resultant files will be
-generated. Possible value is a valid directory specification.
-Default is the current working directory.
-@item PAPERSIZE=value
-This defines the papersize the image will be sized to fit. Possible
-values are a0, a1, a2, a3, a4 (default), a5, a6, a7, a8, a9, a10, b0,
-b1, b2, b3, b4, b5, archA, archB, archC, archD, archE, flsa, flse,
-halfletter, ledger, legal, letter, or note.
-@item PHEIGHT=value
-Specify paperheight (points - an inch is 72.27, a cm is 28.453 points).
-@item POSTSCRIPT=value
-This turns off (default) or on the capability of additionally
-generating a postscript file. Possible values are 0 (off) and 1 (on).
-@item PWIDTH=value
-Specify paperwidth (points - an inch is 72.27, a cm is 28.453 points).
-@item SEPARATE=value
-This turns off (default) or on the capability of generating multiple
-dvi and postscript files from multiple source files. The default is
-to generate a concatenation of the source files. Possible values are
-0 (single file) and 1 (separate files).
-@item TMP=value
-This defines the emporary directory. Actually this is not used at the
-present. Possible value is a valid directory specification that is
-writable to the user.
-@end table
-
-@node Ly2dvi Initialization Sequence, , , Ly2dvi
-@section Initialization Sequence
-The initialization process reads inputs for several sources. Below is
-a list of priorities for lowest to hightest proirity.
-
-@itemize @bullet
-@item Program's defaults
-@item Values found in LilyPond output file
-@item Environment variables
-@item $LILYPONDPREFIX/share/lilypond/.lilyrc
-@item $HOME/.lilyrc
-@item ./.lilyrc
-@item command line options
-@end itemize
-
-Note that this differs slightly from the original bourne shell
-version.
-
-@node Ly2dvi See Also, , , Ly2dvi
-@section See Also
-
-lilypond(1), tex(1), latex(1)
-
-@node Ly2dvi Bugs, , , Ly2dvi
-@section Bugs
-
-If you have found a bug, you should send a bugreport.
-
-@itemize @bullet
-@item Send a copy of the input which causes the error.
-@item Send a description of the platform you use.
-@item Send a description of the LilyPond and ly2dvi version you use.
-@item Send a description of the bug itself.
-@item Send it to @email{bug-gnu-music@@gnu.org} (you don't have to subscribe
- to this mailinglist).
-@end itemize
-
-@node Ly2dvi Remarks, , , Ly2dvi
-@section Remarks
-
-Many papersizes are now supported. Information on other sizes
-(LaTeX names, horizontal and vertical sizes) should be mailed to
-the author or to the mailing list.
-
-Supported papersizes are:
-
-a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, archA, archB, archC, archD,
-archE, b0, b1, b2, b3, b4, b5, flsa, flse, halfletter, ledger, legal,
-letter, note
-
-@node Ly2dvi Authors, , , Ly2dvi
-@section Authors
-Python Version author:
-@email{daboys@@austin.rr.com, Jeffrey B. Reed},
-@uref{http://home.austin.rr.com/jbr/jeff/lilypond/}
-
-Original bourne shell version author:
-@email{Jan.A.Fagertun@@energy.sintef.no, Jan Arne Fagertun},
-@uref{http://www.termo.unit.no/mtf/people/janaf/}
-
-
-
-
-
-
-
-@node midi2ly, , , Top
-@menu
-* midi2ly DESCRIPTION:: midi2ly DESCRIPTION
-* midi2ly OPTIONS:: midi2ly OPTIONS
-@end menu
-@chapter midi2ly
-
-@node midi2ly DESCRIPTION, , , midi2ly
-@section DESCRIPTION
-midi2ly translates a MIDI input file to Mudela (GNU LilyPond source
-format). midi2ly is part of the GNU LilyPond music typesetting package.
-
- midi2ly [options] midi-file
-
-@node midi2ly OPTIONS, , , midi2ly
-@section OPTIONS
-
-@table @samp
-@item -b, --no-quantify,
- Write exact durations, e.g.: `a4*385/384'.
-@item -D, --debug,
- Print lots of debugging stuff.
-@item -h, --help,
- Show a summary of usage.
-@item -I, --include=@file{DIR},
- Add DIR to search path.
-@item -k, --key=ACC[:MINOR],
- Set default key. ACC > 0 sets number of sharps; ACC < 0 sets number
- of flats. A minor key is indicated by ":1".
-@item -n, --no-silly,
- Assume no plets or double dots, assume smallest (reciprocal) duration 16.
-@item -o, --output=@file{FILE},
- Set @file{FILE} as default output.
-@item -p, --no-plets,
- Assume no plets.
-@item -q, --quiet,
- Be quiet.
-@item -s, --smallest=N,
- Assume no shorter (reciprocal) durations than N.
-@item -v, --verbose,
- Be verbose.
-@item -w, --warranty,
- Show the warranty with which midi2ly comes. (It comes with @strong{NO WARRANTY}!)
-@item -x, --no-double-dots,
- Assume no double dotted notes.
-@end table
-
-@bye
@item use ASCII. Do
using @example
- make -C doc
+ make doc
@end example
@end itemize
There are binaries available, but alas they are not updated for every version released.
@itemize @bullet
-@item RedHat i386
-binary RPMs: @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/RPMS/}
-
+@item RedHat-i386 and Linuxppc RPMs:
+@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/RPMS/}
@item Debian binary @uref{ftp://ftp.debian.org/pub/debian/dists/unstable/main/binary-i386/tex}
-@item i386 RPM: @uref{http://linux.umbc.edu/software/lilypond/rpms/}
@item Windows NT: @uref{http://home.austin.rr.com/jbr/jeff/lilypond/}
@end itemize
@item bug-gnu-music@@gnu.org
If you have bugreports, you should send them to this list. If you
want to know about bugs, subscribe: send mail with subject "subscribe"
-to
- @email{bug-gnu-music-request@@gnu.org}. The archive is at
+to @email{bug-gnu-music-request@@gnu.org}. The archive is at
@uref{http://www.mail-archive.com/bug-gnu-music@@gnu.org}
Please include in your bugreport the version of LilyPond that
@uref{http://www.mail-archive.com/gnu-music-discuss@@gnu.org}
@end table
-
+If you want to unsubscribe use the same procedure as subscribing, but
+substitute @code{unsubscribe} where you would put @code{subscribe}.
@unnumberedsubsec Webmaster's Disclaimer
\input texinfo
@setfilename glossary.info
+@c @pagesizes 10.3in
+
@c @everyheading @| @thispage @|
@evenheading @thispage @| @|
@oddheading @| @| @thispage @|
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\property Voice.textStyle = "large"
\notes\relative c'' {
gis1_"sharp" s s2
I: accelerando, F: , D: accelerando, Schneller, NL: accelerando, DK:
accelerando, S: accelerando, N:
-Stil faster tempo.
+Still faster tempo.
@item allegro
I: allegro, F: , D: Allegro, Schnell, Fr@"ohlich, Lustig, NL: allegro, DK:
I: contralto, F: alto, D: Alt, NL: alt, DK: alt, S: alt, N: alt.
A female voice of low range (@emph{contralto}). Originally the alto was a high
-male voice (hence the name) which by the use of falsetto reached the height
-height of the female voice. This type of voice is also known as
-@w{@ar{}@strong{counter tenor}}.
+male voice (hence the name) which by the use of falsetto reached the height of
+the female voice. This type of voice is also known as @w{@ar{}@strong{counter
+tenor}}.
@item alto clef
-@c F: cl@'e d'ut, D: Altschl@"ussel, Bratschenschl@"ussel, NL: altsleutel, I:
-chiave di tenore.
-
I: chiave di contralto, F: , D: Altschl@"ussel, Bratschenschl@"ussel, NL: alt
sleutel, DK: altn@o{}gle, S: altklav, N:
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\notes\relative c'' {
a1 b c d e f g a }
@end mudela
@item andante
-I: andante, F: , D: Andante, NL: andante, DK: andante, S: andante,
+I: andante, F: andante, D: Andante, NL: andante, DK: andante, S: andante,
N: andante.
walking tempo/character
@item appoggiatura
-I: appoggiatura, F: port de voix, D: Vorschlag, NL: voorslag, DK: forslag, S:
-f@"orslag, N:
+I: appoggiatura, F: appogiature, (port de voix), D: Vorschlag, NL: voorslag,
+DK: forslag, S: f@"orslag, N:
Ornamental note, usually a second, that is melodically connected with the main
note that follows it. In music before the 19'th century a. were usually
@
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
+\property Voice.textEmptyDimension = ##t
+
\property Voice.textStyle = "large"
\notes\relative c'' {
\key d;
@
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
+\emptyText
\property Voice.textStyle = "large"
\notes\relative c'' {
\key as;
@end mudela
@item arpeggio
-I: arpeggio, F: arp@`ege, arp@`egement, D: Arpeggio, Akkordbrechungen,
-gebrochener Akkord, NL: gebroken akoord, DK: arpeggio,
-akkordbrydning, S: arpeggio, N:
+I: arpeggio, F: arp@`ege, D: Arpeggio, Akkordbrechungen, gebrochener Akkord,
+NL: gebroken akoord, DK: arpeggio, akkordbrydning, S: arpeggio, N:
@
I: intervallo ascendente, F: intervalle ascendant, D: steigendes Intervall,
NL: stijgend interval, DK:@w{ }stigende interval, S: stigande intervall, N:
+A distance between a starting lower note and a higher ending note.
+
@item augmented interval
I: intervallo aumentato, F: intervalle augment@'e, D: @"uberm@"a@ss{}iges
Intervall, NL: overmatig interval, DK: forst@o{}rret interval, S:
The male voice intermediate between the @w{@ar{}@strong{bass}} and the
@w{@ar{}@strong{tenor}}.
-@item bariton clef
+@item baritone clef
I: chiave di baritono, F: , D: Barytonschl@"ussel, NL: baritonsleutel, DK:
barytonn@o{}gle, S: barytonklav, N: .
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
-\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = ##t
+\emptyText
\property Voice.textStyle = "large"
\notes\relative c'' {
[g8_"1/8" g g g] s16
@end mudela
@item brass
-I: ottoni, D: Blechbl@"aser, NL: koper (blazers), F: instruments de cuivre,
+I: ottoni, D: Blechbl@"aser, NL: koper (blazers), F: cuivres,
DK: messingbl@ae{}sere, S: brassinstrument, m@"assingsinstrument, N:
A family of blown musical instruments made of brass all using a cup formed
repercussieteken, DK:
vejrtr@ae{}kningstegn, S: andningstecken, N: .
+Indication of where to breathe in vocal and wind instrument parts.
+
@item breve
-I: breve, F: , D: Brevis, NL: brevis, DK: brevis, S: brevis, N:
+I: breve, F: br@`eve, D: Brevis, NL: brevis, DK: brevis, S: brevis, N:
@w{@ar{}@strong{Note value}} twice as long as a whole note. Mainly used
in pre-1650 music.
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\notes\relative c'' { g\breve }
@end mudela
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.clefStyle = "fullSizeChanges"
\addlyrics
@w{@ar{}@strong{harmonic cadence}} @w{@ar{}@strong{functional harmony}}
@item cadenza
-I: cadenza, F: fioriture, D: Kadenz, NL: cadens, DK: kadence, S: kadens, N: .
+I: cadenza, F: cadence, D: Kadenz, NL: cadens, DK: kadence, S: kadens, N: .
An extended, improvisatory style section inserted near the end of
-movement. The purpose of a c. is to give the singer or player a chance to
+movement. The purpose of a cadenza is to give the singer or player a chance to
exhibit her technichal skill and not the least her ability to improvise. Since
the middle of the 19'th century, however, most cadences have been written down
by the composer.
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\property Voice.textStyle = "large"
\time 4/4;
\notes\relative c'' {
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
-\notes\relative c' { c1 cis e f fis g gis a ais b c }
+\property Score.barNonAuto = ##t
+\notes\relative c' { c1 cis d dis e f fis g gis a ais b c }
@end mudela
@item chromaticism
Use of tones extraneous to a @w{@ar{}@strong{diatonic scale}} (minor, major).
@item church mode; ecclesiastical mode
-I: modi ecclesiastici, F: mode eccl@'esiastique, D: Kirchentonart, NL:
+I: modo ecclesiastico, F: mode eccl@'esiastique, D: Kirchentonart, NL:
kerktoonladder, DK: kirketoneart, S: kyrkotonart, N:
@w{@ar{}@strong{diatonic scale}}
@item clef
-I: chiave, F: cl@'e, D: Schl@"ussel, Schl@"ussel, Notenschl@"ussel, NL:
+I: chiave, F: cl@'e, clef, D: Schl@"ussel, Schl@"ussel, Notenschl@"ussel, NL:
sleutel, DK: n@o{}gle, S: klav, N:
@w{@ar{}@strong{c clef}} @w{@ar{}@strong{f clef}} @w{@ar{}@strong{g clef}}
@end mudela
@item consonance
-I: consonanza, F :consonance, D: Konsonanz, NL: consonant, DK: konsonans, S:
+I: consonanza, F: consonance, D: Konsonanz, NL: consonant, DK: konsonans, S:
konsonans, N:
@w{@ar{}@strong{harmony}}
@end mudela
@item counter tenor
-I: controtenore, F: , D: Kontratenor, NL: contratenor, DK: kontratenor, S:
-kontratenor, counter tenor, N: kontratenor
+I: controtenore, F: contre-tenor, D: Kontratenor, NL: contratenor, DK:
+kontratenor, S: kontratenor, counter tenor, N: kontratenor
@w{@ar{}@strong{contralto}}
crescendo, S: crescendo, N:@w{ }crescendo.
Increasing volume. Indicated by a rightwards opening horizontal wedge or the
-abbreviation "cresc".
+abbreviation "cresc.".
@
decrescendo, N: decrescendo
Decreasing tone volume. Indicated by a leftwards opening horizontal wedge
-or the abbreviation "decresc".
+or the abbreviation "decresc.".
@
absteigendes Intervall, NL: dalend interval, DK:@w{ }faldende interval, S:
fallande intervall, N:
+An distance between a starting higher note and a lower ending note.
+
@item diatonic scale
-I: scala diatonica, F: , D: diatonische Tonleiter, NL: diatonische toonladder,
-DK: diatonisk skala, S: diatonisk skala, N:
+I: scala diatonica, F: gamme diatonique, D: diatonische Tonleiter, NL:
+diatonische toonladder, DK: diatonisk skala, S: diatonisk skala, N:
A scale consisting of 5 @w{@ar{}@strong{whole tones}} and 2
@w{@ar{}@strong{semitones}} (S). Scales played on the white keys of a piano
@
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
\notes\relative c' {
c1 d
- \property Voice.textScriptPadding = "-10"
+ \property Voice.textScriptPadding = #-10
e^"~~ S" f g a
- \property Voice.textScriptPadding = "-4"
+ \property Voice.textScriptPadding = #-4
b^"~~ S" c }
\context Lyrics \lyrics { Ionian }
@end mudela
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
\notes\relative c' {
d1
- \property Voice.textScriptPadding = "-10"
+ \property Voice.textScriptPadding = #-10
e^"~~ S"
f g a
- \property Voice.textScriptPadding = "-4"
+ \property Voice.textScriptPadding = #-4
b^"~~ S" c d }
\context Lyrics \lyrics { Dorian }
@end mudela
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
\notes\relative c' {
- \property Voice.textScriptPadding = "-10"
+ \property Voice.textScriptPadding = #-10
e1^"~~ S"
f g a
- \property Voice.textScriptPadding = "-4"
+ \property Voice.textScriptPadding = #-4
b^"~~ S" c d e }
\context Lyrics \lyrics { Phrygian }
@end mudela
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
\notes\relative c' {
f1 g a
- \property Voice.textScriptPadding = "-4"
+ \property Voice.textScriptPadding = #-4
b^"~~ S" c d
- \property Voice.textScriptPadding = "0"
+ \property Voice.textScriptPadding = #0
e^"~~ S" f }
\context Lyrics \lyrics { Lydian }
@end mudela
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
\notes\relative c'' {
g1 a
- \property Voice.textScriptPadding = "-4"
+ \property Voice.textScriptPadding = #-4
b^"~~ S" c d
- \property Voice.textScriptPadding = "0"
+ \property Voice.textScriptPadding = #0
e^"~~ S" f g }
\context Lyrics \lyrics { Mixolydian }
@end mudela
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
\notes\relative c'' {
a1
- \property Voice.textScriptPadding = "-4"
+ \property Voice.textScriptPadding = #-4
b^"~~ S" c d
- \property Voice.textScriptPadding = "0"
+ \property Voice.textScriptPadding = #0
e^"~~ S" f g a }
\context Lyrics \lyrics { Aeolian }
@end mudela
7th tone.
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
\notes\relative c' {
c1 d
- \property Voice.textScriptPadding = "-10"
+ \property Voice.textScriptPadding = #-10
e^"~~ S" f g a
- \property Voice.textScriptPadding = "-4"
+ \property Voice.textScriptPadding = #-4
b^"~~ S" c }
\context Lyrics \lyrics { Major }
@end mudela
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
\notes\relative c'' {
a1
- \property Voice.textScriptPadding = "-4"
+ \property Voice.textScriptPadding = #-4
b^"~~ S" c d
- \property Voice.textScriptPadding = "0"
+ \property Voice.textScriptPadding = #0
e^"~~ S" f g a }
\context Lyrics \lyrics { "ancient minor" }
@end mudela
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
\notes\relative c'' {
a1
- \property Voice.textScriptPadding = "-4"
+ \property Voice.textScriptPadding = #-4
b^"~~ S" c d
- \property Voice.textScriptPadding = "0"
+ \property Voice.textScriptPadding = #0
e^"~~ S"
- \property Voice.textScriptPadding = "1"
+ \property Voice.textScriptPadding = #1
f!^"~~ A"
gis^"~~ S"
a }
@end mudela
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
\notes\relative c'' {
a1
- \property Voice.textScriptPadding = "-4"
+ \property Voice.textScriptPadding = #-4
b^"~~ S" c d e fis
- \property Voice.textScriptPadding = "0"
+ \property Voice.textScriptPadding = #0
gis^"~~ S" a g!
\property Voice.textScriptPadding = "-1"
f!^"~~ S" e d
- \property Voice.textScriptPadding = "-4"
+ \property Voice.textScriptPadding = #-4
c^"~~ S" b a
}
\context Lyrics \lyrics { "Melodic minor" }
@w{@ar{}@strong{interval}}
@item diminuendo
-I: diminuendo, F: , D: Diminuendo, NL: diminuendo, DK: diminuendo,
+I: diminuendo, F: diminuendo, D: Diminuendo, NL: diminuendo, DK: diminuendo,
S:@w{ }diminuendo, N:@w{ }diminuendo.
@w{@ar{}@strong{decrescendo}}
The fifth @w{@ar{}@strong{scale degree}} @w{@ar{}@strong{functional harmony}}
@item dorian mode
-I: modo dorico, F: , D: Dorischer Kirchenton, NL: dorische toonladder,
-dorischer Kirchenton, DK: dorisk skala, S: dorisk skala, N:
+I: modo dorico, F: mode dorien, D: Dorischer Kirchenton, NL: dorische
+toonladder, dorischer Kirchenton, DK: dorisk skala, S: dorisk skala, N:
@w{@ar{}@strong{diatonic scale}}
@w{@ar{}@strong{note value}}
@item engraving
-I: incisione, F: , D: Notenstechen, NL: steken, DK: nodestik, S: nottryck, N: .
+I: incisione, F: gravure, D: Notenstechen, NL: steken, DK: nodestik, S:
+nottryck, N: .
Engraving means incising or etching a metal plate for
printing. Photoengraving means drawing music with ink in a manner
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\property Voice.textStyle = "large"
\notes\relative c'' {
gis1_"g sharp" s as1_"a flat" s s
@end mudela
@item equal temperament
-I: temperamento equabile, F: , D: gleichschwebende Stimmung, NL:
-ge@-lijk@-zwe@-ven@-de temperatuur, DK: ligesv@ae{}vende temperatur,
-S: liksv@"avande temperatur, N: .
+I: temperamento equabile, F: temp@'erament @'egal, D: gleichschwebende
+Stimmung, NL: ge@-lijk@-zwe@-ven@-de temperatuur, DK: ligesv@ae{}vende
+temperatur, S: liksv@"avande temperatur, N: .
Tuning system dividing the octave into 12 equal @w{@ar{}@strong{semitones}}
(precisely 100 @w{@ar{}@strong{cents}}). @w{@ar{}@strong{temperament}}
@item expression mark
-I: segno d'espressione, F: signe d'expressoin, D: Vortragszeichen, NL:
-voordrachtsteken, DK: foredragsbetegnelse, S: f@"oredragsbeteckning, N: .
+I: segno d'espressione, F: signe d'expression, indication de nuance, D:
+Vortragszeichen, NL: voordrachtsteken, DK: foredragsbetegnelse, S:
+f@"oredragsbeteckning, N: .
Performance indications concerning 1. volume, dynamics (for example
@w{@ar{}@strong{forte}}, @w{@ar{}@strong{crescendo}}), 2. tempo (for example
@ignore
@mud ela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\property Voice.clefStyle = "fullSizeChanges"
\property Lyrics.textStyle = "large"
\addlyrics
@end ignore
@item fermata
-I: corona, F: pauses, D: Fermate, NL: fermate, DK: fermat, S: fermat, N: .
+I: corona, F: pause, D: Fermate, NL: fermate, DK: fermat, S: fermat, N: .
Prolonged note or rest of indefinite duration.
@w{@ar{}@strong{thorough bass}}
@item fingering
-I: ditteggiatura, F: doigt@'e, D: Fingersatz, NL: vingerzetting, DK:
+I: diteggiatura, F: doigt@'e, D: Fingersatz, NL: vingerzetting, DK:
fingers@ae{}tning, S: fingers@"attning, N: .
The methodical use of fingers in the playing of instruments.
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
-\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = ##t
+\emptyText
\property Voice.textStyle = "large"
\notes\relative c'' {
g8_"1/8" s8
@w{@ar{}@strong{appoggiatura}}
@item forte
-I: forte, F: , D: forte, Laut, NL: forte, DK: forte, S: forte, N: .
+I: forte, F: forte, D: forte, Laut, NL: forte, DK: forte, S: forte, N: .
Loud, abbreviated @b{f}, @emph{fortissimo} (@b{ff}) very loud,
@emph{mezzoforte} (@b{mf}) medium loud.
@w{@ar{}@strong{interval}}
@item fugue
-I: fuga, F: , D: Fuge, NL: fuga, DK: fuga, S: fuga, N: .
+I: fuga, F: fugue, D: Fuge, NL: fuga, DK: fuga, S: fuga, N: .
@w{@ar{}@strong{counterpoint}}
-@item functiontional harmony
+@item functional harmony
I: armonia funzionale, F: , D: Funktionslehre, NL: , DK: funktionsanalyse,
funktionsharmonik, S: funktionsl@"ara, N:
@
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
I: sol, F: sol, D: G, g, NL: g, DK: g, S: g, N: g.
@item G clef
-I: chiave di sol, F: , D: G-Schl@"ussel, Violinschl@"ussel, NL: G-sleutel, DK:
-g-n@o{}gle, S: g-klav, N: .
+I: chiave di sol, F: cl@'e de sol, D: G-Schl@"ussel, Violinschl@"ussel, NL:
+G-sleutel, DK: g-n@o{}gle, S: g-klav, N: .
A clef symbol indicating the G above central C. Used on the first and second
note lines. A digit 8 above the clef symbol indicates that the notes must be
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.clefStyle = "fullSizeChanges"
\addlyrics
@end mudela
@item glissando
-I: glissando, F: glissement, D: Glissando, NL: glissando, DK: glissando, S:
+I: glissando, F: glissando, D: Glissando, NL: glissando, DK: glissando, S:
glissando, N: glissando.
Letting the pitch slide fluently from one note to the other
@item grace notes
-I: abbellimenti, F: , D: Verzierungen, Vorschl@"age, Vorschlagsnoten, NL:
-versieringen, DK: forsiringer, S: ornament, N: .
+I: abbellimenti, F: fioriture, petite[s] note[s], D: Verzierungen,
+Vorschl@"age, Vorschlagsnoten, NL: versieringen, DK: forsiringer, S: ornament,
+N: .
Notes printed in small types to indicate that their time values are not
counted in the rhythm of the bar. @w{@ar{}@strong{appoggiatura}}
@item grand staff
-I: accolatura, F: , D: Akkolade, NL: piano systeem, DK: klaversystem, S:
-ackolad, b@"ojd klammer, N: .
+I: accolatura, F: accolade, D: Akkolade, NL: piano systeem, DK: klaversystem,
+S: ackolad, b@"ojd klammer, N: .
@w{@ar{}@strong{brace}}
A combination of two staffs with a brace. Usually used for piano music.
@item grave
-I: grave, F: , D: grave, langsam, traurig, NL: , DK: grave, S: grave, N: .
+I: grave, F: grave, D: grave, langsam, traurig, NL: , DK: grave, S: grave, N:
+.
+
+Slow, solemn.
@item half note
I: minima, F: blanche, UK: minim, D: Halbe, halbe Note, NL: halve noot, DK:
@end mudela
@item harmony
-I: armonia, F: , D: Harmonie, Zusammenklang, NL: harmonie, DK: samklang, S:
-samklang, N:
+I: armonia, F: harmonie, D: Harmonie, Zusammenklang, NL: harmonie, DK:
+samklang, S: samklang, N:
Tones sounding simultaneously. Two note harmonies fall into the cathegories
@emph{consonances} and @emph{dissonances}.
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\property Voice.textStyle = "large"
\notes\relative c'' {
<g1_"unisone" g> s
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\property Voice.textStyle = "large"
\notes\relative c'' {
<g1_"second" a> s
Three note harmony @w{@ar{}@strong{chord}}
@item homophony
-I: omofonia, F: , D: Homophonie, NL: homofonie, DK: homofoni, S: homofoni, N: .
+I: omofonia, F: homophonie, D: Homophonie, NL: homofonie, DK: homofoni, S:
+homofoni, N: .
Music in which one voice leads melodically followed by the other voices more
or less in the same rhythm. In contrast to @w{@ar{}@strong{polyphony}}.
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Voice.textStyle = "large"
\addlyrics
@end mudela
@item inverted interval
-I: rivolto, F: renversement d'intervalle, D: umgekerhtes Intervall, NL:
+I: intervallo rivolto, F: intervalle renvers@'e, D: umgekerhtes Intervall, NL:
interval inversie, DK: omvendingsinterval, S: intervallets omv@"andning, N: .
The difference between an interval and an octave.
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\property Voice.textStyle = "large"
\notes\relative c'' {
< g1_"second" a > s < g'_"seventh" a, > s \bar "||";
@w{natural} fifths and thirds. @w{@ar{}@strong{temperament}}
@item key
-I: tonalit@`a, F: , D: Tonart, NL: toonsoort, DK: toneart, S: tonart, N: .
+I: tonalit@`a, F: tonalit@'e, D: Tonart, NL: toonsoort, DK: toneart, S:
+tonart, N: .
According to the 12 tones of the @w{@ar{}@strong{chromatic scale}} there are 12
keys, one on c, one on c-sharp etc. @w{@ar{}@strong{key signature}}
key of the music. @w{@ar{}@strong{accidental}}
@item largo
-I: largo, F: , D: Largo, Langsam, Breit, NL: largo, DK: largo, S: largo, N:
-largo
+I: largo, F: largo, D: Largo, Langsam, Breit, NL: largo, DK: largo, S: largo,
+N: largo
Very slow in tempo, usually combined with great
expressiveness. @emph{Larghetto} less slow than largo.
@item leading note
-I: sensibile, F: sensible, D: Leitton, NL: leidtoon, DK: ledetone, S: ledton,
-N: .
+I: sensibile, F: note sensible, D: Leitton, NL: leidtoon, DK: ledetone, S:
+ledton, N: .
The seventh @w{@ar{}@strong{scale degree}}, a @w{@ar{}@strong{semitone}} below
the tonic; so called because of its strong tendency to ``lead up'' (resolve
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\notes\relative c'' { a,1 s c'' }
@end mudela
@item legato
-I: legato, F: , D: legato, NL: legato, DK: legato, S: legato, N: .
+I: legato, F: legato, li@'e, D: legato, NL: legato, DK: legato, S: legato, N:
+.
To be performed without any perceptible interruption between the notes (a)
unlike @emph{leggiero} or @emph{non-legato} (b), @emph{portato} (c) and
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
-\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = ##t
+\emptyText
\property Lyrics.textStyle = "large"
\addlyrics
\notes\relative c'' {
@w{@ar{}@strong{appoggiatura}}
@item longa
-I: longa, F: , D: Longa, NL: longa, DK: longa, S: longa, N: longa
+I: longa, F: longa, D: Longa, NL: longa, DK: longa, S: longa, N: longa
note value: double length of @w{@ar{}@strong{brevis}}. @w{@ar{}@strong{note value}}
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\notes\relative c'' { g\longa }
@end mudela
@w{@ar{}@strong{interval}}
@item major
-I: maggiore, F: mode majeur, D: Dur, NL: majeur, DK: dur, S: dur, N: dur.
+I: maggiore, F: [mode] majeur, D: Dur, NL: majeur, DK: dur, S: dur, N: dur.
@w{@ar{}@strong{diatonic scale}}
bar-lines. @w{@ar{}@strong{meter}}
@item mediant
-I: mediante, F: m@'ediante, NL: mediant, D: Mediant, DK: mediant, S: mediant,
-N: .
+I: mediante, modale, F: m@'ediante, NL: mediant, D: Mediant, DK: mediant, S:
+mediant, N: .
1. The third @b{scale degree}. 2. A @w{@ar{}@strong{chord}} having its base tone
a third from that of another chord. For example the tonic chord may be
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\property Voice.clefStyle = "fullSizeChanges"
\notes\relative c' {
\clef "F"; c1 s
is minor.
@item mordent
-I: mordente, F: mordant, pinc@`e, D: Mordent, NL: mordent, DK: mordent, S:
-mordent, N: .
+I: mordente, F: mordant, D: Mordent, NL: mordent, DK: mordent, S: mordent, N:
+.
@w{@ar{}@strong{ornament}}
@mudela[13pt,eps]
\property Score.timeSignatureStyle = "C2/2"
-\property Voice.textEmptyDimension = "1"
+\emptyText
\property Voice.textStyle = "large"
\notes\relative c'' {
\time 4/4;
@end mudela
@item movement
-I: movimento, F: , D: Satz, NL: deel, DK: sats, S: sats, N: .
+I: movimento, F: mouvement, D: Satz, NL: deel, DK: sats, S: sats, N: .
Greater musical works like @w{@ar{}@strong{symphony}} and
@w{@ar{}@strong{sonata}} most often consist of several - more or less -
independant pieces called movements.
@item multibar rest
-I: pausa multipla, F: b@^aton de pause, NL: meermaats rust, D:
+I: pausa multipla, F: pause multiple, NL: meermaats rust, D:
mehrtaktige Pause, DK: flertaktspause, S: flertaktspaus, N: .
@
@mudela[13pt,eps]
\notes\relative c'' {
a1
-\property Score.skipBars=1 R1*3
+\property Score.skipBars=##t R1*3
a1 }
@end mudela
@w{@ar{}@strong{appoggiatura}}
@item ninth
-I: nona, F: , D: None, NL: noon, DK: none, S: nona, N: .
+I: nona, F: neuvi@`eme, D: None, NL: noon, DK: none, S: nona, N: .
@w{@ar{}@strong{interval}}
@item note
I: nota, F: note, D: Note, NL: noot, DK: node, S: not, N: ,
+Notes are signs by means of which music is fixed in writing. The term is, also
+used for the sound indicated by a note, and even for the key of the piano
+which produces the sound. However, a clear distinction between the terms tone
+and @w{@ar{}@strong{note}} is strongly recommended. Briefly, one sees a note,
+and hears a tone.
+
@item note head
I: testa, F: , D: Notenkopf, NL: nootballetje, DK: nodehovede, S: nothuvud, N:
.
instrument.
@item note value
-I: valore, durata, F: , D: Notenwert, NL: nootwaarde, DK nodev@ae{}rdi, S:
-notv@"arde, N: .
+I: valore, durata, F: dur@'ee, valeur (d'une note), D: Notenwert, NL:
+nootwaarde, DK nodev@ae{}rdi, S: notv@"arde, N: .
Note values (durations) are measured as fractions, normally 1/2, of the next
higher note value. The longest duration normally used is called @emph{brevis},
@mudela[13pt,eps]
\property Voice.textStyle = "large"
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\notes\relative c'' {
g\longa_"longa" g\breve_"breve"
g1_"1/1" g2_"1/2" g4_"1/4" s16 g8_"1/8" s16
@mudela[13pt,eps]
\property Voice.textStyle = "large"
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\notes\relative c'' {
r\longa_"longa" r\breve_"breve"
r1_"1/1" r2_"1/2" r4_"1/4" s16 r8_"1/8" s16
@
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
+\emptyText
\property Voice.textStyle = "large"
\notes\relative c'' {
\time 4/4;
@mudela[13pt,eps]
\property Voice.textStyle = "large"
-\property Voice.textEmptyDimension = "1"
+\emptyText
\notes\relative c'' {
\time 4/4;
\times 2/3 {g8_"triplets" g g} g4 g8 g g4 \bar "||";
@w{@ar{}@strong{interval}}
@item ornament; embellishment; accessory
-I: abbellimento, fioriture, abbellimenti, F: agr@`ement, ornement, D:
-Verzierung, Ornament, NL: versiering, DK: forsiring, S: ornament, N: .
+I: abbellimento, fioriture, F: agr@'ement, ornement, D: Verzierung, Ornament,
+NL: versiering, DK: forsiring, S: ornament, N: .
Most commonly used is the @emph{trill}, the rapid alternation of a given note
with the diatonic @w{@ar{}@strong{second}} above it. In the music from the
@mudela[13pt,eps]
<
\context Staff = sa {
- \property Voice.textEmptyDimension = "1"
+ \emptyText
\property Voice.textStyle = "large"
\notes\relative c'' {
c2._"pre-1850" b4\trill | c1 \bar "||";
@mudela[13pt,eps]
<
\context Staff = sa {
- \property Voice.textEmptyDimension = "1"
+ \emptyText
\property Voice.textStyle = "large"
\notes\relative c'' {
a4_"turn" b\turn c2 \bar "||";
@w{@ar{}@strong{appoggiatura}}
@item ossia
-I: ossia, F: facilit@'e, D: Ossia, NL: alternatief, DK: ossia, S: ossia, N: .
+I: ossia, F: ossia, D: Ossia, NL: alternatief, DK: ossia, S: ossia, N: .
Ossia (otherwise) marks an alternative. It is an added staff or piano
score, usually only a few measures long, which presents another version
of the music, for example for small hands.
@item part
-I: voce, parte, F: , D: Stimme, NL: partij, DK: stemme, S: st@"amma, N: .
+I: voce, parte, F: partie, D: Stimme, NL: partij, DK: stemme, S: st@"amma, N: .
1. In instrumental or choral music the music for the single instrument
or voice. 2. in contrapuntal music @w{@ar{}@strong{counterpoint}} the single
melodic line of the contrapuntal web.
@item percussion
-I: percussioni, F: , D: Schlagzeug, NL: slagwerk, DK: slagt@o{}j, S: slagverk,
-N: .
+I: percussioni, F: percussion, D: Schlagzeug, NL: slagwerk, DK: slagt@o{}j, S:
+slagverk, N: .
A family of musical instruments which are played on by striking or
shaking. Percussion instruments commonly used in a symphony orchestra are
the melody. Phrasing may be indicated by a @w{@ar{}@strong{slur}}.
@item piano
-I: piano, F: , D: piano, leise, NL: piano, DK: piano, S: piano, N: .
+I: piano, F: piano, D: piano, leise, NL: piano, DK: piano, S: piano, N: .
@emph{piano} (@b{p}) soft, @emph{pianissimo} (@b{pp}) very soft,
@emph{mezzopiano} (@b{mp}) medium soft.
tonh@"ojd, N: .
@item pizzicato
-I: pizzicato, F: , D: pizzicato, NL: pizzicato, getokkeld, DK: pizzicato, S:
-pizzicato.
+I: pizzicato, F: pizzicato, D: pizzicato, NL: pizzicato, getokkeld, DK:
+pizzicato, S: pizzicato.
Play by plucking the strings.
@item polyphony
-I: polifonia, F: , D: Polyphonie, NL: polyfonie, DK: polyfoni, S: polyfoni, N:
-.
+I: polifonia, F: polyphonie, D: Polyphonie, NL: polyfonie, DK: polyfoni, S:
+polyfoni, N: .
Music written in a combination of several simultaneous voices (parts) of a
more or less pronounced individuality. @w{@ar{}@strong{counterpoint}}
@w{@ar{}@strong{legato}}
@item presto
-I: presto, F: , D: Presto, Sehr schnell, NL: presto, Sehr schnell, DK: presto,
-S: presto, N: .
+I: presto, F: presto, D: Presto, Sehr schnell, NL: presto, Sehr schnell, DK:
+presto, S: presto, N: .
Very quick, i.e. quicker than @w{@ar{}@strong{allegro}}. @emph{prestissimo}
denotes the highest possible degree of speed.
@w{@ar{}@strong{note value}}
@item quintuplet
-I: quintina, F: , D: Quintole, NL: kwintool, DK: kvintol, S: kvintol, N: .
+I: quintina, F: quintuplet, D: Quintole, NL: kwintool, DK: kvintol, S:
+kvintol, N: .
@w{@ar{}@strong{note value}}
@item rallentando
-I: rallentando, F: , D: rallentando, langsamer, NL: rallentando, DK:
-rallentando, S: rallentando, N: .
+I: rallentando, F: rallentando, D: rallentando, langsamer, NL: rallentando, DK:
+rallentando, S: rallentando, N: rallentando.
-@w{@ar{}@strong{ritardando}}
+Abbreviation "rall.". @w{@ar{}@strong{ritardando}}
@item relative key
-I: tonalit@`a relativa, F: , D: Paralleltonart, DK: paralleltoneart, S:
-parallelltonart, N: .
+I: tonalit@`a relativa, F: tonalit@'e relative, D: Paralleltonart, DK:
+paralleltoneart, S: parallelltonart, N: .
@w{@ar{}@strong{Major}} and @w{@ar{}@strong{minor}} @w{@ar{}@strong{key}} with
the same @w{@ar{}@strong{signature}}.
@
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Voice.textStyle = "large"
\notes\relative c' {
\key es;
@end mudela
@item rest
-I: pausa, F: soupir, D: Pause, NL: rust, DK: pause, S: paus, N: .
+I: pausa, F: silence, D: Pause, NL: rust, DK: pause, S: paus, N: .
@w{@ar{}@strong{note value}}
common metrical unit (beat).
@item ritardando
-I: ritardando, F: , D: Ritardando, Langsamer, NL: ritardando, DK: ritardando,
-S: ritardando, N: .
+I: ritardando, F: ritardando, D: Ritardando, Langsamer, NL: ritardando, DK:
+ritardando, S: ritardando, N: .
Gradually slackening in speed. Mostly abbreviated to rit. or ritard.
@item ritenuto
-I: ritenuto, F: , D: Ritenuto, NL: ritenuto, DK: ritenuto, S: ritenuto, N: .
+I: ritenuto, F: ritenuto, D: Ritenuto, NL: ritenuto, DK: ritenuto, S:
+ritenuto, N: .
Immediate reduction of speed.
@
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Lyrics.textStyle = "large"
\property Lyrics.minVerticalAlign = 8
\addlyrics
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\notes\relative c'' { g1 gis s a bes s b c }
@end mudela
@w{@ar{}@strong{interval}}
@item sextuplet, sextolet
-I: settimina, F: sextolet, D: Sextole, NL: sextool, DK: sekstol, S: sextol, N:
+I: sestina, F: sextolet, D: Sextole, NL: sextool, DK: sekstol, S: sextol, N:
.
@w{@ar{}@strong{note value}}
(@emph{ti})). @w{@ar{}@strong{scale degree}}.
@item sonata
-I: sonata, F: , D: Sonate, NL: sonate, DK: sonate, S: sonat, N: .
+I: sonata, F: sonate, D: Sonate, NL: sonate, DK: sonate, S: sonat, N: .
In its present-day meaning a sonata denotes an instrumental composition for
piano or for some other instrument with piano accompaniment, which consists of
three or four independant pieces, called movements.
@item sonata form
-I: forma sonata, F: , D: Sonatenform, NL: hoofdvorm, sonatevorm, DK:
-sonateform, S: sonatform, N: .
+I: forma sonata, F: [en] forme de sonate, D: Sonatenform, NL: hoofdvorm,
+sonatevorm, DK: sonateform, S: sonatform, N: .
A form used frequently for single movements of the @w{@ar{}@strong{sonata}},
@w{@ar{}@strong{symphony}}, quartet etc. A movement written in sonata form
The highest female voice.
@item staccato
-I: staccato, F: , D: staccato, NL: staccato, DK: staccato, S: staccato, N:
+I: staccato, F: staccato, piqu@'e, d@'etach@'e, D: staccato, NL: staccato, DK:
+staccato, S: staccato, N:
Playing the note(s) short. Staccato is indicated by a dot above or below the
notehead.
@
@mudela[13pt,eps]
-\property Score.noAutoBeaming = "1"
-\property Score.barNonAuto = "1"
-\property Voice.textEmptyDimension = "1"
+\property Score.noAutoBeaming = ##t
+\property Score.barNonAuto = ##t
+\emptyText
\property Voice.textStyle = "large"
\notes\relative c'' {
g2_"1/2" g' s16
@end mudela
@item strings
-I: archi, F: , D: Streicher, NL: strijkers, DK: strygere, S: str@aa{}kar, N: .
+I: archi, F: cordes, D: Streicher, NL: strijkers, DK: strygere, S:
+str@aa{}kar, N: .
A family of stringed musical instruments played with a bow. Strings commonly
used in a symphony orchestra are violin, viola, violoncello and double bass.
harmony}}
@item submediant
-I: sopradominante, F: , D: Submediant, NL: submediant, DK: Submediant, S:
+I: sopratonica, F: , D: Submediant, NL: submediant, DK: Submediant, S:
submediant, N: .
The sixth @w{@ar{}@strong{scale degree}}.
@item subtonic
-I: sensibile, F: sous-tonique, D: Subtonika, NL: subtonica, DK: Subtonika, S:
+I: sottotonica, F: sous-tonique, D: Subtonika, NL: subtonica, DK: Subtonika, S:
subtonika, N: .
The seventh @w{@ar{}@strong{scale degree}}
The second @w{@ar{}@strong{scale degree}}.
@item symphony
-I: sinfonia, F: , D: Sinfonie, NL: symfonie, DK: symfoni, S: symfoni, N: .
+I: sinfonia, F: symphonie, D: Sinfonie, NL: symfonie, DK: symfoni, S: symfoni,
+N: .
A symphony may be defined as a @w{@ar{}@strong{sonata}} for orchestra.
@
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
+\emptyText
\property Voice.textStyle = "large"
\time 4/4;
\notes\relative c' {
writing down of keyboard, chamber, choral or orchestral music.
@item temperament
-I: temperamento, F: , D: Stimmung, Temperatur, NL: temperament, DK:
-temperatur, S: temperatur, N: .
+I: temperamento, F: temp@'erament, D: Stimmung, Temperatur, NL: temperament,
+DK: temperatur, S: temperatur, N: .
Systems of tuning in which the intervals deviate from the accoustically pure
intervals. @w{@ar{}@strong{meantone temperament}} @w{@ar{}@strong{equal
temperament}}
@item tempo indication
-I: indicazioni di tempo, F: signe de temps, D: Zeitma@ss{}, Tempobezeichnung,
-NL: tempo aanduiding, DK: tempobetegelse, S: tempobeteckning, N: .
+I: indicazione di tempo, F: indication de temps, D: Zeitma@ss{},
+Tempobezeichnung, NL: tempo aanduiding, DK: tempobetegelse, S:
+tempobeteckning, N: .
The rate of speed of a composition or a section thereof, ranging from the
slowest to the quickest, as is indicated by tempo marks as
The highest voice of men (apart from @w{@ar{}@strong{counter tenor}})
@item tenth
-I: decima, F: , D: Dezime, NL: deciem, DK: decim, S: decima, N: .
+I: decima, F: dixi@`eme, D: Dezime, NL: deciem, DK: decim, S: decima, N: .
@w{@ar{}@strong{note value}}
@w{@ar{}@strong{note value}}
@item thorough bass; figured bass
-I: basso continuo, F: basse chiffr@'e, D: Generalbass, bezifferter Bass, NL:
-basso continuo, DK:@w{ }generalbas, S: generalbas, N: .
+I: basso continuo, basso numerato, F: basse chiffr@'ee, D: Generalbass,
+bezifferter Bass, NL: basso continuo, DK:@w{ }generalbas, S: generalbas, N: .
A method of indicating an accompaniment part by the bass notes only, together
with figures designating the chief @w{@ar{}@strong{interval}}s and
@
@mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
\notes\relative c'' { g2 ~ g4. }
@end mudela
@w{@ar{}@strong{G clef}}
@item tremolo
-I: tremolo, F: tr@`emolo, D: Tremolo, NL: tremolo, DK: tremolo, S: tremolo, N:
+I: tremolo, F: tr@'emolo, D: Tremolo, NL: tremolo, DK: tremolo, S: tremolo, N:
.
On stringed instruments (@w{@ar{}@strong{strings}}) the quick reiteration of
@
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1"
+\emptyText
+\property Score.barNonAuto = ##t
\property Voice.textStyle = "large"
\notes\relative c' {
e2:32_"a" f:32 [ e8:16 f:16 g:16 a:16 ] s4 [:32 e1_"b" g]
@w{@ar{}@strong{ornament}}
@item triple meter
-I: tempo ternario, F: temps ternaire, D: dreiteiliger Takt, NL: driedelige
+I: tempo ternario, F: mesure ternaire, D: dreiteiliger Takt, NL: driedelige
maatsoort, DK: tredelt takt, S: tretakt, N: .
@w{@ar{}@strong{meter}}
give the international pitch for the tone @emph{a} (440 vibrations per second.)
@item turn; gruppetto
-I: grupetto, F: bris@`e, groupe, doubl@`e, grupetto, D: Doppelschlag, NL:
-dubbelslag, DK: dobbeltslag, S: dubbelslag, N: .
+I: gruppetto, F: grupetto, D: Doppelschlag, NL: dubbelslag, DK: dobbeltslag,
+S: dubbelslag, N: .
@item unison
I: unisono, F: unisson, D: Unison, unisono, NL: unisono, DK: unison, S:
different octave.
@item upbeat
-I: anacrusi, F: , D: Auftakt, NL: opmaat, I: , DK: optakt, S: upptakt, N:
+I: anacrusi, F: anacrouse, D: Auftakt, NL: opmaat, I: , DK: optakt, S:
+upptakt, N:
Initial note(s) of a melody occurring before the first bar
line. @w{@ar{}@strong{measure}} @w{@ar{}@strong{meter}}
@w{@ar{}@strong{note value}}
@item whole tone
-I: tono intero, F: , D: Ganzton, NL: hele toon, DK: heltone, S: helton, N: .
+I: tono intero, F: ton entier, D: Ganzton, NL: hele toon, DK: heltone, S:
+helton, N: .
The @w{@ar{}@strong{interval}} of a major second. The interval between two
tones on the piano keyboard with exactly one key between them - including
@
-@item Litterature used
+@item Literature used
The Harvard Dictionary of Music, London 1944. Many more or less litteral
quotes from its articles have been included into the item explanation texts.
@cindex properties!GrandStaff
@table @samp
- @item @code{alignmentReference}@indexcode{alignmentReference}
-@propertytype{direction}
- Set to @code{\center} for vertical alignment reference point to be
- in the center of the vertical group. Set to @code{\up} to put the
- reference point at the top of the group.
-
@item @code{maxVerticalAlign}@indexcode{maxVerticalAlign} @propertytype{number}
Set the maximum vertical distance between staffs.
You need a working LilyPond binary to create the DVI sources .
* use ASCII. Do using
- make -C doc
+ make doc
Comments
. * use hash tabs iso. alist_ for elt property?
. * unhardcode stuff in bezier-bow: all sizes other than 20pt are
broken
+. * use ports iso. iostream.
+. * hard constraints for broken slurs to.
+. * mondrup
+
+- In some cases I don't get the large textsize within note examples I request.
+Consider for example the entry 'c clef', where \property Lyrics.textStyle = "large"
+used to give that result. It doesn't now. The large text sizes DO work in other cases,
+for example in the entry 'chord' (\property Voice.textStyle = "large"). To me it looks
+like the property Voice.textStyle is working while Lyrics.textStyle isn't. Consider
+for example the entry 'functional harmony' which has the same problem as 'chord'
+
+- I don't get full size clef changes upon issuing \property Voice.clefStyle =
+"fullSizeChanges", see for example the entry 'c clef'.
+
+- In the entry 'brace' the second note example using \context StaffGroup gets the
+staff bracket offset to the left page margin !! while the first note example behaves
+normally.
+
+- <p><img> in mudela-book
+. * mats
+
+If textStyle is set (in the \paper section), this setting
+applies also to dynamics.
+
+Also, the marginScriptPadding should be set by default to give
+a nice layout, but that's already been reported on the list.
+
+- What happened to the StaffGroup brackets?
+ Try input/test/orchestscore.ly which worked fine in pl 27.
+
+- Why do I get bar numbers on every bar (both for the score
+ and the parts)?
+
+- Bar numbers and marks are not printed on top of the staffs,
+ but at one of the middle parts of the score. This may be
+ related to the problem with the brackets, since the
+ corresponding StaffGroup is the only one to get a bracket,
+ even though it is misplaced horisontally.
+
+- The score extends too high on the page, it often overwrites the
+ page number. LaTeX warns about overfull boxes. I'll take a look
+ at the page layout.
+
. * control paper-size/-file from commandline ?
lilypond --paper=paper16 foo.ly
lilypond --paper=paper20 foo.ly
lilypond --paper=paper-as9 foo.ly
-. * entangle ly/* paper-params papersize stuff
+. * detangle ly/* paper-params papersize stuff
. * fix tremolos.
. * change ) c4 to c4-)
. * automated marks.
. * glibc 2.0:
f = fopen ("/dev/null", "r")
assert (feof (f))
+. * Texinfo, add [ A | B | C ] style tocs to .html output, and don't rely
+ on @node names for html tocs.
.* PROJECTS
. * Scripts:
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=3
-PATCH_LEVEL=29
+PATCH_LEVEL=30
MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
dnl WARNING WARNING WARNING WARNING
dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
+dnl WARNING WARNING WARNING WARNING
+dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
dnl aclocal.m4 -*-shell-script-*-
dnl StepMake subroutines for configure.in
# For now let people define these in their environments
#
: ${MFPLAIN_MP=`kpsewhich mp mfplain.mp`}
- : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
+
+ if test ${INIMETAPOST} = "inimp" ; then
+ : ${INIMETAPOST_FLAGS=''}
+ else
+ : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
+ fi
rm -f mfput.*
AC_MSG_RESULT($MFMODE)
# For now let people define these in their environments
#
: ${MFPLAIN_MP=`kpsewhich mp mfplain.mp`}
- : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
+
+ if test ${INIMETAPOST} = "inimp" ; then
+ : ${INIMETAPOST_FLAGS=''}
+ else
+ : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
+ fi
rm -f mfput.*
echo "$ac_t""$MFMODE" 1>&6
# 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:2586: checking for $ac_word" >&5
+echo "configure:2591: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_KPSEWHICH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
test -n "$KPSEWHICH" || KPSEWHICH="no"
echo $ac_n "checking for TeX TFM directory""... $ac_c" 1>&6
-echo "configure:2617: checking for TeX TFM directory" >&5
+echo "configure:2622: checking for TeX TFM directory" >&5
if test "x$TFMDIR" = xauto ; then
if test "x$TEX_TFMDIR" = "x" ; then
if test "x$KPSEWHICH" != "xno" ; then
## The GUILE_FLAGS macro.
## First, let's just see if we can find Guile at all.
echo $ac_n "checking for Guile""... $ac_c" 1>&6
-echo "configure:2640: checking for Guile" >&5
+echo "configure:2645: checking for Guile" >&5
guile-config link > /dev/null || {
echo "configure: cannot find guile-config; is Guile installed?" 1>&2
exit 1
# Extract the first word of "guile", so it can be a program name with args.
set dummy guile; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2660: checking for $ac_word" >&5
+echo "configure:2665: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GUILE'+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:2698: checking for 8-bit clean memcmp" >&5
+echo "configure:2703: 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 2706 "configure"
+#line 2711 "configure"
#include "confdefs.h"
#ifdef __cplusplus
extern "C" void exit(int);
}
EOF
-if { (eval echo configure:2719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_memcmp_clean=yes
else
test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2737: checking for vprintf" >&5
+echo "configure:2742: 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 2742 "configure"
+#line 2747 "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:2768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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:2792: checking for _doprnt" >&5
+echo "configure:2797: 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 2797 "configure"
+#line 2802 "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:2823: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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:2850: checking for $ac_func" >&5
+echo "configure:2855: 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 2855 "configure"
+#line 2860 "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:2881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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:2920: checking for $ac_word" >&5
+echo "configure:2925: 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
# Extract the first word of "perl", so it can be a program name with args.
set dummy perl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2953: checking for $ac_word" >&5
+echo "configure:2958: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
global = \notes {
s1 | \mark "A";
- s1*2 | \mark "'12";
+ s1 | \mark ;
+ s1 | \mark "12";
+ s1
}
-one = \notes\relative c{
- c'' c c c
- c c c c
- c c c c
+one = \notes \relative c {
+ c''1 c c c
}
-two = \notes\relative c{
- b' b b b
- b b b b
- b b b b
-}
\score{
- < \global \one \two >
+\context Staff < \global \one >
\paper {
\translator { \OrchestralPartStaffContext
- markScriptPadding = "4.0";
- markHangOn = "Bar";
- markHangDepth = "1";
-% markDirection = \down;
}
}
}
void
Align_element::do_side_processing ()
{
+ SCM d = get_elt_property ("stacking-dir");
+ Direction stacking_dir = gh_number_p(d) ? to_dir (d) : CENTER;
+ if (!stacking_dir)
+ stacking_dir = DOWN;
+
+
Array<Interval> dims;
Link_array<Score_element> elems;
}
Real where_f=0;
- Real center_f = 0.0;
- SCM scenter = get_elt_property ("center-element");
- Score_element *center_elt = unsmob_element (scenter);
-
for (int i=0 ; i < elems.size(); i++)
{
- Real dy = - stacking_dir_ * dims[i][-stacking_dir_];
+ Real dy = - stacking_dir * dims[i][-stacking_dir];
if (i)
- dy += stacking_dir_ * dims[i-1][stacking_dir_];
+ dy += stacking_dir * dims[i-1][stacking_dir];
if (i)
{
<? threshold_interval_[BIGGER];
}
- if (!i && align_dir_ == LEFT)
- center_f = where_f;
- else if (align_dir_ == CENTER && elems[i] == center_elt)
- center_f = where_f;
- where_f += stacking_dir_ * dy;
+ where_f += stacking_dir * dy;
elems[i]->translate_axis (where_f, axis ());
}
-
- if (dims.size ())
- where_f += dims.top ()[stacking_dir_];
- if (align_dir_ == RIGHT)
- center_f = where_f;
- else if (align_dir_ == CENTER && !center_elt)
- center_f = where_f / 2;
-
- if (center_f)
- translate_axis ( - center_f, axis ());
}
Align_element::Align_element()
{
threshold_interval_ = Interval (0, Interval::infinity ());
- stacking_dir_ = DOWN;
- align_dir_ = CENTER;
}
int
void
Align_note_column_engraver::do_removal_processing ()
{
- SCM al = get_property ("graceAlignPosition", 0);
+ SCM al = get_property ("graceAlignPosition");
if (isdir_b (al))
{
- directional_element (align_item_p_).set (to_dir (al));
+ Direction d = to_dir (al);
+ directional_element (align_item_p_).set (d);
+ align_item_p_->set_elt_property ("align-dir", to_dir (-d));
}
typeset_element (align_item_p_);
B. it has no pscore_l_ field.
*/
- SCM grsp = get_property ("graceAccidentalSpace", 0);
+ SCM grsp = get_property ("graceAccidentalSpace");
if (gh_number_p(grsp))
{
/*
-/*
- atom.cc -- implement Atom
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include <math.h>
-
-#include "atom.hh"
-#include "lookup.hh"
-#include "global-ctor.hh"
-#include "font-metric.hh"
-
-
-#if 0
-SCM translate_sym;
-
-static void init()
-{
- translate_sym = sly_symbol2scm ("translate-atom");
-}
-
-ADD_SCM_INIT_FUNC(atom, init);
-#endif
-
-SCM
-translate_atom (Offset o, SCM func)
-{
- return gh_list (ly_symbol2scm ("translate-atom"),
- ly_quote_scm (to_scm (o)),
- func,
- SCM_UNDEFINED);
-}
-
-SCM
-translate_atom_axis (Real r, Axis a, SCM func)
-{
- // off_[a] += r;
- Offset o ;
- o[a] = r;
- return gh_list (ly_symbol2scm ("translate-atom"),
- ly_quote_scm (to_scm (o)),
- func,
- SCM_UNDEFINED);
-}
-
-
-SCM
-fontify_atom(Font_metric * met, SCM f)
-{
- return gh_list (ly_symbol2scm ("fontify"),
- ly_quote_scm (met->description ()), f, SCM_UNDEFINED);
-}
/*
first guess: end beam at end of beat
*/
- SCM one (get_property ("beatLength", 0));
+ SCM one (get_property ("beatLength"));
Moment end_mom;
if (SMOB_IS_TYPE_B(Moment, one))
/*
second guess: property generic time exception
*/
- SCM begin = get_property (time_str + "beamAutoBegin", 0);
+ SCM begin = get_property (time_str + "beamAutoBegin");
if (SMOB_IS_TYPE_B(Moment, begin))
begin_mom = * SMOB_TO_TYPE(Moment, begin);
- SCM end = get_property (time_str + "beamAutoEnd", 0);
+ SCM end = get_property (time_str + "beamAutoEnd");
if (SMOB_IS_TYPE_B (Moment, end))
end_mom = * SMOB_TO_TYPE(Moment,end);
*/
if (type_str.length_i ())
{
- SCM end_mult = get_property (time_str + "beamAutoEnd" + type_str, 0);
+ SCM end_mult = get_property ( time_str + "beamAutoEnd" + type_str);
if (SMOB_IS_TYPE_B (Moment, end_mult))
end_mom = * SMOB_TO_TYPE (Moment,end_mult);
- SCM begin_mult = get_property (time_str + "beamAutoBegin" + type_str, 0);
+ SCM begin_mult = get_property (time_str + "beamAutoBegin" + type_str);
if (SMOB_IS_TYPE_B (Moment, begin_mult))
begin_mom = * SMOB_TO_TYPE (Moment,begin_mult);
}
/*
fourth guess [user override]: property plain generic
*/
- begin = get_property ("beamAutoBegin", 0);
+ begin = get_property ("beamAutoBegin");
if (SMOB_IS_TYPE_B(Moment, begin))
begin_mom = * SMOB_TO_TYPE(Moment, begin);
- end = get_property ("beamAutoEnd", 0);
+ end = get_property ("beamAutoEnd");
if (SMOB_IS_TYPE_B (Moment, end))
end_mom = * SMOB_TO_TYPE (Moment,end);
*/
if (type_str.length_i ())
{
- SCM end_mult = get_property (String ("beamAutoEnd") + type_str, 0);
+ SCM end_mult = get_property (String ("beamAutoEnd") + type_str);
if (SMOB_IS_TYPE_B (Moment, end_mult))
end_mom = * SMOB_TO_TYPE (Moment,end_mult);
- SCM begin_mult = get_property (String ("beamAutoBegin") + type_str, 0);
+ SCM begin_mult = get_property (String ("beamAutoBegin") + type_str);
if (SMOB_IS_TYPE_B (Moment, begin_mult))
begin_mom = * SMOB_TO_TYPE (Moment,begin_mult);
}
/*
Allow already started autobeam to end
*/
- SCM on = get_property ("noAutoBeaming", 0);
+ SCM on = get_property ("noAutoBeaming");
if (to_boolean (on))
return;
Auto_beam_engraver::same_grace_state_b (Score_element* e)
{
bool gr = e->get_elt_property ("grace") == SCM_BOOL_T;
- SCM wg =get_property ("weAreGraceContext",0);
+ SCM wg =get_property ("weAreGraceContext");
return (to_boolean (wg)) == gr;
}
bar_p_->set_elt_property ("break-aligned", SCM_BOOL_T);
// urg: "" != empty...
- SCM default_type = get_property ("defaultBarType", 0);
+ SCM default_type = get_property ("defaultBarType");
if (gh_string_p (default_type))
{
bar_p_->set_elt_property ("glyph", default_type); // gu.h
/*
urg. Why did I implement this? And did I implement this so
clumsily? */
- SCM prop = get_property ("barAtLineStart", 0);
+ SCM prop = get_property ("barAtLineStart");
if (to_boolean (prop))
{
bar_p_->set_elt_property ("at-line-start", SCM_BOOL_T);
{
if (!now_mom ())
{
- SCM prop = get_property ("barAtLineStart", 0);
+ SCM prop = get_property ("barAtLineStart");
if (!to_boolean (prop))
return;
}
Timing_translator *time = dynamic_cast<Timing_translator*>(tr);
// todo include (&&!time->cadenza_b_ )
- SCM bn = get_property("currentBarNumber",0);
+ SCM bn = get_property("currentBarNumber");
if (gh_number_p (bn) &&
!time->measure_position () && now_mom () > Moment (0))
Bar_script_engraver::do_creation_processing ()
{
String t = type_ + "VisibilityFunction";
- SCM proc = get_property (t, 0);
+ SCM proc = get_property (t);
if (gh_procedure_p (proc))
visibility_lambda_ = proc;
Side_position_interface staffside(text_p_);
staffside.set_axis (axis_);
- SCM prop = get_property (type_ + "Direction", 0);
+ SCM prop = get_property (type_ + "Direction");
if (!isdir_b (prop))
{
prop = gh_int2scm (UP);
}
text_p_->set_elt_property ("direction", prop);
- SCM padding = get_property (type_ + "ScriptPadding", 0);
+ SCM padding = get_property (type_ + "ScriptPadding");
if (gh_number_p(padding))
{
text_p_->set_elt_property ("padding", padding);
/*
- use a property? get_property ("singleStaffBracket", 0) ?
+ use a property? get_property ("singleStaffBracket"); ?
--hwn
*/
bool stem_grace = stem_l->get_elt_property ("grace") == SCM_BOOL_T;
- SCM wg =get_property ("weAreGraceContext",0);
+ SCM wg =get_property ("weAreGraceContext");
bool wgb= to_boolean (wg);
if (wgb!= stem_grace)
Real interbeam_f = paper_l ()->interbeam_f (multiplicity);
- Real thick = gh_scm2double (get_elt_property ("beam-thickness"));;
+ Real thick = gh_scm2double (get_elt_property ("beam-thickness"));
Real bdy = interbeam_f;
Real stemdx = staffline_f;
void
Break_align_engraver::do_pre_move_processing ()
{
- SCM order = get_property ("breakAlignOrder", 0);
+ SCM order = get_property ("breakAlignOrder");
for (; gh_pair_p (order); order = gh_cdr (order))
{
SCM p = scm_assoc ( gh_car (order), column_alist_);
*/
#include <math.h>
+#include "side-position-interface.hh"
#include "warn.hh"
#include "dimension-cache.hh"
#include "lily-guile.hh"
void
Break_align_item::do_pre_processing()
{
- if (break_status_dir() == LEFT)
- align_dir_ = LEFT;
- else
- align_dir_ = RIGHT;
-
- flip (&align_dir_);
-
+ Direction ad = (break_status_dir() == LEFT) ? RIGHT : LEFT;
Real interline= paper_l ()->get_var ("interline");
-
+
+ set_elt_property ("self-alignment-X", gh_int2scm (ad));
+
+
Link_array<Score_element> elems;
Link_array<Score_element> all_elems (elem_l_arr ());
Break_align_item::Break_align_item ()
{
- stacking_dir_ = RIGHT;
+ set_elt_property ("stacking-dir" , gh_int2scm (RIGHT));
set_axis (X_AXIS);
+
+ dim_cache_[X_AXIS]->off_callbacks_.push (Side_position_interface::aligned_on_self);
}
return;
bool find_inversion_b = false;
- SCM chord_inversion = get_property ("chordInversion", 0);
+ SCM chord_inversion = get_property ("chordInversion");
if (gh_boolean_p (chord_inversion))
find_inversion_b = gh_scm2bool (chord_inversion);
else
octave_dir_ = CENTER;
- SCM c = get_property ("supportedClefTypes",0);
- SCM p = get_property ("clefPitches", 0);
+ SCM c = get_property ("supportedClefTypes");
+ SCM p = get_property ("clefPitches");
if (gh_list_p (c))
{
void
Clef_engraver::do_creation_processing()
{
- SCM def = get_property ("defaultClef", 0);
+ SCM def = get_property ("defaultClef");
if (gh_string_p (def))
{
set_type (ly_scm2string (def));
}
-void
-Mark_req::do_print () const
-{
- DEBUG_OUT << str_;
-}
bool
Mark_req::do_equal_b (Request const * r) const
{
Mark_req const * other = dynamic_cast<Mark_req const*> (r);
- return other && other->str_ == str_;
+ return other && scm_equal_p (other->mark_label_, mark_label_);
}
void
#include "paper-def.hh"
#include "debug.hh"
#include "paper-column.hh"
-#include "atom.hh"
+
Crescendo::Crescendo ()
{
/*
UGH UGH
*/
- SCM prop = get_property ("dynamicDirection", 0);
+ SCM prop = get_property ("dynamicDirection");
if (!isdir_b (prop))
{
- prop = get_property ("verticalDirection", 0);
+ prop = get_property ("verticalDirection");
}
if (isdir_b (prop) && to_dir (prop))
text_p_->set_elt_property ("direction", prop);
- prop = get_property ("dynamicPadding", 0);
+ prop = get_property ("dynamicPadding");
if (gh_number_p(prop))
{
text_p_->set_elt_property ("padding", prop);
Grace_align_item::Grace_align_item ()
{
- stacking_dir_ = RIGHT;
+ set_elt_property ("stacking-dir", gh_int2scm (RIGHT));
set_axis (X_AXIS);
}
Axis_align_item::do_pre_processing ();
- translate_axis (-0.5* nhw, X_AXIS); // ugh.
+ // translate_axis (-0.5* nhw, X_AXIS); // ugh.
}
return;
warning (_("Unattached grace notes. Attaching to last musical column."));
- /* if (ae)
- ae->remove_element (align_l_);
- else if (elt)*/
-
align_l_->set_parent (0, X_AXIS);
last_musical_col_l_->add_element (align_l_);
shortest_mom = shortest_mom <? notes_[i]->length_mom_;
Rational grace_fraction_rat (1, 2);
- SCM prop = get_property ("graceFraction", 0);
+ SCM prop = get_property ("graceFraction");
if (SMOB_IS_TYPE_B(Moment, prop))
grace_fraction_rat = *SMOB_TO_TYPE (Moment,prop);
TODO: implement padding.
document usage of this.
- */
-class Align_element : public virtual Axis_group_element {
-public:
- Interval threshold_interval_ ;
- /**
- Should high priorities be first or last?
- */
-
- Direction stacking_dir_;
- /**
- Which side to align? -1: left side, 0: centered (around
+
+ *******
+
+ element properties
+
+ stacking-dir
+
+ Which side to align? -1: left side, 0: centered (around
center_l_ if not nil, or around center of width), 1: right side
- URG. Unintuitive if stacking_dir_ == -1
- */
+ *****
- Direction align_dir_;
+ align-dir: deprecate! Use Side_pos_interface::self_align
+
+*/
+class Align_element : public virtual Axis_group_element {
+public:
+ Interval threshold_interval_ ;
+
Axis axis () const;
Align_element ();
#define ATOM_HH
#include "lily-proto.hh"
-#include "box.hh"
+
#include "lily-guile.hh"
-SCM fontify_atom (Font_metric*, SCM atom);
#endif
#include "duration.hh"
#include "musical-pitch.hh"
#include "key-def.hh"
+#include "protected-scm.hh"
class Break_req : public Request {
public:
class Mark_req : public Request {
public:
- String str_;
+ Protected_scm mark_label_;
protected:
virtual bool do_equal_b (Request const*) const;
- virtual void do_print () const;
VIRTUAL_COPY_CONS(Music);
};
SCM ly_eval_str (String s);
SCM ly_symbol2scm (char const *);
String ly_symbol2string (SCM);
+SCM ly_type (SCM);
SCM ly_eval (SCM a);
SCM ly_parse_scm (char const* s, int* n);
#ifndef MARK_ENGRAVER_HH
#define MARK_ENGRAVER_HH
-#include "bar-script-engraver.hh"
+#error
-/**Print rehearsal marks.
- */
-class Mark_engraver : public Bar_script_engraver
-{
-public:
- Mark_engraver ();
- VIRTUAL_COPY_CONS(Translator);
-protected:
- virtual bool do_try_music (Music *req_l);
- virtual void do_process_requests ();
- virtual void do_post_move_processing ();
-private:
- Mark_req * mark_req_l_;
-};
-#endif // MARK_ENGRAVER_HH
+dendif // MARK_ENGRAVER_HH
bool empty_b() const;
void print ()const;
};
+
+SCM fontify_atom (Font_metric*, SCM atom);
+
#endif
Cons_list<Translator> trans_p_list_;
public:
- SCM get_property (SCM name_sym, Translator_group **where_found_l) const;
+ SCM get_property (SCM name_sym) const;
void set_property (String var_name, SCM value);
*/
Music_output_def *output_def_l () const;
- SCM get_property (String, Translator_group **) const;
- SCM get_property (SCM symbol, Translator_group **) const;
+ SCM get_property (String) const;
+ SCM get_property (SCM symbol) const;
virtual Moment now_mom () const;
{
if (dynamic_cast <Clef_change_req *> (info.req_l_))
{
- SCM c = get_property ("createKeyOnClefChange", 0);
+ SCM c = get_property ("createKeyOnClefChange");
if (to_boolean (c))
create_key ();
}
{
old_accidental_idx_arr_ = accidental_idx_arr_;
key_.clear ();
- SCM prop = get_property ("keyOctaviation", 0);
+ SCM prop = get_property ("keyOctaviation");
key_.multi_octave_b_ = to_boolean (prop);
return Offset (gh_scm2double (gh_car (s)),
gh_scm2double (gh_cdr (s)));
}
+
+SCM
+ly_type (SCM exp)
+{
+ char const * cp = "unknown";
+ if (gh_number_p (exp))
+ {
+ cp = "number";
+ }
+ else if (gh_string_p (exp))
+ {
+ cp = "string";
+ }
+ else if (gh_procedure_p (exp))
+ {
+ cp = "procedure";
+ }
+ else if (gh_boolean_p (exp))
+ {
+ cp = "boolean";
+ }
+ else if (gh_pair_p (exp))
+ {
+ cp = "list";
+ }
+
+ return ly_str02scm (cp);
+}
{
if (!key_item_p_ && mel_l_arr_.size())
{
- SCM f = get_property ("forgetAccidentals",0);
+ SCM f = get_property ("forgetAccidentals");
bool forget = to_boolean (f);
for (int i=0; i < mel_l_arr_.size(); i++)
{
void
Local_key_engraver::acknowledge_element (Score_element_info info)
{
- SCM wg= get_property ("weAreGraceContext", 0);
+ SCM wg= get_property ("weAreGraceContext");
bool selfgr = gh_boolean_p (wg) &&gh_scm2bool (wg);
bool he_gr = to_boolean (info.elem_l_->get_elt_property ("grace"));
{
if (time_trans_l_ && !time_trans_l_->measure_position ())
{
- if (!to_boolean (get_property ("noResetKey",0)) && key_grav_l_)
+ if (!to_boolean (get_property ("noResetKey")) && key_grav_l_)
local_key_= key_grav_l_->key_;
}
else if (key_grav_l_ && key_grav_l_->key_changed_b ())
#include "afm.hh"
#include "scope.hh"
#include "molecule.hh"
-#include "atom.hh"
+
#include "lily-guile.hh"
(c) 1998--2000 Jan Nieuwenhuizen <janneke@gnu.org>
*/
+
#include "command-request.hh"
-#include "mark-engraver.hh"
+#include "bar-script-engraver.hh"
#include "engraver-group-engraver.hh"
#include "text-item.hh"
+/**Print rehearsal marks.
+ */
+class Mark_engraver : public Bar_script_engraver
+{
+public:
+ Mark_engraver ();
+ VIRTUAL_COPY_CONS(Translator);
+protected:
+ virtual bool do_try_music (Music *req_l);
+ virtual void do_process_requests ();
+ virtual void do_post_move_processing ();
+private:
+ Mark_req * mark_req_l_;
+};
+
ADD_THIS_TRANSLATOR (Mark_engraver);
{
if (Mark_req *mr = dynamic_cast <Mark_req *> (r_l))
{
-
if (mark_req_l_ && mr->equal_b (mark_req_l_))
return true;
if (mark_req_l_)
{
create_items (mark_req_l_);
- String t = mark_req_l_->str_;
+ String t;
+
+ SCM m = (mark_req_l_->mark_label_ == SCM_UNDEFINED)
+ ? get_property ("rehearsalMark")
+ : SCM(mark_req_l_->mark_label_);
+
+ if (gh_number_p (m))
+ {
+ int mark_count = gh_scm2int (m);
+ t = to_str (mark_count);
+ mark_count ++;
+ m = gh_int2scm (mark_count);
+ }
+ else if (gh_string_p (m))
+ {
+ t = ly_scm2string (m);
+ String next;
+ if (t.length_i ())
+ {
+ char c = t[0];
+ c++;
+ next = to_str (c);
+ }
+ m = ly_str02scm (next.ch_C());
+ }
+ else
+ {
+ m = gh_int2scm (1);
+ }
+
+ daddy_trans_l_->set_property ("rehearsalMark", m);
+
+
text_p_->set_elt_property ("text",
ly_str02scm ( t.ch_C()));
SCM st = ly_str02scm ((t.index_any_i ("0123456789") >= 0 )
{
if (dynamic_cast<Melisma_playing_req*>(m))
{
- SCM plain (get_property ("melismaBusy", 0));
- SCM slur (get_property ("slurMelismaBusy", 0));
- SCM tie (get_property ("tieMelismaBusy", 0));
+ SCM plain (get_property ("melismaBusy"));
+ SCM slur (get_property ("slurMelismaBusy"));
+ SCM tie (get_property ("tieMelismaBusy"));
return (to_boolean (plain))
|| (to_boolean (slur))
|| (to_boolean (tie));
#include <math.h>
+#include "font-metric.hh"
#include "dimensions.hh"
#include "interval.hh"
#include "string.hh"
#include "molecule.hh"
-#include "atom.hh"
+
#include "debug.hh"
#include "killing-cons.tcc"
{
return expr_ == SCM_EOL;
}
+
+
+SCM
+fontify_atom(Font_metric * met, SCM f)
+{
+ return gh_list (ly_symbol2scm ("fontify"),
+ ly_quote_scm (met->description ()), f, SCM_UNDEFINED);
+}
announce_element (Score_element_info (mmrest_p_, busy_span_req_l_));
start_measure_i_
- = gh_scm2int (time->get_property ("currentBarNumber", 0));
+ = gh_scm2int (time->get_property ("currentBarNumber"));
}
}
if (mmrest_p_ && !time->measure_position ())
{
lastrest_p_ = mmrest_p_;
- int cur = gh_scm2int (time->get_property ("currentBarNumber", 0));
+ int cur = gh_scm2int (time->get_property ("currentBarNumber"));
lastrest_p_->set_elt_property ("measure-count",
gh_int2scm (cur - start_measure_i_));
mmrest_p_ = 0;
if (note_p_arr_.size ())
return ;
- SCM noteheadstyle = get_property ("noteHeadStyle", 0);
+ SCM noteheadstyle = get_property ("noteHeadStyle");
for (int i=0; i < note_req_l_arr_.size (); i++)
{
Note_head *note_p = new Note_head;
{
int transposing_i = 0;
//urg
- SCM prop = get_property ("transposing", 0);
+ SCM prop = get_property ("transposing");
if (gh_number_p(prop))
transposing_i = gh_scm2int (prop);
Paper_column::Paper_column (Moment w)
{
- SCM when = (new Moment (w))->smobify_self ();;
+ SCM when = (new Moment (w))->smobify_self ();
scm_unprotect_object (when);
set_elt_property ("when", when);
#include "scope.hh"
#include "identifier.hh"
#include "lily-version.hh"
-#include "atom.hh"
+
Paper_outputter::Paper_outputter ()
{
sp_p->span_type_str_ = ly_scm2string ($3);
sp_p->set_spot (THIS->here_input ());
$$ = sp_p;
- }
+ }
+ | MARK {
+ Mark_req * m = new Mark_req;
+ $$ = m;
+ }
| MARK STRING {
Mark_req *m = new Mark_req;
- m->str_ = ly_scm2string ($2);
+ m->mark_label_ = $2;
$$ = m;
}
| MARK unsigned {
Mark_req *m = new Mark_req;
- m->str_ = to_str ($2);
+ m->mark_label_ = gh_int2scm ($2);
$$ = m;
}
+
| TIME_T unsigned '/' unsigned {
Time_signature_change_req *m = new Time_signature_change_req;
m->beats_i_ = $2;
void
Property_engraver::do_creation_processing ()
{
- SCM plist = get_property ("Generic_property_list", 0);
+ SCM plist = get_property ("Generic_property_list");
for (; SCM_NIMP (plist); plist = gh_cdr (plist))
{
SCM elt_props = gh_car (plist);
if (preset != SCM_BOOL_F)
continue;
- SCM val = get_property (prop_sym, 0);
- if (val != SCM_UNDEFINED
- && gh_apply (type_p, scm_listify (val, SCM_UNDEFINED))
- == SCM_BOOL_T)
+ SCM val = get_property (prop_sym);
+ if (val == SCM_UNDEFINED)
+ ;
+ else if (gh_apply (type_p, scm_listify (val, SCM_UNDEFINED))
+ == SCM_BOOL_T)
e->set_elt_property (ly_symbol2string (elt_prop_name), val);
+ else
+ {
+ SCM errport = scm_current_error_port ();
+ warning (_("Wrong type for property"));
+
+ scm_puts ("type predicate: ", errport);
+ scm_display (type_p, errport);
+ scm_puts (", value found: ", errport);
+ scm_display (val, errport);
+ scm_puts (" type: ", errport);
+ scm_display (ly_type (val), errport);
+ scm_puts ("\n", errport);
+
+ }
}
}
Protected_scm::Protected_scm ()
{
- object_ = 0;
+ object_ = SCM_UNDEFINED;
}
Protected_scm::Protected_scm (SCM s)
{
- object_ = s ? scm_protect_object (s): 0;
+ object_ = SCM_NIMP(s) ? scm_protect_object (s): s;
}
Protected_scm::Protected_scm (Protected_scm const &s)
{
- object_ = s.object_ ? scm_protect_object (s.object_) : 0;
+ object_ = SCM_NIMP(s.object_) ? scm_protect_object (s.object_) : s.object_;
}
Protected_scm &
{
if (object_ == s)
return *this;
- if (object_)
+
+ if (SCM_NIMP (object_))
scm_unprotect_object(object_);
- object_ = s ? scm_protect_object (s): 0;
+ object_ = SCM_NIMP (s) ? scm_protect_object (s): s;
return *this;
}
Protected_scm::~Protected_scm ()
{
- if (object_)
+ if (SCM_NIMP (object_))
{
scm_unprotect_object (object_);
}
Music_sequence* alt = repeated_music_l_->alternatives_p_;
Moment walk_mom = now_mom () + repeated_music_l_->repeat_body_p_->length_mom ();
- SCM novolta = get_property ("noVoltaBraces",0);
+ SCM novolta = get_property ("noVoltaBraces");
bool create_volta = !to_boolean (novolta);
Cons_list<Bar_create_event> becel;
becel.append (c);
last_number = volta_number;
volta_number ++;
- SCM l (get_property ("voltaSpannerDuration", 0));
+ SCM l (get_property ("voltaSpannerDuration"));
if (SMOB_IS_TYPE_B (Moment, l))
{
Moment vSD_mom = *SMOB_TO_TYPE (Moment,l);
stem_l_ = 0;
}
- SCM wg = get_property ("weAreGraceContext",0);
+ SCM wg = get_property ("weAreGraceContext");
bool wegrace = to_boolean (wg);
if (!wegrace)
void
Rhythmic_column_engraver::acknowledge_element (Score_element_info i)
{
- SCM wg = get_property ("weAreGraceContext",0);
+ SCM wg = get_property ("weAreGraceContext");
bool wegrace = to_boolean (wg);
if ((wegrace !=
(i.elem_l_->get_elt_property ("grace") != SCM_UNDEFINED))
{
return r1.other_l_->rank_i() - r2.other_l_->rank_i();
}
+
void
Rod::add_to_cols ()
{
Direction d = LEFT;
+ Drul_array<Paper_column*> cols;
+ Real extra_dist = 0.0;
do {
- item_l_drul_[-d]->column_l ()->add_rod
- (item_l_drul_[d]->column_l (), distance_f_);
- }while ((flip (&d))!=LEFT);
+ cols[d] = item_l_drul_[d]->column_l ();
+ extra_dist += item_l_drul_[d]->relative_coordinate (cols[d], X_AXIS);
+ } while ((flip (&d))!=LEFT);
+
+ if (cols[LEFT] != cols[RIGHT])
+ do
+ {
+ cols[-d]->add_rod(cols[d], distance_f_ + extra_dist);
+ }
+ while ((flip (&d))!=LEFT);
}
if (l->get_direction ())
stafy.set_direction (l->get_direction ());
- SCM axisprop = get_property ("scriptHorizontal",0);
+ SCM axisprop = get_property ("scriptHorizontal");
bool xaxis = to_boolean (axisprop);
if (xaxis)
stafy.set_axis (X_AXIS);
Script_engraver::acknowledge_element (Score_element_info inf)
{
bool them_grace = to_boolean (inf.elem_l_->get_elt_property ("grace"));
- bool us_grace = to_boolean (get_property ("weAreGraceContext",0));
+ bool us_grace = to_boolean (get_property ("weAreGraceContext"));
if (us_grace != them_grace)
return;
return total_off;
}
-/*
+/**
callback that centers the element on itself
*/
Real
void
Slur_engraver::set_melisma (bool m)
{
- Translator_group *where = daddy_trans_l_;
- get_property ("slurMelismaBusy", &where);
- if (!where)
- where = daddy_trans_l_;
-
daddy_trans_l_->set_property ("slurMelismaBusy", m ? SCM_BOOL_T :SCM_BOOL_F);
}
typeset_element (slur_l_stack_[i]);
}
slur_l_stack_.clear ();
- SCM wg = get_property ("weAreGraceContext",0);
+ SCM wg = get_property ("weAreGraceContext");
bool wgb = to_boolean (wg);
if (!wgb)
for (int i=0; i < requests_arr_.size(); i++)
Slur_engraver::do_post_move_processing()
{
new_slur_req_l_arr_.clear();
- SCM m = get_property ("automaticMelismata",0);
+ SCM m = get_property ("automaticMelismata");
if (to_boolean (m))
{
set_melisma (slur_l_stack_.size ());
return;
- SCM long_name = get_property ("instrument", 0);
- SCM short_name = get_property ("instr", 0);
+ SCM long_name = get_property ("instrument");
+ SCM short_name = get_property ("instr");
if (now_mom () > Moment (0))
long_name = short_name;
Staff_performer::new_instrument_str ()
{
// mustn't ask Score for instrument: it will return piano!
- SCM minstr = get_property (ly_symbol2scm ("midiInstrument"), 0);
+ SCM minstr = get_property (ly_symbol2scm ("midiInstrument"));
if (!gh_string_p(minstr))
- minstr = get_property (ly_symbol2scm ("instrument"), 0);
+ minstr = get_property (ly_symbol2scm ("instrument"));
if (!gh_string_p (minstr)
|| ly_scm2string (minstr) == instrument_str_)
void
Staff_symbol_engraver::do_removal_processing()
{
- SCM n = get_property ("numberOfStaffLines",0);
- SCM ss = get_property ("staffSpace", 0);
+ SCM n = get_property ("numberOfStaffLines");
+ SCM ss = get_property ("staffSpace");
if (gh_number_p (ss))
span_p_->set_elt_property ("staff-space", ss);
void
Stem_engraver::do_creation_processing ()
{
- SCM prop = get_property ("abbrev", 0);
+ SCM prop = get_property ("abbrev");
if (gh_number_p(prop))
{
default_abbrev_i_ = gh_scm2int (prop);
if (stem_p_)
{
- Translator_group* which;
- SCM prop = get_property ("stemLeftBeamCount", &which);
+ SCM prop = get_property ("stemLeftBeamCount");
if (gh_number_p(prop))
{
stem_p_->set_beaming (gh_scm2int (prop),LEFT);
- ((Translator_group*)which)->set_property ("stemLeftBeamCount", SCM_UNDEFINED);
+ daddy_trans_l_->set_property ("stemLeftBeamCount", SCM_UNDEFINED);
}
- prop = get_property ("stemRightBeamCount", &which);
+ prop = get_property ("stemRightBeamCount");
if (gh_number_p(prop))
{
stem_p_->set_beaming (gh_scm2int (prop), RIGHT);
- ((Translator_group*)which)->set_property ("stemRightBeamCount", SCM_UNDEFINED);
+ daddy_trans_l_->set_property ("stemRightBeamCount", SCM_UNDEFINED);
}
// UGH. Should mark non-forced instead.
Text_item *text = new Text_item;
Side_position_interface stafy (text);
- SCM axisprop = get_property ("scriptHorizontal",0);
+ SCM axisprop = get_property ("scriptHorizontal");
if (to_boolean (axisprop))
{
stafy.set_axis (X_AXIS);
if (r->style_str_.length_i ())
text->set_elt_property ("style", ly_str02scm (r->style_str_.ch_C()));
- SCM empty = get_property ("textEmptyDimension", 0);
+ SCM empty = get_property ("textEmptyDimension");
if (to_boolean (empty))
{
text->set_empty (X_AXIS);
if (Tie_req * c = dynamic_cast<Tie_req*> (m))
{
req_l_ = c;
- SCM m = get_property ("automaticMelismata",0);
+ SCM m = get_property ("automaticMelismata");
bool am = gh_boolean_p (m) &&gh_scm2bool (m);
if (am)
{
void
Tie_engraver::set_melisma (bool m)
{
- Translator_group *where = daddy_trans_l_;
- get_property ("tieMelismaBusy", &where);
- if (!where)
- where = daddy_trans_l_;
-
daddy_trans_l_->set_property ("tieMelismaBusy", m ? SCM_BOOL_T : SCM_BOOL_F);
}
}
- SCM sparse = get_property ("sparseTies", 0);
+ SCM sparse = get_property ("sparseTies");
if (to_boolean (sparse))
{
int i = scm_ilength (head_list);
void
Tie_engraver::do_post_move_processing ()
{
- SCM m = get_property ("automaticMelismata",0);
+ SCM m = get_property ("automaticMelismata");
if (to_boolean (m))
{
set_melisma (false);
if (!now_mom ())
return "|";
- SCM nonauto = get_property ("barNonAuto", 0);
+ SCM nonauto = get_property ("barNonAuto");
if (!to_boolean (nonauto))
{
- SCM always = get_property ("barAlways", 0);
+ SCM always = get_property ("barAlways");
if (!measure_position ()
|| (to_boolean (always)))
{
- SCM def=get_property ("defaultBarType" ,0);
+ SCM def=get_property ("defaultBarType" );
return (gh_string_p (def))? ly_scm2string (def) : "";
}
}
while (!global_l);
/* allbars == ! skipbars */
- SCM sb = get_property ("skipBars", 0);
+ SCM sb = get_property ("skipBars");
bool allbars = !to_boolean (sb);
// urg: multi bar rests: should always process whole of first bar?
- SCM tim = get_property ("timing", 0);
+ SCM tim = get_property ("timing");
bool timb = to_boolean (tim);
if (timb && allbars)
{
Moment
Timing_translator::measure_length () const
{
- SCM l = get_property("measureLength",0);
+ SCM l = get_property("measureLength");
if (SMOB_IS_TYPE_B(Moment, l))
return *SMOB_TO_TYPE (Moment, l);
else
Timing_translator::get_time_signature (int *n, int *d) const
{
Moment one_beat (1,4);
- SCM one = get_property ("beatLength",0);
+ SCM one = get_property ("beatLength");
if (SMOB_IS_TYPE_B (Moment, one))
one_beat = *SMOB_TO_TYPE (Moment, one);
*n = measure_length () / one_beat;
Moment
Timing_translator::measure_position () const
{
- SCM sm = get_property ("measurePosition",0);
+ SCM sm = get_property ("measurePosition");
Moment m =0;
if (SMOB_IS_TYPE_B (Moment, sm))
Moment * measposp =0;
- SCM s = get_property ("measurePosition", 0);
+ SCM s = get_property ("measurePosition");
if (SMOB_IS_TYPE_B (Moment, s))
{
measposp = SMOB_TO_TYPE (Moment,s);
*measposp += dt;
// don't need to set_property
- Translator_group * tr =daddy_trans_l_;
- SCM barn = get_property ("currentBarNumber", &tr);
+ SCM barn = get_property ("currentBarNumber");
int b = 0;
if (gh_number_p(barn))
{
b = gh_scm2int (barn);
}
- SCM cad = get_property ("timing", 0);
+ SCM cad = get_property ("timing");
bool c= to_boolean (cad );
Moment len = measure_length ();
b ++;
}
- tr->set_property ("currentBarNumber", gh_int2scm (b));
+ daddy_trans_l_->set_property ("currentBarNumber", gh_int2scm (b));
}
}
SCM
-Translator_group::get_property (SCM sym, Translator_group **where_l) const
+Translator_group::get_property (SCM sym) const
{
if (properties_dict_.elem_b (sym))
{
- if (where_l)
- *where_l = (Translator_group*) this; // ugh
return properties_dict_.get (sym);
}
if (daddy_trans_l_)
- return daddy_trans_l_->get_property (sym, where_l);
+ return daddy_trans_l_->get_property (sym);
- if (where_l)
- *where_l = 0;
return SCM_UNDEFINED;
}
}
SCM
-Translator::get_property (String id, Translator_group **where_l) const
+Translator::get_property (String id) const
{
- return daddy_trans_l_->get_property (ly_symbol2scm (id.ch_C()), where_l);
+ return daddy_trans_l_->get_property (ly_symbol2scm (id.ch_C()));
}
SCM
-Translator::get_property (SCM sym,
- Translator_group **where_l) const
+Translator::get_property (SCM sym) const
{
- return daddy_trans_l_->get_property (sym, where_l);
+ return daddy_trans_l_->get_property (sym);
}
Moment m = now_mom () + c->length_mom ();
stop_moments_.push (m);
- SCM s = get_property ("tupletSpannerDuration",0);
+ SCM s = get_property ("tupletSpannerDuration");
if (SMOB_IS_TYPE_B(Moment, s))
m = m <? (now_mom () + *SMOB_TO_TYPE(Moment,s));
void
Tuplet_engraver::do_process_requests ()
{
- SCM v = get_property ("tupletInvisible", 0);
+ SCM v = get_property ("tupletInvisible");
if (to_boolean (v))
return;
Tuplet_engraver::acknowledge_element (Score_element_info i)
{
bool grace= to_boolean (i.elem_l_->get_elt_property ("grace"));
- SCM wg = get_property ("weAreGraceContext",0);
+ SCM wg = get_property ("weAreGraceContext");
bool wgb = to_boolean (wg);
if (grace != wgb)
return;
Moment now = now_mom ();
Moment tsd;
- SCM s = get_property ("tupletSpannerDuration",0);
+ SCM s = get_property ("tupletSpannerDuration");
if (SMOB_IS_TYPE_B(Moment, s))
tsd = *SMOB_TO_TYPE(Moment,s);
(c) 1997--2000 Jan Nieuwenhuizen <janneke@gnu.org>
*/
-#include "atom.hh"
+
#include "beam.hh"
#include "box.hh"
#include "debug.hh"
{
valign_p_ =new Axis_align_spanner;
valign_p_->set_axis (Y_AXIS);
- valign_p_->stacking_dir_ = DOWN;
+ valign_p_->set_elt_property ("stacking-dir", gh_int2scm (DOWN));
valign_p_->set_bounds(LEFT,get_staff_info().command_pcol_l ());
announce_element (Score_element_info (valign_p_ , 0));
void
Vertical_align_engraver::do_removal_processing()
{
- SCM dist (get_property ("maxVerticalAlign", 0));
+ SCM dist (get_property ("maxVerticalAlign"));
if (gh_number_p(dist))
{
valign_p_->threshold_interval_[BIGGER] = gh_scm2double (dist);
}
- dist = get_property ("minVerticalAlign", 0);
+ dist = get_property ("minVerticalAlign");
if (gh_number_p(dist))
{
valign_p_->threshold_interval_[SMALLER] = gh_scm2double (dist);
}
- dist = get_property ("alignmentReference",0);
- if (isdir_b (dist))
- {
- valign_p_->align_dir_ = to_dir (dist);
- }
valign_p_->set_bounds(RIGHT,get_staff_info().command_pcol_l ());
typeset_element (valign_p_);
valign_p_ =0;
#include "stem.hh"
#include "dimension-cache.hh"
#include "group-interface.hh"
-#include "atom.hh"
+
Volta_spanner::Volta_spanner ()
\type "Engraver_group_engraver";
\consists "Span_bar_engraver";
\consists "Output_property_engraver";
-
\consists "Staff_group_bar_engraver";
+
\name StaffGroup;
\accepts "Staff";
\accepts "RhythmicStaff";
\name Lyrics;
\consists Vertical_align_engraver;%need this for getting folded repeats right.
+ \consists "Property_engraver";
\consistsend "Axis_group_engraver";
\accepts "LyricVoice";
\accepts "NoteNames";
markVisibilityFunction = #end-of-line-invisible
- barNumberVisibilityFunction = #end-of-line-invisible
+ barNumberVisibilityFunction = #begin-of-line-visible
marginVisibilityFunction = #begin-of-line-visible
};
\consists "Bar_number_engraver";
\consists "Mark_engraver";
-
- \accepts "HaraKiriStaff";
};
\translator {
Begin3
Title: LilyPond
-Version: 1.3.29
-Entered-date: 02MAR00
+Version: 1.3.30
+Entered-date: 06MAR00
Description:
Keywords: music notation typesetting midi fonts engraving
Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
janneke@gnu.org (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 1000k lilypond-1.3.29.tar.gz
+ 1000k lilypond-1.3.30.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 1000k lilypond-1.3.29.tar.gz
+ 1000k lilypond-1.3.30.tar.gz
Copying-policy: GPL
End
Name: lilypond
-Version: 1.3.29
+Version: 1.3.30
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.29.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.30.tar.gz
Summary: A program for printing sheet music.
URL: http://www.cs.uu.nl/~hanwen/lilypond
# get Packager from (undocumented?) ~/.rpmmacros!
)
+(define generic-lyrics-properties
+ (list generic-text-properties
+ )
+
+)
# For now let people define these in their environments
#
: ${MFPLAIN_MP=`kpsewhich mp mfplain.mp`}
- : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
+
+ if test ${INIMETAPOST} = "inimp" ; then
+ : ${INIMETAPOST_FLAGS=''}
+ else
+ : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
+ fi
rm -f mfput.*
AC_MSG_RESULT($MFMODE)