From 02ad2d3bb642d9228c4ae69efc71a74bd222575f Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Mon, 6 Mar 2000 12:26:15 +0100 Subject: [PATCH] release: 1.3.30 =========== * 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. --- CHANGES | 40 +- Documentation/bibliography/engraving.bib | 9 +- Documentation/faq.texi | 5 + Documentation/index.texi | 52 ++- Documentation/{programs.texi => ly2dvi.texi} | 99 +---- Documentation/midi2ly.texi | 52 +++ Documentation/topdocs/README.texi | 2 +- Documentation/topdocs/index.tely | 12 +- Documentation/user/glossary.tely | 442 ++++++++++--------- Documentation/user/properties.itely | 6 - README.txt | 2 +- TODO | 47 +- VERSION | 2 +- aclocal.m4 | 9 +- configure | 43 +- input/test/mark.ly | 21 +- lily/align-element.cc | 32 +- lily/align-note-column-engraver.cc | 8 +- lily/atom.cc | 54 --- lily/auto-beam-engraver.cc | 22 +- lily/bar-engraver.cc | 6 +- lily/bar-number-engraver.cc | 2 +- lily/bar-script-engraver.cc | 6 +- lily/base-span-bar-engraver.cc | 2 +- lily/beam-engraver.cc | 2 +- lily/beam.cc | 2 +- lily/break-align-engraver.cc | 2 +- lily/break-align-item.cc | 18 +- lily/chord-name-engraver.cc | 2 +- lily/clef-engraver.cc | 6 +- lily/command-request.cc | 7 +- lily/crescendo.cc | 2 +- lily/dynamic-engraver.cc | 6 +- lily/grace-align-item.cc | 4 +- lily/grace-position-engraver.cc | 4 - lily/grace-position-performer.cc | 2 +- lily/include/align-element.hh | 30 +- lily/include/atom.hh | 3 +- lily/include/command-request.hh | 4 +- lily/include/lily-guile.hh | 1 + lily/include/mark-engraver.hh | 18 +- lily/include/molecule.hh | 3 + lily/include/translator-group.hh | 2 +- lily/include/translator.hh | 4 +- lily/key-engraver.cc | 4 +- lily/lily-guile.cc | 28 ++ lily/local-key-engraver.cc | 6 +- lily/lookup.cc | 2 +- lily/mark-engraver.cc | 53 ++- lily/melisma-engraver.cc | 6 +- lily/molecule.cc | 11 +- lily/multi-measure-rest-engraver.cc | 4 +- lily/note-heads-engraver.cc | 2 +- lily/note-performer.cc | 2 +- lily/paper-column.cc | 2 +- lily/paper-outputter.cc | 2 +- lily/parser.yy | 11 +- lily/property-engraver.cc | 25 +- lily/protected-scm.cc | 13 +- lily/repeat-engraver.cc | 4 +- lily/rhythmic-column-engraver.cc | 4 +- lily/rod.cc | 16 +- lily/script-engraver.cc | 4 +- lily/side-position-interface.cc | 2 +- lily/slur-engraver.cc | 9 +- lily/staff-margin-engraver.cc | 4 +- lily/staff-performer.cc | 4 +- lily/staff-symbol-engraver.cc | 4 +- lily/stem-engraver.cc | 11 +- lily/text-engraver.cc | 4 +- lily/tie-engraver.cc | 11 +- lily/timing-engraver.cc | 6 +- lily/timing-translator.cc | 19 +- lily/translator-group.cc | 8 +- lily/translator.cc | 9 +- lily/tuplet-engraver.cc | 8 +- lily/tuplet-spanner.cc | 2 +- lily/vertical-align-engraver.cc | 11 +- lily/volta-spanner.cc | 2 +- ly/engraver.ly | 7 +- make/out/lilypond.lsm | 8 +- make/out/lilypond.spec | 4 +- scm/generic-property.scm | 5 + stepmake/aclocal.m4 | 7 +- 84 files changed, 788 insertions(+), 653 deletions(-) rename Documentation/{programs.texi => ly2dvi.texi} (81%) create mode 100644 Documentation/midi2ly.texi diff --git a/CHANGES b/CHANGES index d992a22dfa..4a180017c8 100644 --- a/CHANGES +++ b/CHANGES @@ -1,12 +1,41 @@ -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. @@ -14,9 +43,6 @@ 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. diff --git a/Documentation/bibliography/engraving.bib b/Documentation/bibliography/engraving.bib index 8a5d828289..743b93f3fd 100644 --- a/Documentation/bibliography/engraving.bib +++ b/Documentation/bibliography/engraving.bib @@ -31,11 +31,11 @@ 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, @@ -64,8 +64,7 @@ content has nothing you won't find in other books like\cite{read} or @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}, @@ -90,7 +89,7 @@ note = {I. A very thorough overview of engraving practices of various 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}, diff --git a/Documentation/faq.texi b/Documentation/faq.texi index 835c1790dc..6cc6c1cb8d 100644 --- a/Documentation/faq.texi +++ b/Documentation/faq.texi @@ -126,6 +126,11 @@ LilyPond development is moving quite fast, documentation will often lag 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 diff --git a/Documentation/index.texi b/Documentation/index.texi index 4d38ca8c4d..0e969c7132 100644 --- a/Documentation/index.texi +++ b/Documentation/index.texi @@ -1,10 +1,11 @@ \input texinfo @c -*-texinfo-*- @setfilename index.info -@settitle index +@settitle Index to LilyPond documentation @node Top, , , (dir) @top + @unnumberedsubsec Info @itemize @bullet @@ -12,15 +13,14 @@ @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 @@ -28,10 +28,11 @@ terms}, includes translations. Also available in @uref{../user/out-www/glossary @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 @@ -50,4 +51,41 @@ announcements and change logs for old versions; background information. @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 diff --git a/Documentation/programs.texi b/Documentation/ly2dvi.texi similarity index 81% rename from Documentation/programs.texi rename to Documentation/ly2dvi.texi index 6fecb0ea43..0a1d1681a3 100644 --- a/Documentation/programs.texi +++ b/Documentation/ly2dvi.texi @@ -1,28 +1,8 @@ \input texinfo @c -*-texinfo-*- -@setfilename programs.info -@settitle Programs +@setfilename ly2dvi.info +@settitle ly2dvi -@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 +@node Top, , , @menu * Ly2dvi DESCRIPTION:: Ly2dvi DESCRIPTION * Ly2dvi SYNOPSIS:: Ly2dvi SYNOPSIS @@ -38,7 +18,7 @@ @end menu @chapter Ly2dvi -@node Ly2dvi DESCRIPTION, , , 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. @@ -52,12 +32,12 @@ 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 +@node Ly2dvi SYNOPSIS, , , Top @section SYNOPSIS ly2dvi [options] inputfile[.ly] [....] -@node Ly2dvi OPTIONS, , , Ly2dvi +@node Ly2dvi OPTIONS, , , Top @section OPTIONS @table @samp @@ -105,7 +85,7 @@ Arne Fagertun name @file{ly2dvi}. DVI file for each. @end table -@node Ly2dvi Features, , , Ly2dvi +@node Ly2dvi Features, , , Top @section Features ly2dvi responds to several parameters specified in the mudela @@ -124,7 +104,7 @@ file. They are overridden by corresponding command line options. Specify name of papersize. @end table -@node Ly2dvi Environment, , , Ly2dvi +@node Ly2dvi Environment, , , Top @section Environment @table @samp @@ -136,7 +116,7 @@ file. They are overridden by corresponding command line options. Temporary directory name. Default is /tmp @end table -@node Ly2dvi Files, , , Ly2dvi +@node Ly2dvi Files, , , Top @section Files @file{titledefs.tex} is inspected for definitions used to extract @@ -238,7 +218,7 @@ present. Possible value is a valid directory specification that is writable to the user. @end table -@node Ly2dvi Initialization Sequence, , , Ly2dvi +@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. @@ -256,12 +236,12 @@ a list of priorities for lowest to hightest proirity. Note that this differs slightly from the original bourne shell version. -@node Ly2dvi See Also, , , Ly2dvi +@node Ly2dvi See Also, , , Top @section See Also lilypond(1), tex(1), latex(1) -@node Ly2dvi Bugs, , , Ly2dvi +@node Ly2dvi Bugs, , , Top @section Bugs If you have found a bug, you should send a bugreport. @@ -275,7 +255,7 @@ If you have found a bug, you should send a bugreport. to this mailinglist). @end itemize -@node Ly2dvi Remarks, , , Ly2dvi +@node Ly2dvi Remarks, , , Top @section Remarks Many papersizes are now supported. Information on other sizes @@ -288,7 +268,7 @@ 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 +@node Ly2dvi Authors, , , Top @section Authors Python Version author: @email{daboys@@austin.rr.com, Jeffrey B. Reed}, @@ -301,54 +281,3 @@ Original bourne shell version author: - - - -@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 diff --git a/Documentation/midi2ly.texi b/Documentation/midi2ly.texi new file mode 100644 index 0000000000..9c5fc161e1 --- /dev/null +++ b/Documentation/midi2ly.texi @@ -0,0 +1,52 @@ +\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 diff --git a/Documentation/topdocs/README.texi b/Documentation/topdocs/README.texi index eeb64dca85..dc612fb7ee 100644 --- a/Documentation/topdocs/README.texi +++ b/Documentation/topdocs/README.texi @@ -55,7 +55,7 @@ You need a working LilyPond binary to create the DVI sources . @item use ASCII. Do using @example - make -C doc + make doc @end example @end itemize diff --git a/Documentation/topdocs/index.tely b/Documentation/topdocs/index.tely index c3aff45b14..88d28769e6 100644 --- a/Documentation/topdocs/index.tely +++ b/Documentation/topdocs/index.tely @@ -127,11 +127,9 @@ installation instructions}. 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 @@ -169,8 +167,7 @@ Frequently Asked Questions} first.) @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 @@ -187,7 +184,8 @@ they tend to be very big and don't help with describing the problem. @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 diff --git a/Documentation/user/glossary.tely b/Documentation/user/glossary.tely index 825f55c25b..e7cf139d21 100644 --- a/Documentation/user/glossary.tely +++ b/Documentation/user/glossary.tely @@ -2,6 +2,8 @@ \input texinfo @setfilename glossary.info +@c @pagesizes 10.3in + @c @everyheading @| @thispage @| @evenheading @thispage @| @| @oddheading @| @| @thispage @| @@ -59,7 +61,7 @@ accidental. @ @mudela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \property Voice.textStyle = "large" \notes\relative c'' { gis1_"sharp" s s2 @@ -83,7 +85,7 @@ movement in slow tempo, esepecially the scond (slow) movement of 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: @@ -96,14 +98,11 @@ especially the first and last movements of a @w{@ar{}@strong{sonata}}. 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: @@ -117,20 +116,20 @@ mode hell@'enique D: reines Moll, NL: , DK: ren mol, S: ren mollskala, 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 @@ -141,7 +140,8 @@ the duration of the long a. is proportionate to that of the main note. @ @mudela[13pt,eps] -\property Voice.textEmptyDimension = "1" +\property Voice.textEmptyDimension = ##t + \property Voice.textStyle = "large" \notes\relative c'' { \key d; @@ -162,7 +162,7 @@ An appoggiatura may have more notes preceding the main note. @ @mudela[13pt,eps] -\property Voice.textEmptyDimension = "1" +\emptyText \property Voice.textStyle = "large" \notes\relative c'' { \key as; @@ -178,9 +178,8 @@ An appoggiatura may have more notes preceding the main note. @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: @ @@ -208,6 +207,8 @@ 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: @@ -244,7 +245,7 @@ baryton. 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: . @@ -273,8 +274,8 @@ beams determine the note value of the connected notes. @ @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 @@ -331,7 +332,7 @@ orchestral or choral score. @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 @@ -343,8 +344,10 @@ I: respiro, F: respiration, D: Atemzeichen, Trennungszeichen, NL: 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. @@ -352,7 +355,7 @@ in pre-1650 music. @ @mudela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \notes\relative c'' { g\breve } @end mudela @@ -369,7 +372,7 @@ lines. @ @mudela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \property Lyrics.textStyle = "large" \property Voice.clefStyle = "fullSizeChanges" \addlyrics @@ -389,10 +392,10 @@ I: cadenza, F: cadence, D: Kadenz, NL: cadens, DK: kadence, S: kadens, N: . @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. @@ -426,7 +429,7 @@ chords are denoted open chords @ @mudela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \property Voice.textStyle = "large" \time 4/4; \notes\relative c'' { @@ -448,8 +451,8 @@ A scale consisting of all 11 @w{@ar{}@strong{semitone}}s. @ @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 @@ -459,13 +462,13 @@ N: 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}} @@ -507,7 +510,7 @@ Melody moving in the narrow steps of the scale; @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}} @@ -569,8 +572,8 @@ composition methods. @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}} @@ -586,7 +589,7 @@ I: crescendo, F: crescendo, D: Crescendo, Lauter, NL: crescendo, DK: crescendo, S: crescendo, N:@w{ }crescendo. Increasing volume. Indicated by a rightwards opening horizontal wedge or the -abbreviation "cresc". +abbreviation "cresc.". @ @@ -632,7 +635,7 @@ I: decrescendo, D: Decrescendo, Leiser, NL: decrescendo, DK: decrescendo, S: decrescendo, N: decrescendo Decreasing tone volume. Indicated by a leftwards opening horizontal wedge -or the abbreviation "decresc". +or the abbreviation "decresc.". @ @@ -646,9 +649,11 @@ I: intervallo discendente, F: intervalle descendant, D: fallendes Intervall, 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 @@ -660,92 +665,92 @@ also to some extent in newer jazz music. @ @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 @@ -756,48 +761,48 @@ harmonic minor scale type an augmented second (A) occurs between the 6th and 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 } @@ -805,20 +810,20 @@ harmonic minor scale type an augmented second (A) occurs between the 6th and @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" } @@ -832,7 +837,7 @@ intervall, N: . @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}} @@ -882,8 +887,8 @@ dominant, N: . 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}} @@ -973,7 +978,8 @@ achtste rust, DK:@w{ }ottendedelspause, S: @aa{}ttonddelspaus, N: . @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 @@ -992,7 +998,7 @@ but equal pitch. @ @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 @@ -1001,16 +1007,17 @@ but equal pitch. @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 @@ -1033,7 +1040,7 @@ octave lower (for example on double bass @w{@ar{}@strong{strings}}). @ignore @mud ela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \property Voice.clefStyle = "fullSizeChanges" \property Lyrics.textStyle = "large" \addlyrics @@ -1060,7 +1067,7 @@ octave lower (for example on double bass @w{@ar{}@strong{strings}}). @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. @@ -1081,7 +1088,7 @@ I: quinta, F: quinte, D: Quinte, NL: kwint, I: , DK: kvint, S: kvint, N: kvint. @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. @@ -1096,8 +1103,8 @@ a quarter note. The number of flags determines the @w{@ar{}@strong{note value}}. @ @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 @@ -1115,7 +1122,7 @@ I: bemolle, F: b@'emol, D: B, b, NL: mol, DK: b, S: bef@"ortecken, N: . @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. @@ -1126,11 +1133,11 @@ I: quarta, F: quarte, D: Quarte, NL: kwart, DK: kvart, S: kvart, N: . @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: @@ -1143,8 +1150,8 @@ of the base chords. @ @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 @@ -1158,8 +1165,8 @@ of the base chords. 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 @@ -1170,7 +1177,7 @@ that). @ @mudela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \property Lyrics.textStyle = "large" \property Voice.clefStyle = "fullSizeChanges" \addlyrics @@ -1189,28 +1196,32 @@ that). @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: @@ -1249,8 +1260,8 @@ section. @ar{}@w{}@strong{functional harmony} @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}. @@ -1260,7 +1271,7 @@ Consonances: @ @mudela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \property Voice.textStyle = "large" \notes\relative c'' { s @@ -1278,7 +1289,7 @@ Dissonances: @ @mudela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \property Voice.textStyle = "large" \notes\relative c'' { s @@ -1290,7 +1301,8 @@ Dissonances: 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}}. @@ -1308,7 +1320,7 @@ forms an octave. @ @mudela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \property Lyrics.textStyle = "large" \property Voice.textStyle = "large" \addlyrics @@ -1329,7 +1341,7 @@ forms an octave. @ @mudela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \property Lyrics.textStyle = "large" \property Voice.textStyle = "large" \addlyrics @@ -1350,7 +1362,7 @@ forms an octave. @ @mudela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \property Lyrics.textStyle = "large" \property Voice.textStyle = "large" \addlyrics @@ -1369,7 +1381,7 @@ forms an octave. @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. @@ -1377,7 +1389,7 @@ 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 "||"; @@ -1394,7 +1406,8 @@ Tuning system in which the notes are obtained by adding and subtracting @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}} @@ -1407,15 +1420,15 @@ The sharps or flats appearing at the beginning of each staff indicating the 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 @@ -1431,12 +1444,13 @@ A ledger line is an extension of the staff. @ @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 @@ -1445,8 +1459,8 @@ 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'' { @@ -1480,14 +1494,14 @@ forslag, S: l@aa{}ngt f@"orslag, N: . @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 @@ -1498,7 +1512,7 @@ groot interval, DK: stort interval, S: stort intervall, N: . @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}} @@ -1520,8 +1534,8 @@ throughout the composition and are marked from each other by 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 @@ -1599,7 +1613,7 @@ First C below the 440 Hz A. @ @mudela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \property Voice.clefStyle = "fullSizeChanges" \notes\relative c' { \clef "F"; c1 s @@ -1634,8 +1648,8 @@ key if the key is major and to the @w{@ar{}@strong{relative key}} if the key 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}} @@ -1649,7 +1663,7 @@ subject. @mudela[13pt,eps] \property Score.timeSignatureStyle = "C2/2" -\property Voice.textEmptyDimension = "1" +\emptyText \property Voice.textStyle = "large" \notes\relative c'' { \time 4/4; @@ -1661,14 +1675,14 @@ subject. @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: . @ @@ -1676,7 +1690,7 @@ 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 @@ -1693,7 +1707,7 @@ DK:@w{ }op@-l@o{}sningstegn, S: @aa{}terst@"allningstecken, N: . @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}} @@ -1703,6 +1717,12 @@ I: nona, F: , D: None, NL: noon, DK: none, S: nona, N: . @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: . @@ -1715,8 +1735,8 @@ instruments (often having no defined pitch) the note head may indicate the 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}, @@ -1727,7 +1747,7 @@ but sometimes (mostly in pre baroque music) the double length note value @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 @@ -1736,7 +1756,7 @@ but sometimes (mostly in pre baroque music) the double length note value @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 @@ -1749,7 +1769,7 @@ half. Another dot adds yet a fourth of the duration. @ @mudela[13pt,eps] -\property Voice.textEmptyDimension = "1" +\emptyText \property Voice.textStyle = "large" \notes\relative c'' { \time 4/4; @@ -1766,7 +1786,7 @@ frequently used. @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 "||"; @@ -1787,8 +1807,8 @@ I: ottava, F: octave, D: Oktave, NL: octaaf, DK: oktav, S: oktav, N: . @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 @@ -1801,7 +1821,7 @@ the upper note is played first. @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 "||"; @@ -1823,7 +1843,7 @@ Other frequently used ornaments are the @emph{turn}, the @emph{mordent} and the @mudela[13pt,eps] < \context Staff = sa { - \property Voice.textEmptyDimension = "1" + \emptyText \property Voice.textStyle = "large" \notes\relative c'' { a4_"turn" b\turn c2 \bar "||"; @@ -1842,22 +1862,22 @@ Other frequently used ornaments are the @emph{turn}, the @emph{mordent} and the @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 @@ -1885,7 +1905,7 @@ The clear rendering in musical performance of the @w{@ar{}@strong{phrase}}s of 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. @@ -1895,14 +1915,14 @@ I: altezza, F: hauteur, D: Tonh@"ohe, NL: toonhoogte, DK: toneh@o{}jde, S: 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}} @@ -1911,8 +1931,8 @@ 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. @@ -1945,19 +1965,20 @@ kwart rust, DK:@w{ }fjerdedelspause, S: fj@"ardedelspaus, N: . @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}}. @@ -1965,8 +1986,8 @@ 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; @@ -1992,7 +2013,7 @@ gen@-ta@-gel@-se, S: repris, N: . @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}} @@ -2009,13 +2030,14 @@ different measures. (c) Free rhythm, i.e. the use of temporal values having no 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. @@ -2035,8 +2057,8 @@ sub@-do@-mi@-nant (S) and V = dominant (D). @ @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 @@ -2079,7 +2101,7 @@ semitones. @w{@ar{}@strong{interval}} @w{@ar{}@strong{chromatic scale}} @ @mudela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \notes\relative c'' { g1 gis s a bes s b c } @end mudela @@ -2089,7 +2111,7 @@ I: settima, F: septi@`eme, D: Septime, NL: septiem, DK: septim, S: septim, N: . @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}} @@ -2156,15 +2178,15 @@ General term for systems of designating the degrees of the (@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 @@ -2186,7 +2208,8 @@ I: soprano, F: soprano, D: Sopran, NL: sopraan, DK: sopran, S: sopran, N: . 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. @@ -2221,9 +2244,9 @@ note. @w{@ar{}@strong{beam}} @ @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 @@ -2234,7 +2257,8 @@ note. @w{@ar{}@strong{beam}} @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. @@ -2254,13 +2278,13 @@ The fourth @w{@ar{}@strong{scale degree}}. @w{@ar{}@strong{functional 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}} @@ -2278,7 +2302,8 @@ supertonika, S: supertonika, N: . 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. @@ -2295,7 +2320,7 @@ the underlaying (normal) pulse and the actual (abnormal) rhythm. @ @mudela[13pt,eps] -\property Voice.textEmptyDimension = "1" +\emptyText \property Voice.textStyle = "large" \time 4/4; \notes\relative c' { @@ -2321,16 +2346,17 @@ The collection of staves @w{@ar{}@strong{staff}}, two or more, as used for the 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 @@ -2343,7 +2369,7 @@ I: tenore, F: t@'enor, D: Tenor, NL: tenor, DK: tenor, S: tenor, N: . 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}} @@ -2369,8 +2395,8 @@ trettiotv@aa{}ondelspaus, N: . @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 @@ -2419,7 +2445,7 @@ uniting them into a single sound equal to the combined durations. @ @mudela[13pt,eps] -\property Score.barNonAuto = "1" +\property Score.barNonAuto = ##t \notes\relative c'' { g2 ~ g4. } @end mudela @@ -2471,7 +2497,7 @@ N: . @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 @@ -2483,8 +2509,8 @@ a @w{@ar{}@strong{chord}}, usually in the distance of a third @ @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] @@ -2503,7 +2529,7 @@ triller, DK:@w{ }trille, S:@w{ }drill, N:@w{ }. @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}} @@ -2527,8 +2553,8 @@ A two-pronged piece of steel used to indicate absolute pitch. Tuning forks 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: @@ -2539,7 +2565,8 @@ or by the whole orchestra (choir), either at exactly the same pitch or in a 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}} @@ -2581,7 +2608,8 @@ rust, DK: helnodespause, S: helnotspaus, N: . @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 @@ -2601,7 +2629,7 @@ symphony orchestra are flute, oboe, clarinet, saxophone and bassoon. @ -@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. diff --git a/Documentation/user/properties.itely b/Documentation/user/properties.itely index cfa19c28ff..ebf2c901b4 100644 --- a/Documentation/user/properties.itely +++ b/Documentation/user/properties.itely @@ -556,12 +556,6 @@ no clef is printed upon creation. @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. diff --git a/README.txt b/README.txt index 17ffb51f4d..4eed4cb48e 100644 --- a/README.txt +++ b/README.txt @@ -50,7 +50,7 @@ Documentation You need a working LilyPond binary to create the DVI sources . * use ASCII. Do using - make -C doc + make doc Comments diff --git a/TODO b/TODO index 259faaf8af..f51f179fd6 100644 --- a/TODO +++ b/TODO @@ -12,11 +12,54 @@ Grep -i for TODO, FIXME and ugh/ugr/urg. . * 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. + +-

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. @@ -337,6 +380,8 @@ touching it. . * 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: diff --git a/VERSION b/VERSION index 8d61b7e43a..0a0af3f544 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ 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 diff --git a/aclocal.m4 b/aclocal.m4 index 3db837d204..92908e0e0a 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -2,6 +2,8 @@ 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 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 @@ -566,7 +568,12 @@ AC_DEFUN(AC_STEPMAKE_TEXMF, [ # 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) diff --git a/configure b/configure index 0a7d64833e..b2d3093646 100755 --- a/configure +++ b/configure @@ -2554,7 +2554,12 @@ echo "configure:2545: checking for working metafont mode" >&5 # 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 @@ -2582,7 +2587,7 @@ do # 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 @@ -2613,7 +2618,7 @@ done 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 @@ -2636,7 +2641,7 @@ echo "configure:2617: checking for TeX TFM directory" >&5 ## 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 @@ -2656,7 +2661,7 @@ echo "configure:2640: checking for Guile" >&5 # 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 @@ -2694,7 +2699,7 @@ fi 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 @@ -2702,7 +2707,7 @@ else ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <&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 @@ -2733,12 +2738,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 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 <&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 @@ -2788,12 +2793,12 @@ fi 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 <&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 @@ -2846,12 +2851,12 @@ fi 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 <&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 @@ -2916,7 +2921,7 @@ do # 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 @@ -2949,7 +2954,7 @@ test -n "$MAKEINFO" || MAKEINFO="error" # 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 diff --git a/input/test/mark.ly b/input/test/mark.ly index 6b82ae50d4..8d65150c37 100644 --- a/input/test/mark.ly +++ b/input/test/mark.ly @@ -2,29 +2,20 @@ 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; } } } diff --git a/lily/align-element.cc b/lily/align-element.cc index db954498bf..2f5c617ac6 100644 --- a/lily/align-element.cc +++ b/lily/align-element.cc @@ -30,6 +30,12 @@ Align_element::do_pre_processing () 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 dims; Link_array elems; @@ -66,15 +72,11 @@ Align_element::do_side_processing () } 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) { @@ -82,31 +84,15 @@ Align_element::do_side_processing () 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 diff --git a/lily/align-note-column-engraver.cc b/lily/align-note-column-engraver.cc index f1ce54bfc8..9fb7d41b99 100644 --- a/lily/align-note-column-engraver.cc +++ b/lily/align-note-column-engraver.cc @@ -54,10 +54,12 @@ Align_note_column_engraver::do_creation_processing () 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_); @@ -89,7 +91,7 @@ Align_note_column_engraver::process_acknowledged () B. it has no pscore_l_ field. */ - SCM grsp = get_property ("graceAccidentalSpace", 0); + SCM grsp = get_property ("graceAccidentalSpace"); if (gh_number_p(grsp)) { /* diff --git a/lily/atom.cc b/lily/atom.cc index f44d4d2c4e..8b13789179 100644 --- a/lily/atom.cc +++ b/lily/atom.cc @@ -1,55 +1 @@ -/* - atom.cc -- implement Atom - source file of the GNU LilyPond music typesetter - - (c) 1997--2000 Han-Wen Nienhuys -*/ - -#include - -#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); -} diff --git a/lily/auto-beam-engraver.cc b/lily/auto-beam-engraver.cc index 74761145cd..95052f5e1d 100644 --- a/lily/auto-beam-engraver.cc +++ b/lily/auto-beam-engraver.cc @@ -105,7 +105,7 @@ Auto_beam_engraver::consider_end_and_begin (Moment test_mom) /* 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)) @@ -114,11 +114,11 @@ Auto_beam_engraver::consider_end_and_begin (Moment test_mom) /* 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); @@ -127,11 +127,11 @@ Auto_beam_engraver::consider_end_and_begin (Moment test_mom) */ 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); } @@ -139,13 +139,13 @@ Auto_beam_engraver::consider_end_and_begin (Moment test_mom) /* 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); @@ -154,11 +154,11 @@ Auto_beam_engraver::consider_end_and_begin (Moment test_mom) */ 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); } @@ -175,7 +175,7 @@ Auto_beam_engraver::consider_end_and_begin (Moment test_mom) /* Allow already started autobeam to end */ - SCM on = get_property ("noAutoBeaming", 0); + SCM on = get_property ("noAutoBeaming"); if (to_boolean (on)) return; @@ -289,7 +289,7 @@ bool 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; } diff --git a/lily/bar-engraver.cc b/lily/bar-engraver.cc index 45636011c0..a9e1da7957 100644 --- a/lily/bar-engraver.cc +++ b/lily/bar-engraver.cc @@ -35,7 +35,7 @@ Bar_engraver::create_bar () 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 @@ -45,7 +45,7 @@ Bar_engraver::create_bar () /* 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); @@ -65,7 +65,7 @@ Bar_engraver::request_bar (String requested_type) { if (!now_mom ()) { - SCM prop = get_property ("barAtLineStart", 0); + SCM prop = get_property ("barAtLineStart"); if (!to_boolean (prop)) return; } diff --git a/lily/bar-number-engraver.cc b/lily/bar-number-engraver.cc index b5f20c5235..1715fde5de 100644 --- a/lily/bar-number-engraver.cc +++ b/lily/bar-number-engraver.cc @@ -28,7 +28,7 @@ Bar_number_engraver::do_process_requests () Timing_translator *time = dynamic_cast(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)) diff --git a/lily/bar-script-engraver.cc b/lily/bar-script-engraver.cc index 689ecea2bc..c41d9d1205 100644 --- a/lily/bar-script-engraver.cc +++ b/lily/bar-script-engraver.cc @@ -30,7 +30,7 @@ void 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; @@ -128,14 +128,14 @@ Bar_script_engraver::create_items (Request *rq) 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); diff --git a/lily/base-span-bar-engraver.cc b/lily/base-span-bar-engraver.cc index 0c7177017f..d233d514ca 100644 --- a/lily/base-span-bar-engraver.cc +++ b/lily/base-span-bar-engraver.cc @@ -44,7 +44,7 @@ Base_span_bar_engraver::acknowledge_element (Score_element_info i) /* - use a property? get_property ("singleStaffBracket", 0) ? + use a property? get_property ("singleStaffBracket"); ? --hwn */ diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index 63037e1a7f..15606f34b8 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -158,7 +158,7 @@ Beam_engraver::acknowledge_element (Score_element_info info) 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) diff --git a/lily/beam.cc b/lily/beam.cc index d96e15a637..e104c10ec8 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -599,7 +599,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const 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; diff --git a/lily/break-align-engraver.cc b/lily/break-align-engraver.cc index 44d94270a6..508f7d3c38 100644 --- a/lily/break-align-engraver.cc +++ b/lily/break-align-engraver.cc @@ -40,7 +40,7 @@ Break_align_engraver::add_column (SCM smob) 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_); diff --git a/lily/break-align-item.cc b/lily/break-align-item.cc index 376a71dd25..84fa63071d 100644 --- a/lily/break-align-item.cc +++ b/lily/break-align-item.cc @@ -7,6 +7,7 @@ */ #include +#include "side-position-interface.hh" #include "warn.hh" #include "dimension-cache.hh" #include "lily-guile.hh" @@ -25,15 +26,12 @@ 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 elems; Link_array all_elems (elem_l_arr ()); @@ -154,6 +152,8 @@ Break_align_item::do_pre_processing() 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); } diff --git a/lily/chord-name-engraver.cc b/lily/chord-name-engraver.cc index 22377b7d63..cf2891b02c 100644 --- a/lily/chord-name-engraver.cc +++ b/lily/chord-name-engraver.cc @@ -69,7 +69,7 @@ Chord_name_engraver::do_process_requests () 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); diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc index e0c167b87f..162cc06978 100644 --- a/lily/clef-engraver.cc +++ b/lily/clef-engraver.cc @@ -73,8 +73,8 @@ Clef_engraver::set_type (String s) 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)) { @@ -132,7 +132,7 @@ Clef_engraver::acknowledge_element (Score_element_info info) 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)); diff --git a/lily/command-request.cc b/lily/command-request.cc index e73c253d89..58f4d434d0 100644 --- a/lily/command-request.cc +++ b/lily/command-request.cc @@ -123,17 +123,12 @@ Break_req::Break_req () } -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 (r); - return other && other->str_ == str_; + return other && scm_equal_p (other->mark_label_, mark_label_); } void diff --git a/lily/crescendo.cc b/lily/crescendo.cc index 3f0f16b637..bdf26864df 100644 --- a/lily/crescendo.cc +++ b/lily/crescendo.cc @@ -13,7 +13,7 @@ #include "paper-def.hh" #include "debug.hh" #include "paper-column.hh" -#include "atom.hh" + Crescendo::Crescendo () { diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index 7f519db38b..977053e621 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -139,16 +139,16 @@ Dynamic_engraver::do_process_requests() /* 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); diff --git a/lily/grace-align-item.cc b/lily/grace-align-item.cc index 0256679458..3d3df3ca0f 100644 --- a/lily/grace-align-item.cc +++ b/lily/grace-align-item.cc @@ -14,7 +14,7 @@ Grace_align_item::Grace_align_item () { - stacking_dir_ = RIGHT; + set_elt_property ("stacking-dir", gh_int2scm (RIGHT)); set_axis (X_AXIS); } @@ -29,7 +29,7 @@ Grace_align_item::do_pre_processing () Axis_align_item::do_pre_processing (); - translate_axis (-0.5* nhw, X_AXIS); // ugh. + // translate_axis (-0.5* nhw, X_AXIS); // ugh. } diff --git a/lily/grace-position-engraver.cc b/lily/grace-position-engraver.cc index e1e49f466a..5024b8c7b8 100644 --- a/lily/grace-position-engraver.cc +++ b/lily/grace-position-engraver.cc @@ -89,10 +89,6 @@ Grace_position_engraver::do_pre_move_processing () 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_); diff --git a/lily/grace-position-performer.cc b/lily/grace-position-performer.cc index 58bdd73d6f..d932f3900f 100644 --- a/lily/grace-position-performer.cc +++ b/lily/grace-position-performer.cc @@ -61,7 +61,7 @@ Grace_position_performer::process_acknowledged () shortest_mom = shortest_mom 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); diff --git a/lily/include/align-element.hh b/lily/include/align-element.hh index 1ba8ea1289..c6e230df5d 100644 --- a/lily/include/align-element.hh +++ b/lily/include/align-element.hh @@ -22,26 +22,28 @@ 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 (); diff --git a/lily/include/atom.hh b/lily/include/atom.hh index c2fb413312..576dc45e1a 100644 --- a/lily/include/atom.hh +++ b/lily/include/atom.hh @@ -10,9 +10,8 @@ #define ATOM_HH #include "lily-proto.hh" -#include "box.hh" + #include "lily-guile.hh" -SCM fontify_atom (Font_metric*, SCM atom); #endif diff --git a/lily/include/command-request.hh b/lily/include/command-request.hh index c1efa26c43..c21b1d0b3c 100644 --- a/lily/include/command-request.hh +++ b/lily/include/command-request.hh @@ -15,6 +15,7 @@ #include "duration.hh" #include "musical-pitch.hh" #include "key-def.hh" +#include "protected-scm.hh" class Break_req : public Request { public: @@ -26,10 +27,9 @@ protected: 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); }; diff --git a/lily/include/lily-guile.hh b/lily/include/lily-guile.hh index b79ffbf895..8a8f4c2d02 100644 --- a/lily/include/lily-guile.hh +++ b/lily/include/lily-guile.hh @@ -19,6 +19,7 @@ SCM ly_str02scm (char const*c); 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); diff --git a/lily/include/mark-engraver.hh b/lily/include/mark-engraver.hh index 0d9dd4eebf..4e4da38ced 100644 --- a/lily/include/mark-engraver.hh +++ b/lily/include/mark-engraver.hh @@ -10,21 +10,7 @@ #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 diff --git a/lily/include/molecule.hh b/lily/include/molecule.hh index 7342d0d406..6992a2fa42 100644 --- a/lily/include/molecule.hh +++ b/lily/include/molecule.hh @@ -75,4 +75,7 @@ public: bool empty_b() const; void print ()const; }; + +SCM fontify_atom (Font_metric*, SCM atom); + #endif diff --git a/lily/include/translator-group.hh b/lily/include/translator-group.hh index 0f3fe7dd1a..11df320ce8 100644 --- a/lily/include/translator-group.hh +++ b/lily/include/translator-group.hh @@ -39,7 +39,7 @@ protected: Cons_list 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); diff --git a/lily/include/translator.hh b/lily/include/translator.hh index 54696d1040..7740fc7a9c 100644 --- a/lily/include/translator.hh +++ b/lily/include/translator.hh @@ -62,8 +62,8 @@ public: */ 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; diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index 40b9bd4bfd..161f323b0f 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -87,7 +87,7 @@ Key_engraver::acknowledge_element (Score_element_info info) { if (dynamic_cast (info.req_l_)) { - SCM c = get_property ("createKeyOnClefChange", 0); + SCM c = get_property ("createKeyOnClefChange"); if (to_boolean (c)) create_key (); } @@ -133,7 +133,7 @@ Key_engraver::read_req (Key_change_req const * r) { 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); diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index ccca3060e9..09eca147be 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -339,3 +339,31 @@ scm_to (SCM s, Offset*) 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); +} diff --git a/lily/local-key-engraver.cc b/lily/local-key-engraver.cc index 6edf683cf6..228ec8d157 100644 --- a/lily/local-key-engraver.cc +++ b/lily/local-key-engraver.cc @@ -101,7 +101,7 @@ Local_key_engraver::process_acknowledged () { 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++) { @@ -188,7 +188,7 @@ Local_key_engraver::do_pre_move_processing() 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")); @@ -222,7 +222,7 @@ Local_key_engraver::do_process_requests() { 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 ()) diff --git a/lily/lookup.cc b/lily/lookup.cc index f1d1189b24..88bd9a753b 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -26,7 +26,7 @@ #include "afm.hh" #include "scope.hh" #include "molecule.hh" -#include "atom.hh" + #include "lily-guile.hh" diff --git a/lily/mark-engraver.cc b/lily/mark-engraver.cc index 404644f2ce..3c3777d5e8 100644 --- a/lily/mark-engraver.cc +++ b/lily/mark-engraver.cc @@ -5,11 +5,27 @@ (c) 1998--2000 Jan Nieuwenhuizen */ + #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); @@ -32,7 +48,6 @@ Mark_engraver::do_try_music (Music* r_l) { if (Mark_req *mr = dynamic_cast (r_l)) { - if (mark_req_l_ && mr->equal_b (mark_req_l_)) return true; if (mark_req_l_) @@ -50,7 +65,39 @@ Mark_engraver::do_process_requests () { 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 ) diff --git a/lily/melisma-engraver.cc b/lily/melisma-engraver.cc index 3a89ad968f..a9e1dce2b3 100644 --- a/lily/melisma-engraver.cc +++ b/lily/melisma-engraver.cc @@ -27,9 +27,9 @@ Melisma_engraver::do_try_music (Music *m ) { if (dynamic_cast(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)); diff --git a/lily/molecule.cc b/lily/molecule.cc index cd4d048206..5620a92d18 100644 --- a/lily/molecule.cc +++ b/lily/molecule.cc @@ -13,11 +13,12 @@ #include +#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" @@ -140,3 +141,11 @@ Molecule::empty_b () const { 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); +} diff --git a/lily/multi-measure-rest-engraver.cc b/lily/multi-measure-rest-engraver.cc index d34a75adbd..2ed4779388 100644 --- a/lily/multi-measure-rest-engraver.cc +++ b/lily/multi-measure-rest-engraver.cc @@ -118,7 +118,7 @@ Multi_measure_rest_engraver::do_process_requests () 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")); } } @@ -163,7 +163,7 @@ Multi_measure_rest_engraver::do_post_move_processing () 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; diff --git a/lily/note-heads-engraver.cc b/lily/note-heads-engraver.cc index 2815ca843d..4a397581a3 100644 --- a/lily/note-heads-engraver.cc +++ b/lily/note-heads-engraver.cc @@ -58,7 +58,7 @@ Note_heads_engraver::do_process_requests() 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; diff --git a/lily/note-performer.cc b/lily/note-performer.cc index d2cfe8dea8..6e2bab25ca 100644 --- a/lily/note-performer.cc +++ b/lily/note-performer.cc @@ -37,7 +37,7 @@ Note_performer::do_process_requests () { 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); diff --git a/lily/paper-column.cc b/lily/paper-column.cc index 59d61683ab..3117df5b95 100644 --- a/lily/paper-column.cc +++ b/lily/paper-column.cc @@ -122,7 +122,7 @@ Paper_column::column_l () const 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); diff --git a/lily/paper-outputter.cc b/lily/paper-outputter.cc index fc5630d9ac..b624b8ea8f 100644 --- a/lily/paper-outputter.cc +++ b/lily/paper-outputter.cc @@ -26,7 +26,7 @@ #include "scope.hh" #include "identifier.hh" #include "lily-version.hh" -#include "atom.hh" + Paper_outputter::Paper_outputter () { diff --git a/lily/parser.yy b/lily/parser.yy index 83669c3717..c16f39fd6d 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -996,18 +996,23 @@ verbose_command_req: 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; diff --git a/lily/property-engraver.cc b/lily/property-engraver.cc index d2eb399759..e8f4aff10a 100644 --- a/lily/property-engraver.cc +++ b/lily/property-engraver.cc @@ -28,7 +28,7 @@ protected: 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); @@ -64,11 +64,26 @@ Property_engraver::apply_properties (SCM p, Score_element *e) 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); + + } } } diff --git a/lily/protected-scm.cc b/lily/protected-scm.cc index 71d6b48273..2878e9c9a8 100644 --- a/lily/protected-scm.cc +++ b/lily/protected-scm.cc @@ -12,17 +12,17 @@ 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 & @@ -30,10 +30,11 @@ Protected_scm::operator =(SCM s) { 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; } @@ -46,7 +47,7 @@ Protected_scm::operator = (Protected_scm const &s) Protected_scm::~Protected_scm () { - if (object_) + if (SCM_NIMP (object_)) { scm_unprotect_object (object_); } diff --git a/lily/repeat-engraver.cc b/lily/repeat-engraver.cc index 8cc39fad71..ef5a60c3b0 100644 --- a/lily/repeat-engraver.cc +++ b/lily/repeat-engraver.cc @@ -60,7 +60,7 @@ Repeat_engraver::queue_events () 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 becel; @@ -107,7 +107,7 @@ Repeat_engraver::queue_events () 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); diff --git a/lily/rhythmic-column-engraver.cc b/lily/rhythmic-column-engraver.cc index 6e4aaa96c5..a8bf90263a 100644 --- a/lily/rhythmic-column-engraver.cc +++ b/lily/rhythmic-column-engraver.cc @@ -58,7 +58,7 @@ Rhythmic_column_engraver::process_acknowledged () stem_l_ = 0; } - SCM wg = get_property ("weAreGraceContext",0); + SCM wg = get_property ("weAreGraceContext"); bool wegrace = to_boolean (wg); if (!wegrace) @@ -71,7 +71,7 @@ Rhythmic_column_engraver::process_acknowledged () 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)) diff --git a/lily/rod.cc b/lily/rod.cc index cbf1403cdc..0db3c85885 100644 --- a/lily/rod.cc +++ b/lily/rod.cc @@ -39,13 +39,23 @@ Column_rod::compare (const Column_rod &r1, const Column_rod &r2) { return r1.other_l_->rank_i() - r2.other_l_->rank_i(); } + void Rod::add_to_cols () { Direction d = LEFT; + Drul_array 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); } diff --git a/lily/script-engraver.cc b/lily/script-engraver.cc index 65ca2915be..74d8b93f9f 100644 --- a/lily/script-engraver.cc +++ b/lily/script-engraver.cc @@ -94,7 +94,7 @@ Script_engraver::do_process_requests() 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); @@ -119,7 +119,7 @@ void 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; diff --git a/lily/side-position-interface.cc b/lily/side-position-interface.cc index b60a6feb94..ba8861c502 100644 --- a/lily/side-position-interface.cc +++ b/lily/side-position-interface.cc @@ -111,7 +111,7 @@ Side_position_interface::side_position (Dimension_cache const * c) return total_off; } -/* +/** callback that centers the element on itself */ Real diff --git a/lily/slur-engraver.cc b/lily/slur-engraver.cc index d5f6f768e7..61a7d6ce03 100644 --- a/lily/slur-engraver.cc +++ b/lily/slur-engraver.cc @@ -29,11 +29,6 @@ Slur_engraver::do_try_music (Music *req_l) 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); } @@ -58,7 +53,7 @@ Slur_engraver::do_removal_processing () 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++) @@ -115,7 +110,7 @@ void 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 ()); diff --git a/lily/staff-margin-engraver.cc b/lily/staff-margin-engraver.cc index 9a93d91e7d..d581d51352 100644 --- a/lily/staff-margin-engraver.cc +++ b/lily/staff-margin-engraver.cc @@ -40,8 +40,8 @@ Staff_margin_engraver::acknowledge_element (Score_element_info inf) 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; diff --git a/lily/staff-performer.cc b/lily/staff-performer.cc index 547163f457..208da51a18 100644 --- a/lily/staff-performer.cc +++ b/lily/staff-performer.cc @@ -96,10 +96,10 @@ String 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_) diff --git a/lily/staff-symbol-engraver.cc b/lily/staff-symbol-engraver.cc index eb32b20db0..a84f393a52 100644 --- a/lily/staff-symbol-engraver.cc +++ b/lily/staff-symbol-engraver.cc @@ -54,8 +54,8 @@ Staff_symbol_engraver::do_creation_processing() 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); diff --git a/lily/stem-engraver.cc b/lily/stem-engraver.cc index 91a679eca6..a1f467e1f6 100644 --- a/lily/stem-engraver.cc +++ b/lily/stem-engraver.cc @@ -28,7 +28,7 @@ Stem_engraver::Stem_engraver() 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); @@ -99,18 +99,17 @@ Stem_engraver::do_pre_move_processing() 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. diff --git a/lily/text-engraver.cc b/lily/text-engraver.cc index 80e5e12080..194b779774 100644 --- a/lily/text-engraver.cc +++ b/lily/text-engraver.cc @@ -81,7 +81,7 @@ Text_engraver::do_process_requests () 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); @@ -102,7 +102,7 @@ Text_engraver::do_process_requests () 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); diff --git a/lily/tie-engraver.cc b/lily/tie-engraver.cc index 0090dbd9b5..9ad9be2236 100644 --- a/lily/tie-engraver.cc +++ b/lily/tie-engraver.cc @@ -80,7 +80,7 @@ Tie_engraver::do_try_music (Music *m) if (Tie_req * c = dynamic_cast (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) { @@ -94,11 +94,6 @@ Tie_engraver::do_try_music (Music *m) 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); } @@ -168,7 +163,7 @@ Tie_engraver::process_acknowledged () } - SCM sparse = get_property ("sparseTies", 0); + SCM sparse = get_property ("sparseTies"); if (to_boolean (sparse)) { int i = scm_ilength (head_list); @@ -234,7 +229,7 @@ Tie_engraver::do_pre_move_processing () 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); diff --git a/lily/timing-engraver.cc b/lily/timing-engraver.cc index feb368ba36..f74a9be590 100644 --- a/lily/timing-engraver.cc +++ b/lily/timing-engraver.cc @@ -48,14 +48,14 @@ Timing_engraver::which_bar () 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) : ""; } } diff --git a/lily/timing-translator.cc b/lily/timing-translator.cc index 81429e9d3e..7e49f77f2e 100644 --- a/lily/timing-translator.cc +++ b/lily/timing-translator.cc @@ -96,11 +96,11 @@ Timing_translator::do_pre_move_processing() 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) { @@ -130,7 +130,7 @@ Timing_translator::do_creation_processing() 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 @@ -142,7 +142,7 @@ void 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; @@ -169,7 +169,7 @@ Timing_translator::Timing_translator() 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)) @@ -206,7 +206,7 @@ Timing_translator::do_post_move_processing() 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); @@ -220,15 +220,14 @@ Timing_translator::do_post_move_processing() *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 (); @@ -238,6 +237,6 @@ Timing_translator::do_post_move_processing() b ++; } - tr->set_property ("currentBarNumber", gh_int2scm (b)); + daddy_trans_l_->set_property ("currentBarNumber", gh_int2scm (b)); } diff --git a/lily/translator-group.cc b/lily/translator-group.cc index 743f843cb2..c76e68e884 100644 --- a/lily/translator-group.cc +++ b/lily/translator-group.cc @@ -429,20 +429,16 @@ Translator_group::do_add_processing () } 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; } diff --git a/lily/translator.cc b/lily/translator.cc index 274ef2b412..28e2b4c31b 100644 --- a/lily/translator.cc +++ b/lily/translator.cc @@ -164,16 +164,15 @@ Translator::output_def_l () const } 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); } diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc index 39dbc7b12b..2430e7b37c 100644 --- a/lily/tuplet-engraver.cc +++ b/lily/tuplet-engraver.cc @@ -50,7 +50,7 @@ Tuplet_engraver::do_try_music (Music *r) 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 get_elt_property ("grace")); - SCM wg = get_property ("weAreGraceContext",0); + SCM wg = get_property ("weAreGraceContext"); bool wgb = to_boolean (wg); if (grace != wgb) return; @@ -115,7 +115,7 @@ Tuplet_engraver::do_post_move_processing () 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); diff --git a/lily/tuplet-spanner.cc b/lily/tuplet-spanner.cc index 36782cb6fc..5447595709 100644 --- a/lily/tuplet-spanner.cc +++ b/lily/tuplet-spanner.cc @@ -6,7 +6,7 @@ (c) 1997--2000 Jan Nieuwenhuizen */ -#include "atom.hh" + #include "beam.hh" #include "box.hh" #include "debug.hh" diff --git a/lily/vertical-align-engraver.cc b/lily/vertical-align-engraver.cc index aca1c68fd8..464e7e3df2 100644 --- a/lily/vertical-align-engraver.cc +++ b/lily/vertical-align-engraver.cc @@ -23,7 +23,7 @@ Vertical_align_engraver::do_creation_processing() { 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)); @@ -32,23 +32,18 @@ Vertical_align_engraver::do_creation_processing() 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; diff --git a/lily/volta-spanner.cc b/lily/volta-spanner.cc index 0fac7a6c23..9f5427a244 100644 --- a/lily/volta-spanner.cc +++ b/lily/volta-spanner.cc @@ -19,7 +19,7 @@ #include "stem.hh" #include "dimension-cache.hh" #include "group-interface.hh" -#include "atom.hh" + Volta_spanner::Volta_spanner () diff --git a/ly/engraver.ly b/ly/engraver.ly index b30c731e86..44c508c1ba 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -214,8 +214,8 @@ StaffGroupContext= \translator { \type "Engraver_group_engraver"; \consists "Span_bar_engraver"; \consists "Output_property_engraver"; - \consists "Staff_group_bar_engraver"; + \name StaffGroup; \accepts "Staff"; \accepts "RhythmicStaff"; @@ -246,6 +246,7 @@ LyricsContext = \translator { \name Lyrics; \consists Vertical_align_engraver;%need this for getting folded repeats right. + \consists "Property_engraver"; \consistsend "Axis_group_engraver"; \accepts "LyricVoice"; @@ -340,7 +341,7 @@ ScoreContext = \translator { \accepts "NoteNames"; markVisibilityFunction = #end-of-line-invisible - barNumberVisibilityFunction = #end-of-line-invisible + barNumberVisibilityFunction = #begin-of-line-visible marginVisibilityFunction = #begin-of-line-visible }; @@ -354,8 +355,6 @@ OrchestralScoreContext= \translator { \consists "Bar_number_engraver"; \consists "Mark_engraver"; - - \accepts "HaraKiriStaff"; }; \translator { diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 3c181ed8de..757b492e98 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,15 +1,15 @@ 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 diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 055cde99ca..f06d1a84b7 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ 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! diff --git a/scm/generic-property.scm b/scm/generic-property.scm index 619e0591aa..db27072dbc 100644 --- a/scm/generic-property.scm +++ b/scm/generic-property.scm @@ -184,3 +184,8 @@ ) +(define generic-lyrics-properties + (list generic-text-properties + ) + +) diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4 index 3db837d204..d0f44c8d77 100644 --- a/stepmake/aclocal.m4 +++ b/stepmake/aclocal.m4 @@ -566,7 +566,12 @@ AC_DEFUN(AC_STEPMAKE_TEXMF, [ # 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) -- 2.39.2