From: fred Date: Tue, 26 Mar 2002 21:25:26 +0000 (+0000) Subject: lilypond-1.0.6 X-Git-Tag: release/1.5.59~2908 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=ea35c3765df6492833ae0f4a4adb1361a5c56eda;p=lilypond.git lilypond-1.0.6 --- diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile index 361a15f4a7..22da57bfe0 100644 --- a/Documentation/GNUmakefile +++ b/Documentation/GNUmakefile @@ -6,17 +6,15 @@ NAME = documentation SUBDIRS=man tex pictures topdocs ntweb STEPMAKE_TEMPLATES=documentation README_TOP_FILES=NEWS DEDICATION TODO ANNOUNCE-0.1 +# INFO_FILES = $(wildcard $(outdir)/$(package).info*) EXTRA_DIST_FILES = gnu-music-history TODO BLURBS=BLURB COPERTINA FLAPTEKST -OUTTEXINFO_FILES = $(outdir)/topinfo.texinfo $(outdir)/mutopia.texinfo include $(depth)/make/stepmake.make default: do-doc -# INFO_FILES = $(outdir)/$(package).info - -texinfo: $(OUTTEXINFO_FILES) +texinfo: $(outdir)/$(package).info diff --git a/Documentation/README-W32.yo b/Documentation/README-W32.yo index 506be7899a..579642fc23 100644 --- a/Documentation/README-W32.yo +++ b/Documentation/README-W32.yo @@ -61,7 +61,9 @@ subsect(GOOD NEWS) It can be done! Occasionally, the Cygnus b19.1 cross compiler and utilities under GNU/Linux are used to make the binary file(.exe.zip) releases (some makefile hacking was needed to build this stuff). Jeffrey -Reed tries to keep-up with LilyPond development, and is doing quite well. +Reed tries to keep-up with LilyPond development, and is doing quite +well. His latest release is available on +lurl(http://www.realtime.net/~daboys/lilypond/). subsect(UNPACKING) @@ -342,8 +344,11 @@ done $realinstall $args ) -I place this in script file(~/bin). Having said that here is how one -might build the em(gettext) package. +I place this in script file(~/bin). The LilyPond configure, build, +and install process handles this with it's own install script. In +addition there are patches to the cygnus install command that also +deals with this problem. Having said that, here is how one +might build the em(gettext) package. itemize( it() download the package from one of the ftp sites. @@ -382,7 +387,7 @@ $CYGFS/cygnus.bat. subsubsect(Yodl Document Language) lurl(http://www.xs4all.nl/~jantien/yodl/) -Yodl for documentation in Lilypond. It is currently being updated by +Yodl for documentation in LilyPond. It is currently being updated by Jan Nieuwenhuizen. The development methodology of em(Yodl) as well as em(LilyPond) relies on a the following directory structure: @@ -441,7 +446,7 @@ The build of em(stepmake) documentation will fail due to the fact that em(yodl) is not yet installed. This is normal and shouldn't be a problem. -subsubsect(Lilypond) label(lilybuild) +subsubsect(LilyPond) label(lilybuild) itemize( it() download the package from lurl(http://www.cs.uu.nl/people/hanwen/lilypond/) to @@ -533,16 +538,23 @@ it() make release ) subsect(Running lilypond on Windows-NT) label(run) - -label(binary) + +We are now distributing a formated binary distribution for +Windows-NT. Please refer to +lurl(http://www.realtime.net/~daboys/lilypond/) for current news, +download, installation, and running information. Jeffrey B. Reed email(daboys@bga.com) sect(RUNNING LILYPOND -- by Dominique Cretel) +You may want to refer to section ref(run), for more current +information about downloading, installing, and running the Windows-NT +binary distribution. + enumerate( -eit() First, I have download tha 0.1.64 version of Lilypond music software. +eit() First, I have download tha 0.1.64 version of LilyPond music software. eit() Then I extract it in a temp directory, and I move the directory "lilypond-0.1.64" to the root directory of my D drive. diff --git a/Documentation/TODO b/Documentation/TODO index 060d0c342a..7145924b96 100644 --- a/Documentation/TODO +++ b/Documentation/TODO @@ -1,10 +1,6 @@ # Documentation/TODO - * write toplevel info file - - * yodl2texinfo: automatic nodes and menus? + * overview and index of features * get rid of pod manpage layout legacy - - diff --git a/Documentation/faq.yo b/Documentation/faq.yo index 14dbafd856..6a9ae5f364 100644 --- a/Documentation/faq.yo +++ b/Documentation/faq.yo @@ -69,8 +69,8 @@ The directory file(~/usr/src/) contains something like includefile(../stepmake/Documentation/layout.yo) ) -~/usr/src/bin is in the PATH, and contains symlinks to the -compiled executables. +~/usr/src/bin is in the PATH, and contains symbolic links to the +compiled executables. question(Is there an emacs mode?) @@ -78,6 +78,25 @@ Yes. It is included with the source archive as mudela-mode.el. If you have an rpm it is in /usr/doc/lilypond-X/. You have to install it yourself. +question(How do i create the file(.tfm) files?) + +You don't. The file(.tfm) files should be generated automatically by +Metafont when you run TeX(). Check your TeX() installation, or ask +your local TeX() guru. The supplied file(.afm) files are intended to +be used by LilyPond, not by any other programs. + + +sect(Documentation) + +question(Why is the documentation/website/etc. so lousy?) + +LilyPond development is moving quite fast, documentation will often +lag a bit behind. We must always make a choice between writing more +doco, writing more code and answering email. + +If you think you can make a correction, or devised a solution that +should be documented, please do so and send in a patch. + sect(Language: mudela) question(Why can't you type code(#c) in stead of code(cis) ?) diff --git a/Documentation/ntweb/GNUmakefile b/Documentation/ntweb/GNUmakefile index 709c7875f8..4a25d2eafa 100644 --- a/Documentation/ntweb/GNUmakefile +++ b/Documentation/ntweb/GNUmakefile @@ -8,5 +8,13 @@ include $(depth)/make/stepmake.make default: do-doc +$(outdir)/%.html: %.yo + $(sed-version) < $< > $<.out + $(YODL2HTML) -doutdir=$(outdir) --live-data=3 -o $@ $<.out + rm -f $<.out + $(PYTHON) $(step-bindir)/add-html-footer.py --package=$(topdir) \ + --index=http://www.cs.ruu.nl/people/hanwen/lilypond/index.html \ + --news=$(depth)/NEWS $@ + local-WWW: diff --git a/Documentation/ntweb/index.yo b/Documentation/ntweb/index.yo index 407e3d5497..a1c3777098 100644 --- a/Documentation/ntweb/index.yo +++ b/Documentation/ntweb/index.yo @@ -1,29 +1,26 @@ mailto(daboys@bga.com) article(LilyPond Windows NT 4.0 Distribution)(nemail(Jeffrey B. Reed)(daboys@bga.com))(label(contents)) -sect(Windows NT Distribution) +sect(Windows NT Binary Distribution) subsect(Introduction) label(introduction) -This web page is dedicated to the distrubution of LilyPond for Windows -NT 4.0. This package is covered under the GNU General Public License -and all of the source and documentation are available on the official -url(LilyPond -Homepage)(http://www.cs.ruu.nl/people/hanwen/lilypond/index.html). +This page is dedicated to the distribution of precompiled and preformatted +LilyPond binaries for Windows NT 4.0 . This package is covered under the +GNU General Public License and all of the source and documentation are +available on the official +url(LilyPond Homepage)(http://www.cs.ruu.nl/people/hanwen/lilypond/index.html). -LilyPond is the GNU Project music typesetter. This program can print -beautiful sheet music from a music definition file. It can also play -mechanical performances to a MIDI file. Features include multiple -staffs, meters, clefs, keys, lyrics, versatile input language, -cadenzas, beams, slurs, triplets, formatting scores, part -extraction. It includes a nice font of musical symbols. +includefile(../BLURB.in) link(Back to top)(contents) clearpage() subsect(NEWS) label(news) - -Version 1.0.3 is available +This is what the version @TOPLEVEL_VERSION@ brings: +verb( +top_of_NEWS +) link(Back to top)(contents) clearpage() @@ -53,7 +50,7 @@ clearpage() subsect(Download) label(download) itemize( - it()lurl(lilypond-1.0.3.zip) + it()lurl(lilypond-@TOPLEVEL_VERSION@.bin.zip) ) link(Back to top)(contents) @@ -68,14 +65,17 @@ itemize( it()Set your path variable for lilypond and TeX description( dit(batch file) - In a batch file you can add the following entry: nl() - bf(set path=%path%em(LilyPond-dir)\bin;em(MiKTeX-dir)\miktex\bin) - dit(Windows Environment) + In a batch file you can add the following entries: nl() + bf(set LILYPOND=em(LilyPond-dir)) nl() + bf(set path=%path%%LILYPOND%\bin;em(MiKTeX-dir)\miktex\bin) nl() + bf(set TEXINPUTS=%LILYPOND%\texmf\tex\lilypond;;) nl() + bf(set MFINPUTS=%LILYPOND%\texmf\mf\public\lilypond;;) nl() +COMMENT( dit(Windows Environment) In the Windows environment you can select properties menu of the My Computer icon. Click on the environment tag and add the following to the user variables path entry. nl() - bf(em(LilyPond-dir)\bin;em(MiKTeX-dir)\miktex\bin) + bf(em(LilyPond-dir)\bin;em(MiKTeX-dir)\miktex\bin)) ) nl() it() The first installation of LilyPond also requires these additional steps: @@ -108,6 +108,16 @@ clearpage() subsect(Running LilyPond) label(running) + +itemize( + it()Take a look at url(angles.ly)(angles.ly) + it()Save angles.ly to your local disk + it()From a Command Prompt run: nl() + bf(ly2dvi.py angles.ly) nl() + bf(dvips angles.dvi) nl() + bf(cmd /c angles.ps) nl() +) + link(Back to top)(contents) clearpage() @@ -125,3 +135,4 @@ itemize( link(Back to top)(contents) clearpage() + diff --git a/Documentation/tex/refman.yo b/Documentation/tex/refman.yo index cf44f1cb42..9c6aa43a65 100644 --- a/Documentation/tex/refman.yo +++ b/Documentation/tex/refman.yo @@ -608,14 +608,13 @@ These commands constitute `Music', and have a duration of 0. sect(Properties) -By default the same accidentals are valid for all octaves, but - this can be changed with the property code(specialaccidentals). +By default the same key signature is valid for all octaves, but + this can be changed with the property code(keyoctaviation). The identifier code(\specialkey) sets the property for the Staff. A -key with two flats in one octave and three - sharps in the next can be declared with verb(\specialkey -\accidentals bes es fis' cis' gis';) +key with two flats in one octave and three sharps in the next can be +declared with verb(\specialkey \keysignature bes es fis' cis' gis';) sect(Music fragments) label(tutorial:music-fragments) diff --git a/Documentation/tex/tutorial.yo b/Documentation/tex/tutorial.yo index c7fe41086e..9878ae3550 100644 --- a/Documentation/tex/tutorial.yo +++ b/Documentation/tex/tutorial.yo @@ -10,16 +10,43 @@ Yodl-1.30.18 to convert this to tex or html. TODO +need to rethink paper size stuff? + +pipethrough(date) sucks. + +paragraphs have too much space. + in stead <-> instead ) +COMMENT( + Mainly written by Han-Wen Nienhuys, + + with help of (among others) + + * Jan Nieuwenhuizen + + * Lambert Meertens, + + * Adrian Mariano + + * Mats Bengtsson + +) + htmlbodyopt(bgcolor)(white) htmlcommand() -latexpackage()(a4wide) latexlayoutcmds( -%\usepackage[latin1]{inputenc} -\input mudela-book + \topmargin -0.25in + \textheight 53\baselineskip + \advance\textheight by \topskip + \marginparwidth 1 in % Width of marginal notes. + \oddsidemargin 0.25 in % Note that \oddsidemargin = \evensidemargin + \evensidemargin 0.25 in + \marginparwidth 0.75 in + \textwidth 5.875 in % Width of text line. + \input mudela-book ) whenlatex(notableofcontents()) @@ -29,12 +56,6 @@ article(Mudela, the Music-Definition Language) (Han-Wen Nienhuys and Jan Nieuwenhuizen) (nop()PIPETHROUGH(date "+%B %d, %Y")()()nop()) -COMMENT( - -* paragraphs have too much space. - -) - latexcommand(\def\interexample{}) latexcommand(\def\preexample{\par}) @@ -78,7 +99,7 @@ If you are not familiar with the English terms for music notation, you should consult bind(Appendix)ref(glossary): it contains a glossary of musical terms along with translations in some other languages. -If you want to try the examples given here, you should have look a +If you want to try the examples given here, you should have a look at bind(Section)ref(sec:running-lilypond) first. sect(Music copying, music definition and music entry) @@ -262,8 +283,8 @@ verb(\score { \melodic { X Y Z } \paper {} }) -We will continue to leave out the red tape this, until the time is fit to explain what the -above it means. +We will continue to leave out the red tape this, until the time is right to explain what +it means. Because LilyPond uses a language, it is a so called em(batch) @@ -271,7 +292,7 @@ program. This means, that you use a text editor (such as code(emacs) or code(vi)) to create an input file. When you are done editing your input file, you save it, and you -run LilyPond on the file. If Lily finds any errors in your input file +run LilyPond on the file. If LilyPond finds any errors in your input file then nop(she)footnote(We're sure that if computer programs could have gender, LilyPond would be a female computer program. So we will refer to the program as a she. This gender-bending is not to tease @@ -286,7 +307,7 @@ will complain. If everything went well, then she'll generate a file, that you can process further to view or print. Using LilyPond to print or view some music is a four-step procedure. -To get you started we'll run down the full procedure for you once. +To get you started we'll run down the full procedure for you. enumerate( it() @@ -466,7 +487,7 @@ previous example can be reduced to verb( If you entered this, you probably made some little errors with the right amount of quotes as well. To remedy this, mudela has another -feature called `relative octaves', which reduces the amount of quotes +feature called `relative octaves', which reduces the number of quotes needed. If you want to enter large pieces of music em(now) we recommend you make an excursion to bind(Section)ref(sec:relativeoctaves) and learn about relative @@ -686,17 +707,21 @@ dit(code(\key) var(pitch)) This command changes the current key signature. The is the name of the corresponding major key. The key of C-minor can thus be specified as `code(\key es)'. -dit(code(\accidentals) var(pitchlist)) +dit(code(\keysignature) var(pitchlist)) -This command changes the current key signature. The signature is -given in the form of a list of accidentals, which can be useful for -unconventional keys. The key of C-minor can be specified as -`code(\accidentals bes es as)'. The command `code(\accidentals fis es -bis)' provides a more exotic example. +This command changes the current key signature. Unlike the +`code(\key)' command, this command can produce arbitrary key +signatures, which can be useful for unconventional keys or modes. The +key signature is given in the form of a list of notes. The notes will +be printed in the key signature in the order that they appear on the list. +For example, the key +of C-minor can be specified as `code(\accidentals bes es as)'. The +command `code(\accidentals fis es bis)' provides a more exotic +example. dit(code(\time) var(numerator)code(/)var(denominator)) - This command chages the current time signature. LilyPond uses the + This command changes the current time signature. LilyPond uses the time signature to calculate where to place the bars that start a measure. These bars in turn are the places where a system can be broken into lines. @@ -722,22 +747,32 @@ is printed. LilyPond will act as if you are again at the start of a measure. dit(code(\bar) var(bartype)) - This command lets you print special bar lines, such as repeats. You - can also use it to allow line breaks when entering cadenzas. The - argument var(bartype) is a string that describes what kind of bar line to print. + This command lets you print special bar + lines and repeat symbols. You can also use it to allow line breaks + when entering cadenzas. The argument var(bartype) is a string that + describes what kind of bar line to print. mudela(fragment,verbatim)( \bar "|:"; c'4 \bar ":|:"; c'4 \bar ":|"; c'4 \bar "||"; c'4 \bar "empty"; c'4 \bar "|."; ) The command `code(\bar "empty")' does not create any visible bar - line, but it does tells LilyPond to allow a linebreak - at that position. + line, but it does tells LilyPond to allow a linebreak + at that position. The `code(\bar)' command prints the specified + symbol immediately. If you give a `code(\bar)' command at the end + of a measure then + the specified symbol replaces the automatic bar line; otherwise + the specified symbol appears in the middle of the measure. The + code(\bar) command does not affect metric structure. + + dit(code(\partial) var(duration)) some music starts with a measure that isn't fully filled, a so-called upstep. The code(\partial) command allows you to make upsteps. The argument is a duration similar to the duration of a note. +The `code(\partial)' command cannot be used to generate partial +measures in the middle of the music. Example: mudela(fragment,verbatim)( \time 4/4; @@ -1682,9 +1717,9 @@ The mechanism of context selection can be used to fabricate an Urtext and an edited edition from em(one source). We will use the first few bars of bind(J.)bind(S.)Bach's lovely Cello suite bind(no.)I to demonstrate this. The example makes heavy use of space rests: a space -rest is a like a rest that doesn't print anything. It can be used as -a placeholder, to attach articulation marks to. It is entered as a -note with the name code(s). +rest takes up time, like a rest does, but it doesn't print anything. +It can be used as a placeholder, to attach articulation marks to. It +is entered as a note with the name code(s). mudela(verbatim)( bach = \melodic { [c16 g e' d'] [e' g e' g] } diff --git a/Documentation/topdocs/AUTHORS.yo b/Documentation/topdocs/AUTHORS.yo index 4db956cde2..74406656fd 100644 --- a/Documentation/topdocs/AUTHORS.yo +++ b/Documentation/topdocs/AUTHORS.yo @@ -1,7 +1,7 @@ article(AUTHORS - who did what on GNU LilyPond?)()() -This file lists authors of GNU LilyPond, and what they wrote. -This list is alphabetically ordered. +This file lists authors of GNU LilyPond, and what they wrote. This +list is alphabetically ordered. itemize( it()nemail(Mats Bengtsson)(matsb@s3.kth.se), @@ -25,11 +25,11 @@ it()nemail(David R. Linn)(drl@vuse.vanderbilt.edu), it()nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl), lurl(http://www.cs.uu.nl/~hanwen) nl() - Main author. + Main author (initials: HWN). it()nemail(Jan Nieuwenhuizen)(janneke@gnu.org), lurl(http://www.xs4all.nl/~jantien) nl() - Main author + Main author (initials: JCN). it()nemail(Alexandre Oliva)(oliva@dcc.unicamp.br), lurl(http://sunsite.unicamp.br/~oliva) testing diff --git a/Documentation/topdocs/INSTALL.yo b/Documentation/topdocs/INSTALL.yo index 19716b51d6..60c78c73ec 100644 --- a/Documentation/topdocs/INSTALL.yo +++ b/Documentation/topdocs/INSTALL.yo @@ -24,11 +24,17 @@ it()A GNU system: GNU LilyPond is known to run on these GNU systems: Linux (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and Solaris. +it()Lots of disk space: LilyPond takes between 50 and 100 mb to +compile if you use debugging information. If you are short on +disk-space run configure with code(--disable-debugging). + Although we recommend to use Unix, LilyPond is known to run on Windows NT/95/98 as well. See Section ref(w32). it() GNU C++ version 2.7 or newer (2.8 and egcs are also fine). -it() Python 1.5 +it() Python 1.5 (Strictly speaking, you shouldn't need Python for + compiling and installing, but you'll need it to regenerate the font + tables, e.g.). ) sect(RUNNING) @@ -48,15 +54,29 @@ Although not strictly necessary, these are recommended to have. itemize( it()GNU make. +Check out lurl(ftp://ftp.gnu.org) +or any mirror of this site. + it()Flex (version 2.5.4 or newer). +Check out lurl(ftp://ftp.gnu.org) +or any mirror of this site. it()Bison (version 1.25 or newer). -it()Python (version 1.5 or newer). +Check out lurl(ftp://ftp.gnu.org) +or any mirror of this site. + +it()Python (version 1.5 or newer). Check out +lurl(ftp://ftp.python.org) or lurl(ftp://ftp.cwi.nl/pub/python). + it()Yodl. All documentation will be in Yodl. (1.30.17) lurl(ftp://pcnov095.win.tue.nl/pub/yodl) lurl(http://www.cs.uu.nl/~hanwen/yodl) it()Texinfo. (version 3.12 or newer) it()GNU find +Check out lurl(ftp://ftp.gnu.org) +or any mirror of this site + + it() A fast computer (a full page of music typically takes 1 minute on my 486/133, using the bf(--enable-checking) compile. It's lot slower than most MusiXTeX preprocessors) @@ -197,8 +217,8 @@ and for the profiling version, I specify a different configuration. verb( configure --prefix=~ --enable-profiling --enable-config=optprof --enable-optimise --disable-checking - make configuration=optprof - make configuration=optprof install + make config=optprof + make config=optprof install ) diff --git a/TODO b/TODO index 2ea55b7d59..7f8f4b5f9c 100644 --- a/TODO +++ b/TODO @@ -7,17 +7,23 @@ done, or is an idea that I want to think about Most of the items are marked in the code as well, with full explanation. grep for TODO and ugh/ugr/urg - * add ex-dimension to feta-params. + * use streambufs to provide IO handling for TeX stream, mudela stream, +data-file. + * seriously buffer TeX output (do profile of writing .5 mb TeX file.) * strip EXEs before installing + * zip target for binary windows dist (JBR) + + * repeat bars: need distance after ":|" and before "|:" + + * doco should not depend on a4 + * text continuationss * fix plain tex footer line. - * portable libs for flowerlib/lilylib - * install TeX stuff into tex/generic directory. * preformatted .info stuff. @@ -89,9 +95,6 @@ grep for TODO and ugh/ugr/urg * make new VoiceOne, VoiceTwo, VoiceThree contexts with ydirection and hshift preset - * StepMake install - - /usr/bin/make-patch? - * *.yo: fix pod manpage layout legacy * text-items clash with stems/beams @@ -155,6 +158,7 @@ ydirection and hshift preset - plet -> tuplet - measure -> bar - abbreviation-beam -> (measured/unmeasured) tremolo + - partial -> anacrouse * libtoolize flowerlib @@ -206,8 +210,6 @@ ydirection and hshift preset * clefs (AG): The "8" should appear closer to the actual clef, touching it. - * give Items/Spanners access to unbroken originals - * scoping for properties? { c4 diff --git a/VERSION b/VERSION index 875f4fb000..f2ec42359f 100644 --- a/VERSION +++ b/VERSION @@ -1,9 +1,11 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=0 -PATCH_LEVEL=4 +PATCH_LEVEL=6 MY_PATCH_LEVEL= -# use the above to send patches, always empty for released version: -# please don't move these comments up; the patch should fail if +# use the above to send patches: MY_PATCH_LEVEL is always empty for a +# released version. +# +# Please don't move these comments up; the patch should fail if # the previous version was wrong. diff --git a/aclocal.m4 b/aclocal.m4 index 660b3aca0a..9947522568 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,11 +1,14 @@ +dnl WARNING WARNING WARNING WARNING +dnl do not edit! this is aclocal.m4, generated from stepmake/stepmake/../aclocal.m4 dnl aclocal.m4 -*-shell-script-*- dnl StepMake subroutines for configure.in AC_DEFUN(AC_STEPMAKE_COMPILE, [ # -O is necessary to get inlining - OPTIMIZE="-O" + OPTIMIZE="" + CXXFLAGS=${CXXFLAGS:-""} checking_b=yes - optimise_b=tja + optimise_b=no profile_b=no debug_b=yes @@ -14,7 +17,11 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ [checking_b=$enableval] ) # actually, the default is: tja='-O' to get inlining... - # off='' + # off='' --jcn + + #actually, that sucks. + # tja looks like a typo. Default is optimisation off. --hwn + AC_ARG_ENABLE(optimise, [ enable-optimise use maximal speed optimisations. Default: off], [optimise_b=$enableval]) @@ -45,8 +52,7 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ fi if test "$optimise_b" = yes; then - DEFINES="$DEFINES -finline-functions" - OPTIMIZE="-O2" + OPTIMIZE="-O2 -finline-functions" fi if test "$optimise_b" = no; then @@ -55,11 +61,11 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ if test $profile_b = yes; then EXTRA_LIBES="-pg" - DEFINES="$DEFINES -pg" + OPTIMIZE="$OPTIMIZE -pg" fi if test $debug_b = yes; then - DEFINES="$DEFINES -g" + OPTIMIZE="$OPTIMIZE -g" fi # however, C++ support in mingw32 v 0.1.4 is still flaky @@ -88,7 +94,8 @@ AC_DEFUN(AC_STEPMAKE_CXX, [ AC_CHECK_HEADER(FlexLexer.h, true, AC_STEPMAKE_WARN(can"\'"t find flex header. Please install Flex headers correctly)) - CXXFLAGS="$DEFINES $OPTIMIZE" + CPPFLAGS="$CPPFLAGS $DEFINES" + CXXFLAGS="$CXXFLAGS $OPTIMIZE" LDFLAGS=$EXTRA_LIBES AC_SUBST(CXXFLAGS) @@ -129,9 +136,9 @@ AC_DEFUN(AC_STEPMAKE_DATADIR, [ AC_DEFUN(AC_STEPMAKE_END, [ AC_OUTPUT($CONFIGFILE.make:config.make.in) - rm -f Makefile - cp make/toplevel.make.in ./Makefile - chmod 444 Makefile + rm -f GNUmakefile + cp make/toplevel.make.in ./GNUmakefile + chmod 444 GNUmakefile ]) AC_DEFUN(AC_STEPMAKE_GXX, [ @@ -189,6 +196,12 @@ AC_DEFUN(AC_STEPMAKE_INIT, [ stepmake=stepmake AC_SUBST(stepmake) + STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null` + if test "x$STATE_VECTOR" != "x"; then + STATE_VECTOR="\$(depth)/$STATE_VECTOR" + fi + AC_SUBST(STATE_VECTOR) + CONFIGSUFFIX= AC_ARG_ENABLE(config, [ enable-config=FILE put configure settings in config-FILE.make], @@ -231,20 +244,30 @@ dnl fi AC_CHECK_SEARCH_RESULT($PYTHON, python, You should install Python) if test "x$OSTYPE" = "xcygwin32" || test "x$OSTYPE" = "xWindows_NT"; then - LN=cp # hard link does not work under cygnus-nt (yet?) + LN=cp # hard link does not work under cygnus-nt + LN_S=cp # symbolic link does not work for native nt ZIP="zip -r -9" # DOTEXE=.exe - INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c" + DIRSEP='\\' + PATHSEP=';' + INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c" else + DIRSEP='/' + PATHSEP=':' LN=ln + LN_S='ln -s' ZIP="zip -r -9" INSTALL="\$(stepdir)/../bin/install-sh -c" fi AC_SUBST(DOTEXE) AC_SUBST(ZIP) AC_SUBST(LN) + AC_SUBST(LN_S) AC_SUBST(INSTALL) - + AC_DEFINE_UNQUOTED(DIRSEP, '${DIRSEP}') + AC_DEFINE_UNQUOTED(PATHSEP, '${PATHSEP}') + + AC_STEPMAKE_DATADIR ]) diff --git a/config.hh.in b/config.hh.in index 69939cf55a..48542789c4 100644 --- a/config.hh.in +++ b/config.hh.in @@ -24,3 +24,6 @@ /* define if explicit instantiation is needed */ #undef NEED_EXPLICIT_INSTANTIATION +/* define directory and path separators */ +#define DIRSEP '@DIRSEP@' +#define PATHSEP '@PATHSEP@' diff --git a/config.make.in b/config.make.in index 25bfe5945a..e15719086f 100644 --- a/config.make.in +++ b/config.make.in @@ -15,6 +15,7 @@ PACKAGE = @PACKAGE@ package = @package@ PACKAGE_NAME = @PACKAGE_NAME@ stepmake = @stepmake@ +state-vector = @STATE_VECTOR@ CONFIGSUFFIX = @CONFIGSUFFIX@ MAKEINFO = @MAKEINFO@ ICFLAGS = @ICFLAGS@ @@ -44,6 +45,7 @@ BISON = @BISON@ FIND = @FIND@ FLEX = @FLEX@ LN = @LN@ +LN_S = @LN_S@ MSGFMT = @MSGFMT@ PERL = @PERL@ PYTHON = @PYTHON@ diff --git a/flower/file-path.cc b/flower/file-path.cc index 3b76d4b1dd..89c05dfb16 100644 --- a/flower/file-path.cc +++ b/flower/file-path.cc @@ -2,6 +2,7 @@ path.cc - manipulation of paths and filenames. */ #include +#include "config.hh" #include "file-path.hh" #include "flower-debug.hh" diff --git a/init/book-fragment.ly b/init/book-fragment.ly index 08a4a3c97a..0139e592cc 100644 --- a/init/book-fragment.ly +++ b/init/book-fragment.ly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.0.0"; +\version "1.0.1"; \include "declarations.ly" diff --git a/init/book-init.ly b/init/book-init.ly index 8ad5ef7a65..a2908e5e8d 100644 --- a/init/book-init.ly +++ b/init/book-init.ly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.0.0"; +\version "1.0.1"; \include "declarations.ly"; diff --git a/init/center-fragment.ly b/init/center-fragment.ly index 1b4c419c10..421c98e781 100644 --- a/init/center-fragment.ly +++ b/init/center-fragment.ly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.0.0"; +\version "1.0.1"; \include "declarations.ly" diff --git a/init/center.ly b/init/center.ly index 89b32b236c..39699af865 100644 --- a/init/center.ly +++ b/init/center.ly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.0.0"; +\version "1.0.1"; \include "declarations.ly" diff --git a/init/english.ly b/init/english.ly new file mode 100644 index 0000000000..518f5097f1 --- /dev/null +++ b/init/english.ly @@ -0,0 +1,86 @@ +%{ + abbreviations of english names for notes + + %} + +\notenames { + cff = \musicalpitch { -1 0 -2 } + cf = \musicalpitch { -1 0 -1 } + c = \musicalpitch { -1 0 0 } + cs = \musicalpitch { -1 0 1 } + css = \musicalpitch { -1 0 2 } + dff = \musicalpitch { -1 1 -2 } + df = \musicalpitch { -1 1 -1 } + d = \musicalpitch { -1 1 0 } + ds = \musicalpitch { -1 1 1 } + dss = \musicalpitch { -1 1 2 } + eff = \musicalpitch { -1 2 -2 } + ef = \musicalpitch { -1 2 -1 } + e = \musicalpitch { -1 2 0 } + es = \musicalpitch { -1 2 1 } + ess = \musicalpitch { -1 2 2 } + fff = \musicalpitch { -1 3 -2 } + ff = \musicalpitch { -1 3 -1 } + f = \musicalpitch { -1 3 0 } + fs = \musicalpitch { -1 3 1 } + fss = \musicalpitch { -1 3 2 } + gff = \musicalpitch { -1 4 -2 } + gf = \musicalpitch { -1 4 -1 } + g = \musicalpitch { -1 4 0 } + gs = \musicalpitch { -1 4 1 } + gss = \musicalpitch { -1 4 2 } + aff = \musicalpitch { -1 5 -2 } + af = \musicalpitch { -1 5 -1 } + a = \musicalpitch { -1 5 0 } + as = \musicalpitch { -1 5 1 } + ass = \musicalpitch { -1 5 2 } + bff = \musicalpitch { -1 6 -2 } + bf = \musicalpitch { -1 6 -1 } + b = \musicalpitch { -1 6 0 } + bs = \musicalpitch { -1 6 1 } + bss = \musicalpitch { -1 6 2 } + + + % + % upper case: 1 octave lower. + % + + + Cff = \musicalpitch { -2 0 -2 } + Cf = \musicalpitch { -2 0 -1 } + C = \musicalpitch { -2 0 0 } + Cs = \musicalpitch { -2 0 1 } + Css = \musicalpitch { -2 0 2 } + Dff = \musicalpitch { -2 1 -2 } + Df = \musicalpitch { -2 1 -1 } + D = \musicalpitch { -2 1 0 } + Ds = \musicalpitch { -2 1 1 } + Dss = \musicalpitch { -2 1 2 } + Eff = \musicalpitch { -2 2 -2 } + Ef = \musicalpitch { -2 2 -1 } + E = \musicalpitch { -2 2 0 } + Es = \musicalpitch { -2 2 1 } + Ess = \musicalpitch { -2 2 2 } + Fff = \musicalpitch { -2 3 -2 } + Ff = \musicalpitch { -2 3 -1 } + F = \musicalpitch { -2 3 0 } + Fs = \musicalpitch { -2 3 1 } + Fss = \musicalpitch { -2 3 2 } + Gff = \musicalpitch { -2 4 -2 } + Gf = \musicalpitch { -2 4 -1 } + G = \musicalpitch { -2 4 0 } + Gs = \musicalpitch { -2 4 1 } + Gss = \musicalpitch { -2 4 2 } + Aff = \musicalpitch { -2 5 -2 } + Af = \musicalpitch { -2 5 -1 } + A = \musicalpitch { -2 5 0 } + As = \musicalpitch { -2 5 1 } + Ass = \musicalpitch { -2 5 2 } + Bff = \musicalpitch { -2 6 -2 } + Bf = \musicalpitch { -2 6 -1 } + B = \musicalpitch { -2 6 0 } + Bs = \musicalpitch { -2 6 1 } + Bss = \musicalpitch { -2 6 2 } + + +} diff --git a/init/fragment.ly b/init/fragment.ly index 1b4c419c10..421c98e781 100644 --- a/init/fragment.ly +++ b/init/fragment.ly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.0.0"; +\version "1.0.1"; \include "declarations.ly" diff --git a/init/init.fly b/init/init.fly index 3d94ef25ed..31fbbe0698 100644 --- a/init/init.fly +++ b/init/init.fly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.0.0"; +\version "1.0.1"; \include "declarations.ly" diff --git a/init/init.ly b/init/init.ly index 91fa45796d..7f62919272 100644 --- a/init/init.ly +++ b/init/init.ly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.0.0"; +\version "1.0.1"; \include "declarations.ly"; diff --git a/init/paper16.ly b/init/paper16.ly index 336a7fe737..8ce2fb67ed 100644 --- a/init/paper16.ly +++ b/init/paper16.ly @@ -6,7 +6,7 @@ -\version "1.0.0"; +\version "1.0.1"; paper_sixteen = \paper { staffheight = 16.0\pt; diff --git a/init/paper20.ly b/init/paper20.ly index 1977147a96..c156edb8dd 100644 --- a/init/paper20.ly +++ b/init/paper20.ly @@ -5,7 +5,7 @@ \include "table13.ly"; \include "table16.ly"; -\version "1.0.0"; +\version "1.0.1"; paper_twenty = \paper { staffheight = 20.0\pt; diff --git a/init/property.ly b/init/property.ly index a53eccbf6e..999a8307b4 100644 --- a/init/property.ly +++ b/init/property.ly @@ -14,7 +14,8 @@ ydirection 0 stem direction free \stemboth ydirection 1 force stem up \stemup pletvisibility 0 show nothing pletvisibility 1 show number -pletvisibility 2 show number, and bracket-if-no-beam +pletvisibility 2 show (number and bracket)-if-no-beam +pletvisibility 3 show number, and bracket-if-no-beam pletvisibility 4 show number, and bracket slurdash 0 normal slurs @@ -44,8 +45,8 @@ beamquantisation 1 quantise pos and slope \beamposnormal beamquantisation 2 quantise avoide wedge2) \beampostraditional [Staff] -specialaccidentals 0 Accidental for all octaves \normalkey -specialaccidentals 1 Accidental only for specified octave \specialkey +keyoctaviation 0 Key signature only for specified octave \specialkey +keyoctaviation 1 Key signature for all octaves \normalkey [Staff?] @@ -209,7 +210,7 @@ pletoff = { \property Voice.pletvisibility = 0 } pleton = { - \property Voice.pletvisibility = 2 + \property Voice.pletvisibility = 3 } tiny = { \property Voice.fontsize= "-2" @@ -250,15 +251,15 @@ graceat = \melodic { ecarg = \melodic { \property Voice.pletvisibility = 0 \] - \property Voice.pletvisibility = 2 + \property Voice.pletvisibility = 3 } %} normalkey = { - \property Staff.specialaccidentals = 0 + \property Staff.keyoctaviation = 1 } specialkey = { - \property Staff.specialaccidentals = 1 + \property Staff.keyoctaviation = 0 } diff --git a/input/keys.ly b/input/keys.ly index 134351df3c..2adf18aa12 100644 --- a/input/keys.ly +++ b/input/keys.ly @@ -1,18 +1,18 @@ -\version "1.0.0"; +\version "1.0.1"; blah = \melodic { \transpose c'' { \time 4/4; - \accidentals es; + \keysignature es; [cis8 d e f] [e! a b cis'] | es e f e a a' a a' | \clef "bass"; } [es16 c' b a] [g f es d] [c d es d] [c Bes As G] | \clef "violin"; - \accidentals c; + \keysignature c; cis4 c cis cis | cis dis2 ~ | \time 2/4 ; diff --git a/input/kortjakje.ly b/input/kortjakje.ly index b3f68e393f..b32df6721f 100644 --- a/input/kortjakje.ly +++ b/input/kortjakje.ly @@ -10,7 +10,7 @@ copyright = "public domain"; Tested Features: example file with comments %} -\version "1.0.0"; +\version "1.0.1"; % the % is a comment. diff --git a/input/pedal.ly b/input/pedal.ly index 6810cfa6be..7cfb0b0900 100644 --- a/input/pedal.ly +++ b/input/pedal.ly @@ -24,7 +24,7 @@ % \lbheel \lbheel \lfheel \lftoe % \rbheel \rbtoe \rfheel \rftoe -\version "1.0.0"; +\version "1.0.1"; \score{ \melodic { diff --git a/input/praeludium-fuga-E.ly b/input/praeludium-fuga-E.ly index b198ed23f6..fe27b1a420 100644 --- a/input/praeludium-fuga-E.ly +++ b/input/praeludium-fuga-E.ly @@ -19,7 +19,7 @@ * organ staff... %} -\version "1.0.0"; +\version "1.0.1"; diff --git a/input/rhythm.ly b/input/rhythm.ly index a9624effb9..109ead0cc3 100644 --- a/input/rhythm.ly +++ b/input/rhythm.ly @@ -7,7 +7,7 @@ TestedFeatures = "multiple meters, beaming, unsynced bars, userdefd engravers"; -\version "1.0.0"; +\version "1.0.1"; ritme = \melodic\transpose c'' { \partial 8; diff --git a/input/scales.ly b/input/scales.ly index 6c18cddc2f..dc4144ca25 100644 --- a/input/scales.ly +++ b/input/scales.ly @@ -12,7 +12,7 @@ copyright = "public domain"; % scales with accents. % -\version "1.0.0"; +\version "1.0.1"; blah = \melodic { \time 6/8; \transpose c { diff --git a/input/scripts.ly b/input/scripts.ly index bce1fb13ad..17fb060c23 100644 --- a/input/scripts.ly +++ b/input/scripts.ly @@ -1,5 +1,5 @@ -\version "1.0.0"; +\version "1.0.1"; blah = \melodic{ \transpose c'' { diff --git a/input/test/a.ly b/input/test/a.ly index 45c13fc8b5..d65526c2e0 100644 --- a/input/test/a.ly +++ b/input/test/a.ly @@ -5,7 +5,7 @@ TestedFeatures = "This file tests Feta embedded slurs" "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "1.0.0"; +\version "1.0.1"; shortlong = \melodic\transpose c'{ c4()c( c c | diff --git a/input/test/beams.ly b/input/test/beams.ly index 686dca2388..4912d94725 100644 --- a/input/test/beams.ly +++ b/input/test/beams.ly @@ -6,7 +6,7 @@ copyright = "PD"; TestedFeatures = "beams and beamflags"; } -\version "1.0.0"; +\version "1.0.1"; \score{ < diff --git a/input/test/broken.ly b/input/test/broken.ly index 8f33fb5490..f4e4932a7a 100644 --- a/input/test/broken.ly +++ b/input/test/broken.ly @@ -5,7 +5,7 @@ TestedFeatures = "This file tests Feta embedded slurs" "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "1.0.0"; +\version "1.0.1"; shortlong = \melodic{ c4()c( c c | diff --git a/input/test/collisions.ly b/input/test/collisions.ly index ade5a27a95..d0fa529d20 100644 --- a/input/test/collisions.ly +++ b/input/test/collisions.ly @@ -5,7 +5,7 @@ enteredby = "HWN,JCN"; copyright = "public domain"; Tested = "test the Collision resolution "; } -\version "1.0.0"; +\version "1.0.1"; diff --git a/input/test/denneboom.ly b/input/test/denneboom.ly index 7dd60edfb8..be5fea4a6d 100644 --- a/input/test/denneboom.ly +++ b/input/test/denneboom.ly @@ -7,7 +7,7 @@ TestedFeatures = "This file tests silly line shapes"; \include "paper20.ly" -\version "1.0.0"; +\version "1.0.1"; oden = \lyric{ O8 | diff --git a/input/test/font-body.ly b/input/test/font-body.ly index be1e3f0d98..6b4ca16955 100644 --- a/input/test/font-body.ly +++ b/input/test/font-body.ly @@ -1,4 +1,4 @@ -\version "1.0.0"; +\version "1.0.1"; FontBody= \melodic\transpose c''{ \bar "|:"; diff --git a/input/test/font.ly b/input/test/font.ly index 2063e9fb96..f139a81f1a 100644 --- a/input/test/font.ly +++ b/input/test/font.ly @@ -7,7 +7,7 @@ description = "This file tests the Feta music font"; % "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "1.0.0"; +\version "1.0.1"; \include "font-body.ly" \score{ diff --git a/input/test/font16.ly b/input/test/font16.ly index 9b2d190f79..2540a40788 100644 --- a/input/test/font16.ly +++ b/input/test/font16.ly @@ -7,7 +7,7 @@ description = "This file tests the Feta music font"; % "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "1.0.0"; +\version "1.0.1"; \include "font-body.ly" \score{ diff --git a/input/test/gourlay.ly b/input/test/gourlay.ly index 9d82c7aa42..4263aeae1e 100644 --- a/input/test/gourlay.ly +++ b/input/test/gourlay.ly @@ -4,7 +4,7 @@ copyright = "PD"; TestedFeatures = "This file tests some nasty Gourlay spacings"; } -\version "1.0.0"; +\version "1.0.1"; %{ diff --git a/input/test/knee.ly b/input/test/knee.ly index eedb742039..2d6f9beb13 100644 --- a/input/test/knee.ly +++ b/input/test/knee.ly @@ -1,4 +1,4 @@ -\version "1.0.0"; +\version "1.0.1"; \score{ \melodic\relative c'{ [c16 \stemdown c'' \stemboth c,, d] diff --git a/input/test/sleur.ly b/input/test/sleur.ly index 7fec239ef5..a63a95a592 100644 --- a/input/test/sleur.ly +++ b/input/test/sleur.ly @@ -5,7 +5,7 @@ TestedFeatures = "This file tests Feta embedded slurs" "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "1.0.0"; +\version "1.0.1"; shortlong = \melodic{ c4()c( c c | diff --git a/input/test/slur-damping.ly b/input/test/slur-damping.ly index 7b4f14bf87..6e733c02e1 100644 --- a/input/test/slur-damping.ly +++ b/input/test/slur-damping.ly @@ -1,5 +1,5 @@ % test damping -\version "1.0.0"; +\version "1.0.1"; \score{ \melodic\relative c'{ diff --git a/input/test/slurs.ly b/input/test/slurs.ly index d723fbb618..cd49211b87 100644 --- a/input/test/slurs.ly +++ b/input/test/slurs.ly @@ -1,5 +1,5 @@ -\version "1.0.0"; +\version "1.0.1"; \score{ \melodic\transpose c'{ diff --git a/input/test/spacing.ly b/input/test/spacing.ly index e8c72ce3f7..9c1fc724c7 100644 --- a/input/test/spacing.ly +++ b/input/test/spacing.ly @@ -6,7 +6,7 @@ copyright = "public domain"; TestedFeatures = "This file tests various spacings"; } -\version "1.0.0"; +\version "1.0.1"; multipart = \melodic{ \type StaffGroup < diff --git a/input/test/stem.ly b/input/test/stem.ly index 6df99dd73f..7bc33a1b4a 100644 --- a/input/test/stem.ly +++ b/input/test/stem.ly @@ -8,7 +8,7 @@ of beams"; } -\version "1.0.0"; +\version "1.0.1"; beamintervals = \melodic{ \time 7/4; diff --git a/input/test/title.ly b/input/test/title.ly index 50209186cd..30869a2225 100644 --- a/input/test/title.ly +++ b/input/test/title.ly @@ -10,7 +10,7 @@ source = "urtext"; instrument= "Instrument"; } -\version "1.0.0"; +\version "1.0.1"; \score{ \melodic diff --git a/input/test/transposition.ly b/input/test/transposition.ly index 3c6dac9233..d2b9011647 100644 --- a/input/test/transposition.ly +++ b/input/test/transposition.ly @@ -2,9 +2,9 @@ Hi all, I have extend Mats' patches to allow accidental transposition: - \accidentals bes es fis; + \keysignature bes es fis; = \transpose d => - \accidentals gis; + \keysignature gis; As you can see in output the example file "test.ly" there are a few problems left: - key undo (already in the Todo) @@ -22,7 +22,7 @@ copyright = "public domain"; } -\version "1.0.0"; +\version "1.0.1"; vOne = \melodic \relative c''{ \clef"violin"; @@ -39,12 +39,12 @@ vTwo = \melodic \relative c''\transpose d' { \vOne } vThree = \melodic \relative c''{ \clef"violin"; - \accidentals fis cis; + \keysignature fis cis; \time 2/4 ; d4 d | - \accidentals bes es fis; + \keysignature bes es fis; fis4 fis | - \accidentals fis cis gis dis ais eis; + \keysignature fis cis gis dis ais eis; cis4 ais4 | } diff --git a/input/tril.ly b/input/tril.ly index f7d64a5676..ce996bcf1a 100644 --- a/input/tril.ly +++ b/input/tril.ly @@ -5,7 +5,7 @@ TestedFeatures = "This file tests trills" "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "1.0.0"; +\version "1.0.1"; \score{ \melodic{ diff --git a/input/twinkle-pop.ly b/input/twinkle-pop.ly index eb2cd8e9a3..da173b7487 100644 --- a/input/twinkle-pop.ly +++ b/input/twinkle-pop.ly @@ -12,7 +12,7 @@ copyright = "public domain"; Tested Features lyrics and chords %} -\version "1.0.0"; +\version "1.0.1"; melodie = \melodic\relative c { \clef"violin"; diff --git a/input/twinkle.ly b/input/twinkle.ly index 926f7abafb..3c3a054371 100644 --- a/input/twinkle.ly +++ b/input/twinkle.ly @@ -15,7 +15,7 @@ copyright = "public domain"; Tested Features: lyrics, interleaving lyrics and staffs %} -\version "1.0.0"; +\version "1.0.1"; melody = \melodic \relative c'' { \clef violin; diff --git a/lily/GNUmakefile b/lily/GNUmakefile index 47338e5c36..52014326e8 100644 --- a/lily/GNUmakefile +++ b/lily/GNUmakefile @@ -17,10 +17,7 @@ include $(depth)/make/stepmake.make $(outdir)/my-lily-parser.o: $(outdir)/parser.hh $(outdir)/my-lily-lexer.o: $(outdir)/parser.hh $(outdir)/lexer.o: $(outdir)/parser.hh - - $(outdir)/lily-version.o: $(outdir)/version.hh - $(outdir)/main.o: $(outdir)/BLURB.hh $(outdir)/COPERTINA.hh $(outdir)/FLAPTEKST.hh diff --git a/lily/horizontal-group-element.cc b/lily/horizontal-group-element.cc new file mode 100644 index 0000000000..804dd6d9b3 --- /dev/null +++ b/lily/horizontal-group-element.cc @@ -0,0 +1,19 @@ +#include "horizontal-group-element.hh" +#include "interval.hh" +#include "item.hh" +#include "debug.hh" + + +IMPLEMENT_IS_TYPE_B1(Horizontal_group_element, Axis_group_element); + +Horizontal_group_element::Horizontal_group_element () + : Axis_group_element (X_AXIS,X_AXIS) +{ +} + +Interval +Horizontal_group_element::do_width() const +{ + return Graphical_axis_group::extent (X_AXIS); +} + diff --git a/lily/horizontal-vertical-group-element.cc b/lily/horizontal-vertical-group-element.cc new file mode 100644 index 0000000000..9021d88da6 --- /dev/null +++ b/lily/horizontal-vertical-group-element.cc @@ -0,0 +1,15 @@ + +#include "horizontal-vertical-group-element.hh" +#include "interval.hh" +#include "item.hh" +#include "debug.hh" + +Horizontal_vertical_group_element::Horizontal_vertical_group_element() +{ + axis1_ = X_AXIS; + axis2_ = Y_AXIS; +} + + + +IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group_element, Horizontal_group_element, Vertical_group_element); diff --git a/lily/include/horizontal-vertical-group-item.hh b/lily/include/horizontal-vertical-group-item.hh index 2a6a0bf425..181d88ee4f 100644 --- a/lily/include/horizontal-vertical-group-item.hh +++ b/lily/include/horizontal-vertical-group-item.hh @@ -20,7 +20,9 @@ class Horizontal_vertical_group_item : public Axis_group_item, public Horizontal_vertical_group_element { protected: virtual void do_print() const; - virtual void do_unlink () { Horizontal_vertical_group_element::do_unlink (); } + virtual void do_unlink () { + Axis_group_item::do_unlink (); + } SCORE_ELEMENT_CLONE(Horizontal_vertical_group_item); public: Horizontal_vertical_group_item (); diff --git a/lily/include/item.hh b/lily/include/item.hh index 3201029829..bd38edcc0f 100644 --- a/lily/include/item.hh +++ b/lily/include/item.hh @@ -28,6 +28,7 @@ class Item : public virtual Score_element { public: Link_array attached_span_l_arr_; Drul_array broken_to_drul_; + Item *unbroken_original_l_; /// should be put in a breakable col. bool breakable_b_; diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index d84e7bc27c..e7aaedbea1 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -222,7 +222,7 @@ struct String; struct Atom; struct Symtable; struct Symtables; -struct Super_elem; +struct Super_element; struct Translation_property; struct Tempo_req; struct Tex_stream; @@ -233,6 +233,7 @@ struct Text_engraver; struct Text_req; struct Text_spanner; struct Tie; +struct Tex_outputter; struct Tie_engraver; struct Tie_req; struct Time_description; diff --git a/lily/include/line-of-score.hh b/lily/include/line-of-score.hh index 894b39a5ba..2d0904f312 100644 --- a/lily/include/line-of-score.hh +++ b/lily/include/line-of-score.hh @@ -1,5 +1,5 @@ /* - scoreline.hh -- part of GNU LilyPond + line-of-score.hh -- part of GNU LilyPond (c) 1996--1998 Han-Wen Nienhuys */ @@ -9,9 +9,10 @@ #include "colhpos.hh" #include "spanner.hh" +#include "super-element.hh" /// the columns of a score that form one line. -class Line_of_score : public Spanner +class Line_of_score : public Spanner , public Super_element { public: Link_array cols; @@ -26,14 +27,14 @@ public: bool contains_b (Paper_column const *c) const; Link_array get_lines() const; - void set_breaking (Array const&); + Line_of_score * set_breaking (Array const&, int j) const; protected: virtual Link_array get_extra_dependencies () const; virtual void do_unlink (); virtual void do_junk_links (); - virtual void break_into_pieces (bool); + virtual Interval do_width() const; virtual void do_print() const; SCORE_ELEMENT_CLONE(Line_of_score); diff --git a/lily/include/p-score.hh b/lily/include/p-score.hh index a6b4dc2a9d..6cdfc5cda3 100644 --- a/lily/include/p-score.hh +++ b/lily/include/p-score.hh @@ -22,7 +22,9 @@ */ class Paper_score : public Music_output { - void tex_output (); + Tex_outputter *open_tex_outputter (Tex_stream*); + Tex_stream *open_output_stream (); + public: Paper_def *paper_l_; @@ -36,11 +38,9 @@ public: Pointer_list elem_p_list_; Outputter *outputter_l_; - Super_elem *super_elem_l_; - + Line_of_score * line_l_; + Paper_score (); - /// add a line to the broken stuff. Positions given in #config# - void set_breaking (Array const &); /// add to bottom of pcols @@ -67,18 +67,22 @@ public: virtual ~Paper_score(); protected: + + /* MAIN ROUTINES */ virtual void process(); // can't instantiate template with cygnus' gcc... // virtual ~Paper_score(); private: + + void remove_line (Line_of_score*); /// before calc_breaking void preprocess(); void calc_idealspacing(); /// calculate where the lines are to be broken, and use results - void calc_breaking(); + Array calc_breaking(); /// after calc_breaking void postprocess(); diff --git a/lily/include/score-element.hh b/lily/include/score-element.hh index 7a3211b234..bc4b64fe75 100644 --- a/lily/include/score-element.hh +++ b/lily/include/score-element.hh @@ -34,7 +34,7 @@ public: virtual void print () const; Paper_def *paper () const; - Lookup * lookup_l () const; + Lookup const *lookup_l () const; virtual ~Score_element (); DECLARE_MY_RUNTIME_TYPEINFO; @@ -76,7 +76,7 @@ public: protected: /** - Administration: Where are we?. This is mainly used by Super_elem and + Administration: Where are we?. This is mainly used by Super_element and Score_element::calcalute_dependencies () 0 means ORPHAN, diff --git a/lily/include/spanner.hh b/lily/include/spanner.hh index d5688cb8e0..1cad1d8ebb 100644 --- a/lily/include/spanner.hh +++ b/lily/include/spanner.hh @@ -34,13 +34,13 @@ */ class Spanner : public virtual Score_element { public: - Drul_array spanned_drul_; void set_bounds (Direction d, Item*); DECLARE_MY_RUNTIME_TYPEINFO; virtual Spanner* access_Spanner (); Spanner (); + Spanner (Spanner const &); bool broken_b () const; virtual Array get_rods () const; Spanner* find_broken_piece (Line_of_score*) const; @@ -54,6 +54,7 @@ protected: virtual void break_into_pieces (); Link_array broken_into_l_arr_; + Spanner * unbroken_original_l_; virtual void do_unlink (); virtual void do_junk_links (); diff --git a/lily/include/super-element.hh b/lily/include/super-element.hh index a625b850ec..133fbb0072 100644 --- a/lily/include/super-element.hh +++ b/lily/include/super-element.hh @@ -1,5 +1,5 @@ /* - super-element.hh -- declare Super_elem + super-element.hh -- declare Super_element source file of the LilyPond music typesetter @@ -7,19 +7,16 @@ */ -#ifndef SUPER_ELEM_HH -#define SUPER_ELEM_HH +#ifndef Super_element_HH +#define Super_element_HH #include "score-element.hh" /** The toplevel element. The Paper_score contains this element, and any element shoud be a dependency for the super element. */ -class Super_elem : public Score_element { +class Super_element : public virtual Score_element { public: - Link_array lines_arr_; - Line_of_score * line_of_score_l_; - void add_broken_line (Line_of_score*); - Super_elem(); + Super_element(); void space_processing (); void pre_processing(); @@ -30,11 +27,7 @@ public: void unlink_all (); protected: - virtual void do_substitute_dependency (Score_element*,Score_element*); - virtual void handle_broken_dependencies(); - - virtual void do_add_processing(); DECLARE_MY_RUNTIME_TYPEINFO; }; -#endif // SUPER_ELEM_HH +#endif // Super_element_HH diff --git a/lily/item.cc b/lily/item.cc index ec4a583a07..610c6b5c08 100644 --- a/lily/item.cc +++ b/lily/item.cc @@ -15,6 +15,7 @@ Item::Item () { + unbroken_original_l_ =0; break_priority_i_ = 0; breakable_b_ = false; break_status_dir_ = CENTER; @@ -162,10 +163,13 @@ Item::do_unlink() do { if (s->spanned_drul_[d] == this) s->set_bounds (d, 0); - - } while ( flip (&d) != LEFT); + if (unbroken_original_l_ + && unbroken_original_l_-> broken_to_drul_[d] == this) + unbroken_original_l_->broken_to_drul_[d] = 0; + } while (flip (&d) != LEFT); } attached_span_l_arr_.set_size (0); + unbroken_original_l_ =0; } Paper_column * @@ -177,6 +181,7 @@ Item::column_l () const Item::Item (Item const &s) : Score_element (s) { + unbroken_original_l_ = &s; /* do not copy attached_span_l_arr_ */ breakable_b_ = s.breakable_b_; broken_to_drul_[LEFT] = broken_to_drul_[RIGHT] =0; diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index fce50bd7ad..23df0763f3 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -94,10 +94,10 @@ Key_engraver::read_req (Key_change_req const * r) { old_accidental_idx_arr_ = accidental_idx_arr_; key_.clear (); - Scalar prop = get_property ("specialaccidentals"); + Scalar prop = get_property ("keyoctaviation"); if (prop.length_i () > 0) { - key_.multi_octave_b_ = prop.to_bool (); + key_.multi_octave_b_ = ! prop.to_bool (); } accidental_idx_arr_.clear (); diff --git a/lily/lexer.ll b/lily/lexer.ll index 91363bcc8d..7e8ab40af8 100644 --- a/lily/lexer.ll +++ b/lily/lexer.ll @@ -4,7 +4,7 @@ source file of the LilyPond music typesetter - (c) 1996,1997 Han-Wen Nienhuys + (c) 1996,1997 Han-Wen Nienhuys */ diff --git a/lily/line-of-score.cc b/lily/line-of-score.cc index 164d07937f..6704153d48 100644 --- a/lily/line-of-score.cc +++ b/lily/line-of-score.cc @@ -37,70 +37,41 @@ Line_of_score::contains_b (Paper_column const* c) const return cols.find_l ((Paper_column*)c); } -void -Line_of_score::set_breaking (Array const &breaking) +Line_of_score* +Line_of_score::set_breaking (Array const &breaking, int j) const { - for (int j=0; j < breaking.size(); j++) - { - const Array &curline (breaking[j].cols); - const Array &errors (breaking[j].error_col_l_arr_); - const Array &config (breaking[j].config); + const Array &curline (breaking[j].cols); + const Array &errors (breaking[j].error_col_l_arr_); + const Array &config (breaking[j].config); - for (int i=0; i < errors.size(); i++) - errors[i]->error_mark_b_ = true; + for (int i=0; i < errors.size(); i++) + errors[i]->error_mark_b_ = true; - Line_of_score *line_l=0; - Line_of_score *line_p =0; + const Line_of_score *line_l=0; - if (breaking.size() >1) - { - line_p = (Line_of_score*)clone()->access_Spanner (); - line_l = line_p; - } - else - line_l = this; + if (breaking.size() >1) + { + line_l = (Line_of_score*)clone()->access_Spanner (); + } + else + line_l = this; - ((Array &)line_l->cols) = curline; - line_l->set_bounds(LEFT,curline[0]); + ((Array &)line_l->cols) = curline; + line_l->set_bounds(LEFT,curline[0]); - line_l->set_bounds(RIGHT,curline.top()); + line_l->set_bounds(RIGHT,curline.top()); - if (line_p) - { - pscore_l_->typeset_broken_spanner (line_p); - broken_into_l_arr_.push (line_p); - } - - for (int i=0; i < curline.size(); i++) - { - curline[i]->translate_axis (config[i],X_AXIS); - curline[i]->line_l_ = (Line_of_score*)line_l; - } + for (int i=0; i < curline.size(); i++) + { + curline[i]->translate_axis (config[i],X_AXIS); + curline[i]->line_l_ = (Line_of_score*)line_l; } -} - -void -Line_of_score::break_into_pieces (bool) -{ - + return line_l; } -Link_array -Line_of_score::get_lines() const -{ - Link_array ret; - if (broken_into_l_arr_.size()) - for (int i=0; i < broken_into_l_arr_.size(); i++) - { - ret.push ((Line_of_score*)broken_into_l_arr_[i]); - } - else - ret.push ((Line_of_score*)this); // ugh - - return ret; -} + void Line_of_score::do_print() const diff --git a/lily/main.cc b/lily/main.cc index 379e4daa46..4adc7f4ef3 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -182,13 +182,25 @@ identify () int main (int argc, char **argv) { + // facilitate binary distributions + char const *env_lily = getenv ("LILYPONDPREFIX"); + String prefix_directory; + if (env_lily) + prefix_directory = env_lily; #if HAVE_GETTEXT setlocale (LC_ALL, ""); // setlocale (LC_MESSAGES, ""); + String lily_locale_dir; String name (PACKAGE); name.to_lower (); - bindtextdomain (name.ch_C (), DIR_LOCALEDIR); + if (!prefix_directory.empty_b()) + { + lily_locale_dir = prefix_directory + "/share/locale"; + bindtextdomain (name.ch_C (), lily_locale_dir.ch_C()); + } + else + bindtextdomain (name.ch_C (), DIR_LOCALEDIR); textdomain (name.ch_C ()); #endif @@ -202,6 +214,12 @@ main (int argc, char **argv) if (env_sz) global_path.parse_path (env_sz); + if (!prefix_directory.empty_b()) + { + global_path.add (prefix_directory + "/share/lilypond/init/"); + global_path.add (prefix_directory + "/share/lilypond"); + } + global_path.add (String (DIR_DATADIR) + "/init/"); global_path.push (DIR_DATADIR); @@ -307,11 +325,12 @@ main (int argc, char **argv) /* urg: make input file name: + input: file name + output: file name with added default extension. "" is stdin. - in reference argument: the extention. ".ly" if none + in reference argument: the extension. ".ly" if none */ - String distill_inname_str (String name_str, String& ext_r) { diff --git a/lily/my-lily-lexer.cc b/lily/my-lily-lexer.cc index 286f09277a..2931b16517 100644 --- a/lily/my-lily-lexer.cc +++ b/lily/my-lily-lexer.cc @@ -25,7 +25,6 @@ static Keyword_ent the_key_tab[]={ {"absdynamic", ABSDYNAMIC}, {"accepts", ACCEPTS}, - {"accidentals", ACCIDENTALS}, {"bar", BAR}, {"cadenza", CADENZA}, {"clear", CLEAR}, @@ -39,6 +38,7 @@ static Keyword_ent the_key_tab[]={ {"in", IN_T}, {"lyric", LYRIC}, {"key", KEY}, + {"keysignature", KEYSIGNATURE}, {"mark", MARK}, {"melodic" , MELODIC}, {"musicalpitch", MUSICAL_PITCH}, diff --git a/lily/p-score.cc b/lily/p-score.cc index af2300881c..48f2e400ac 100644 --- a/lily/p-score.cc +++ b/lily/p-score.cc @@ -7,7 +7,6 @@ */ #include "main.hh" -#include "super-element.hh" #include "debug.hh" #include "lookup.hh" #include "spanner.hh" @@ -33,15 +32,26 @@ Paper_score::Paper_score () { outputter_l_ =0; - super_elem_l_ = new Super_elem; - typeset_element (super_elem_l_); + Line_of_score * line_p = new Line_of_score; + typeset_unbroken_spanner (line_p); + + line_l_ = line_p; } Paper_score::~Paper_score () { - super_elem_l_->unlink_all (); +#if 0 + for (int i=0; i< line_l_arr_.size (); i++) + line_l_arr_[i]->unlink_all (); + for (PCursor i(elem_p_list_.top()); i.ok(); i++) - assert(!i->linked_b()); + { + + if (i->linked_b()) + i->unlink (); + assert (! i->linked_b ()); + } +#endif } void @@ -49,7 +59,6 @@ Paper_score::typeset_element (Score_element * elem_p) { elem_p_list_.bottom ().add (elem_p); elem_p->pscore_l_ = this; - elem_p->add_processing (); } @@ -118,12 +127,10 @@ Paper_score::find_col (Paper_column const *c) const } +#if 0 void Paper_score::set_breaking (Array const &breaking) { - super_elem_l_->line_of_score_l_->set_breaking (breaking); - super_elem_l_->break_processing (); - for (iter (span_p_list_.top (),i); i.ok ();) { Spanner *span_p = i.remove_p (); @@ -151,8 +158,10 @@ Paper_score::set_breaking (Array const &breaking) i++; } } +#endif -void + +Array Paper_score::calc_breaking () { Break_algorithm *algorithm_p=0; @@ -178,7 +187,7 @@ Paper_score::calc_breaking () sol = algorithm_p->solve (); delete algorithm_p; } - set_breaking (sol); + return sol; } void @@ -187,21 +196,79 @@ Paper_score::process () clean_cols (); print (); *mlog << _ ("Preprocessing elements...") << " " << flush; - super_elem_l_->breakable_col_processing (); - super_elem_l_->pre_processing (); + line_l_->breakable_col_processing (); + line_l_->pre_processing (); - *mlog << '\n' << _ ("Calculating column positions...") << " " << flush; - super_elem_l_->space_processing (); - calc_breaking (); - print (); - *mlog << _ ("Postprocessing elements...") << " " << endl; - super_elem_l_->post_processing (); - tex_output (); + *mlog << '\n' << _ ("Calculating column positions...") << " " << flush; + line_l_->space_processing (); + + Array breaking = calc_breaking (); + Tex_stream *tex_stream_p = open_output_stream (); + outputter_l_=open_tex_outputter (tex_stream_p); + + Link_array lines; + for (int i=0; i < breaking.size (); i++) + { + Line_of_score *line_l = line_l_->set_breaking (breaking, i); + lines.push (line_l); + if (line_l != line_l_) + typeset_broken_spanner (line_l); + + } + + *mlog << "\nLine ... "; + for (int i=0; i < lines.size (); i++) + { + *mlog << '[' << flush; + + Line_of_score *line_l = lines[i]; + line_l->break_processing (); + line_l->post_processing (); + *mlog << i << flush; + line_l->output_all (); + *mlog << ']' << flush; + remove_line (line_l); + + } + *tex_stream_p << "\n\\EndLilyPondOutput"; + delete outputter_l_; + delete tex_stream_p; + outputter_l_ = 0; } void -Paper_score::tex_output () +Paper_score::remove_line (Line_of_score *l) +{ + Link_array to_remove; + for (PCursor i(elem_p_list_.top ()); i.ok (); ) + { + if (i->line_l () == l) + to_remove.push (i.remove_p ()); + else + i++; + } + + for (PCursor i (span_p_list_.top ()); i.ok (); ) + { + Score_element *e = i.ptr (); + if (e->line_l () == l) + to_remove.push (i.remove_p ()); + else + i++; + } + + // l->unlink_all (); + for (int i=0; i < to_remove.size (); i++) + { + to_remove[i]->unlink (); + assert (!to_remove[i]->linked_b ()); + delete to_remove [i]; + } +} + +Tex_stream * +Paper_score::open_output_stream () { // output String base_outname = paper_l_->outfile_str_ ; @@ -223,33 +290,36 @@ Paper_score::tex_output () *mlog << _f ("TeX output to %s...", outname == "-" ? String ("") : outname ) << endl; - Tex_stream tex_out (outname); - Tex_outputter interfees (&tex_out); + return new Tex_stream (outname); +} + - outputter_l_ = &interfees; + +Tex_outputter * +Paper_score::open_tex_outputter (Tex_stream *tex_out_p) +{ + Tex_outputter *interfees_p= new Tex_outputter (tex_out_p); if (header_global_p) { - tex_out << header_global_p->TeX_string (); + *tex_out_p << header_global_p->TeX_string (); } - tex_out << _ ("% outputting Score, defined at: ") << origin_str_ << '\n'; + *tex_out_p << _ ("% outputting Score, defined at: ") << origin_str_ << '\n'; if (header_l_) { - tex_out << header_l_->TeX_string(); + *tex_out_p << header_l_->TeX_string(); } - tex_out << paper_l_->TeX_output_settings_str (); + *tex_out_p << paper_l_->TeX_output_settings_str (); if (experimental_features_global_b) - tex_out << "\\turnOnExperimentalFeatures%\n"; + *tex_out_p << "\\turnOnExperimentalFeatures%\n"; - tex_out << "\\turnOnPostScript%\n"; - super_elem_l_->output_all (); - tex_out << "\n\\EndLilyPondOutput"; - outputter_l_ = 0; + *tex_out_p << "\\turnOnPostScript%\n"; + return interfees_p; } /** Get all breakable columns between l and r, (not counting l and r). */ diff --git a/lily/parser.yy b/lily/parser.yy index 5df3722a0a..86b67fb02d 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -1,11 +1,11 @@ %{ // -*-Fundamental-*- /* - parser.yy -- YACC -> C++ parser for mudela + parser.yy -- Bison/C++ parser for mudela source file of the GNU LilyPond music typesetter - (c) 1997 Han-Wen Nienhuys + (c) 1997 Han-Wen Nienhuys Jan Nieuwenhuizen */ @@ -44,8 +44,8 @@ // mmm -Mudela_version oldest_version ("1.0.0"); -Mudela_version version ("1.0.0"); +Mudela_version oldest_version ("1.0.1"); +Mudela_version version ("1.0.1"); // needed for bison.simple's malloc() and free() @@ -137,7 +137,6 @@ yylex (YYSTYPE *s, void * v_l) /* tokens which are not keywords */ -%token ACCIDENTALS %token ALIAS %token BAR %token BEAMPLET @@ -160,6 +159,7 @@ yylex (YYSTYPE *s, void * v_l) %token IN_T %token LYRIC %token KEY +%token KEYSIGNATURE %token MARK %token MUSIC %token MUSICAL_PITCH @@ -850,7 +850,7 @@ verbose_command_req: $$ = key_p; delete $2; } - | ACCIDENTALS pitch_list { + | KEYSIGNATURE pitch_list { Key_change_req *key_p= new Key_change_req; key_p->pitch_arr_ = *$2; key_p->ordinary_key_b_ = false; @@ -1125,7 +1125,7 @@ gen_script_def: ; text_def: - STRING { + string { Text_def *t = new Text_def; $$ = t; t->text_str_ = *$1; diff --git a/lily/score-element.cc b/lily/score-element.cc index 94b6da163f..5eaff4dad8 100644 --- a/lily/score-element.cc +++ b/lily/score-element.cc @@ -133,7 +133,7 @@ Score_element::paper() const } -Lookup * +Lookup const * Score_element::lookup_l () const { return pscore_l_->paper_l_->lookup_l (size_i_); diff --git a/lily/score-engraver.cc b/lily/score-engraver.cc index 1df1ecd5f8..1b30731fd7 100644 --- a/lily/score-engraver.cc +++ b/lily/score-engraver.cc @@ -51,7 +51,7 @@ Score_engraver::finish() void Score_engraver::do_creation_processing() { - scoreline_l_ = pscore_p_->super_elem_l_->line_of_score_l_; + scoreline_l_ = pscore_p_->line_l_; scoreline_l_->set_bounds(LEFT,get_staff_info().command_pcol_l ()); command_column_l_->breakable_b_ = true; Engraver_group_engraver::do_creation_processing(); diff --git a/lily/spanner.cc b/lily/spanner.cc index bc128bef42..0a1a74e5bd 100644 --- a/lily/spanner.cc +++ b/lily/spanner.cc @@ -54,8 +54,8 @@ Spanner::break_into_pieces () for (int i=1; i < break_cols.size(); i++) { Spanner* span_p = clone()->access_Spanner (); - left = break_cols[i-1]; - right = break_cols[i]; + Item *left = break_cols[i-1]; + Item *right = break_cols[i]; if (!right->line_l()) right = right->find_prebroken_piece(LEFT); if (!left->line_l()) @@ -108,7 +108,9 @@ Spanner::do_break_processing() { break_into_pieces (); for (int i=0; i < broken_into_l_arr_.size(); i++) - broken_into_l_arr_[i]->handle_broken_dependencies(); + { + broken_into_l_arr_[i]->handle_broken_dependencies(); + } } else { @@ -124,10 +126,18 @@ Spanner::access_Spanner () Spanner::Spanner () { + unbroken_original_l_ =0; spanned_drul_[LEFT]=0; spanned_drul_[RIGHT]=0; } +Spanner::Spanner (Spanner const &s) + :Score_element (s) +{ + spanned_drul_[LEFT] = spanned_drul_[RIGHT] =0; + unbroken_original_l_ = &s; +} + void Spanner::do_brew_molecule () { @@ -182,6 +192,12 @@ Spanner::do_unlink() { set_bounds (LEFT, 0); set_bounds (RIGHT, 0); + + if (unbroken_original_l_) + { + unbroken_original_l_->broken_into_l_arr_.substitute (this, 0); + unbroken_original_l_ =0; + } } void diff --git a/lily/super-element.cc b/lily/super-element.cc new file mode 100644 index 0000000000..e3b3ffbfc1 --- /dev/null +++ b/lily/super-element.cc @@ -0,0 +1,91 @@ +/* + super-elem.cc -- implement Super_elem + + source file of the LilyPond music typesetter + + (c) 1997--1998 Han-Wen Nienhuys +*/ + +#include "super-element.hh" +#include "line-of-score.hh" +#include "p-score.hh" +#include "string.hh" +#include "tex-outputter.hh" + + +Super_element::Super_element() +{ +} + +IMPLEMENT_IS_TYPE_B1(Super_element,Score_element); + + +/** + for administration of what was done already + */ +enum Score_element_status { + ORPHAN=0, // not yet added to pstaff + VIRGIN, // added to pstaff + PREBROKEN, + PRECALCING, + PRECALCED, // calcs before spacing done + SPACING, + SPACED, + BROKEN, + POSTCALCING, // busy calculating. This is used to trap cyclic deps. + POSTCALCED, // after spacing calcs done + BREWING, + BREWED, + UNLINKING, + UNLINKED, +}; + +void +Super_element::pre_processing () +{ + calcalute_dependencies (PRECALCING, PRECALCED, &Score_element::do_pre_processing); +} + +void +Super_element::space_processing () +{ + calcalute_dependencies (SPACING, SPACED, &Score_element::do_space_processing); +} + +/* for break processing, use only one status, because copies have to + have correct status. (Previously, + Score_element::handle_[pre]broken_dependencies assigned to status_i_ + */ +void +Super_element::breakable_col_processing () +{ + calcalute_dependencies (PREBROKEN, PREBROKEN, &Score_element::do_breakable_col_processing); +} + +void +Super_element::break_processing () +{ + calcalute_dependencies (BROKEN, BROKEN, &Score_element::do_break_processing); +} +void +Super_element::post_processing () +{ + calcalute_dependencies (POSTCALCING, POSTCALCED, &Score_element::do_post_processing); +} + +void +Super_element::output_all () +{ + pscore_l_->outputter_l_->start_line (); + calcalute_dependencies (BREWING, BREWED, &Score_element::do_brew_molecule); + pscore_l_->outputter_l_->stop_line (); +} + + + +void +Super_element::unlink_all () +{ + calcalute_dependencies (UNLINKING, UNLINKED, &Score_element::junk_links); +} + diff --git a/mf/GNUmakefile b/mf/GNUmakefile index 07d99c1758..0062f7c5ba 100644 --- a/mf/GNUmakefile +++ b/mf/GNUmakefile @@ -26,6 +26,8 @@ $(outdir)/%.afm $(outdir)/%.ly $(outdir)/%.tex $(outdir)/%.dep: $(outdir)/%.log $(PYTHON) $(buildscripts)/mf-to-table.py --package=$(topdir) --outdir=$(outdir) --dep $(outdir)/$( r r2 | R1 | diff --git a/mutopia/Coriolan/violino-2-part.ly b/mutopia/Coriolan/violino-2-part.ly index cc9a9a1c87..d8b426945b 100644 --- a/mutopia/Coriolan/violino-2-part.ly +++ b/mutopia/Coriolan/violino-2-part.ly @@ -7,7 +7,7 @@ enteredby = "JCN"; copyright = "public domain"; } -\version "1.0.0"; +\version "1.0.1"; \include "global.ly" \include "violino-2.ly" diff --git a/mutopia/Coriolan/violino-2.ly b/mutopia/Coriolan/violino-2.ly index de6fea2061..f9693fdf0a 100644 --- a/mutopia/Coriolan/violino-2.ly +++ b/mutopia/Coriolan/violino-2.ly @@ -7,7 +7,7 @@ enteredby = "JCN"; copyright = "public domain"; } -\version "1.0.0"; +\version "1.0.1"; violino2 = \melodic \relative c { c'1\ff ~ | c | r r2 | R1 | diff --git a/mutopia/Coriolan/violoncello-part.ly b/mutopia/Coriolan/violoncello-part.ly index bec6971a1a..953d20a304 100644 --- a/mutopia/Coriolan/violoncello-part.ly +++ b/mutopia/Coriolan/violoncello-part.ly @@ -7,7 +7,7 @@ enteredby = "JCN"; copyright = "public domain"; } -\version "1.0.0"; +\version "1.0.1"; \include "global.ly" \include "violoncello.ly" diff --git a/mutopia/Coriolan/violoncello.ly b/mutopia/Coriolan/violoncello.ly index 085b31dbf5..622ea85ab9 100644 --- a/mutopia/Coriolan/violoncello.ly +++ b/mutopia/Coriolan/violoncello.ly @@ -9,7 +9,7 @@ copyright = "public domain"; } -\version "1.0.0"; +\version "1.0.1"; violoncello = \melodic \relative c { c1\ff ~ | c | f,4-. r r2 | r1 | c'1\ff ~ | c | f,4-. r r2 | diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly index 0c111fa734..b794f9367e 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly @@ -14,7 +14,7 @@ enteredby = "jcn"; copyright = "public domain"; } -\version "1.0.0"; +\version "1.0.1"; one = \melodic\relative c { \property Voice . textstyle = "italic" diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly index 585f74e7c5..22dc7c74bf 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly @@ -14,7 +14,7 @@ enteredby = "jcn"; copyright = "public domain"; } -\version "1.0.0"; +\version "1.0.1"; one = \melodic\relative c{ \property Voice . textstyle = "italic" r8\mf [c'-1( e-2 g-4] [e-2 c-1 bes'-5 g-3] | diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly index 66e95430a0..754ee16d34 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly @@ -12,7 +12,7 @@ composer = "Johann Sebastian Bach (1685-1750)"; enteredby = "jcn"; copyright = "public domain"; } -\version "1.0.0"; +\version "1.0.1"; one = \melodic\relative c{ \property Voice . textstyle = "italic" diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly index 5a2d50f848..9ba965c560 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly @@ -12,7 +12,7 @@ composer = "Johann Sebastian Bach (1685-1750)"; enteredby = "jcn"; copyright = "public domain"; } -\version "1.0.0"; +\version "1.0.1"; one = \melodic\relative c{ diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly index feb7345d31..0bdcd15b06 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly @@ -12,7 +12,7 @@ composer = "Johann Sebastian Bach (1685-1750)"; enteredby = "jcn"; copyright = "public domain"; } -\version "1.0.0"; +\version "1.0.1"; one = \melodic\relative c{ diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly index 114480452c..97e59feb9d 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-cello.ly @@ -2,7 +2,7 @@ filename = "allemande-cello.ly"; title = "Solo Cello Suites"; subtitle = "Suite II"; -piece = "Allemande"; +%piece = "Allemande"; % opus = "BWV 1008"; opus = ""; composer = "Johann Sebastian Bach (1685-1750)"; @@ -15,7 +15,7 @@ copyright = "public domain"; dotted slurs %} -\version "1.0.0"; +\version "1.0.1"; \include "allemande-urtext.ly"; @@ -45,5 +45,6 @@ allemande_cello_staff = \type Staff < \$allemande_cello_staff \include "scs-paper.ly"; \midi{ \tempo 4 = 45; } + \header{ piece = "Allemande"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-viola.ly new file mode 100644 index 0000000000..450639b718 --- /dev/null +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-viola.ly @@ -0,0 +1,50 @@ +\header{ +filename = "allemande-viola.ly"; +title = "Solo Cello Suites"; +subtitle = "Suite II"; +% piece = "Allemande"; +% opus = "BWV 1008"; +opus = ""; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "JCN"; +copyright = "public domain"; +} + +%{ + Tested Features:breaking algorithm, chords, multivoice, accents, + dotted slurs +%} + +\version "1.0.1"; + +\include "allemande-urtext.ly"; + +allemande_viola_global = \melodic{ + \time 4/4; + \key f; + \partial 16; + \clef alto; + \skip 1*11; + s2. s8. + \bar ":|:"; + \skip 1*11; + s2. s4 s8 + \bar ":|"; +} + +allemande_viola_scripts = \melodic{ +} + +allemande_viola_staff = \type Staff < + \melodic \transpose c'' \$allemande + \$allemande_viola_global + \$allemande_viola_scripts +> + +\score{ + \$allemande_viola_staff + \include "scs-paper.ly"; + \midi{ \tempo 4 = 45; } + \header{ piece = "Allemande"; } +} + diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly index 5909c0be7d..1784fae420 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-cello.ly @@ -2,7 +2,7 @@ filename = "courante-cello.ly"; title = "Solo Cello Suites"; subtitle = "Suite II"; -piece = "Courante"; +% piece = "Courante"; % opus = "BWV 1008"; opus = ""; composer = "Johann Sebastian Bach (1685-1750)"; @@ -15,7 +15,7 @@ copyright = "public domain"; dotted slurs %} -\version "1.0.0"; +\version "1.0.1"; \include "courante-urtext.ly"; @@ -45,5 +45,6 @@ courante_cello_staff = \type Staff < \$courante_cello_staff \include "scs-paper.ly"; \midi{ \tempo 4 = 55; } + \header{ piece = "Courante"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly new file mode 100644 index 0000000000..2178cbf982 --- /dev/null +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly @@ -0,0 +1,50 @@ +\header{ +filename = "courante-viola.ly"; +title = "Solo Cello Suites"; +subtitle = "Suite II"; +% piece = "Courante"; +% opus = "BWV 1008"; +opus = ""; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "JCN"; +copyright = "public domain"; +} + +%{ + Tested Features:breaking algorithm, chords, multivoice, accents, + dotted slurs +%} + +\version "1.0.1"; + +\include "courante-urtext.ly"; + +courante_viola_global = \melodic{ + \time 3/4; + \key f; + \partial 16; + \clef alto; + \skip 2.*15; + s2 s8. + \bar ":|:"; + \skip 2.*15; + s2 s8. + \bar ":|"; +} + +courante_viola_scripts = \melodic{ +} + +courante_viola_staff = \type Staff < + \melodic \transpose c' \$courante + \$courante_viola_global + \$courante_viola_scripts +> + +\score{ + \$courante_viola_staff + \include "scs-paper.ly"; + \midi{ \tempo 4 = 55; } + \header{ piece = "Courante"; } +} + diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly index 70c72a36f6..9283675475 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-cello.ly @@ -2,7 +2,7 @@ filename = "gigue-cello.ly"; title = "Solo Cello Suites"; subtitle = "Suite II"; -piece = "Pr\\'elude"; % duh +% piece = "Gigue"; % opus = "BWV 1008"; opus = ""; composer = "Johann Sebastian Bach (1685-1750)"; @@ -15,7 +15,7 @@ copyright = "public domain"; dotted slurs %} -\version "1.0.0"; +\version "1.0.1"; \include "gigue-urtext.ly"; @@ -45,5 +45,6 @@ gigue_cello_staff = \type Staff < \$gigue_cello_staff \include "scs-paper.ly"; \midi{ \tempo 4 = 60; } + \header{ piece = "Gigue"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly new file mode 100644 index 0000000000..d49bd990f8 --- /dev/null +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly @@ -0,0 +1,51 @@ +\header{ +filename = "gigue-cello.ly"; +title = "Solo Cello Suites"; +subtitle = "Suite II"; +% piece = "Gigue"; +% opus = "BWV 1008"; +opus = ""; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "JCN"; +copyright = "public domain"; +} + +%{ + Tested Features:breaking algorithm, chords, multivoice, accents, + dotted slurs +%} + +\version "1.0.1"; + +\include "gigue-urtext.ly"; + +gigue_cello_global = \melodic{ + \time 3/8; + \key f; + \clef bass; + \partial 8; + \skip 4.*31; + s4 + \bar ":|:"; + \skip 4.*44; + s4 + \bar ":|"; +} + +gigue_cello_scripts = \melodic{ +} + +gigue_cello_staff = \type Staff < + \melodic \transpose c' \$gigue + \$gigue_cello_global + \$gigue_cello_scripts +> + +\score{ + \$gigue_cello_staff + \include "scs-paper.ly"; +%broken + \midi{ \tempo 4 = 60; } + \header{ piece = "Gigue"; } +} + diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly index 5d5f9c4d0d..f8b4a17965 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly @@ -2,7 +2,7 @@ filename = "menuetto-cello.ly"; title = "Solo Cello Suites"; subtitle = "Suite II"; -piece = "Menuetto I"; +%piece = "Menuetto I"; source = "?"; % opus = "BWV 1008 no. 5"; opus = ""; @@ -16,7 +16,7 @@ copyright = "public domain"; dotted slurs %} -\version "1.0.0"; +\version "1.0.1"; \include "menuetto-urtext.ly"; @@ -63,6 +63,7 @@ menuetto_i_cello_staff = \type Staff < \$menuetto_i_cello_staff \include "scs-paper.ly"; \midi{ \tempo 4 = 110; } + \header{ piece = "Menuetto I"; } } menuetto_ii_cello_global = \melodic{ @@ -84,13 +85,10 @@ menuetto_ii_cello_staff = \type Staff < % \$menuetto_ii_cello_scripts > -\header{ -piece = "Menuetto II"; -opus = ""; -} \score{ \$menuetto_ii_cello_staff \include "scs-paper.ly"; \midi{ \tempo 4 = 130; } + \header{ piece = "Menuetto II"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly new file mode 100644 index 0000000000..0cd664fb61 --- /dev/null +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly @@ -0,0 +1,93 @@ +\header{ +filename = "menuetto-viola.ly"; +title = "Solo Cello Suites"; +subtitle = "Suite II"; +% piece = "Menuetto I"; +description = "Transcribed for Viola"; +source = "?"; +% opus = "BWV 1008 no. 5"; +opus = ""; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "JCN"; +copyright = "public domain"; +} + +%{ + Tested Features:breaking algorithm, chords, multivoice, accents, + dotted slurs +%} + +\version "1.0.1"; + +\include "menuetto-urtext.ly"; + +menuetto_i_viola_global = \melodic{ + \time 3/4; + \key f; + \clef alto; + \skip 2.*8; + \bar ":|:"; + \clef violin; + \skip 2.*1; + \slurdotted + \skip 2.*3; + \clef alto; + \skip 2.*11; + s2._"Fine" + \bar ":|"; +} + +menuetto_i_viola_scripts = \melodic{ + s2. + s8^"~"^1_2_4 s8*5 + s2.*5 + s4 s-\upbow s-\downbow + s2.-\upbow + s2.*5 + s2 s4-\upbow + s4-\downbow s2 + s2.*1 + s2^0 s4 + s2.*1 + s4-\downbow s4-\upbow +} + +menuetto_i_viola_staff = \type Staff < + \melodic \transpose c' \$menuetto_i + \$menuetto_i_viola_global +% \$menuetto_i_viola_scripts +> + +\score{ + \$menuetto_i_viola_staff + \include "scs-paper.ly"; + \midi{ \tempo 4 = 110; } + \header{ piece = "Menuetto I"; } +} + +menuetto_ii_viola_global = \melodic{ + \time 3/4; + \key D; + \clef alto; + \skip 2.*8; + \bar ":|:"; + \skip 2.*1; + \slurdotted + \skip 2.*14; + s2._"Menuetto I da Capo" + \bar ":|"; +} + +menuetto_ii_viola_staff = \type Staff < + \melodic \transpose c' \$menuetto_ii + \$menuetto_ii_viola_global +% \$menuetto_ii_viola_scripts +> + +\score{ + \$menuetto_ii_viola_staff + \include "scs-paper.ly"; + \midi{ \tempo 4 = 130; } + \header{ piece = "Menuetto II"; } +} + diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly index d872e5ccb8..994d74cad5 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly @@ -2,7 +2,7 @@ filename = "prelude-cello.ly"; title = "Solo Cello Suites"; subtitle = "Suite II"; -piece = "Pr\\'elude"; % duh +%piece = "Pr\\'elude"; % duh opus = "BWV 1008"; % opus = ""; composer = "Johann Sebastian Bach (1685-1750)"; @@ -15,7 +15,7 @@ copyright = "public domain"; dotted slurs %} -\version "1.0.0"; +\version "1.0.1"; \include "prelude-urtext.ly"; @@ -40,5 +40,6 @@ prelude_cello_staff = \type Staff < \$prelude_cello_staff \include "scs-paper.ly"; \midi{ \tempo 4 = 40; } + \header{ piece = "Pr\\'elude"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly new file mode 100644 index 0000000000..b70782a1ae --- /dev/null +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly @@ -0,0 +1,45 @@ +\header{ +filename = "prelude-viola.ly"; +title = "Solo Cello Suites"; +subtitle = "Suite II"; +% piece = "Pr\\'elude"; % duh +opus = "BWV 1008"; +% opus = ""; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "JCN"; +copyright = "public domain"; +} + +%{ + Tested Features:breaking algorithm, chords, multivoice, accents, + dotted slurs +%} + +\version "1.0.1"; + +\include "prelude-urtext.ly"; + +prelude_viola_global = \melodic{ + \time 3/4; + \key f; + \clef alto; + \skip 2.*63; + \bar "|."; +} + +prelude_viola_scripts = \melodic{ +} + +prelude_viola_staff = \type Staff < + \melodic \transpose c' \$prelude + \$prelude_viola_global + \$prelude_viola_scripts +> + +\score{ + \$prelude_viola_staff + \include "scs-paper.ly"; + \midi{ \tempo 4 = 40; } + \header{ piece = "Pr\\'elude"; } +} + diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly index 4a8002713e..32a1443ed8 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-cello.ly @@ -2,7 +2,7 @@ filename = "sarabande-cello.ly"; title = "Solo Cello Suites"; subtitle = "Suite II"; -piece = "Sarabande"; +% piece = "Sarabande"; % opus = "BWV 1008"; opus = ""; composer = "Johann Sebastian Bach (1685-1750)"; @@ -15,7 +15,7 @@ copyright = "public domain"; dotted slurs %} -\version "1.0.0"; +\version "1.0.1"; \include "sarabande-urtext.ly"; @@ -42,5 +42,6 @@ sarabande_cello_staff = \type Staff < \$sarabande_cello_staff \include "scs-paper.ly"; \midi{ \tempo 4 = 40; } + \header{ piece = "Sarabande"; } } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly new file mode 100644 index 0000000000..051611fae9 --- /dev/null +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly @@ -0,0 +1,47 @@ +\header{ +filename = "sarabande-viola.ly"; +title = "Solo Cello Suites"; +subtitle = "Suite II"; +% piece = "Sarabande"; +% opus = "BWV 1008"; +opus = ""; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "JCN"; +copyright = "public domain"; +} + +%{ + Tested Features:breaking algorithm, chords, multivoice, accents, + dotted slurs +%} + +\version "1.0.1"; + +\include "sarabande-urtext.ly"; + +sarabande_viola_global = \melodic{ + \time 3/4; + \key f; + \clef alto; + \skip 2.*12; + \bar ":|:"; + \skip 2.*16; + \bar ":|"; +} + +sarabande_viola_scripts = \melodic{ +} + +sarabande_viola_staff = \type Staff < + \melodic \transpose c' \$sarabande + \$sarabande_viola_global + \$sarabande_viola_scripts +> + +\score{ + \$sarabande_viola_staff + \include "scs-paper.ly"; + \midi{ \tempo 4 = 40; } + \header{ piece = "Sarabande"; } +} + diff --git a/mutopia/J.S.Bach/wtk1-fugue1.ly b/mutopia/J.S.Bach/wtk1-fugue1.ly index 630abd5978..3ca2d85690 100644 --- a/mutopia/J.S.Bach/wtk1-fugue1.ly +++ b/mutopia/J.S.Bach/wtk1-fugue1.ly @@ -11,7 +11,7 @@ copyright = "Public Domain"; %{ %} -\version "1.0.0"; +\version "1.0.1"; global = diff --git a/mutopia/J.S.Bach/wtk1-fugue2.ly b/mutopia/J.S.Bach/wtk1-fugue2.ly index 1cc7e167be..550835215b 100644 --- a/mutopia/J.S.Bach/wtk1-fugue2.ly +++ b/mutopia/J.S.Bach/wtk1-fugue2.ly @@ -13,13 +13,13 @@ Tested Features: stem direction, multivoice, forced accidentals. %} -\version "1.0.0"; +\version "1.0.1"; \include "nederlands.ly" % for correct parsing of note names global = \melodic { \time 4/4; - \accidentals bes es as; + \keysignature bes es as; \skip 1*31; \bar "|."; | } diff --git a/mutopia/J.S.Bach/wtk1-prelude1.ly b/mutopia/J.S.Bach/wtk1-prelude1.ly index 2cb87d2913..584dfd295b 100644 --- a/mutopia/J.S.Bach/wtk1-prelude1.ly +++ b/mutopia/J.S.Bach/wtk1-prelude1.ly @@ -8,7 +8,7 @@ enteredby = "Shay Rojansky"; copyright = "Public Domain"; } -\version "1.0.0"; +\version "1.0.1"; global = \melodic { diff --git a/mutopia/W.A.Mozart/cadenza.ly b/mutopia/W.A.Mozart/cadenza.ly index 431214056a..e45f5fd9e7 100644 --- a/mutopia/W.A.Mozart/cadenza.ly +++ b/mutopia/W.A.Mozart/cadenza.ly @@ -13,7 +13,7 @@ Tested Features: cadenza mode Ugh.. Wish we had grace notes.... It adds another dimension to this piece of music. %} -\version "1.0.0"; +\version "1.0.1"; cad = \melodic \relative c' { diff --git a/mutopia/W.A.Mozart/horn-concerto-3.ly b/mutopia/W.A.Mozart/horn-concerto-3.ly index a4a6998269..82fd269cb2 100644 --- a/mutopia/W.A.Mozart/horn-concerto-3.ly +++ b/mutopia/W.A.Mozart/horn-concerto-3.ly @@ -9,7 +9,7 @@ copyright = "public domain"; } -\version "1.0.0"; +\version "1.0.1"; allegro = \melodic diff --git a/mutopia/gallina.ly b/mutopia/gallina.ly index 5d97250b00..63f1899b81 100644 --- a/mutopia/gallina.ly +++ b/mutopia/gallina.ly @@ -45,7 +45,7 @@ Voice engraver by uncommenting the lines in the paper definition below. --MB %} -\version "1.0.0"; +\version "1.0.1"; vi1=\melodic \relative c'' { \time 4/4; diff --git a/mutopia/los-toros-oboe.ly b/mutopia/los-toros-oboe.ly index 48fed8cf12..bc9c0882f5 100644 --- a/mutopia/los-toros-oboe.ly +++ b/mutopia/los-toros-oboe.ly @@ -8,7 +8,7 @@ enteredby = "jcn"; copyright = "public domain"; latexheaders= "headers"; } -\version "1.0.0"; +\version "1.0.1"; %{ Silly latex file dropped; use ly2dvi diff --git a/mutopia/standchen-16.ly b/mutopia/standchen-16.ly index 9454dfede0..88671e093b 100644 --- a/mutopia/standchen-16.ly +++ b/mutopia/standchen-16.ly @@ -9,6 +9,6 @@ description = "A schubert song in 16 pt"; copyright = "public domain"; } -\version "1.0.0"; +\version "1.0.1"; \include "standchen.ly" diff --git a/mutopia/standchen-20.ly b/mutopia/standchen-20.ly index ea129b36c3..364b13c08a 100644 --- a/mutopia/standchen-20.ly +++ b/mutopia/standchen-20.ly @@ -9,7 +9,7 @@ copyright = "public domain"; description = "A schubert song in 20 pt"; } -\version "1.0.0"; +\version "1.0.1"; % fool make-website % \include "standchen.ly"; diff --git a/mutopia/standchen.ly b/mutopia/standchen.ly index 185e298a39..ff67a5f0d9 100644 --- a/mutopia/standchen.ly +++ b/mutopia/standchen.ly @@ -14,7 +14,7 @@ copyright = "public domain"; multiple \paper{}s in one \score %} -\version "1.0.0"; +\version "1.0.1"; $vocal_verse1 = \melodic\relative c{ % ugh: treble/bass diff --git a/po/nl.po b/po/nl.po index 85fb726c2d..d6ddac0f01 100644 --- a/po/nl.po +++ b/po/nl.po @@ -213,7 +213,7 @@ msgstr "Ineq_constrained_qp::solve (): voorwaarde zit er %f naast" #: ineq-constrained-qp.cc:222 msgid "didn't converge!" -msgstr "ik convederde niet!" +msgstr "ik convergederde niet!" #: ineq-constrained-qp.cc:224 msgid "Too much degeneracy. " diff --git a/scripts/convert-mudela.py b/scripts/convert-mudela.py index d5a78f9a0b..0ce2191032 100644 --- a/scripts/convert-mudela.py +++ b/scripts/convert-mudela.py @@ -150,6 +150,24 @@ if 1: # need new a namespace ((1,0,0), conv, '0.1.21 -> 1.0.0 ')) +if 1: # need new a namespace + def conv (lines): + newlines = [] + for x in lines: + x = regsub.gsub ('\\\\accidentals', + '\\\\keysignature',x) + x = regsub.gsub ('specialaccidentals *= *1', + 'keyoctaviation = 0',x) + x = regsub.gsub ('specialaccidentals *= *0', + 'keyoctaviation = 1',x) + newlines.append (x) + return newlines + + + conversions.append ( + ((1,0,1), conv, '\\accidentals -> \\keysignature, ' + + 'specialaccidentals -> keyoctaviation\n')) + ############################ diff --git a/stepmake/NEWS b/stepmake/NEWS index 75d1d7809f..9eaeacf1c8 100644 --- a/stepmake/NEWS +++ b/stepmake/NEWS @@ -1,3 +1,11 @@ +pl 47 + - bf: patch in website after 'make release' + - windows ln -> cp + - bf: texinfo build + +pl 46 + - bf: versioning typo: topleveL_MAJOR + - bf: reincluded optional STATE-VECTOR pl 45 - Foo_rules.make -> foo-rules.make diff --git a/stepmake/VERSION b/stepmake/VERSION index 8d0a721a4e..0aaf2231f7 100644 --- a/stepmake/VERSION +++ b/stepmake/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=StepMake MAJOR_VERSION=0 MINOR_VERSION=1 -PATCH_LEVEL=45 +PATCH_LEVEL=47 MY_PATCH_LEVEL= # use the above to send patches, always empty for released version: diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4 index 660b3aca0a..06abbe832a 100644 --- a/stepmake/aclocal.m4 +++ b/stepmake/aclocal.m4 @@ -3,9 +3,10 @@ dnl StepMake subroutines for configure.in AC_DEFUN(AC_STEPMAKE_COMPILE, [ # -O is necessary to get inlining - OPTIMIZE="-O" + OPTIMIZE="" + CXXFLAGS=${CXXFLAGS:-""} checking_b=yes - optimise_b=tja + optimise_b=no profile_b=no debug_b=yes @@ -14,7 +15,11 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ [checking_b=$enableval] ) # actually, the default is: tja='-O' to get inlining... - # off='' + # off='' --jcn + + #actually, that sucks. + # tja looks like a typo. Default is optimisation off. --hwn + AC_ARG_ENABLE(optimise, [ enable-optimise use maximal speed optimisations. Default: off], [optimise_b=$enableval]) @@ -45,8 +50,7 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ fi if test "$optimise_b" = yes; then - DEFINES="$DEFINES -finline-functions" - OPTIMIZE="-O2" + OPTIMIZE="-O2 -finline-functions" fi if test "$optimise_b" = no; then @@ -55,11 +59,11 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ if test $profile_b = yes; then EXTRA_LIBES="-pg" - DEFINES="$DEFINES -pg" + OPTIMIZE="$OPTIMIZE -pg" fi if test $debug_b = yes; then - DEFINES="$DEFINES -g" + OPTIMIZE="$OPTIMIZE -g" fi # however, C++ support in mingw32 v 0.1.4 is still flaky @@ -88,7 +92,8 @@ AC_DEFUN(AC_STEPMAKE_CXX, [ AC_CHECK_HEADER(FlexLexer.h, true, AC_STEPMAKE_WARN(can"\'"t find flex header. Please install Flex headers correctly)) - CXXFLAGS="$DEFINES $OPTIMIZE" + CPPFLAGS="$CPPFLAGS $DEFINES" + CXXFLAGS="$CXXFLAGS $OPTIMIZE" LDFLAGS=$EXTRA_LIBES AC_SUBST(CXXFLAGS) @@ -129,9 +134,9 @@ AC_DEFUN(AC_STEPMAKE_DATADIR, [ AC_DEFUN(AC_STEPMAKE_END, [ AC_OUTPUT($CONFIGFILE.make:config.make.in) - rm -f Makefile - cp make/toplevel.make.in ./Makefile - chmod 444 Makefile + rm -f GNUmakefile + cp make/toplevel.make.in ./GNUmakefile + chmod 444 GNUmakefile ]) AC_DEFUN(AC_STEPMAKE_GXX, [ @@ -189,6 +194,12 @@ AC_DEFUN(AC_STEPMAKE_INIT, [ stepmake=stepmake AC_SUBST(stepmake) + STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null` + if test "x$STATE_VECTOR" != "x"; then + STATE_VECTOR="\$(depth)/$STATE_VECTOR" + fi + AC_SUBST(STATE_VECTOR) + CONFIGSUFFIX= AC_ARG_ENABLE(config, [ enable-config=FILE put configure settings in config-FILE.make], @@ -231,20 +242,30 @@ dnl fi AC_CHECK_SEARCH_RESULT($PYTHON, python, You should install Python) if test "x$OSTYPE" = "xcygwin32" || test "x$OSTYPE" = "xWindows_NT"; then - LN=cp # hard link does not work under cygnus-nt (yet?) + LN=cp # hard link does not work under cygnus-nt + LN_S=cp # symbolic link does not work for native nt ZIP="zip -r -9" # DOTEXE=.exe - INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c" + DIRSEP='\\' + PATHSEP=';' + INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c" else + DIRSEP='/' + PATHSEP=':' LN=ln + LN_S='ln -s' ZIP="zip -r -9" INSTALL="\$(stepdir)/../bin/install-sh -c" fi AC_SUBST(DOTEXE) AC_SUBST(ZIP) AC_SUBST(LN) + AC_SUBST(LN_S) AC_SUBST(INSTALL) - + AC_DEFINE_UNQUOTED(DIRSEP, '${DIRSEP}') + AC_DEFINE_UNQUOTED(PATHSEP, '${PATHSEP}') + + AC_STEPMAKE_DATADIR ]) diff --git a/stepmake/bin/package-zip32.sh b/stepmake/bin/package-zip32.sh new file mode 100644 index 0000000000..401749e575 --- /dev/null +++ b/stepmake/bin/package-zip32.sh @@ -0,0 +1,75 @@ +#!/bin/sh +# package-zip32.sh --- make a windoze formated distribution + +set -x + +if [ $# -lt 1 ]; then + echo "Usage: $0 PACKAGE_SOURCEDIR" + exit 2 +fi + +srcdir=$1 +shift + +. $srcdir/VERSION + +VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PATCH_LEVEL +if [ "x$MY_PATCH_LEVEL" != "x" ]; then + VERSION=$VERSION.$MY_PATCH_LEVEL +fi + +package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'` +name=$package-$VERSION +ZIP_CMD="zip -r -9" + +here=`pwd` +cd $srcdir/.. +PACKAGE_ROOTDIR=`pwd` +export PACKAGE_ROOTDIR +cd $here + +RELEASE_DIR="$PACKAGE_ROOTDIR/bin.releases/winnt" +ZIP_FILE="$RELEASE_DIR/$name.bin.zip" + + +if [ ! -e $RELEASE_DIR ]; then + mkdir -p $RELEASE_DIR +fi + +distdir=/tmp/${name} + +rm -f ${srcdir}/config.cache +${srcdir}/configure --prefix=${distdir} \ + --srcdir=${srcdir} \ + --enable-tex-prefix=${distdir}/texmf \ + --enable-tex-dir=${distdir}/texmf/tex \ + --enable-mf-dir=${distdir}/texmf/mf + +if ! make ; then + echo "make failed" + exit 1 +fi + +if ! make install ; then + echo "make install failed" + exit 1 +fi + +# +# Post install clean up +# +CYGWIN_LIB=$PACKAGE_ROOTDIR/distfiles/winnt/cygwinb19.dll +if [ ! -e $CYGWIN_LIB ]; then + echo "Unable to locate $CYGWIN_LIB" + exit 1 +fi + +cd $distdir/bin +cp $CYGWIN_LIB . +mv ly2dvi32 ly2dvi.py +cd $distdir/.. +$ZIP_CMD $ZIP_FILE $name +echo "Wrote $ZIP_FILE" +exit 0 + + diff --git a/stepmake/config.make.in b/stepmake/config.make.in index 25bfe5945a..e15719086f 100644 --- a/stepmake/config.make.in +++ b/stepmake/config.make.in @@ -15,6 +15,7 @@ PACKAGE = @PACKAGE@ package = @package@ PACKAGE_NAME = @PACKAGE_NAME@ stepmake = @stepmake@ +state-vector = @STATE_VECTOR@ CONFIGSUFFIX = @CONFIGSUFFIX@ MAKEINFO = @MAKEINFO@ ICFLAGS = @ICFLAGS@ @@ -44,6 +45,7 @@ BISON = @BISON@ FIND = @FIND@ FLEX = @FLEX@ LN = @LN@ +LN_S = @LN_S@ MSGFMT = @MSGFMT@ PERL = @PERL@ PYTHON = @PYTHON@ diff --git a/stepmake/stepmake/automatically-configured.sub.make b/stepmake/stepmake/automatically-configured.sub.make new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/stepmake/stepmake/automatically-configured.sub.make @@ -0,0 +1 @@ + diff --git a/stepmake/stepmake/automatically-generated.sub.make b/stepmake/stepmake/automatically-generated.sub.make new file mode 100644 index 0000000000..5697a8c765 --- /dev/null +++ b/stepmake/stepmake/automatically-generated.sub.make @@ -0,0 +1,9 @@ + +LINECOMMENT=\# + +default: + chmod +w $(OUTFILE) + echo "$(LINECOMMENT) WARNING WARNING WARNING WARNING" > $(OUTFILE) + echo "$(LINECOMMENT) do not edit! this is $(OUTFILE), generated from $(INFILE)" >> $(OUTFILE) + cat $(INFILE) >> $(OUTFILE) + chmod -w $(OUTFILE) diff --git a/stepmake/stepmake/documentation-targets.make b/stepmake/stepmake/documentation-targets.make index 58c668d95f..60516476a2 100644 --- a/stepmake/stepmake/documentation-targets.make +++ b/stepmake/stepmake/documentation-targets.make @@ -24,14 +24,14 @@ local-WWW: readme-top_FILES-txt readme-top_FILES-html $(OUTHTML_FILES) $(OUTREAD doc: do-doc +$(outdir)/$(package).info: $(outdir)/topinfo.texinfo $(OUTTEXINFO_FILES) + $(MAKEINFO) -o $@ $(outdir)/topinfo.texinfo + # what to do here? ifneq ($(strip $(INFO_FILES)),) INFOINSTALL=$(MAKE) INSTALLATION_OUT_DIR=$(infodir) depth=$(depth) INSTALLATION_OUT_FILES="$(INFO_FILES)" -f $(stepdir)/install-outfiles.sub.make $@ -$(outdir)/$(package).info: check-texinfo-deps $(OUTTEXINFO_FILES) - $(MAKEINFO) -o $@ $(outdir)/topinfo.texinfo - localinstall: # $(INFO_FILES) -$(INSTALL) -d $(infodir) $(INFOINSTALL) diff --git a/stepmake/stepmake/generic-targets.make b/stepmake/stepmake/generic-targets.make index 413d1b3b10..68c065b9fc 100644 --- a/stepmake/stepmake/generic-targets.make +++ b/stepmake/stepmake/generic-targets.make @@ -84,8 +84,12 @@ doc++: (cd $(outdir); sh ../$(step-bindir)/tar-docxx.sh $(package)-$(TOPLEVEL_VERSION).tar.gz) - - +update-state-vector: +ifneq ($(strip $(state-vector)),) + if [ "`tail -1 $(state-vector)`" != "$(TOPLEVEL_VERSION)" ]; then\ + echo $(TOPLEVEL_VERSION) >> $(state-vector); \ + fi +endif local-dist: $(DIST_FILES) $(OUT_DIST_FILES) $(NON_ESSENTIAL_DIST_FILES) mkdir -p $(distdir)/$(localdir) @@ -171,3 +175,4 @@ $(depth)/$(configuration).make: $(depth)/configure @echo "configure changed! You should probably reconfigure manually." @echo "**************************************" (cd $(depth); ./config.status) + touch $@ # do something for multiple simultaneous configs. diff --git a/stepmake/stepmake/metafont-rules.make b/stepmake/stepmake/metafont-rules.make index 304512da5e..3d6eb28e73 100644 --- a/stepmake/stepmake/metafont-rules.make +++ b/stepmake/stepmake/metafont-rules.make @@ -10,3 +10,8 @@ $(outdir)/%.log: %.mf mv $(@F) $@ rm $(basename $< ).*gf + +$(outdir)/%.tfm: %.mf + mf '\mode:=ljfour; input $<;' + mv $(@F) $(outdir) + rm $(basename $<).*{gf,log} diff --git a/stepmake/stepmake/metafont-targets.make b/stepmake/stepmake/metafont-targets.make index ea30561d83..4a4d3017e2 100644 --- a/stepmake/stepmake/metafont-targets.make +++ b/stepmake/stepmake/metafont-targets.make @@ -1 +1,6 @@ -#empty + + +tfm: $(TFM_FILES) + +dvi: $(DVI_FILES) + diff --git a/stepmake/stepmake/metafont-vars.make b/stepmake/stepmake/metafont-vars.make index 67600b84bf..95d2563275 100644 --- a/stepmake/stepmake/metafont-vars.make +++ b/stepmake/stepmake/metafont-vars.make @@ -1,5 +1,12 @@ -MF_FILES = $(wildcard *.mf) +MF_FILES := $(wildcard *.mf) FONT_FILES = $(wildcard *[0-9].mf) EXTRA_DIST_FILES += $(MF_FILES) +MF_TFM_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.tfm)) +MF_DVI_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.dvi)) +MF_LOG_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.log)) +DVI_FILES += $(MF_DVI_FILES) +TFM_FILES += $(MF_TFM_FILES) + + diff --git a/stepmake/stepmake/package.make b/stepmake/stepmake/package.make index d0d29f11e1..303bc8f0df 100644 --- a/stepmake/stepmake/package.make +++ b/stepmake/stepmake/package.make @@ -31,6 +31,9 @@ rpm: $(depth)/$(package-icon) dist update: $(PYTHON) $(step-bindir)/update.py --package=$(topdir) $(makeflags) -zip: +xzip: $(SHELL) $(step-bindir)/package-zip.sh $(topdir) $(prefix:/%=%) +zip: + $(SHELL) $(step-bindir)/package-zip32.sh $(topdir) + diff --git a/stepmake/stepmake/toplevel-targets.make b/stepmake/stepmake/toplevel-targets.make index cf5b0a77bf..374f10ef2b 100644 --- a/stepmake/stepmake/toplevel-targets.make +++ b/stepmake/stepmake/toplevel-targets.make @@ -11,14 +11,11 @@ local-maintainerclean: rm -f configure GNUmakefile: make/toplevel.make.in - chmod +w $@ - echo "# WARNING WARNING WARNING WARNING" > $@ - echo "# do not edit! this is generated from make/Toplevel.make.in" >> $@ - cat $< >> $@ - chmod -w $@ + $(MAKE) INFILE=$< OUTFILE=$@ -f $(stepdir)/automatically-generated.sub.make aclocal.m4: $(stepdir)/../aclocal.m4 - cp $< $@ + $(MAKE) INFILE=$< OUTFILE=$@ LINECOMMENT=dnl -f $(stepdir)/automatically-generated.sub.make + local-WWW: #index.html @@ -29,7 +26,8 @@ index.html: check-top-web NEWS WWW-clean: $(MAKE) CONFIGSUFFIX='www' clean -dist: +dist: + $(MAKE) update-state-vector rm -rf $(distdir) $(MAKE) local-dist $(distdir) chmod -R a+r $(distdir) diff --git a/stepmake/stepmake/yolily-toplevel-targets.make b/stepmake/stepmake/yolily-toplevel-targets.make index b451793c52..c41b64867c 100644 --- a/stepmake/stepmake/yolily-toplevel-targets.make +++ b/stepmake/stepmake/yolily-toplevel-targets.make @@ -17,6 +17,7 @@ htmldoc: $(MAKE) CONFIGSUFFIX='www' -C Documentation WWW rm -f `find . -name \*.html~ -print` find `find Documentation -type d -name 'out-www'` -not -name '*dvi' -not -name '*ly' -not -name '*tex' -not -name '*.ps' -not -name 'out-www' > wwwlist + -ln -f $(patch-dir)/$(distname).diff.gz out-www -ln -f $(depth)/$(distname).diff.gz out-www tar cfz $(outdir)/htmldoc.tar.gz `cat wwwlist` `ls *.gif out-www/$(distname).diff.gz $(ERRORLOG)` index.html