From a080c59247c0a7584cf2926895e208da8da9b15e Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 24 Mar 2002 20:13:12 +0000 Subject: [PATCH] lilypond-1.0.1 --- ANNOUNCE-0.1 | 2 +- Documentation/man/convert-mudela.yo | 67 ++ Documentation/man/mi2mu.yo | 90 ++ Documentation/man/mudela-book.yo | 75 ++ Documentation/tex/computer-forms.el | 21 + Documentation/topdocs/INSTALL.yo | 298 ++++++ buildscripts/html-accents.py | 115 +++ debian/changelog | 48 + debian/control.foka | 30 + debian/control.in | 16 + debian/copyright | 20 +- flower/README | 4 +- flower/include/international.hh | 19 +- flower/include/list.icc | 4 +- flower/international.cc | 46 + flower/libc-extension.cc | 23 +- lib/duration-convert.cc | 17 +- lib/duration-iter.cc | 4 +- lib/duration.cc | 5 +- lib/include/binary-source-file.hh | 2 +- lib/include/duration.hh | 8 +- lib/include/source-file.hh | 3 +- lib/include/source.hh | 4 +- lib/include/string-storage.hh | 30 + lib/mapped-file-storage.cc | 9 +- lib/source-file.cc | 28 +- lily/abbreviation-beam-engraver.cc | 16 +- lily/abbreviation-beam.cc | 8 +- lily/audio-column.cc | 4 +- lily/audio-item.cc | 13 +- lily/audio-staff.cc | 4 +- lily/beam.cc | 81 +- lily/bezier.cc | 10 +- lily/bow.cc | 30 +- lily/encompass-info.cc | 2 +- lily/hara-kiri-line-group-engraver.cc | 17 +- lily/hara-kiri-vertical-group-spanner.cc | 50 +- lily/include/abbreviation-beam-engraver.hh | 6 +- lily/include/abbreviation-beam.hh | 6 +- lily/include/audio-column.hh | 4 +- lily/include/audio-item.hh | 9 +- lily/include/audio-staff.hh | 4 +- lily/include/bezier.hh | 4 +- lily/include/curve.hh | 4 +- lily/include/encompass-info.hh | 2 +- lily/include/hara-kiri-line-group-engraver.hh | 9 +- .../hara-kiri-vertical-group-spanner.hh | 13 +- lily/include/key-performer.hh | 2 +- lily/include/lyric-performer.hh | 4 +- lily/include/mark-engraver.hh | 35 + lily/include/midi-def.hh | 2 +- lily/include/midi-item.hh | 6 +- lily/include/midi-stream.hh | 2 +- lily/include/midi-walker.hh | 4 +- lily/include/mudela-version.hh | 2 +- lily/include/multi-measure-rest-engraver.hh | 2 +- lily/include/multi-measure-rest.hh | 2 +- lily/include/note-performer.hh | 4 +- lily/include/performance.hh | 6 +- lily/include/performer-group-performer.hh | 4 +- lily/include/performer.hh | 8 +- lily/include/plet-engraver.hh | 4 +- lily/include/plet-spanner.hh | 6 +- lily/include/score-performer.hh | 4 +- lily/include/staff-margin-engraver.hh | 34 + lily/include/staff-performer.hh | 4 +- lily/include/stem-info.hh | 2 +- lily/include/time-signature-performer.hh | 31 + lily/key-performer.cc | 6 +- lily/lyric-performer.cc | 16 +- lily/main.cc | 209 +++- lily/mark-engraver.cc | 83 ++ lily/midi-def.cc | 2 +- lily/midi-item.cc | 66 +- lily/midi-stream.cc | 6 +- lily/midi-walker.cc | 42 +- lily/misc.cc | 5 +- lily/mudela-version.cc | 6 +- lily/multi-measure-rest-engraver.cc | 10 +- lily/multi-measure-rest.cc | 10 +- lily/note-performer.cc | 33 +- lily/performance.cc | 15 +- lily/performer-group-performer.cc | 4 +- lily/performer.cc | 4 +- lily/plet-engraver.cc | 27 +- lily/plet-spanner.cc | 22 +- lily/ps-plet.cc | 4 +- lily/score-performer.cc | 8 +- lily/slur.cc | 18 +- lily/staff-margin-engraver.cc | 91 ++ lily/stem-info.cc | 9 +- lily/time-signature-performer.cc | 56 ++ make/lelievijver.lsm.in | 20 +- make/lilypond.lsm.in | 15 +- mf/feta-autometric.mf | 2 +- mf/feta-beum.mf | 2 +- mf/feta-bolletjes.mf | 2 +- mf/feta-brackets16.mf | 2 +- mf/feta-brackets20.mf | 2 +- mf/feta-klef.mf | 2 +- mf/feta-schrift.mf | 6 +- mf/feta-slag.mf | 2 +- mf/feta-sleur.mf | 2 +- mi2mu/include/mi2mu-global.hh | 2 +- mi2mu/include/midi-parser.hh | 2 +- mi2mu/include/midi-score-parser.hh | 2 +- mi2mu/include/midi-track-parser.hh | 2 +- mi2mu/include/mudela-column.hh | 2 +- mi2mu/include/mudela-item.hh | 8 +- mi2mu/include/mudela-score.hh | 4 +- mi2mu/include/mudela-staff.hh | 4 +- mi2mu/include/mudela-stream.hh | 5 +- mi2mu/include/mudela-voice.hh | 2 +- mi2mu/main.cc | 116 ++- mi2mu/mi2mu-version.cc | 12 +- mi2mu/midi-parser.cc | 6 +- mi2mu/midi-score-parser.cc | 14 +- mi2mu/midi-track-parser.cc | 41 +- mi2mu/mudela-column.cc | 2 +- mi2mu/mudela-score.cc | 63 +- mi2mu/mudela-staff.cc | 26 +- mi2mu/mudela-voice.cc | 46 +- mi2mu/template9.cc | 2 +- po/TODO | 63 ++ po/it.po | 891 +++++++++++++++++ po/lilypond.po | 884 +++++++++++++++++ po/nl.po | 905 ++++++++++++++++++ stepmake/Documentation/topdocs/AUTHORS.yo | 27 + stepmake/README | 18 + stepmake/bin/packagepython.py | 173 ++++ stepmake/bin/table-to-html.py | 137 +++ stepmake/bin/update.py | 173 ++++ stepmake/make/stepmake.lsm.in | 15 + stepmake/make/stepmake.spec.in | 26 + 134 files changed, 5355 insertions(+), 579 deletions(-) create mode 100644 Documentation/man/convert-mudela.yo create mode 100644 Documentation/man/mi2mu.yo create mode 100644 Documentation/man/mudela-book.yo create mode 100644 Documentation/tex/computer-forms.el create mode 100644 Documentation/topdocs/INSTALL.yo create mode 100644 buildscripts/html-accents.py create mode 100644 debian/control.foka create mode 100644 debian/control.in create mode 100644 flower/international.cc create mode 100644 lib/include/string-storage.hh create mode 100644 lily/include/mark-engraver.hh create mode 100644 lily/include/staff-margin-engraver.hh create mode 100644 lily/include/time-signature-performer.hh create mode 100644 lily/mark-engraver.cc create mode 100644 lily/staff-margin-engraver.cc create mode 100644 lily/time-signature-performer.cc create mode 100644 po/TODO create mode 100644 po/it.po create mode 100644 po/lilypond.po create mode 100644 po/nl.po create mode 100644 stepmake/Documentation/topdocs/AUTHORS.yo create mode 100644 stepmake/README create mode 100755 stepmake/bin/packagepython.py create mode 100644 stepmake/bin/table-to-html.py create mode 100644 stepmake/bin/update.py create mode 100644 stepmake/make/stepmake.lsm.in create mode 100644 stepmake/make/stepmake.spec.in diff --git a/ANNOUNCE-0.1 b/ANNOUNCE-0.1 index 9f7d6e2e37..8ed22c92be 100644 --- a/ANNOUNCE-0.1 +++ b/ANNOUNCE-0.1 @@ -22,7 +22,7 @@ You can see some babyfood, diapers and pictures at http://www.stack.nl/~hanwen/lilypond/index.html -You can send your congratulations to Janneke (jan@digicash.com) and +You can send your congratulations to Janneke (janneke@gnu.org) and Wendy (hanwen@stack.nl) diff --git a/Documentation/man/convert-mudela.yo b/Documentation/man/convert-mudela.yo new file mode 100644 index 0000000000..a9640b80f6 --- /dev/null +++ b/Documentation/man/convert-mudela.yo @@ -0,0 +1,67 @@ + +mailto(janneke@gnu.org) +COMMENT(ugh, should be automated) +COMMENT(urg + (PIPETHROUGH(echo -n `date '+%d/%b/%y'|tr '[a-z]' '[A-Z]'`)()) +) +manpage(convert-mudela) + (1) + (1998) + (The LilyPond package) + (convert-mudela) + +metalC(Automatically generated by yodl(1) from convert-mudela.yo.) + +node(Programs)(convert-mudela)(Invoking convert-mudela)(Programs) +manpagename(convert-mudela)(convert-mudela to newer versions) + +convert-mudela sequentially applies different mudela-conversions to +upgrade a Mudela input file. + +menu( +mit(Invoking convert-mudela)( Command options supported by file(convert-mudela)) +mit(Bugs convert-mudela)( Bugs) +mit(Author convert-mudela)( Author) +) + +manpagedescription() + +Upgrade a Mudela input file from FROM_PATCHLEVEL to TO_PATCHLEVEL. +If no files are given, the standard input and output are used. + +node(convert-mudela)(Invoking convert-mudela)(Bugs convert-mudela)(convert-mudela) +manpagesynopsis() + + convert-mudela [options] [files] + +manpageoptions() +description( +dit(--output) + The output file to write +dit(--edit) + Do an inline edit of the input file. override @samp{--output} +dit(--show-rules) + shows all known conversions, and exit +dit(--from=FROM_PATCHLEVEL) + Set the level to convert from. If this is not set, convert-mudela will + guess this, on the basis of code(\version) strings in the file +dit(--to=TO_PATCHLEVEL) + Set the goal version of the conversion. It defaults to the latest + available version. +) + +node(Invoking convert-mudela)(Bugs convert-mudela)(Author convert-mudela)(convert-mudela) +manpagesection(BUGS) + +Not all language changes are handled. Multiple output options won't +work. + +convert-mudela is written in python, so you have install +url(python)(http://www.python.org). + + +node(Bugs convert-mudela)(Author convert-mudela)(LilyPond)(convert-mudela) +manpageauthor() + +nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl), lurl(http://www.cs.uu.nl/people/hanwen) + diff --git a/Documentation/man/mi2mu.yo b/Documentation/man/mi2mu.yo new file mode 100644 index 0000000000..85decf245a --- /dev/null +++ b/Documentation/man/mi2mu.yo @@ -0,0 +1,90 @@ + +mailto(janneke@gnu.org) +COMMENT( + (PIPETHROUGH(echo -n `date '+%d/%b/%y'|tr '[a-z]' '[A-Z]'`)()) +) +manpage(LilyPond) + (1) + (1998) + (Mi2mu) + (The LilyPond package) + +metalC(Automatically generated by yodl(1) from mi2mu.yo.) + +node(Author Ly2dvi)(Mi2mu)(Invoking Mi2mu)(Programs) + +manpagename(Mi2mu)(convert MIDI to bf(mudela)(5)) + +menu( +mit(Invoking Mi2mu)( Command options supported by file(Mi2mu)) +mit(Disclaimer Mi2mu)( Disclaimer) +mit(Author Mi2mu)( Author) +) + +manpagedescription() +Mi2mu translates a MIDI input file to Mudela (GNU LilyPond source +format). Mi2mu is part of the GNU LilyPond music typesetting package. + +node(Mi2mu)(Invoking Mi2mu)(Disclaimer Mi2mu)(Mi2mu) +manpagessynopsis() + + mi2mu [options] midi-file + +manpageoptions() + +description( +dit(-b, --no-quantify,) + Write exact durations, e.g.: `a4*385/384'. +dit(-D, --debug,) + Print lots of debugging stuff. +dit(-h, --help,) + Show a summary of usage. +dit(-I, --include=file(DIR),) + Add DIR to search path. +dit(-k, --key=ACC[:MINOR],) + Set default key. ACC > 0 sets number of sharps; ACC < 0 sets number + of flats. A minor key is indicated by ":1". +dit(-n, --no-silly,) + Assume no plets or double dots, assume smallest (reciprocal) duration 16. +dit(-o, --output=file(FILE),) + Set file(FILE) as default output. +dit(-p, --no-plets,) + Assume no plets. +dit(-q, --quiet,) + Be quiet. +dit(-s, --smallest=N,) + Assume no shorter (reciprocal) durations than N. +dit(-v, --verbose,) + Be verbose. +dit(-w, --warranty,) + Show the warranty with which mi2mu comes. (It comes with bf(NO WARRANTY)!) +dit(-x, --no-double-dots,) + Assume no double dotted notes. +) + +node(Invoking Mi2mu)(Disclaimer Mi2mu)(Author Mi2mu)(Mi2mu) +manpagesection(DISCLAIMER) + +Mi2mu is copyright 1996, 1997 by its authors. Mi2mu is distributed +as part of GNU LilyPond, under the terms of the GNU General Public +License. Mi2mu is provided without any warranty what so ever. +Mi2mu may be freely distributed. For further information consult +the GNU General Public License, from the file file(COPYING). + +manpageseealso() + +description( +dit(bf(lilypond)(1)) + The GNU LilyPond music typesetter. +dit(mudela-man) + On the input format. This is a LilyPond-enhanced LaTeX document. +) + +node(Disclaimer Mi2mu)(Author Mi2mu)(mudela-book)(Mi2mu) +manpageauthor() + +Please consult the documentation file file(AUTHORS) for more detailed +information, and small contributions. + +nemail(Jan Nieuwenhuizen)(janneke@gnu.org), lurl(http://www.digicash.com/~jan) + diff --git a/Documentation/man/mudela-book.yo b/Documentation/man/mudela-book.yo new file mode 100644 index 0000000000..4f1907558d --- /dev/null +++ b/Documentation/man/mudela-book.yo @@ -0,0 +1,75 @@ + +mailto(janneke@gnu.org) +COMMENT( + (PIPETHROUGH(echo -n `date '+%d/%b/%y'|tr '[a-z]' '[A-Z]'`)()) +) +manpage(LilyPond) + (1) + (1998) + (The LilyPond package) + (mudela-book) + +metalC(Automatically generated by yodl(1) from mudela-book.yo.) + +node(Author Mi2mu)(mudela-book)(Invoking mudela-book)(Programs) + +manpagename(mudela-book)(integrate LaTeX and mudela) + +menu( +mit(Invoking mudela-book)(Command options supported by file(mudela-book)) +mit(Bugs mudela-book)(Bugs) +mit(Author mudela-book)(Author) +) + +manpagedescription() file(mudela-book) is a script that helps +integrating mudela and LaTeX(). mudela-book runs LilyPond on +fragments of mudela in your source file, and includes the results into +document that can be processed with LaTeX(). The result is a text +document with formatted music integrated. + + +If the file contains the ``block'' + +verb( + \begin{mudela} + CONTENTS + \end{mudela} +) + +then LilyPond is run on CONTENTS. mudela-book puts the result back, +surrounded by code(\preMudelaExample) and code(\postMudelaExample) +commands. The code(\begin) takes the following options: + +description( +dit(fragment) + mudela-book adds some redtape. You + can substitute voice-contents for CONTENTS in this case. +dit(verbatim) + CONTENTS is copied into the TeX source enclosed in a verbatim block. +) + +node(mudela-book)(Invoking mudela-book)(Bugs mudela-book)(mudela-book) +manpagesection(Synopsis) + +description( +dit(--outname) + The name of LaTeX() file to output. If this option is not given, +the output name derived from the input name. The extension file(.doc) +is stripped, and code(.mudtex) appended. +dit(--outdir) + The directory to output lilypond output and input to. +dit(--help) + print a short help message +) + +node(Invoking mudela-book)(Bugs mudela-book)(Author mudela-book)(mudela-book) +manpagebugs() + +Doesn't handle incorrect input sanely. mudela-book is written in +python, so you have install url(python)(http://www.python.org). + +node(Bugs mudela-book)(Author mudela-book)(Mutopia)(mudela-book) +manpageauthor() + +nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl), lurl(http://www.cs.uu.nl/people/hanwen) + diff --git a/Documentation/tex/computer-forms.el b/Documentation/tex/computer-forms.el new file mode 100644 index 0000000000..bc750e94cb --- /dev/null +++ b/Documentation/tex/computer-forms.el @@ -0,0 +1,21 @@ +; Computer vocabularies are Copyright (C) 1998 +; Jan Nieuwenhuizen +; Han-Wen Nienhuys + +(setq forms-file "computer.data") +(setq forms-number-of-fields 7) +(setq forms-read-only nil) ; to make sure +(setq forms-field-sep ":") +(setq forms-multi-line nil) + +(setq forms-format-list + (list + "*** Musical vocabulary ***\n" + "\nUS English: " 1 + "\nFrancais: " 2 + "\nDeutsch: " 3 + "\nBritish English: " 4 + "\nNederlands: " 5 + "\nItaliano: " 6 + "\n\nExplanation\n\n" 7 + )) diff --git a/Documentation/topdocs/INSTALL.yo b/Documentation/topdocs/INSTALL.yo new file mode 100644 index 0000000000..19716b51d6 --- /dev/null +++ b/Documentation/topdocs/INSTALL.yo @@ -0,0 +1,298 @@ +article(INSTALL - compiling and installing GNU LilyPond)(HWN & JCN)() + +sect(ABSTRACT) + +You do something which looks remotely like +verb( + configure # Check out the buildscripts/set-lily.sh script + make + make install +) + +The detailed instructions follow here. The +file(buildscripts/set-lily.sh) script sets some environment variables +and symlinks, which comes in handly when you have to compile LilyPond +very often. It is aimed at people who run (or debug) LilyPond without +installing. + +sect(PREREQUISITES) + +For compilation you need: + +itemize( +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. + +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 +) + +sect(RUNNING) + +GNU LilyPond does use a lot of resources. For operation you need the following: + +itemize( +it()TeX +it()A PostScript printer and/or viewer (such as Ghostscript) is strongly + recommended. Xdvi will show all embedded PostScript too if you have + Ghostscript installed. +) + +sect(RECOMMENDED) + +Although not strictly necessary, these are recommended to have. + +itemize( +it()GNU make. +it()Flex (version 2.5.4 or newer). +it()Bison (version 1.25 or newer). +it()Python (version 1.5 or newer). +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 +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) +) + +sect(WEBSITE) + +If you want to auto-generate Lily's website, you'll need some additional +conversion tools. + +itemize( +it()xpmtoppm (from the Portable Bitmap Utilities) (For RedHat Linux + users: it is included within the package libgr-progs). +it()Bib2html lurl(http://pertsserver.cs.uiuc.edu/~hull/bib2html.) + Which, in turn depends on man2html for proper installation. +man2html can be had from lurl(http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05). + + TeTeX users should not forget to rerun texhash. +) + +sect(CONFIGURING and COMPILING) + +to install GNU LilyPond, simply type: +verb( + configure --enable-tex-dir=XXXX --enable-mf-dir=YYYY + make + make install +) + +This will install a number of files, something close to: +verb( + /usr/local/man/man1/mi2mu.1 + /usr/local/man/man1/convert-mudela.1 + /usr/local/man/man1/mudela-book.1 + /usr/local/man/man1/lilypond.1 + /usr/local/bin/lilypond + /usr/local/bin/mi2mu + /usr/local/share/lilypond/* + /usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo + /usr/lib/texmf/texmf/tex/lilypond/* +) + + +You should specify directories that are in TeX()'s and MetaFont's +include path with the options (--enable-tex-dir) and +bf(--enable-mf-dir). If you don't specify any directories, the TeX() +include directory is detected dynamically, which is unreliable. The +above assumes that you are root and have the GNU development tools, +and your make is GNU make. If this is not the case, you can adjust +your environment variables to your taste: + +verb( + export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" + configure +) + +code(CPPFLAGS) are the preprocessor flags. + +The configure script is Cygnus configure, and it will accept +bf(--help). If you are not root, you will probably have to make it +with a different bf(--prefix) option. Our favourite location is + +verb( + configure --prefix=$HOME/usr +) + +In this case, you will have to set up MFINPUTS, and TEXINPUTS accordingly. + +If you want to install GNU LilyPond in file(/usr/local), and your TeX has +no default hooks for local stuff, you can do: + +verb( + configure --prefix=/usr/local --enable-tex-prefix=/usr/lib/texmf +) + +Since GNU LilyPond currently is beta, you are advised to also use + +verb( + --enable-debugging + --enable-checking +) + +Other options include: + +description( +dit(bf(--enable-shared)) + Make a shared library (gnu/linux, solaris (?) only ) (TEMPORARILY +OUT OF ORDER) + +dit(bf(--enable-printing)) + Enable debugging print routines (lilypond bf(-D) option) +dit(bf(--enable-optimise)) + Set maximum optimisation: compile with bf(-O2) +dit(bf(--enable-profiling)) + Compile with support for profiling. +dit(bf(--enable-tex-prefix)) + Set the directory where TeX and Metafont live. +dit(bf(--enable-tex-dir)) + Set then directory TeX input is in (detected as a subdir of + tex-prefix). This should be a directory that is reachable both for + tex and latex. On my system the best choice would be + file(/usr/lib/texmf/texmf/tex/generic//). +dit(bf(--enable-mf-dir)) + Set the directory metafont input is in (idem). On my system the best + choice would be file(/usr/lib/texmf/texmf/fonts/source/public/). +dit(bf(--enable-config)) + Output to a different configuration file. Needed for multi-platform + builds +) + +All options are documented in the file(configure) help +The option bf(--enable-optimise) is recommended for Real Life usage. + +If you do + +verb( + make all +) + +everything will be compiled, but nothing will be installed. The +resulting binaries can be found in the subdirectories file(out/) (which +contain all files generated during compilation). + +sect(CONFIGURING FOR MULTIPLE PLATFORMS) + +If you want to compile LilyPond with different configuration settings, +then, you can use the bf(--enable-config) option. Example: suppose I +want to build with and without profiling. Then I'd use the +following for the normal build, + +verb( + configure --prefix=~ --disable-optimise --enable-checking + make + make install + ) + +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 +) + + +sect(INSTALLING) + +If you have done a successful code(make), then a simple + +verb( + make install +) + +should do the trick. + +If you are doing an upgrade, please remember to remove obsolete +file(.pk) and file(.tfm) files of the fonts. A script has been +provided to do the work for you, see file(bin/clean-fonts.sh). + +nsect(CAVEATS) + +itemize( +it()The -O2 option to gcc triggers a gcc bug on DEC Alpha in dstream.cc. You + should turn off this flag for this file. +) + +nsect(EXAMPLE) + +This is what I type in my xterm: + +verb( + lilypond someinput.ly + tex someinput.tex + xdvi someinput& +) + +This is what the output looks like over here: + +verb( + GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0 + Parsing ... [/home/hw/share/lilypond/init// + <..etc..> + init//performer.ly]]][input/kortjakje.ly] + Creating elements ...[8][16][24][25] + Preprocessing elements... + Calculating column positions ... [14][25] + Postprocessing elements... + TeX output to someinput.tex ... + Creating MIDI elements ...MIDI output to someinput.midi ... + + + hw:~/musix/spacer$ xdvi someinput& + [1] 855 +) + +Check out the input files, some of them have comments +Please refer to the man page for more information. + +sect(REDHAT LINUX) + +RedHat Linux users can compile an RPM. A spec file is in +file(make/out/lilypond.spec). You should install a gif file called +file(lelie_icon.gif) along with the sources. You can generate this +gif file by typing + +verb( + make gifs +) + +in the directory file(Documentation). + +You can make the rpm by issuing + +verb( + make rpm +) + + +sect(DEBIAN GNU/LINUX) + +A Debian package is also available; contact Anthony Fok +email(foka@debian.org). The build scripts are in the subdirectory file(debian/) + + +sect(WINDOWS NT/95) +label(w32) + + +Separate instructions on building for W32 are avaible +url(in the file README-W32.yo)(../../DOEXPAND(outdir)/README-W32.html). + +sect(AUTHORS) + +nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl) + +nemail(Jan Nieuwenhuizen)(janneke@gnu.org) + + +Have fun! diff --git a/buildscripts/html-accents.py b/buildscripts/html-accents.py new file mode 100644 index 0000000000..228ed7485f --- /dev/null +++ b/buildscripts/html-accents.py @@ -0,0 +1,115 @@ +#!@PYTHON@ + +# html-accents.py -- convert (some) latin1 chars to html +# pod2html is so broken... +# +# source file of the GNU LilyPond music typesetter +# +# (c) 1998 Jan Nieuwenhuizen + +name = 'html-accents' +version = '0.1' + +import os +import sys +sys.path.append ('@abs-step-bindir@') +sys.path.append (os.environ['HOME'] + '/usr/src/lilypond/stepmake/bin') + +import getopt +from string import * +import regex +import regsub +import time + +def program_id (): + return name + ' version ' + version; + +def identify (): + sys.stdout.write (program_id () + '\n') + +def help (): + sys.stdout.write ("Usage: " + name + " [options] INFILE OUTFILE\n" + + "Convert (some) latin1 chars to html &xxx;\n\n" + + "Options:\n" + + " -h, --help print this help\n" + + " -p, --package=DIR specify package\n" + ) + sys.exit (0) + +# chars = {'è':'è', } +chars = { +'á':'á', +'â':'â', +'æ':'æ', +'à':'à', +'å':'å', +'ã':'ã', +'ä':'ä', + +'ç':'ç', + +'é':'é', +'ê':'ê', +'è':'è', +'ë':'ë', + +'í':'í', +'î':'î', +'ì':'ì', +'ï':'ï', + +'ñ':'ñ', + +'ó':'ó', +'ô':'ô', +'ò':'ò', +'ø':'ø', +'õ':'õ', +'ö':'ö', + +'ú':'ú', +'û':'û', +'ù':'ù', +'ü':'ü' +} + +def convert_accents (inname, outname): + from flower import * + text = File (inname) + # ugh + html = File (outname, 'w') + + while not text.eof (): + line = text.readline () + for i in chars.keys (): + line = regsub.gsub (i, chars[i], line) + html.write (line) + text.close () + html.close () + +def main (): + identify () + (options, files) = getopt.getopt ( + sys.argv[1:], 'hp:', ['help', 'package=']) + for opt in options: + o = opt[0] + a = opt[1] + if o== '--help' or o == '-h': + help () + elif o == '-p' or o == '--package': + topdir = a + else: + print o + raise getopt.error + + sys.path.append (topdir + '/stepmake/bin') + from packagepython import * + package = Package (topdir) + packager = Packager () + + from flower import * + + convert_accents (files[0], files[1]) + +main () + diff --git a/debian/changelog b/debian/changelog index 0f86127f06..c56fe5d3d1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,51 @@ +lilypond (0.1.76-1) unstable; urgency=low + + * support for 'make deb' target + + -- Jan Nieuwenhuizen Fri, 3 Jul 1998 17:53:37 +0200 + +lilypond (0.1.71-1) unstable; urgency=low + + * New upstream release. + + -- Anthony Fok Sat, 6 Jun 1998 00:00:00 -0600 + +lilypond (0.1.66-1) unstable; urgency=low + + * New upstream release. + + -- Anthony Fok Wed, 20 May 1998 06:50:12 -0600 + +lilypond (0.1.61-1) frozen unstable; urgency=low + + * New upstream release with tons of bug fixes. + Please put this in Hamm. + * Revised debian/rules w.r.t. make/lilypond.spec.in. + + -- Anthony Fok Mon, 4 May 1998 03:36:06 -0600 + +lilypond (0.1.60-1) frozen unstable; urgency=medium + + * New upstream release with lots of bug fixes, including the MIDI + generation bug in 0.1.48. Please put this in Hamm. + * debian/rules: + - Upgraded to standards version 2.4.1.0 (no changes). + - lilypond now also depends on tetex-base (>= 0.9-5) + and conflicts with tetex-base (<< 0.9). + * Modified postinst and postrm to work with teTeX 0.9 / Web2C 7.2: + - Removed all the *ugly* kludges and functions that were supposed to + deal with non-Debian teTeX installations. Those kludges were + specifically made for teTeX 0.4, but they failed to work as intended + due to the changes in teTeX 0.9. + - No longer messes with special.map because the standard + Web2C 7.2 special.map already lists the feta fonts. + - Since postinst is so much simpler, it is now a sh script! :-) + * Removed preinst which contained yet another obsolete kludge to clean + obsolete/ancient lilypond fonts. + * Updated the GNU LilyPond Home Page URIs. + + -- Anthony Fok Fri, 1 May 1998 01:14:49 -0600 + lilypond (0.1.48-1) unstable; urgency=low * New upstream release. diff --git a/debian/control.foka b/debian/control.foka new file mode 100644 index 0000000000..2f98fdf549 --- /dev/null +++ b/debian/control.foka @@ -0,0 +1,30 @@ +Source: lilypond +Section: tex +Priority: optional +Maintainer: Anthony Fok +Standards-Version: 2.4.1.0 + +Package: lilypond +Architecture: any +Depends: ${shlibs:Depends}, tetex-base (>= 0.9-5) +Conflicts: musixtex-fonts, tetex-base (<< 0.9) +Description: The GNU Project music typesetter. + 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. + . + LilyPond is de muziek typesetter van het GNU Project. + Het programma genereert prachtige bladmuziek uit een muziek definitie + bestand. Ook kan het (mechanische) uitvoeringen afspelen naar MIDI + bestanden. Bijzondere mogelijkheden omvatten verscheidene notenbalken, + maatsoorten, sleutels, toonsoorten, zangteksten, krachtige invoer taal, + cadensa, balken, boogjes, triolen, partituren, en losse partijen. Een + fraai font met muzikeksymbolen wordt meegeleverd. + . + URL: http://www.cs.ruu.nl/people/hanwen/lilypond/ + http://sca.uwaterloo.ca/~praetzel/lilypond/ + Authors: Han-Wen Nienhuys + Jan Nieuwenhuizen diff --git a/debian/control.in b/debian/control.in new file mode 100644 index 0000000000..c78565b29b --- /dev/null +++ b/debian/control.in @@ -0,0 +1,16 @@ +Source: lilypond +Section: tex +Priority: optional +Maintainer: Anthony Fok +Standards-Version: 2.4.1.0 + +Package: lilypond +Architecture: any +Depends: ${shlibs:Depends}, tetex-base (>= 0.9-5) +Conflicts: musixtex-fonts, tetex-base (<< 0.9) +Description: The GNU Project music typesetter. @BLURB@ + . + URL: http://www.cs.ruu.nl/people/hanwen/lilypond + http://sca.uwaterloo.ca/~praetzel/lilypond/ + Authors: Han-Wen Nienhuys + Jan Nieuwenhuizen diff --git a/debian/copyright b/debian/copyright index 9223c27f8c..cf496990ff 100644 --- a/debian/copyright +++ b/debian/copyright @@ -2,18 +2,19 @@ This package was debianized by Anthony Fok on Wed, 6 Aug 1997 04:30:28 -0600 It was downloaded from - ftp://pcnov095.win.tue.nl/pub/lilypond/development/ - lilypond-0.1.48.tar.gz + ftp://pcnov095.win.tue.nl/pub/lilypond/development/ + lilypond-0.1.71.tar.gz It is also available from: - ftp://alpha.gnu.org/gnu/ + ftp://sca.uwaterloo.ca/pub/lilypond/development/ For more information about GNU LilyPond, please visit: - http://www.stack.nl/~hanwen/lilypond/ for more information. + http://www.cs.ruu.nl/people/hanwen/lilypond/ + or http://sca.uwaterloo.ca/~praetzel/lilypond/ Authors: - Han-Wen Nienhuys - Jan Nieuwenhuizen + Han-Wen Nienhuys + Jan Nieuwenhuizen Copyright: @@ -34,6 +35,13 @@ Copyright: along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + *** NOTE + + This license applies to all files except the included example + input files (which are in the subdirectory input/ and mutopia/ ) + + *** END NOTE + All the other scripts and control files for building and installing GNU LilyPond under Debian GNU/Linux are also under the GNU General diff --git a/flower/README b/flower/README index 46a01d28e5..75bc0679e7 100644 --- a/flower/README +++ b/flower/README @@ -7,6 +7,6 @@ It was written by: and - Jan Nieuwenhuizen + Jan Nieuwenhuizen -It is licensed under the GNU GPL. +It is licensed under the GNU LGPL. diff --git a/flower/include/international.hh b/flower/include/international.hh index 730b9924e6..3da5a26a27 100644 --- a/flower/include/international.hh +++ b/flower/include/international.hh @@ -3,14 +3,27 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys + (c) 1997--1998 Jan Nieuwenhuizen */ #ifndef INTERNATIONAL_HH #define INTERNATIONAL_HH -#define _(str) str +#include "string.hh" -#endif /* INTERNATIONAL_HH */ +// don't inline: get warnings only once +/** + Internationalisation: _ ("to be translated") gets "translated" by GNU gettext +*/ +String _ (char const *ch); + +/** + Internationalisation: _f ("Usage: %s [FILE]", "lilypond") gets "translated" by + GNU gettext +*/ +String _f (char const* format, ...); +String _f (char const* format, String s, String s2 = "", String s3 = ""); + +#endif // INTERNATIONAL_HH diff --git a/flower/include/list.icc b/flower/include/list.icc index 7192c4d9f6..eb1179a300 100644 --- a/flower/include/list.icc +++ b/flower/include/list.icc @@ -4,8 +4,8 @@ source file of the Flower Library (c) 1996, 1997--1998 - Jan Nieuwenhuizen - Han-Wen Nienhuys + Jan Nieuwenhuizen + Han-Wen Nienhuys */ diff --git a/flower/international.cc b/flower/international.cc new file mode 100644 index 0000000000..029d0f0497 --- /dev/null +++ b/flower/international.cc @@ -0,0 +1,46 @@ +/* + international.cc -- implement stuff for internationalisation + + source file of the GNU LilyPond music typesetter + + (c) 1997--1998 Jan Nieuwenhuizen + + */ + +#include +#include "config.hh" +#include "string-convert.hh" +#include "international.hh" + +#if !HAVE_GETTEXT +inline char* +gettext (char const* s) +{ + return s; +} +#else +#include +#endif + +String +_ (char const *ch) +{ + return String (gettext (ch)); +} + +String +_f (char const* format, ...) +{ + va_list args; + va_start (args, format); + String str = String_convert::vform_str (gettext (format), args); + va_end (args); + return str; +} + +String +_f (char const* format, String s, String s2, String s3) +{ + return String_convert::form_str (gettext (format), s.ch_C (), s2.ch_C (), + s3.ch_C ()); +} diff --git a/flower/libc-extension.cc b/flower/libc-extension.cc index c7f1b4bd08..9752c04694 100644 --- a/flower/libc-extension.cc +++ b/flower/libc-extension.cc @@ -4,15 +4,18 @@ source file of the flowerlib - (c) 1997--1998 Han-Wen Nienhuys + (c) 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ -#include + #include #include #include #include "libc-extension.hh" - +/* + urg: why soo wierd? + */ char* strnlwr (char* start_l ,int n) { @@ -109,8 +112,8 @@ strrev (Byte* byte_l, int length_i) } #if ! HAVE_SNPRINTF -int snprintf (char *str, size_t, - char const *format, ...) +int +snprintf (char *str, size_t, char const *format, ...) { va_list ap; va_start (ap, format); @@ -119,3 +122,13 @@ int snprintf (char *str, size_t, return i; } #endif + +#if ! HAVE_VSNPRINTF +int +vsnprintf (char *str, size_t, char const *format, va_list args) +{ + int i = vsprintf (str, format, args); + return i; +} +#endif + diff --git a/lib/duration-convert.cc b/lib/duration-convert.cc index 1fc42aa3be..c1240f3cdd 100644 --- a/lib/duration-convert.cc +++ b/lib/duration-convert.cc @@ -3,8 +3,8 @@ source file of the LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #include #include "duration-convert.hh" @@ -23,19 +23,19 @@ String Duration_convert::dur2_str (Duration dur) { if (dur.ticks_i_) - return String ("[") + String (dur.ticks_i_) + "]"; + return String ("[") + to_str (dur.ticks_i_) + "]"; String str; if (dur.durlog_i_ >= 0) - str = String ( type2_i (dur.durlog_i_) ); + str = to_str ( type2_i (dur.durlog_i_) ); else if (dur.durlog_i_ == -1) str = "\\breve"; else if (dur.durlog_i_ == -2) str = "\\longa"; - str += String ('.', dur.dots_i_); + str += to_str ('.', dur.dots_i_); if (dur.plet_b ()) - str += String ("*") + String (dur.plet_.iso_i_) - + String ("/") + String (dur.plet_.type_i_); + str += String ("*") + to_str (dur.plet_.iso_i_) + + String ("/") + to_str (dur.plet_.type_i_); return str; } @@ -47,12 +47,11 @@ Duration_convert::dur2ticks_i (Duration dur) return dur2_mom (dur) * Moment (Duration::division_1_i_s); } - int Duration_convert::i2_type (int i) { int t=0; - while (!(i & 1)) { + while (i && !(i & 1)) { i >>= 1; t++; } diff --git a/lib/duration-iter.cc b/lib/duration-iter.cc index b1af3fd8dd..eac7a759ab 100644 --- a/lib/duration-iter.cc +++ b/lib/duration-iter.cc @@ -3,8 +3,8 @@ source file of the LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #include #include "duration-convert.hh" diff --git a/lib/duration.cc b/lib/duration.cc index 95e056b789..7bdf8d00dc 100644 --- a/lib/duration.cc +++ b/lib/duration.cc @@ -3,8 +3,8 @@ source file of the LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen - Han-Wen Nienhuys + (c) 1997--1998 Jan Nieuwenhuizen + Han-Wen Nienhuys */ #include @@ -82,3 +82,4 @@ Duration::plet_b () { return !plet_.unit_b (); } + diff --git a/lib/include/binary-source-file.hh b/lib/include/binary-source-file.hh index 33ee6bd784..a6f252a1da 100644 --- a/lib/include/binary-source-file.hh +++ b/lib/include/binary-source-file.hh @@ -1,7 +1,7 @@ // // binary-source-file.hh -- declare Binary_source_file // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #ifndef BINARY_SOURCE_FILE_HH #define BINARY_SOURCE_FILE_HH diff --git a/lib/include/duration.hh b/lib/include/duration.hh index 59c968f751..367672ac4e 100644 --- a/lib/include/duration.hh +++ b/lib/include/duration.hh @@ -1,9 +1,9 @@ /* - duration.hh -- declare Duration Plet - + duration.hh -- declare Duration + source file of the LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ @@ -17,7 +17,7 @@ #include "plet.hh" /** - Class to handle "musical" durations. This means: balltype 1,2,4,etc. and dots. + Handle "musical" durations. This means: balltype 1,2,4,etc. and dots. (dur) */ diff --git a/lib/include/source-file.hh b/lib/include/source-file.hh index 0983a829a4..ee671c785a 100644 --- a/lib/include/source-file.hh +++ b/lib/include/source-file.hh @@ -1,7 +1,7 @@ // // source-file.hh -- declare Source_file // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #ifndef SOURCE_FILE_HH #define SOURCE_FILE_HH @@ -20,6 +20,7 @@ public: /** Ugh! filename gets changed! The path to the opened file may change, since it might be searched in multiple directories. */ Source_file (String filename_str_r ); + Source_file (String name_str, String data_str); virtual ~Source_file (); char const* ch_C () const; diff --git a/lib/include/source.hh b/lib/include/source.hh index f6a824fa70..395a9d8bb4 100644 --- a/lib/include/source.hh +++ b/lib/include/source.hh @@ -1,7 +1,7 @@ // // source.hh -- part of LilyPond // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #ifndef SOURCE_HH #define SOURCE_HH @@ -16,12 +16,12 @@ public: Source_file * get_file_l (String &filename ); Source_file* sourcefile_l (char const* ch_C ); + void add (Source_file* sourcefile_p ); void set_path (File_path*p_C); void set_binary (bool); private: const File_path * path_C_; - void add (Source_file* sourcefile_p ); Pointer_list sourcefile_p_list_; bool binary_b_ ; }; diff --git a/lib/include/string-storage.hh b/lib/include/string-storage.hh new file mode 100644 index 0000000000..f1d526918b --- /dev/null +++ b/lib/include/string-storage.hh @@ -0,0 +1,30 @@ +/* + string-storage.hh -- declare String_storage + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen + + */ + +#ifndef STRING_STORAGE_HH +#define STRING_STORAGE_HH + +#include "string.hh" +#include "file-storage.hh" + +/** + Urg, let String act as file storage. + */ +class String_storage : public File_storage, protected String +{ +public: + String_storage (String s) : String (s) { } + +protected: + virtual char const* ch_C () const { return String::ch_C (); } + virtual int length_i () const { return String::length_i (); } +}; + +#endif /* STRING_STORAGE_HH */ + diff --git a/lib/mapped-file-storage.cc b/lib/mapped-file-storage.cc index 17d451d1a6..f9e6d88cbb 100644 --- a/lib/mapped-file-storage.cc +++ b/lib/mapped-file-storage.cc @@ -5,8 +5,8 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen . + (c) 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen . Nextstep fixes by tiggr@ics.ele.tue.nl */ @@ -71,7 +71,7 @@ Mapped_file_storage::map () data_caddr_ = (caddr_t)mmap ((void*)0, size_off_, PROT_READ, MAP_SHARED, fildes_i_, 0); if ((int)data_caddr_ == -1) - warning (String (_ ("can't map: error no: ")) + strerror (errno)); + warning (_ ("can't map file") + ": " + strerror (errno)); #endif } @@ -84,7 +84,8 @@ Mapped_file_storage::open (String name_str) if (fildes_i_ == -1) { - warning (String (_ ("can't open: ")) + name_str + String (": ") + strerror (errno)); + warning (_f ("can't open file: `%s\'", name_str) + + ": " + strerror (errno)); return; } diff --git a/lib/source-file.cc b/lib/source-file.cc index 14fabe7959..5403abb517 100644 --- a/lib/source-file.cc +++ b/lib/source-file.cc @@ -3,8 +3,8 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen - & Han-Wen Nienhuys + (c) 1997--1998 Jan Nieuwenhuizen + & Han-Wen Nienhuys */ @@ -15,9 +15,10 @@ #include "proto.hh" #include "plist.hh" #include "warn.hh" -#include "windhoos-suck-suck-suck-thank-you-cygnus.hh" +#include "thank-you-cygnus.hh" #include "source-file.hh" #include "simple-file-storage.hh" +#include "string-storage.hh" Source_file::Source_file (String filename_str) { @@ -26,6 +27,13 @@ Source_file::Source_file (String filename_str) storage_p_ = new Simple_file_storage (filename_str); } +Source_file::Source_file (String name_str, String data_str) +{ + name_str_ = name_str; + istream_p_ = 0; + storage_p_ = new String_storage (data_str); +} + istream* Source_file::istream_l () { @@ -51,10 +59,10 @@ String Source_file::file_line_column_str (char const *context_ch_C) const { if (!ch_C ()) - return _ ("(unknown)"); + return "(" + _ ("position unknown") + ")"; else - return name_str () + ":" + String (line_i (context_ch_C)) - + ":" + String (char_i (context_ch_C)); + return name_str () + ":" + to_str (line_i (context_ch_C)) + + ":" + to_str (char_i (context_ch_C)); } String @@ -144,14 +152,14 @@ String Source_file::error_str (char const* pos_ch_C) const { if (!in_b (pos_ch_C)) - return _ ("(position unknown)"); + return "(" + _ ("position unknown") + ")"; int ch_i = char_i (pos_ch_C); String line = line_str (pos_ch_C); String context = line.left_str (ch_i) - + String ('\n') - + String (' ', column_i (pos_ch_C)) - + line.cut (ch_i, INT_MAX); + + to_str ('\n') + + to_str (' ', column_i (pos_ch_C)) + + line.cut_str (ch_i, INT_MAX); return context; } diff --git a/lily/abbreviation-beam-engraver.cc b/lily/abbreviation-beam-engraver.cc index f2a69f5504..67c09cb7fc 100644 --- a/lily/abbreviation-beam-engraver.cc +++ b/lily/abbreviation-beam-engraver.cc @@ -3,8 +3,8 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #include "duration-convert.hh" @@ -27,11 +27,11 @@ Abbreviation_beam_engraver::Abbreviation_beam_engraver () bool Abbreviation_beam_engraver::do_try_request (Request*r) { - Musical_req* mus_l = r->musical (); + Musical_req* mus_l = r->access_Musical_req (); if (!mus_l) return false; - Abbreviation_beam_req * b = mus_l->abbrev_beam (); + Abbreviation_beam_req * b = mus_l->access_Abbreviation_beam_req (); if (!b) return false; @@ -52,7 +52,7 @@ Abbreviation_beam_engraver::do_process_requests () { if (!abeam_p_ && span_reqs_drul_[LEFT]) { abeam_p_ = new Abbreviation_beam; - announce_element (Score_elem_info (abeam_p_, span_reqs_drul_[LEFT])); + announce_element (Score_element_info (abeam_p_, span_reqs_drul_[LEFT])); } } @@ -80,12 +80,12 @@ Abbreviation_beam_engraver::do_removal_processing () } void -Abbreviation_beam_engraver::acknowledge_element (Score_elem_info i) +Abbreviation_beam_engraver::acknowledge_element (Score_element_info i) { if (!abeam_p_ || !i.elem_l_->is_type_b (Stem::static_name ())) return; - Stem* s = (Stem*)i.elem_l_->item (); + Stem* s = (Stem*)i.elem_l_->access_Item (); int type_i = span_reqs_drul_[LEFT]->type_i_; s->flag_i_ = intlog2 (type_i) - 2; @@ -98,5 +98,5 @@ Abbreviation_beam_engraver::acknowledge_element (Score_elem_info i) if (s->type_i () != 1) // no abbrev gaps on half note s->beam_gap_i_ = s->flag_i_ - ((s->type_i () >? 2) - 2); - abeam_p_->add (s); + abeam_p_->add_stem (s); } diff --git a/lily/abbreviation-beam.cc b/lily/abbreviation-beam.cc index 6637d19f0f..91f4ff21f9 100644 --- a/lily/abbreviation-beam.cc +++ b/lily/abbreviation-beam.cc @@ -3,14 +3,14 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #include "p-col.hh" -#include "varray.hh" +#include "array.hh" #include "proto.hh" -#include "dimen.hh" +#include "dimension.hh" #include "abbreviation-beam.hh" #include "misc.hh" #include "debug.hh" diff --git a/lily/audio-column.cc b/lily/audio-column.cc index 2f5ad611a6..5b6717c015 100644 --- a/lily/audio-column.cc +++ b/lily/audio-column.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include "audio-column.hh" @@ -19,7 +19,7 @@ Audio_column::Audio_column (Moment at_mom) } void -Audio_column::add (Audio_item* l) +Audio_column::add_audio_item (Audio_item* l) { audio_item_l_list_.bottom().add (l); l->audio_column_l_ = this; diff --git a/lily/audio-item.cc b/lily/audio-item.cc index 81b0285ba6..71757314a7 100644 --- a/lily/audio-item.cc +++ b/lily/audio-item.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include "debug.hh" #include "audio-item.hh" @@ -42,9 +42,10 @@ Audio_key::midi_item_p() } IMPLEMENT_IS_TYPE_B1 (Audio_key, Audio_item); -Audio_note::Audio_note (Request* req_l) +Audio_note::Audio_note (Request* req_l, int transposing_i) : Audio_item (req_l) { + transposing_i_ = transposing_i; } Midi_item* @@ -69,17 +70,17 @@ Audio_tempo::midi_item_p() IMPLEMENT_IS_TYPE_B1(Audio_tempo, Audio_item); -Audio_meter::Audio_meter (Request* req_l) +Audio_time_signature::Audio_time_signature (Request* req_l) : Audio_item (req_l) { } Midi_item* -Audio_meter::midi_item_p() +Audio_time_signature::midi_item_p() { - return new Midi_meter (this); + return new Midi_time_signature (this); } -IMPLEMENT_IS_TYPE_B1(Audio_meter, Audio_item); +IMPLEMENT_IS_TYPE_B1(Audio_time_signature, Audio_item); Audio_text::Audio_text (Audio_text::Type type, String text_str) : Audio_item (0) diff --git a/lily/audio-staff.cc b/lily/audio-staff.cc index d35fb23a58..235de874de 100644 --- a/lily/audio-staff.cc +++ b/lily/audio-staff.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include "audio-staff.hh" @@ -13,7 +13,7 @@ #include "midi-walker.hh" void -Audio_staff::add (Audio_item* l) +Audio_staff::add_audio_item (Audio_item* l) { audio_item_l_list_.bottom().add (l); } diff --git a/lily/beam.cc b/lily/beam.cc index 55256fdd5b..dea856499b 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -3,8 +3,8 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998, 1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1997--1998, 1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ @@ -19,9 +19,9 @@ #include #include "p-col.hh" -#include "varray.hh" +#include "array.hh" #include "proto.hh" -#include "dimen.hh" +#include "dimension.hh" #include "beam.hh" #include "abbreviation-beam.hh" #include "misc.hh" @@ -34,7 +34,6 @@ #include "lookup.hh" #include "grouping.hh" #include "stem-info.hh" -#include "main.hh" // experimental features IMPLEMENT_IS_TYPE_B1 (Beam, Spanner); @@ -50,7 +49,7 @@ Beam::Beam () } void -Beam::add (Stem*s) +Beam::add_stem (Stem*s) { stems_.push (s); s->add_dependency (this); @@ -79,7 +78,7 @@ Beam::brew_molecule_p () const Molecule sb = stem_beams (i, next, prev); Real x = i->hpos_f ()-x0; sb.translate (Offset (x, (x * slope_f_ + left_y_) * internote_f)); - mol_p->add (sb); + mol_p->add_molecule (sb); } mol_p->translate_axis (x0 - spanned_drul_[LEFT]->absolute_coordinate (X_AXIS), X_AXIS); @@ -105,7 +104,7 @@ void Beam::do_print () const { #ifndef NPRINT - DOUT << "slope_f_ " <is_type_b (Stem::static_name ())) - stems_.substitute ((Stem*)o->item (), n? (Stem*) n->item ():0); + stems_.substitute ((Stem*)o->access_Item (), n? (Stem*) n->access_Item ():0); } Interval @@ -173,15 +172,30 @@ Beam::set_default_dir () But is that because it really looks better, or because he wants to provide some real simple hands-on rules. - We have our doubts. + We have our doubts, so we simply provide all sensible alternatives. */ - // fixme. make runtime. - // majority - // dir_ = (count[UP] > count[DOWN]) ? UP : DOWN; - - // mean centre distance - dir_ = (total[UP] > total[DOWN]) ? UP : DOWN; + Dir_algorithm a = (Dir_algorithm)rint(paper ()->get_var ("beam_dir_algorithm")); + switch (a) + { + case MAJORITY: + dir_ = (count[UP] > count[DOWN]) ? UP : DOWN; + break; + case MEAN: + // mean centre distance + dir_ = (total[UP] > total[DOWN]) ? UP : DOWN; + break; + default: + case MEDIAN: + // median centre distance + if (!count[UP]) + dir_ = DOWN; + else if (!count[DOWN]) + dir_ = UP; + else + dir_ = (total[UP] / count[UP] > total[DOWN] / count[DOWN]) ? UP : DOWN; + break; + } for (int i=0; i ? info.miny_f_ - y; } } @@ -621,7 +635,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const Real dy = interbeam_f; Real stemdx = staffline_f; Real sl = slope_f_* internote_f; - paper ()->lookup_l ()->beam (sl, 20 PT, 1 PT); + lookup_l ()->beam (sl, 20 PT, 1 PT); Molecule leftbeams; Molecule rightbeams; @@ -631,16 +645,21 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const { int lhalfs= lhalfs = here->beams_left_i_ - prev->beams_right_i_ ; int lwholebeams= here->beams_left_i_ beams_right_i_ ; - Real w = (here->hpos_f () - prev->hpos_f ())/4 note_width ();; + /* + Half beam should be one note-width, + but let's make sure two half-beams never touch + */ + Real w = here->hpos_f () - prev->hpos_f (); + w = w/2 note_width (); Atom a; if (lhalfs) // generates warnings if not - a = paper ()->lookup_l ()->beam (sl, w, beam_f); + a = lookup_l ()->beam (sl, w, beam_f); a.translate (Offset (-w, -w * sl)); for (int j = 0; j < lhalfs; j++) { Atom b (a); b.translate_axis (-dir_ * dy * (lwholebeams+j), Y_AXIS); - leftbeams.add (b); + leftbeams.add_atom (b); } } @@ -650,7 +669,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const int rwholebeams = here->beams_right_i_ beams_left_i_; Real w = next->hpos_f () - here->hpos_f (); - Atom a = paper ()->lookup_l ()->beam (sl, w + stemdx, beam_f); + Atom a = lookup_l ()->beam (sl, w + stemdx, beam_f); a.translate_axis( - stemdx/2, X_AXIS); int j = 0; Real gap_f = 0; @@ -661,34 +680,34 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const { Atom b (a); b.translate_axis (-dir_ * dy * j, Y_AXIS); - rightbeams.add (b); + rightbeams.add_atom (b); } // TODO: notehead widths differ for different types gap_f = paper ()->note_width () / 2; w -= 2 * gap_f; - a = paper ()->lookup_l ()->beam (sl, w + stemdx, beam_f); + a = lookup_l ()->beam (sl, w + stemdx, beam_f); } for (; j < rwholebeams; j++) { Atom b (a); b.translate (Offset (gap_f, -dir_ * dy * j)); - rightbeams.add (b); + rightbeams.add_atom (b); } - w = w/4 note_width (); + w = w/2 note_width (); if (rhalfs) - a = paper ()->lookup_l ()->beam (sl, w, beam_f); + a = lookup_l ()->beam (sl, w, beam_f); for (; j < rwholebeams + rhalfs; j++) { Atom b (a); b.translate_axis (-dir_ * dy * j, Y_AXIS); - rightbeams.add (b); + rightbeams.add_atom (b); } } - leftbeams.add (rightbeams); + leftbeams.add_molecule (rightbeams); /* Does beam quanting think of the asymetry of beams? diff --git a/lily/bezier.cc b/lily/bezier.cc index 2242c4ffa5..e851e74f03 100644 --- a/lily/bezier.cc +++ b/lily/bezier.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ #include @@ -12,7 +12,7 @@ #ifndef STANDALONE #include "direction.hh" -#include "dimen.hh" +#include "dimension.hh" #include "paper-def.hh" #include "debug.hh" #include "main.hh" @@ -168,6 +168,12 @@ Bezier_bow::blow_fit () Real b = dy1; Real h = -b / a; + if (sign (h) != sign (h1)) + return; + + if (sign (h) != sign (h1)) + return; + control_[1].y () += -h1 +h; control_[2].y () += -h1 +h; return_[1].y () += -h1 +h; diff --git a/lily/bow.cc b/lily/bow.cc index b986debd30..04a09d7bc9 100644 --- a/lily/bow.cc +++ b/lily/bow.cc @@ -3,8 +3,8 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #include "bow.hh" @@ -33,9 +33,9 @@ Bow::brew_molecule_p () const Atom a; if (!dash_i_) - a = paper ()->lookup_l ()->slur (c); + a = lookup_l ()->slur (c); else - a = paper ()->lookup_l ()->dashed_slur (c, thick, dash_i_); + a = lookup_l ()->dashed_slur (c, thick, dash_i_); if (check_debug && !monitor->silent_b ("Bow")) { @@ -53,7 +53,7 @@ Bow::brew_molecule_p () const a.translate (Offset (dx_f_drul_[LEFT], dy_f_drul_[LEFT])); Molecule* mol_p = new Molecule; - mol_p->add (a); + mol_p->add_atom (a); return mol_p; } @@ -68,6 +68,26 @@ Bow::center () const return Offset (dx / 2, dy); } + + +/* + + ugh . Control points are too crude measures. + */ +Interval +Bow::do_height () const +{ + Array c (get_controls()); + + Interval iv; + for (int i=0; i < c.size (); i++) + { + Real y = c[i][Y_AXIS]; + iv.unite (Interval (y,y)); + } + return iv; +} + Interval Bow::do_width () const { diff --git a/lily/encompass-info.cc b/lily/encompass-info.cc index 193ef482b5..3da2c28559 100644 --- a/lily/encompass-info.cc +++ b/lily/encompass-info.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ diff --git a/lily/hara-kiri-line-group-engraver.cc b/lily/hara-kiri-line-group-engraver.cc index fecde2402d..ab12bf8780 100644 --- a/lily/hara-kiri-line-group-engraver.cc +++ b/lily/hara-kiri-line-group-engraver.cc @@ -3,16 +3,16 @@ source file of the GNU LilyPond music typesetter - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ #include "staff-sym.hh" #include "command-request.hh" -#include "p-col.hh" +#include "note-head.hh" #include "hara-kiri-vertical-group-spanner.hh" #include "hara-kiri-line-group-engraver.hh" -IMPLEMENT_IS_TYPE_B1 (Hara_kiri_line_group_engraver,Engraver); +IMPLEMENT_IS_TYPE_B1 (Hara_kiri_line_group_engraver,Line_group_engraver_group); ADD_THIS_TRANSLATOR (Hara_kiri_line_group_engraver); void @@ -20,3 +20,14 @@ Hara_kiri_line_group_engraver::create_line_spanner () { staffline_p_ = new Hara_kiri_vertical_group_spanner; } + +void +Hara_kiri_line_group_engraver::typeset_element(Score_element * e) +{ + if (e->is_type_b (Note_head::static_name ())) + ((Hara_kiri_vertical_group_spanner*)staffline_p_)->add_note + ((Note_head*)e->access_Item ()); + + Line_group_engraver_group::typeset_element (e); +} + diff --git a/lily/hara-kiri-vertical-group-spanner.cc b/lily/hara-kiri-vertical-group-spanner.cc index 92fc9e29ee..849a2552fa 100644 --- a/lily/hara-kiri-vertical-group-spanner.cc +++ b/lily/hara-kiri-vertical-group-spanner.cc @@ -4,51 +4,53 @@ source file of the GNU LilyPond music typesetter - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ #include "hara-kiri-vertical-group-spanner.hh" -#include "item.hh" +#include "debug.hh" #include "note-head.hh" -#include "p-col.hh" -#include "molecule.hh" +#include "bar.hh" IMPLEMENT_IS_TYPE_B1 (Hara_kiri_vertical_group_spanner, Vertical_group_spanner); -void -Hara_kiri_vertical_group_spanner::add_element (Graphical_element* e) +Hara_kiri_vertical_group_spanner::Hara_kiri_vertical_group_spanner() { - if (e->is_type_b (Note_head::static_name ())) - add_dependency ((Score_elem*)e); - Vertical_group_spanner::add_element (e); } -// we never get here, or indeed in axis-group-spanner::do_break_processing? void -Hara_kiri_vertical_group_spanner::do_break_processing () +Hara_kiri_vertical_group_spanner::add_note (Note_head* n) { - Vertical_group_spanner::do_break_processing (); - if (dependency_size ()) - return; - transparent_b_ = true; + add_dependency (n); + head_l_arr_.push (n); } -// too late ? void Hara_kiri_vertical_group_spanner::do_post_processing () { - if (dependency_size ()) + if (!head_l_arr_.empty ()) return; - transparent_b_ = true; + + Link_array childs = get_children (); + for (int i = 0; i < childs.size (); i++) + { + childs[i]->transparent_b_ = true; + childs[i]->set_empty (true); + } + set_empty (true); } -Molecule* -Hara_kiri_vertical_group_spanner::brew_molecule_p() const +void +Hara_kiri_vertical_group_spanner::do_substitute_dependency (Score_element*o, Score_element*n) { - // aaarg: go away - if (1) // transparent_b_) - return new Molecule; - return Vertical_group_spanner::brew_molecule_p (); + if (o->is_type_b (Note_head::static_name ())) + head_l_arr_.substitute ((Note_head*)o->access_Item (), + (n)? (Note_head*)n->access_Item () : 0); } +void +Hara_kiri_vertical_group_spanner::do_print () const +{ + Axis_group_spanner::do_print (); +} diff --git a/lily/include/abbreviation-beam-engraver.hh b/lily/include/abbreviation-beam-engraver.hh index df3244e4dd..2a25c89d44 100644 --- a/lily/include/abbreviation-beam-engraver.hh +++ b/lily/include/abbreviation-beam-engraver.hh @@ -3,8 +3,8 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ @@ -29,7 +29,7 @@ protected: virtual void do_removal_processing(); virtual void do_process_requests(); virtual bool do_try_request (Request*); - virtual void acknowledge_element (Score_elem_info); + virtual void acknowledge_element (Score_element_info); virtual void do_pre_move_processing(); private: diff --git a/lily/include/abbreviation-beam.hh b/lily/include/abbreviation-beam.hh index f6eb933e70..629fb0286e 100644 --- a/lily/include/abbreviation-beam.hh +++ b/lily/include/abbreviation-beam.hh @@ -3,8 +3,8 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #ifndef ABBREVIATION_BEAM_HH @@ -21,7 +21,7 @@ public: Abbreviation_beam(); - SCORE_ELEM_CLONE(Abbreviation_beam); + SCORE_ELEMENT_CLONE(Abbreviation_beam); protected: virtual void do_print() const; diff --git a/lily/include/audio-column.hh b/lily/include/audio-column.hh index 6065e43a68..9b60c3eb7d 100644 --- a/lily/include/audio-column.hh +++ b/lily/include/audio-column.hh @@ -1,7 +1,7 @@ /* audio-column.hh -- declare Audio_column - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #ifndef AUDIO_COLUMN_HH @@ -21,7 +21,7 @@ class Audio_column { public: Audio_column (Moment at_mom); - void add (Audio_item* i_l); + void add_audio_item (Audio_item* i_l); Moment at_mom() const; void print() const; diff --git a/lily/include/audio-item.hh b/lily/include/audio-item.hh index 3edfa01e48..b745c5b931 100644 --- a/lily/include/audio-item.hh +++ b/lily/include/audio-item.hh @@ -1,7 +1,7 @@ /* audio-item.hh -- declare Audio_items - (c) 1996, 1997--1998 Jan Nieuwenhuizen + (c) 1996, 1997--1998 Jan Nieuwenhuizen */ #ifndef AUDIO_ITEM_HH @@ -58,8 +58,9 @@ struct Audio_instrument : public Audio_item { struct Audio_note : public Audio_item { DECLARE_MY_RUNTIME_TYPEINFO; - Audio_note (Request* req_l); + Audio_note (Request* req_l, int transposing_i = 0); virtual Midi_item* midi_item_p(); + int transposing_i_; }; struct Audio_text : Audio_item { @@ -82,8 +83,8 @@ struct Audio_tempo : Audio_item { int per_minute_4_i_; }; -struct Audio_meter : Audio_item { - Audio_meter (Request* req_l); +struct Audio_time_signature : Audio_item { + Audio_time_signature (Request* req_l); virtual Midi_item* midi_item_p(); DECLARE_MY_RUNTIME_TYPEINFO; }; diff --git a/lily/include/audio-staff.hh b/lily/include/audio-staff.hh index 12f3d9c1e8..3d13b28d61 100644 --- a/lily/include/audio-staff.hh +++ b/lily/include/audio-staff.hh @@ -1,7 +1,7 @@ /* audio-staff.hh -- declare Audio_staff - (c) 1996, 1997--1998 Jan Nieuwenhuizen + (c) 1996, 1997--1998 Jan Nieuwenhuizen */ #ifndef AUDIO_STAFF_HH @@ -13,7 +13,7 @@ #include "audio-element.hh" struct Audio_staff : public Audio_element { - void add (Audio_item* l); + void add_audio_item (Audio_item* l); void output (Midi_stream& midi_stream_r, int track_i); Link_list audio_item_l_list_; diff --git a/lily/include/bezier.hh b/lily/include/bezier.hh index ea8c1ed00d..8014037700 100644 --- a/lily/include/bezier.hh +++ b/lily/include/bezier.hh @@ -1,7 +1,7 @@ /* bezier.hh -- declare Bezier and Bezier_bow - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ #ifndef BEZIER_HH @@ -47,7 +47,7 @@ public: Bezier_bow (Paper_def* paper_l); /** - Calculate bezier curve for bow from bow parameters. + Calculate bezier curve for bow from bow paratime_signatures. */ void blow_fit (); void calc (); diff --git a/lily/include/curve.hh b/lily/include/curve.hh index a37be5c669..caa5989514 100644 --- a/lily/include/curve.hh +++ b/lily/include/curve.hh @@ -1,7 +1,7 @@ /* curve.hh -- declare point and curve - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ #ifndef CURVE_HH @@ -14,7 +14,7 @@ #include "real.hh" #include "offset.hh" -#include "varray.hh" +#include "array.hh" class Curve : public Array { diff --git a/lily/include/encompass-info.hh b/lily/include/encompass-info.hh index 6180ba3677..511a24404d 100644 --- a/lily/include/encompass-info.hh +++ b/lily/include/encompass-info.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ diff --git a/lily/include/hara-kiri-line-group-engraver.hh b/lily/include/hara-kiri-line-group-engraver.hh index 21ca5197d6..e1d21bcdc1 100644 --- a/lily/include/hara-kiri-line-group-engraver.hh +++ b/lily/include/hara-kiri-line-group-engraver.hh @@ -1,22 +1,22 @@ /* - hara-kiri-line-group-grav.hh -- declare Hara_kiri_line_group_engraver + hara-kiri-line-group-engraver.hh -- declare Hara_kiri_line_group_engraver source file of the GNU LilyPond music typesetter - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ #ifndef HARA_KIRI_LINE_GROUP_GRAV_HH #define HARA_KIRI_LINE_GROUP_GRAV_HH -#include "line-group-grav.hh" +#include "line-group-group-engraver.hh" /** Just as Line_group_engraver, but won't disgrace Lily by typesetting an empty line (for orchestral scores). */ -class Hara_kiri_line_group_engraver : public Line_group_engraver +class Hara_kiri_line_group_engraver : public Line_group_engraver_group { public: TRANSLATOR_CLONE (Hara_kiri_line_group_engraver); @@ -24,6 +24,7 @@ public: protected: virtual void create_line_spanner (); + void typeset_element (Score_element*); }; diff --git a/lily/include/hara-kiri-vertical-group-spanner.hh b/lily/include/hara-kiri-vertical-group-spanner.hh index d861e7c235..8492d976f6 100644 --- a/lily/include/hara-kiri-vertical-group-spanner.hh +++ b/lily/include/hara-kiri-vertical-group-spanner.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ @@ -20,14 +20,17 @@ class Hara_kiri_vertical_group_spanner : public Vertical_group_spanner public: DECLARE_MY_RUNTIME_TYPEINFO; + Hara_kiri_vertical_group_spanner (); virtual void do_post_processing (); - virtual void add_element (Graphical_element* e); + void add_note (Note_head* n); protected: - SCORE_ELEM_CLONE (Hara_kiri_vertical_group_spanner); + SCORE_ELEMENT_CLONE (Hara_kiri_vertical_group_spanner); - virtual void do_break_processing (); - virtual Molecule* brew_molecule_p () const; + virtual void do_substitute_dependency (Score_element*, Score_element*); + virtual void do_print ()const; + + Link_array head_l_arr_; }; diff --git a/lily/include/key-performer.hh b/lily/include/key-performer.hh index f76b9e11fd..406ae94aeb 100644 --- a/lily/include/key-performer.hh +++ b/lily/include/key-performer.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #ifndef KEY_PERFOMER_HH diff --git a/lily/include/lyric-performer.hh b/lily/include/lyric-performer.hh index 2660f89002..29a5f92390 100644 --- a/lily/include/lyric-performer.hh +++ b/lily/include/lyric-performer.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ @@ -12,7 +12,7 @@ #include "lily-proto.hh" #include "performer.hh" -#include "varray.hh" +#include "array.hh" class Lyric_performer : public Performer { public: diff --git a/lily/include/mark-engraver.hh b/lily/include/mark-engraver.hh new file mode 100644 index 0000000000..b095669341 --- /dev/null +++ b/lily/include/mark-engraver.hh @@ -0,0 +1,35 @@ +/* + mark-engraver.hh -- declare Mark_engraver + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + + +#ifndef MARK_ENGRAVER_HH +#define MARK_ENGRAVER_HH + +#include "engraver.hh" + +/** + */ +class Mark_engraver : public Engraver +{ +public: + Mark_engraver (); + + TRANSLATOR_CLONE(Mark_engraver); + DECLARE_MY_RUNTIME_TYPEINFO; + +protected: + virtual bool do_try_request (Request *req_l); + virtual void do_process_requests (); + virtual void do_pre_move_processing (); + +private: + Mark_req * mark_req_l_; + Script* script_p_; +}; + +#endif // MARK_ENGRAVER_HH diff --git a/lily/include/midi-def.hh b/lily/include/midi-def.hh index 98951c10f1..dcf0a9819d 100644 --- a/lily/include/midi-def.hh +++ b/lily/include/midi-def.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ diff --git a/lily/include/midi-item.hh b/lily/include/midi-item.hh index ca89bacec1..dc40138d13 100644 --- a/lily/include/midi-item.hh +++ b/lily/include/midi-item.hh @@ -1,7 +1,7 @@ /* midi-item.hh -- declare Midi items - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #ifndef MIDI_ITEM_HH @@ -96,10 +96,10 @@ struct Midi_key : public Midi_item { virtual String str () const; }; -struct Midi_meter : Midi_item { +struct Midi_time_signature : Midi_item { DECLARE_MY_RUNTIME_TYPEINFO; - Midi_meter (Audio_item* audio_item_l); + Midi_time_signature (Audio_item* audio_item_l); virtual String str () const; int clocks_per_1_i_; diff --git a/lily/include/midi-stream.hh b/lily/include/midi-stream.hh index f3a3781ed3..464bfba9e6 100644 --- a/lily/include/midi-stream.hh +++ b/lily/include/midi-stream.hh @@ -1,7 +1,7 @@ /* midi-stream.hh -- declare Midi_stream - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #ifndef MIDI_STREAM_HH diff --git a/lily/include/midi-walker.hh b/lily/include/midi-walker.hh index c7a20f76ac..3be3395e62 100644 --- a/lily/include/midi-walker.hh +++ b/lily/include/midi-walker.hh @@ -1,8 +1,8 @@ /* midi-walker.hh -- declare Midi_walker - (c) 1996, 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1996, 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #ifndef MIDI_WALKER_HH diff --git a/lily/include/mudela-version.hh b/lily/include/mudela-version.hh index 0858c8178a..4fc6104a4e 100644 --- a/lily/include/mudela-version.hh +++ b/lily/include/mudela-version.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ diff --git a/lily/include/multi-measure-rest-engraver.hh b/lily/include/multi-measure-rest-engraver.hh index 067ff3eae1..abb17be6e4 100644 --- a/lily/include/multi-measure-rest-engraver.hh +++ b/lily/include/multi-measure-rest-engraver.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ #ifndef MULTI_MEASURE_REST_ENGRAVER_HH diff --git a/lily/include/multi-measure-rest.hh b/lily/include/multi-measure-rest.hh index afaeaf7770..66cf89d004 100644 --- a/lily/include/multi-measure-rest.hh +++ b/lily/include/multi-measure-rest.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ diff --git a/lily/include/note-performer.hh b/lily/include/note-performer.hh index c3b77ea415..057f61c4e7 100644 --- a/lily/include/note-performer.hh +++ b/lily/include/note-performer.hh @@ -1,8 +1,8 @@ /* note-performer.hh -- declare Note_performer - (c) 1996, 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1996, 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #ifndef NOTE_PERFORMER_HH diff --git a/lily/include/performance.hh b/lily/include/performance.hh index 923575769d..bc7067a4af 100644 --- a/lily/include/performance.hh +++ b/lily/include/performance.hh @@ -1,7 +1,7 @@ /* performance.hh -- declare Performance - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #ifndef PERFORMANCE_HH @@ -20,9 +20,9 @@ public: Performance (); ~Performance () {} - void add (Audio_column*); + void add_column (Audio_column*); void add_staff (Audio_staff* l); - void add (Audio_element*p); + void add_element (Audio_element*p); void output (Midi_stream& midi_stream_r); diff --git a/lily/include/performer-group-performer.hh b/lily/include/performer-group-performer.hh index f5bcb61b4a..8c9c8aa8d8 100644 --- a/lily/include/performer-group-performer.hh +++ b/lily/include/performer-group-performer.hh @@ -1,8 +1,8 @@ /* performer-group-performer.hh -- declare Performer_group_performer - (c) 1996, 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1996, 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #ifndef PERFORMER_GROUP_PERFORMER_HH diff --git a/lily/include/performer.hh b/lily/include/performer.hh index 5d17b6afef..11fbdbb397 100644 --- a/lily/include/performer.hh +++ b/lily/include/performer.hh @@ -1,17 +1,17 @@ /* performer.hh -- declare Performer - (c) 1996, 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1996, 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #ifndef PERFORMER_HH #define PERFORMER_HH #include "lily-proto.hh" -#include "varray.hh" +#include "array.hh" #include "request.hh" -#include "score-elem-info.hh" +#include "score-element-info.hh" #include "staff-info.hh" #include "translator.hh" diff --git a/lily/include/plet-engraver.hh b/lily/include/plet-engraver.hh index 7de90d4526..005a475bf6 100644 --- a/lily/include/plet-engraver.hh +++ b/lily/include/plet-engraver.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #ifndef PLET_ENGRAVER_HH @@ -25,7 +25,7 @@ public: Plet_engraver (); protected: - virtual void acknowledge_element (Score_elem_info); + virtual void acknowledge_element (Score_element_info); virtual void do_removal_processing(); virtual void do_process_requests(); virtual bool do_try_request (Request*); diff --git a/lily/include/plet-spanner.hh b/lily/include/plet-spanner.hh index 1625721bf4..39e7cac57d 100644 --- a/lily/include/plet-spanner.hh +++ b/lily/include/plet-spanner.hh @@ -1,7 +1,7 @@ /* plet-spanner.hh -- part of GNU LilyPond - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #ifndef PLET_SPANNER_HH @@ -28,12 +28,12 @@ protected: virtual Molecule* brew_molecule_p () const; DECLARE_MY_RUNTIME_TYPEINFO; - SCORE_ELEM_CLONE(Plet_spanner); + SCORE_ELEMENT_CLONE(Plet_spanner); virtual void do_add_processing (); virtual void do_post_processing (); virtual void set_default_dir (); - virtual void do_substitute_dependency (Score_elem*,Score_elem*); + virtual void do_substitute_dependency (Score_element*,Score_element*); Plet_spanner (Plet_spanner const&); }; diff --git a/lily/include/score-performer.hh b/lily/include/score-performer.hh index 3aa4d4ba7e..adb462a2dd 100644 --- a/lily/include/score-performer.hh +++ b/lily/include/score-performer.hh @@ -1,8 +1,8 @@ /* score-performer.hh -- declare Score_performer - (c) 1996, 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1996, 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #ifndef SCORE_PERFORMER_HH diff --git a/lily/include/staff-margin-engraver.hh b/lily/include/staff-margin-engraver.hh new file mode 100644 index 0000000000..ae9d01b4c3 --- /dev/null +++ b/lily/include/staff-margin-engraver.hh @@ -0,0 +1,34 @@ +/* + staff-margin-engraver.hh -- declare Staff_margin_engraver + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + + +#ifndef STAFF_MARGIN_ENGRAVER_HH +#define STAFF_MARGIN_ENGRAVER_HH + +#include "engraver.hh" + +/** + put (instrument) text to left of line + */ +class Staff_margin_engraver : public Engraver +{ +public: + TRANSLATOR_CLONE(Staff_margin_engraver); + DECLARE_MY_RUNTIME_TYPEINFO; + + Staff_margin_engraver (); + +protected: + void acknowledge_element (Score_element_info); + void do_pre_move_processing (); + +private: + Script * script_p_; +}; + +#endif // STAFF_MARGIN_ENGRAVER_HH diff --git a/lily/include/staff-performer.hh b/lily/include/staff-performer.hh index 3352e85b77..484ae5bafa 100644 --- a/lily/include/staff-performer.hh +++ b/lily/include/staff-performer.hh @@ -1,8 +1,8 @@ /* staff-performer.hh -- declare Staff_performer - (c) 1996, 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1996, 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #ifndef STAFF_PERFORMER_HH diff --git a/lily/include/stem-info.hh b/lily/include/stem-info.hh index 06a6cb2918..bff7cfbdb3 100644 --- a/lily/include/stem-info.hh +++ b/lily/include/stem-info.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ diff --git a/lily/include/time-signature-performer.hh b/lily/include/time-signature-performer.hh new file mode 100644 index 0000000000..a40a22382f --- /dev/null +++ b/lily/include/time-signature-performer.hh @@ -0,0 +1,31 @@ +/* + time_signature-performer.hh -- declare Time_signature_performer + + source file of the GNU LilyPond music typesetter + + (c) 1997--1998 Jan Nieuwenhuizen +*/ + +#ifndef METER_PERFOMER_HH +#define METER_PERFOMER_HH + +#include "lily-proto.hh" +#include "performer.hh" + +class Time_signature_performer : public Performer { +public: + TRANSLATOR_CLONE(Time_signature_performer); + DECLARE_MY_RUNTIME_TYPEINFO; + Time_signature_performer(); + ~Time_signature_performer(); + +protected: + void do_print() const; + virtual bool do_try_request (Request* req_l); + virtual void do_process_requests(); + +private: + Time_signature_change_req* time_signature_req_l_; +}; + +#endif // METER_PERFOMER_HH diff --git a/lily/key-performer.cc b/lily/key-performer.cc index 527cf06cbb..02e80fca28 100644 --- a/lily/key-performer.cc +++ b/lily/key-performer.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include "key-performer.hh" @@ -47,8 +47,8 @@ Key_performer::do_try_request (Request* req_l) if (key_req_l_) return false; - if (req_l->command()) - key_req_l_ = req_l->command()->keychange (); + if (req_l->access_Command_req ()) + key_req_l_ = req_l->access_Command_req ()->access_Key_change_req (); if (key_req_l_) return true; diff --git a/lily/lyric-performer.cc b/lily/lyric-performer.cc index d81875c95e..bcbbc9d501 100644 --- a/lily/lyric-performer.cc +++ b/lily/lyric-performer.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include "lyric-performer.hh" @@ -29,25 +29,25 @@ Lyric_performer::do_print() const { #ifndef NPRINT if (lreq_arr_.size()) - lreq_arr_[ 0 ]->print(); + lreq_arr_[ 0 ]->print(); #endif } void Lyric_performer::do_process_requests() { - if (lreq_arr_.size() && lreq_arr_[ 0 ]->tdef_p_->text_str_.length_i()) - play (new Audio_text (Audio_text::LYRIC, lreq_arr_[ 0 ]->tdef_p_->text_str_)); + if (lreq_arr_.size() && lreq_arr_[0]->text_str_.length_i()) + play (new Audio_text (Audio_text::LYRIC, lreq_arr_[ 0 ]->text_str_)); lreq_arr_.clear(); } bool Lyric_performer::do_try_request (Request* req_l) { - Musical_req* m_l = req_l->musical(); - if (!m_l || ! m_l->lreq_l()) - return false; - lreq_arr_.push (m_l->lreq_l()); + Musical_req* m_l = req_l->access_Musical_req (); + if (!m_l || ! m_l->access_Lyric_req ()) + return false; + lreq_arr_.push (m_l->access_Lyric_req ()); return true; } diff --git a/lily/main.cc b/lily/main.cc index bd5c6276de..379e4daa46 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -3,15 +3,16 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys + (c) 1997--1998 Han-Wen Nienhuys */ #include #include #include +#include #include "proto.hh" #include "plist.hh" -#include "lgetopt.hh" +#include "getopt-long.hh" #include "misc.hh" #include "string.hh" #include "main.hh" @@ -20,6 +21,10 @@ #include "file-results.hh" #include "debug.hh" +#if HAVE_GETTEXT +#include +#endif + bool version_ignore_global_b = false; bool no_paper_global_b = false; @@ -27,15 +32,18 @@ bool no_timestamps_global_b = false; bool find_quarts_global_b = false; String default_outname_base_global = "lelie"; int default_count_global; +File_path global_path; + bool experimental_features_global_b = false; bool dependency_global_b = false; int exit_status_i_; -void destill_inname (String &name_str_r); +String distill_inname_str (String name_str, String& ext_r); Long_option_init theopts[] = { + {0, "about", 'a'}, {1, "output", 'o'}, {0, "warranty", 'w'}, {0, "help", 'h'}, @@ -46,7 +54,7 @@ Long_option_init theopts[] = { {0, "no-paper", 'M'}, {0, "dependencies", 'd'}, {0, "no-timestamps", 'T'}, - {0, "find-quarts", 'Q'}, + {0, "find-fourths", 'Q'}, {0, "ignore-version", 'V'}, {0,0,0} }; @@ -54,25 +62,55 @@ Long_option_init theopts[] = { void usage () { - cout << - _("Usage: lilypond [options] [mudela-files]\n" - "Typeset and or produce midi output from mudela-file or stdin\n" - "\n" - "Options:\n" + cout << _f ("Usage: %s [OPTION]... [FILE]...", "lilypond") << '\n'; + cout << _ ("Typeset music and or play MIDI from FILE or "); + cout << '\n'; + cout << '\n'; + cout << _ ("Options:"); + cout << '\n'; + cout << _ ( + " -a, --about about LilyPond\n" + ); + cout << _ ( " -D, --debug enable debugging output\n" + ); + cout << _ ( " -d, --dependencies write Makefile dependencies for every input file\n" - " -Q, --find-quarts show all intervals bigger than a quart\n" + ); + cout << _ ( " -I, --include=DIR add DIR to search path\n" + ); + cout << _ ( " -i, --init=FILE use FILE as init file\n" + ); + cout << _ ( " -h, --help this help\n" + ); + cout << _ ( " -M, --no-paper produce midi output only\n" - " -o, --output=FILE set FILE as default output\n" + ); + cout << _ ( + " -o, --output=FILE set FILE as default output base\n" + ); + cout << _ ( + " -Q, --find-fourths show all intervals greater than a fourth\n" + ); + cout << _ ( " -t, --test switch on experimental features\n" + ); + cout << _ ( " -T, --no-timestamps don't timestamp the output\n" + ); + cout << _ ( " -V, --ignore-version ignore mudela version\n" + ); + cout << _ ( " -w, --warranty show warranty and copyright\n" - "\n" - "GNU LilyPond was compiled with the following settings:\n") + ); + cout << '\n'; + cout << _ ("GNU LilyPond was compiled with the following settings:"); + cout << '\n'; + cout << #ifdef NDEBUG "NDEBUG " #endif @@ -82,23 +120,44 @@ usage () #ifdef STRING_UTILS_INLINED "STRING_UTILS_INLINED " #endif - "datadir= " DIR_DATADIR + "datadir=" DIR_DATADIR + " " + "localedir=" DIR_LOCALEDIR "\n"; ; } +void +about () +{ + cout << '\n'; + cout << + #include "BLURB.hh" + cout << '\n'; + cout << _ ("GNU LilyPond is Free software, see --warranty"); + cout << '\n'; + cout << '\n'; + cout << _f ("Copyright (c) %s by", "1996, 1997, 1998"); + cout << '\n'; + cout << " " + _ ("Han-Wen Nienhuys ") + "\n"; + cout << " " + _ ("Jan Nieuwenhuizen ") + "\n"; + cout << '\n'; +} + void notice () { - cout << - _("\n" - "GNU LilyPond -- The GNU Project music typesetter.\n" - "Copyright 1996, 97, 98 by\n" - " Han-Wen Nienhuys \n" - " Jan Nieuwenhuizen \n" - "\n" + cout << '\n'; + cout << _ ("GNU LilyPond -- The GNU Project music typesetter"); + cout << '\n'; + cout << _f ("Copyright (c) %s by", "1996, 1997, 1998"); + cout << '\n'; + cout << " " + _ ("Han-Wen Nienhuys ") + "\n"; + cout << " " + _ ("Jan Nieuwenhuizen ") + "\n"; + cout << '\n'; + cout << _ ( " This program is free software; you can redistribute it and/or\n" "modify it under the terms of the GNU General Public License version 2\n" "as published by the Free Software Foundation.\n" @@ -114,38 +173,43 @@ notice () "USA.\n"); } - - File_path path; - - void identify () { - cout << get_version_str () << endl; + *mlog << get_version_str () << endl; } int main (int argc, char **argv) { + +#if HAVE_GETTEXT + setlocale (LC_ALL, ""); +// setlocale (LC_MESSAGES, ""); + String name (PACKAGE); + name.to_lower (); + bindtextdomain (name.ch_C (), DIR_LOCALEDIR); + textdomain (name.ch_C ()); +#endif + identify (); call_constructors (); debug_init (); // should be first - - - path.add (""); + global_path.add (""); // must override (come before) "/usr/local/share/lilypond"! char const *env_sz = getenv ("LILYINCLUDE"); if (env_sz) - path.parse_path (env_sz); + global_path.parse_path (env_sz); - path.add (String (DIR_DATADIR) + "/init/"); + global_path.add (String (DIR_DATADIR) + "/init/"); - path.push (DIR_DATADIR); + global_path.push (DIR_DATADIR); Getopt_long oparser (argc, argv,theopts); - String init_str ("lily-init.ly"); + String init_str; + String outname_str; while (Long_option_init const * opt = oparser ()) { switch (opt->shortname) @@ -154,7 +218,7 @@ main (int argc, char **argv) experimental_features_global_b = true; break; case 'o': - default_outname_base_global = oparser.optional_argument_ch_C_; + outname_str = oparser.optional_argument_ch_C_; break; case 'w': notice (); @@ -164,11 +228,14 @@ main (int argc, char **argv) find_quarts_global_b = true; break; case 'I': - path.push (oparser.optional_argument_ch_C_); + global_path.push (oparser.optional_argument_ch_C_); break; case 'i': init_str = oparser.optional_argument_ch_C_; break; + case 'a': + about (); + exit (0); case 'h': usage (); exit (0); @@ -194,39 +261,83 @@ main (int argc, char **argv) } } + default_outname_base_global = "lelie"; + + + int p=0; const char *arg ; while ((arg= oparser.get_next_arg ())) { String f (arg); - destill_inname (f); - do_one_file (init_str,f); + String i; + f = distill_inname_str (f, i); + if (f == "-") + default_outname_base_global = "-"; + else + { + String a,b,c,d; + split_path (f, a, b, c, d); + default_outname_base_global = c; + } + if (outname_str.length_i ()) + default_outname_base_global = outname_str; + if (init_str.length_i ()) + i = init_str; + else + i = "init" + i; + do_one_file (i, f); p++; } if (!p) { - do_one_file (init_str, ""); + String i; + if (init_str.length_i ()) + i = init_str; + else + i = "init.ly"; + default_outname_base_global = "-"; + if (outname_str.length_i ()) + default_outname_base_global = outname_str; + do_one_file (i, default_outname_base_global); } return exit_status_i_; } -/// make input file name: add default extension. "" is stdin. -void -destill_inname (String &name_str_r) +/* + 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 + */ + +String +distill_inname_str (String name_str, String& ext_r) { - if (name_str_r.length_i ()) + String str = name_str; + if (str.length_i ()) { - if (name_str_r[ 0 ] != '-') + if (str != "-") { - String a,b,c,d; - split_path (name_str_r,a,b,c,d); + String a,b,c; + split_path (str,a,b,c,ext_r); // add extension if not present. - if (d.empty_b ()) - d = ".ly"; - name_str_r = a+b+c+d; + if (ext_r.empty_b ()) + { + ext_r = ".fly"; + if (global_path.find (a+b+c+ext_r).empty_b ()) + ext_r = ".ly"; + } + str = a+b+c+ext_r; } } - else name_str_r = ""; + else + { + str = "-"; + ext_r = ".ly"; + } + return str; } + diff --git a/lily/mark-engraver.cc b/lily/mark-engraver.cc new file mode 100644 index 0000000000..274911951d --- /dev/null +++ b/lily/mark-engraver.cc @@ -0,0 +1,83 @@ +/* + mark-engraver.cc -- implement Mark_engraver + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + +#include "mark-engraver.hh" +#include "text-def.hh" +#include "script.hh" +#include "paper-def.hh" +#include "command-request.hh" +#include "time-description.hh" +#include "engraver-group.hh" + +IMPLEMENT_IS_TYPE_B1 (Mark_engraver, Engraver); +ADD_THIS_TRANSLATOR (Mark_engraver); + +Mark_engraver::Mark_engraver () +{ + mark_req_l_ = 0; + script_p_ = 0; +} + +bool +Mark_engraver::do_try_request (Request* r_l) +{ + Command_req* c_l = r_l->access_Command_req (); + if (!c_l || !c_l->access_Mark_req () || mark_req_l_) + return false; + + mark_req_l_ = c_l->access_Mark_req (); + + return true; +} + +void +Mark_engraver::do_process_requests () +{ + if (!mark_req_l_ || script_p_) + return; + + script_p_ = new Script; + script_p_->breakable_b_ = true; + + Text_def *td_p = new Text_def; + + td_p->text_str_ = mark_req_l_->str_; + td_p->align_dir_ = CENTER; + + td_p->style_str_ = td_p->text_str_.index_any_i ("0123456789") >= 0 + ? "mark" : "Large"; + + script_p_->dir_ = UP; + script_p_->specs_p_ = td_p->clone (); + script_p_->postbreak_only_b_ = true; + + Scalar padding = get_property ("markScriptPadding"); + if (padding.length_i() && padding.isnum_b ()) + { + script_p_->padding_f_ = Real(padding); + } + Scalar break_priority = get_property ("markBreakPriority"); + if (break_priority.length_i() && break_priority.isnum_b ()) + { + script_p_->break_priority_i_ = int(break_priority); + } + + announce_element (Score_element_info (script_p_, mark_req_l_)); +} + +void +Mark_engraver::do_pre_move_processing () +{ + if (script_p_) + { + typeset_element (script_p_); + script_p_ = 0; + mark_req_l_ = 0; + } +} + diff --git a/lily/midi-def.cc b/lily/midi-def.cc index 6eff15ea8e..202205d089 100644 --- a/lily/midi-def.cc +++ b/lily/midi-def.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include diff --git a/lily/midi-item.cc b/lily/midi-item.cc index 543e8c0886..525140102e 100644 --- a/lily/midi-item.cc +++ b/lily/midi-item.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include "proto.hh" @@ -25,7 +25,7 @@ IMPLEMENT_IS_TYPE_B1 (Midi_duration, Midi_item); IMPLEMENT_IS_TYPE_B1 (Midi_header, Midi_chunk); IMPLEMENT_IS_TYPE_B1 (Midi_instrument, Midi_item); IMPLEMENT_IS_TYPE_B1 (Midi_key,Midi_item); -IMPLEMENT_IS_TYPE_B1 (Midi_meter, Midi_item); +IMPLEMENT_IS_TYPE_B1 (Midi_time_signature, Midi_item); IMPLEMENT_IS_TYPE_B1 (Midi_note, Midi_item); IMPLEMENT_IS_TYPE_B1 (Midi_note_off, Midi_item); IMPLEMENT_IS_TYPE_B1 (Midi_tempo, Midi_item); @@ -79,7 +79,7 @@ Midi_duration::Midi_duration (Real seconds_f) String Midi_duration::str () const { - return String (""; + return String (""; } Midi_event::Midi_event (Moment delta_mom, Midi_item* mitem_p) @@ -312,8 +312,8 @@ Midi_instrument::str () const break; } - String str = String ( (char) (0xc0 + channel_i_)); - str += String ( (char)program_byte); + String str = to_str ((char) (0xc0 + channel_i_)); + str += to_str ((char)program_byte); return str; } @@ -337,7 +337,7 @@ Midi_item::i2varint_str (int i) String str; while (1) { - str += (char)buffer_i; + str += to_str ((char)buffer_i); if (buffer_i & 0x80) buffer_i >>= 8; else @@ -354,13 +354,17 @@ Midi_key::Midi_key (Audio_item* audio_item_l) String Midi_key::str () const { - Key_change_req* k = audio_item_l_->req_l_->command ()->keychange (); + Key_change_req* k = audio_item_l_->req_l_->access_Command_req ()->access_Key_change_req (); int sharps_i = k->sharps_i (); int flats_i = k->flats_i (); // midi cannot handle non-conventional keys if (flats_i && sharps_i) - return ""; + { + String str = _f ("unconventional key: flats: %d, sharps: %d", flats_i, + sharps_i); + flats_i = sharps_i = 0; + } int accidentals_i = sharps_i - flats_i; String str = "ff5902"; @@ -370,16 +374,16 @@ Midi_key::str () const return String_convert::hex2bin_str (str); } -Midi_meter::Midi_meter (Audio_item* audio_item_l) +Midi_time_signature::Midi_time_signature (Audio_item* audio_item_l) : Midi_item (audio_item_l) { clocks_per_1_i_ = 18; } String -Midi_meter::str () const +Midi_time_signature::str () const { - Meter_change_req* m = audio_item_l_->req_l_->command ()->meterchange (); + Time_signature_change_req* m = audio_item_l_->req_l_->access_Command_req ()->access_Time_signature_change_req (); int num_i = m->beats_i_; int den_i = m->one_beat_i_; @@ -400,28 +404,39 @@ Midi_note::Midi_note (Audio_item* audio_item_l) Moment Midi_note::duration () const { - return audio_item_l_->req_l_->musical ()->rhythmic ()->duration (); + Moment m = audio_item_l_->req_l_->access_Musical_req ()->access_Rhythmic_req ()->duration (); + if (m < Moment (1, 1000)) + { + warning (_ ("silly duration")); + m = 1; + } + return m; } int Midi_note::pitch_i () const { - return audio_item_l_->req_l_->musical ()->melodic ()->pitch_.semitone_pitch (); + int p = audio_item_l_->req_l_->access_Musical_req ()->access_Melodic_req + ()->pitch_.semitone_pitch () + + ((Audio_note*)audio_item_l_)->transposing_i_; + if (p == INT_MAX) + { + warning (_ ("silly pitch")); + p = 0; + } + return p; } String Midi_note::str () const { - if (pitch_i () == INT_MAX) - return String (""); - Byte status_byte = (char) (0x90 + channel_i_); - String str = String ( (char)status_byte); - str += (char) (pitch_i () + c0_pitch_i_c_); + String str = to_str ((char)status_byte); + str += to_str ((char) (pitch_i () + c0_pitch_i_c_)); // poor man's staff dynamics: - str += (char) (dynamic_byte_ - 0x10 * channel_i_); + str += to_str ((char) (dynamic_byte_ - 0x10 * channel_i_)); return str; } @@ -437,20 +452,19 @@ Midi_note_off::Midi_note_off (Midi_note* midi_note_l) int Midi_note_off::pitch_i () const { - return audio_item_l_->req_l_->musical ()->melodic ()->pitch_.semitone_pitch (); + return audio_item_l_->req_l_->access_Musical_req ()->access_Melodic_req + ()->pitch_.semitone_pitch () + + ((Audio_note*)audio_item_l_)->transposing_i_; } String Midi_note_off::str () const { - if (pitch_i () == INT_MAX) - return String (""); - Byte status_byte = (char) (0x80 + channel_i_); - String str = String ( (char)status_byte); - str += (char) (pitch_i () + Midi_note::c0_pitch_i_c_); - str += (char)aftertouch_byte_; + String str = to_str ((char)status_byte); + str += to_str ((char) (pitch_i () + Midi_note::c0_pitch_i_c_)); + str += to_str ((char)aftertouch_byte_); return str; } diff --git a/lily/midi-stream.cc b/lily/midi-stream.cc index 89aab84a8b..caeeae55c6 100644 --- a/lily/midi-stream.cc +++ b/lily/midi-stream.cc @@ -3,7 +3,7 @@ // // source file of the GNU LilyPond music typesetter // -// (c) 1997--1998 Jan Nieuwenhuizen +// (c) 1997--1998 Jan Nieuwenhuizen #include #include "string.hh" @@ -72,7 +72,7 @@ Midi_stream::operator << (int i) void Midi_stream::open () { - os_p_ = new ofstream (filename_str_.ch_C ()); + os_p_ = new ofstream (filename_str_.ch_C (),ios::out|ios::bin); if (!*os_p_) - error (_ ("can't open `") + filename_str_ + "\'"); + error (_f ("can't open file: `%s\'", filename_str_)); } diff --git a/lily/midi-walker.cc b/lily/midi-walker.cc index 75f7af9321..81489c2ad0 100644 --- a/lily/midi-walker.cc +++ b/lily/midi-walker.cc @@ -3,8 +3,8 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #include "midi-walker.hh" @@ -48,13 +48,16 @@ Midi_walker::do_start_note (Midi_note* note_p) Moment stop_mom = note_p->duration() + ptr ()->audio_column_l_->at_mom (); for (int i=0; i < stop_note_queue.size(); i++) { - if (stop_note_queue[ i ].val->pitch_i() == note_p->pitch_i ()) - { - if (stop_note_queue[ i ].key < stop_mom) - stop_note_queue[ i ].ignore_b_ = true; - else // skip the stopnote - return; + if (stop_note_queue[ i ].val->pitch_i() == note_p->pitch_i ()) + { + if (stop_note_queue[ i ].key < stop_mom) + stop_note_queue[ i ].ignore_b_ = true; + else { + // skip the stopnote + delete note_p; + return; } + } } Midi_note_event e; @@ -73,14 +76,17 @@ Midi_walker::do_stop_notes (Moment max_mom) { while (stop_note_queue.size() && stop_note_queue.front ().key <= max_mom) { - Midi_note_event e = stop_note_queue.get(); - if (e.ignore_b_) - continue; + Midi_note_event e = stop_note_queue.get(); + if (e.ignore_b_) + { + delete e.val; + continue; + } + + Moment stop_mom = e.key; + Midi_note_off* note_p = e.val; - Moment stop_mom = e.key; - Midi_note_off* note_p = e.val; - - output_event (stop_mom, note_p); + output_event (stop_mom, note_p); } } @@ -102,12 +108,12 @@ Midi_walker::process() Midi_item* p = ptr()->midi_item_p (); if (!p) - return; + return; p->channel_i_ = track_l_->number_i_; if (p->name() != Midi_note::static_name ()) - output_event (ptr()->audio_column_l_->at_mom (), p); + output_event (ptr()->audio_column_l_->at_mom (), p); else - do_start_note ((Midi_note*)p); + do_start_note ((Midi_note*)p); } diff --git a/lily/misc.cc b/lily/misc.cc index c9cb8e5dcf..381635b46d 100644 --- a/lily/misc.cc +++ b/lily/misc.cc @@ -3,8 +3,8 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998, 1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1997--1998, 1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #include @@ -118,4 +118,3 @@ quantise_iv (Array const& positions, Real period, Real x) return iv; } - diff --git a/lily/mudela-version.cc b/lily/mudela-version.cc index dbcc1b5934..b699b168b9 100644 --- a/lily/mudela-version.cc +++ b/lily/mudela-version.cc @@ -3,13 +3,13 @@ source file of the GNU LilyPond music typesetter - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ #include "mudela-version.hh" #include "string-convert.hh" -#include "varray.hh" +#include "array.hh" Mudela_version::Mudela_version (int major, int minor, int patch) { @@ -31,7 +31,7 @@ Mudela_version::Mudela_version (String str) String Mudela_version::str () const { - return String (major_i_) + "." + String (minor_i_) + "." + String (patch_i_); + return to_str (major_i_) + "." + to_str (minor_i_) + "." + to_str (patch_i_); } Mudela_version::operator int () const diff --git a/lily/multi-measure-rest-engraver.cc b/lily/multi-measure-rest-engraver.cc index 56a3b8d93c..e8b23b67b3 100644 --- a/lily/multi-measure-rest-engraver.cc +++ b/lily/multi-measure-rest-engraver.cc @@ -1,8 +1,8 @@ /* multi_measure_rest-engraver.cc -- implement Multi_measure_rest_engraver - (c) 1998 Jan Nieuwenhuizen - Han-Wen Nienhuys + (c) 1998 Jan Nieuwenhuizen + Han-Wen Nienhuys */ #include "proto.hh" @@ -26,7 +26,7 @@ Multi_measure_rest_engraver::Multi_measure_rest_engraver () bool Multi_measure_rest_engraver::do_try_request (Request* req_l) { - if (!req_l->musical () || !req_l->musical ()->multi_measure ()) + if (!req_l->access_Musical_req () || !req_l->access_Musical_req ()->access_Multi_measure_rest_req ()) return false; if (multi_measure_req_l_) @@ -34,7 +34,7 @@ Multi_measure_rest_engraver::do_try_request (Request* req_l) || req_start_mom_ != now_moment ()) return false; - multi_measure_req_l_ = req_l->musical ()->multi_measure (); + multi_measure_req_l_ = req_l->access_Musical_req ()->access_Multi_measure_rest_req (); req_start_mom_ = now_moment (); rest_req_stop_mom_ = req_start_mom_ + multi_measure_req_l_->duration_.length (); @@ -50,7 +50,7 @@ Multi_measure_rest_engraver::do_process_requests () Time_description const *time = get_staff_info().time_C_; mmrest_p_ = new Multi_measure_rest; rest_item_creation_mom_ = time->when_mom (); - announce_element (Score_elem_info (mmrest_p_, multi_measure_req_l_)); + announce_element (Score_element_info (mmrest_p_, multi_measure_req_l_)); start_measure_i_ = time->bars_i_; } } diff --git a/lily/multi-measure-rest.cc b/lily/multi-measure-rest.cc index 4e7e05ff4c..279b6b9b36 100644 --- a/lily/multi-measure-rest.cc +++ b/lily/multi-measure-rest.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1998 Jan Nieuwenhuizen + (c) 1998 Jan Nieuwenhuizen */ @@ -11,7 +11,7 @@ #include "debug.hh" #include "paper-def.hh" #include "lookup.hh" -#include "dimen.hh" +#include "dimension.hh" #include "rest.hh" #include "script.hh" #include "text-def.hh" @@ -39,7 +39,7 @@ Multi_measure_rest::brew_molecule_p () const * make two,four,eight-measure-rest symbols */ - Atom s (paper ()->lookup_l ()->rest (0, 0)); + Atom s (lookup_l ()->rest (0, 0)); Molecule* mol_p = new Molecule ( Atom (s)); Real interline_f = paper ()->interline_f (); mol_p->translate_axis (interline_f, Y_AXIS); @@ -47,11 +47,11 @@ Multi_measure_rest::brew_molecule_p () const if (measures_i_ > 1) { Text_def text; - text.text_str_ = measures_i_; + text.text_str_ = to_str (measures_i_); text.style_str_ = "number"; Atom s = text.get_atom (paper (), UP); s.translate_axis (3.0 * interline_f, Y_AXIS); - mol_p->add (s); + mol_p->add_atom (s); } return mol_p; diff --git a/lily/note-performer.cc b/lily/note-performer.cc index 6679f61ba6..12c8601da3 100644 --- a/lily/note-performer.cc +++ b/lily/note-performer.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1996, 1997--1998 Jan Nieuwenhuizen + (c) 1996, 1997--1998 Jan Nieuwenhuizen */ #include "note-performer.hh" @@ -11,33 +11,39 @@ #include "audio-item.hh" #include "debug.hh" -IMPLEMENT_IS_TYPE_B1(Note_performer,Performer); -ADD_THIS_TRANSLATOR(Note_performer); +IMPLEMENT_IS_TYPE_B1 (Note_performer,Performer); +ADD_THIS_TRANSLATOR (Note_performer); -Note_performer::Note_performer() +Note_performer::Note_performer () { note_req_l_ = 0; } void -Note_performer::do_print() const +Note_performer::do_print () const { #ifndef NPRINT if (note_req_l_) - { - note_req_l_->print(); - } + note_req_l_->print (); #endif } void -Note_performer::do_process_requests() +Note_performer::do_process_requests () { // this is _really_ braindead, but it generates some output - if (!note_req_l_ || !note_req_l_->melodic() || !note_req_l_->rhythmic ()) + if (!note_req_l_ || !note_req_l_->access_Melodic_req () || !note_req_l_->access_Rhythmic_req ()) return; - play (new Audio_note (note_req_l_)); + int transposing_i = 0; + //urg + Scalar prop = get_property ("transposing"); + if (!prop.empty_b () && prop.isnum_b ()) + transposing_i = prop; + + + play (new Audio_note (note_req_l_, transposing_i)); + note_req_l_ = 0; } @@ -47,9 +53,10 @@ Note_performer::do_try_request (Request* req_l) if (note_req_l_) return false; - if (!req_l->musical() || !req_l->musical ()->note ()) + if (!req_l->access_Musical_req () || !req_l->access_Musical_req ()->access_Note_req ()) return false; - note_req_l_ = req_l->musical()->melodic (); + note_req_l_ = req_l->access_Musical_req ()->access_Melodic_req (); + return true; } diff --git a/lily/performance.cc b/lily/performance.cc index 81e281d659..4332a23486 100644 --- a/lily/performance.cc +++ b/lily/performance.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include @@ -26,7 +26,7 @@ Performance::Performance () } void -Performance::add (Audio_column* p) +Performance::add_column (Audio_column* p) { p->performance_l_ = this; audio_column_p_list_.bottom().add (p); @@ -73,9 +73,8 @@ Performance::output_header_track (Midi_stream& midi_stream_r) Midi_text generate (Midi_text::TEXT, str); midi_track.add (Moment (0), &generate); - str = _("from musical definition: "); + str = _f ("from musical definition: %s", origin_str_); - str += origin_str_; Midi_text from (Midi_text::TEXT, str); midi_track.add (Moment (0), &from); @@ -96,7 +95,7 @@ Performance::add_staff (Audio_staff* l) } void -Performance::add (Audio_element *p) +Performance::add_element (Audio_element *p) { audio_elem_p_list_.bottom().add (p); } @@ -127,17 +126,19 @@ Performance::process() { out = default_outname_base_global; + if (out == "-") + out = "lelie"; int def = midi_l_->get_next_default_count (); if (def) { - out += "-" + String(def); + out += "-" + to_str (def); } out += ".midi"; } Midi_stream midi_stream (out); - *mlog << _("MIDI output to ") << out<< " ..." << endl; + *mlog << _f ("MIDI output to %s...", out) << endl; target_str_global_array.push (out); output (midi_stream); diff --git a/lily/performer-group-performer.cc b/lily/performer-group-performer.cc index a33b967e43..510ff51e22 100644 --- a/lily/performer-group-performer.cc +++ b/lily/performer-group-performer.cc @@ -3,8 +3,8 @@ source file of the GNU LilyPond music typesetter - (c) 1996, 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1996, 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ #include "performer-group-performer.hh" diff --git a/lily/performer.cc b/lily/performer.cc index b62f37ec07..aa24f97bd1 100644 --- a/lily/performer.cc +++ b/lily/performer.cc @@ -3,8 +3,8 @@ source file of the GNU LilyPond music typesetter - (c) 1996, 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1996, 1997--1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ diff --git a/lily/plet-engraver.cc b/lily/plet-engraver.cc index d4fc9005de..391ec74d40 100644 --- a/lily/plet-engraver.cc +++ b/lily/plet-engraver.cc @@ -1,7 +1,7 @@ /* plet-engraver.cc -- implement Plet_engraver - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include "proto.hh" @@ -25,7 +25,7 @@ Plet_engraver::Plet_engraver () } void -Plet_engraver::acknowledge_element (Score_elem_info i) +Plet_engraver::acknowledge_element (Score_element_info i) { if (!i.elem_l_->is_type_b (Stem::static_name ())) return; @@ -35,20 +35,20 @@ Plet_engraver::acknowledge_element (Score_elem_info i) return; if (!plet_spanner_p_->stem_l_drul_[LEFT]) - plet_spanner_p_->set_stem (LEFT, (Stem*)i.elem_l_->item ()); + plet_spanner_p_->set_stem (LEFT, (Stem*)i.elem_l_->access_Item ()); else if (span_reqs_drul_[RIGHT] && !plet_spanner_p_->stem_l_drul_[RIGHT]) - plet_spanner_p_->set_stem (RIGHT, (Stem*)i.elem_l_->item()); + plet_spanner_p_->set_stem (RIGHT, (Stem*)i.elem_l_->access_Item ()); } bool Plet_engraver::do_try_request (Request* req_l) { - Musical_req* mus_l = req_l->musical (); + Musical_req* mus_l = req_l->access_Musical_req (); if (!mus_l) return false; - Beam_req* b = mus_l->beam (); + Beam_req* b = mus_l->access_Beam_req (); if (b) { if (b->spantype) @@ -59,7 +59,7 @@ Plet_engraver::do_try_request (Request* req_l) return false; } - Plet_req* p = mus_l->plet (); + Plet_req* p = mus_l->access_Plet_req (); if (!p) return false; @@ -80,7 +80,7 @@ Plet_engraver::do_removal_processing () { if (plet_spanner_p_) { - span_reqs_drul_[LEFT]->warning (_("unterminated plet")); + span_reqs_drul_[LEFT]->warning (_ ("unterminated plet")); plet_spanner_p_->unlink (); delete plet_spanner_p_; plet_spanner_p_ = 0; @@ -95,9 +95,9 @@ Plet_engraver::do_process_requests () return; plet_spanner_p_ = new Plet_spanner; - plet_spanner_p_->tdef_p_->text_str_ = span_reqs_drul_[LEFT]->plet_i_; + plet_spanner_p_->tdef_p_->text_str_ = to_str (span_reqs_drul_[LEFT]->plet_i_); - announce_element (Score_elem_info (plet_spanner_p_, span_reqs_drul_[LEFT])); + announce_element (Score_element_info (plet_spanner_p_, span_reqs_drul_[LEFT])); } void @@ -117,8 +117,11 @@ Plet_engraver::do_pre_move_processing () if (plet_spanner_p_->visibility_i_) typeset_element (plet_spanner_p_); else - plet_spanner_p_->unlink (); - + { + plet_spanner_p_->unlink (); + delete plet_spanner_p_; + } + plet_spanner_p_ = 0; span_reqs_drul_[RIGHT] = span_reqs_drul_[LEFT] = 0; } diff --git a/lily/plet-spanner.cc b/lily/plet-spanner.cc index feeacc4db7..cf25798781 100644 --- a/lily/plet-spanner.cc +++ b/lily/plet-spanner.cc @@ -3,11 +3,11 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include "atom.hh" -#include "boxes.hh" +#include "box.hh" #include "debug.hh" #include "lookup.hh" #include "molecule.hh" @@ -31,7 +31,7 @@ Plet_spanner::Plet_spanner () visibility_i_ = 3; tdef_p_ = new Text_def; - tdef_p_->align_i_ = CENTER; + tdef_p_->align_dir_ = CENTER; tdef_p_->style_str_ = "italic"; } @@ -59,12 +59,12 @@ Plet_spanner::brew_molecule_p () const w += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]); - Atom a = paper ()->lookup_l ()->plet (dy_f, w, dir_); + Atom a = lookup_l ()->plet (dy_f, w, dir_); a.translate (Offset (dx_f_drul_[LEFT], dy_f_drul_[LEFT])); if (visibility_i_ >= 2) - mol_p->add (a); + mol_p->add_atom (a); Real interline_f = paper ()->interline_f (); Real numy_f = (dir_ > 0 ? 0 : -interline_f) + dir_ * interline_f / 2; @@ -73,7 +73,7 @@ Plet_spanner::brew_molecule_p () const dy_f_drul_[LEFT] + dy_f / 2 + numy_f)); if (visibility_i_ >= 1) - mol_p->add (num); + mol_p->add_atom (num); return mol_p; } @@ -82,7 +82,7 @@ void Plet_spanner::do_add_processing () { if (! (stem_l_drul_[LEFT] && stem_l_drul_[RIGHT])) - warning (_ ("Lonely plet.. ")); + warning (_ ("lonely plet")); Direction d = LEFT; Drul_array new_stem_drul = stem_l_drul_; @@ -126,12 +126,12 @@ Plet_spanner::do_post_processing () } void -Plet_spanner::do_substitute_dependency (Score_elem* o, Score_elem* n) +Plet_spanner::do_substitute_dependency (Score_element* o, Score_element* n) { - Stem* new_l = n ? (Stem*)n->item () : 0; - if (o->item () == stem_l_drul_[LEFT]) + Stem* new_l = n ? (Stem*)n->access_Item () : 0; + if (o->access_Item () == stem_l_drul_[LEFT]) stem_l_drul_[LEFT] = new_l; - else if (o->item () == stem_l_drul_[RIGHT]) + else if (o->access_Item () == stem_l_drul_[RIGHT]) stem_l_drul_[RIGHT] = new_l; } diff --git a/lily/ps-plet.cc b/lily/ps-plet.cc index 8d08d22b2b..47819d2203 100644 --- a/lily/ps-plet.cc +++ b/lily/ps-plet.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include @@ -11,7 +11,7 @@ #include "misc.hh" #include "lookup.hh" #include "molecule.hh" -#include "dimen.hh" +#include "dimension.hh" #include "debug.hh" #include "paper-def.hh" #include "string-convert.hh" diff --git a/lily/score-performer.cc b/lily/score-performer.cc index 7d596f90b9..9e91c14b24 100644 --- a/lily/score-performer.cc +++ b/lily/score-performer.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1996, 1997--1998 Jan Nieuwenhuizen + (c) 1996, 1997--1998 Jan Nieuwenhuizen */ #include "score-performer.hh" @@ -37,13 +37,13 @@ Score_performer::play (Audio_element * p) { if (p->is_type_b (Audio_item::static_name())) { - audio_column_l_->add ((Audio_item*)p); + audio_column_l_->add_audio_item ((Audio_item*)p); } else if (p->is_type_b (Audio_staff::static_name())) { performance_p_->add_staff ((Audio_staff*)p); } - performance_p_->add (p); + performance_p_->add_element (p); } void @@ -51,7 +51,7 @@ Score_performer::prepare (Moment m) { Global_translator::prepare (m); audio_column_l_ = new Audio_column (m); - performance_p_->add (audio_column_l_); + performance_p_->add_column (audio_column_l_); post_move_processing (); } diff --git a/lily/slur.cc b/lily/slur.cc index 53b495f911..14edd7b3e2 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -3,8 +3,8 @@ source file of the GNU LilyPond music typesetter - (c) 1996, 1997--1998, 1998 Han-Wen Nienhuys - Jan Nieuwenhuizen + (c) 1996, 1997--1998, 1998 Han-Wen Nienhuys + Jan Nieuwenhuizen */ /* @@ -24,7 +24,7 @@ #include "p-col.hh" #include "molecule.hh" #include "debug.hh" -#include "boxes.hh" +#include "box.hh" #include "bezier.hh" #include "encompass-info.hh" #include "main.hh" @@ -36,7 +36,7 @@ Slur::Slur () } void -Slur::add (Note_column*n) +Slur::add_column (Note_column*n) { encompass_arr_.push (n); add_dependency (n); @@ -71,13 +71,13 @@ Slur::do_pre_processing () } void -Slur::do_substitute_dependency (Score_elem*o, Score_elem*n) +Slur::do_substitute_dependency (Score_element*o, Score_element*n) { int i; - while ((i = encompass_arr_.find_i ((Note_column*)o->item ())) >=0) + while ((i = encompass_arr_.find_i ((Note_column*)o->access_Item ())) >=0) { if (n) - encompass_arr_[i] = (Note_column*)n->item (); + encompass_arr_[i] = (Note_column*)n->access_Item (); else encompass_arr_.del (i); } @@ -239,11 +239,13 @@ Slur::get_encompass_offset_arr () const Array notes; notes.push (Offset (0,0)); +// notes.push (left); for (int i = first; i < last; i++) { Encompass_info info (encompass_arr_[i], dir_); notes.push (info.o_ - left); +// notes.push (info.o_ - left); } notes.push (d); @@ -252,11 +254,13 @@ Slur::get_encompass_offset_arr () const int n = last - first + 2; Array notes (n); notes[0] = Offset (0,0); +// notes[0] = left; for (int i = first; i < last; i++) { Encompass_info info (encompass_arr_[i], dir_); notes[i - first + 1] = info.o_ - left; +// notes[i - first + 1] = info.o_; } notes[n - 1] = Offset (d); diff --git a/lily/staff-margin-engraver.cc b/lily/staff-margin-engraver.cc new file mode 100644 index 0000000000..26150a6ba0 --- /dev/null +++ b/lily/staff-margin-engraver.cc @@ -0,0 +1,91 @@ +/* + staff-margin-engraver.cc -- implement Staff_margin_engraver + + source file of the GNU LilyPond music typesetter + + (c) 1998 Jan Nieuwenhuizen +*/ + +#include "staff-margin-engraver.hh" +#include "script.hh" +#include "text-def.hh" +#include "paper-def.hh" +#include "command-request.hh" +#include "bar.hh" +#include "stem.hh" +#include "time-description.hh" + +IMPLEMENT_IS_TYPE_B1 (Staff_margin_engraver, Engraver); +ADD_THIS_TRANSLATOR (Staff_margin_engraver); + +Staff_margin_engraver::Staff_margin_engraver () +{ + script_p_ = 0; +} + + + +/* + TODO + fix alignment/support + + should be able to set whole paragraph (multiple lines, centre) to + left (right?) of staff, e.g.: + ______ + |_______ + 2 Clarinetti |________ + (Bb) |___________ + |______________ +*/ +void +Staff_margin_engraver::acknowledge_element (Score_element_info i) +{ + Item * it = i.elem_l_->access_Item (); + + if (!it + || script_p_ + || !it->is_type_b (Bar::static_name()) + || (i.origin_grav_l_arr_.size() != 1)) + return; + + String string = get_property ("instrument"); + String str = get_property ("instr"); + if (now_moment () > Moment (0)) + string = str; + + if (!string.length_i ()) + return; + + script_p_ = new Script; + script_p_->axis_ = X_AXIS; + + Text_def *td_p =new Text_def; + td_p->align_dir_ = LEFT; + td_p->text_str_ = string; + // huh? + script_p_->dir_ = RIGHT; + script_p_->specs_p_ = td_p; + script_p_->breakable_b_ = true; + + + Scalar pri = get_property ("marginBreakPriority"); + if (pri.length_i () && pri.isnum_b ()) + { + script_p_->break_priority_i_ = int (pri); + } + else + script_p_ ->break_priority_i_ = it->break_priority_i_; + + announce_element (Score_element_info (script_p_, 0)); +} + +void +Staff_margin_engraver::do_pre_move_processing () +{ + if (script_p_) + { + typeset_element (script_p_); + script_p_ =0; + } +} + diff --git a/lily/stem-info.cc b/lily/stem-info.cc index 4251d294f9..535cc6f7d7 100644 --- a/lily/stem-info.cc +++ b/lily/stem-info.cc @@ -3,12 +3,12 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include "proto.hh" -#include "dimen.hh" +#include "dimension.hh" #include "misc.hh" #include "debug.hh" #include "atom.hh" @@ -68,6 +68,7 @@ Stem_info::Stem_info (Stem const *s) Real min_stem2_f = s->paper ()->get_var ("beam_minimum_stem2"); Real ideal_stem1_f = s->paper ()->get_var ("beam_ideal_stem1"); Real ideal_stem2_f = s->paper ()->get_var ("beam_ideal_stem2"); + Real shorten_f = s->paper ()->get_var ("forced_stem_shorten"); if (!beam_dir_ || (beam_dir_ == dir_)) { @@ -86,6 +87,10 @@ Stem_info::Stem_info (Stem const *s) miny_f_ += min_stem2_f; } + // stems in unnatural (forced) direction are shortened + if (s->dir_ != s->get_default_dir ()) + idealy_f_ -= shorten_f; + // lowest beam of (UP) beam must never be lower than second staffline miny_f_ = miny_f_ >? (- 2 * internote_f - beam_f + (mult_i_ > 0) * beam_f + interbeam_f * (mult_i_ - 1)); diff --git a/lily/time-signature-performer.cc b/lily/time-signature-performer.cc new file mode 100644 index 0000000000..df41bf56b0 --- /dev/null +++ b/lily/time-signature-performer.cc @@ -0,0 +1,56 @@ +/* + time_signature-performer.cc -- implement Time_signature_performer + + source file of the GNU LilyPond music typesetter + + (c) 1997--1998 Jan Nieuwenhuizen +*/ + +#include "time-signature-performer.hh" +#include "command-request.hh" +#include "audio-item.hh" + +IMPLEMENT_IS_TYPE_B1(Time_signature_performer,Performer); +ADD_THIS_TRANSLATOR(Time_signature_performer); + +Time_signature_performer::Time_signature_performer() +{ + time_signature_req_l_ = 0; +} + +Time_signature_performer::~Time_signature_performer() +{ +} + +void +Time_signature_performer::do_print() const +{ +#ifndef NPRINT + if (time_signature_req_l_) + time_signature_req_l_->print(); +#endif +} + +void +Time_signature_performer::do_process_requests() +{ + if (time_signature_req_l_) + play (new Audio_time_signature (time_signature_req_l_)); + time_signature_req_l_ = 0; +} + +bool +Time_signature_performer::do_try_request (Request* req_l) +{ + if (time_signature_req_l_) + return false; + + if (req_l->access_Command_req ()) + time_signature_req_l_ = req_l->access_Command_req ()->access_Time_signature_change_req (); + + if (time_signature_req_l_) + return true; + + return false; +} + diff --git a/make/lelievijver.lsm.in b/make/lelievijver.lsm.in index 3046743385..2e25e2a863 100644 --- a/make/lelievijver.lsm.in +++ b/make/lelievijver.lsm.in @@ -2,22 +2,14 @@ Begin3 Titel: LilyPond Versie: @TOPLEVEL_VERSION@ Inschrijf datum: @DATE@ -Beschrijving: LilyPond is de muziek typesetter van het GNU Project. - Het programma genereert muziek in zichtbare of - hoorbare vorm uit uit een muzikale definitie file: - voor bladmuziek wordt typeset informatie naar een - TeX file geschreven, voor een (mechanische) uitvoering - wordt een MIDI file geschreven. Enkele kunstjes zijn - verscheidene notenbalken, maatsoorten, sleutels, - toonsoorten, teksten, krachtige invoer taal, cadensen, - balken, boogjes, triolen. +Beschrijving: @FLAPTEKST@ Trefwoorden: muziek typezetten midi notatie Auteur: hanwen@stack.nl (Han-Wen Nienhuys) - jan@digicash.com (Jan Nieuwenhuizen) -Onderhouden door: hanwen@stack.nl (Han-Wen Nienhuys) + janneke@gnu.org (Jan Nieuwenhuizen) +Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys) Voornaamste plek: sunsite.unc.edu /pub/Linux/apps - 395k lilypond-@TOPLEVEL_VERSION@.tar.gz + 610k @package@-@TOPLEVEL_VERSION@.tar.gz Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/ - 395k lilypond-@TOPLEVEL_VERSION@.tar.gz -Copi"eer politie: GPL + 610k @package@-@TOPLEVEL_VERSION@.tar.gz +Copi-eer voorwaarden: GPL End diff --git a/make/lilypond.lsm.in b/make/lilypond.lsm.in index 995cbd5d65..b7b4b25bce 100644 --- a/make/lilypond.lsm.in +++ b/make/lilypond.lsm.in @@ -2,21 +2,14 @@ Begin3 Title: LilyPond Version: @TOPLEVEL_VERSION@ Entered-date: @DATE@ -Description: LilyPond is the GNU Project music typesetter. The program - generates visual or auditive output from a music - definition file: it can typeset formatted sheet music - to a TeX file and play (mechanical) performances to a - MIDI file. Features include multiple staffs, meters, - clefs, keys, lyrics, versatile input-language, - cadenzas, beams, slurs, triplets. - It includes a nice font of musical symbols. +Description: @BLURB@ Keywords: music notation typesetting midi fonts engraving Author: hanwen@cs.ruu.nl (Han-Wen Nienhuys) - jan@digicash.com (Jan Nieuwenhuizen) + janneke@gnu.org (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert - 570k lilypond-@TOPLEVEL_VERSION@.tar.gz + 730k @package@-@TOPLEVEL_VERSION@.tar.gz Original-site: pcnov095.win.tue.nl /pub/lilypond/development/ - 570k lilypond-@TOPLEVEL_VERSION@.tar.gz + 730k @package@-@TOPLEVEL_VERSION@.tar.gz Copying-policy: GPL End diff --git a/mf/feta-autometric.mf b/mf/feta-autometric.mf index 8d53d52150..c638935f85 100644 --- a/mf/feta-autometric.mf +++ b/mf/feta-autometric.mf @@ -4,7 +4,7 @@ % source file of the Feta (Font-En-Tja) pretty-but-neat music font % % (c) 1997 Han-Wen Nienhuys -% Jan Nieuwenhuizen +% Jan Nieuwenhuizen % % these macros help create ascii logging output % to automate generation of lily tables and tex backend diff --git a/mf/feta-beum.mf b/mf/feta-beum.mf index 53c8cc4f24..7097d68d3c 100644 --- a/mf/feta-beum.mf +++ b/mf/feta-beum.mf @@ -3,7 +3,7 @@ % % source file of LilyPond's pretty-but-neat music font % -% (c) 1997 Jan Nieuwenhuizen +% (c) 1997 Jan Nieuwenhuizen % mode_setup; diff --git a/mf/feta-bolletjes.mf b/mf/feta-bolletjes.mf index 402de0420c..8a48d4bfc7 100644 --- a/mf/feta-bolletjes.mf +++ b/mf/feta-bolletjes.mf @@ -3,7 +3,7 @@ % % source file of LilyPond's pretty-but-neat music font % -% (c) 1997 Jan Nieuwenhuizen +% (c) 1997 Jan Nieuwenhuizen % & Han-Wen Nienhuys % diff --git a/mf/feta-brackets16.mf b/mf/feta-brackets16.mf index 8231f1dc3e..9e2a79eee5 100644 --- a/mf/feta-brackets16.mf +++ b/mf/feta-brackets16.mf @@ -5,7 +5,7 @@ % source file of the Feta (Font-En-Tja) music font % % (c) 1997 Han-Wen Nienhuys -% Jan Nieuwenhuizen +% Jan Nieuwenhuizen % font_identifier:="feta-brackets16"; diff --git a/mf/feta-brackets20.mf b/mf/feta-brackets20.mf index 2884ce5da7..fb409093d0 100644 --- a/mf/feta-brackets20.mf +++ b/mf/feta-brackets20.mf @@ -4,7 +4,7 @@ % source file of the Feta (Font-En-Tja) music font % % (c) 1997 Han-Wen Nienhuys -% Jan Nieuwenhuizen +% Jan Nieuwenhuizen % font_identifier:="feta-brackets20"; diff --git a/mf/feta-klef.mf b/mf/feta-klef.mf index 2cf10ca788..cccaef43fd 100644 --- a/mf/feta-klef.mf +++ b/mf/feta-klef.mf @@ -4,7 +4,7 @@ % source file of the Feta (Font-En-Tja) music font % % (c) 1997 Han-Wen Nienhuys , -% Jan Nieuwenhuizen +% Jan Nieuwenhuizen diff --git a/mf/feta-schrift.mf b/mf/feta-schrift.mf index 8b28f2a47b..7257a45277 100644 --- a/mf/feta-schrift.mf +++ b/mf/feta-schrift.mf @@ -5,7 +5,7 @@ % music font % % (c) 1997 Han-Wen Nienhuys -% Jan Nieuwenhuizen +% Jan Nieuwenhuizen % @@ -130,10 +130,10 @@ fet_endchar; fet_beginchar("portato/single tenuto", "tenuto", "tenuto") save thick; - thick# = 1.2 stafflinethickness#; + thick# = 1.4 stafflinethickness#; define_pixels(thick); - set_char_box(.9 interline#, .9 interline#, thick#/2,thick#/2); + set_char_box(.6 interline#, .6 interline#, thick#/2,thick#/2); pickup pencircle scaled thick; lft x1 = -b; rt x2 = w; diff --git a/mf/feta-slag.mf b/mf/feta-slag.mf index 7d8f1d52ac..292a5db899 100644 --- a/mf/feta-slag.mf +++ b/mf/feta-slag.mf @@ -4,7 +4,7 @@ % source file of the Feta (defintively not an abbreviation for Font-En-Tja) % music font % -% (c) 1998 Jan Nieuwenhuizen +% (c) 1998 Jan Nieuwenhuizen % % this file is included by feta-scripts.mf diff --git a/mf/feta-sleur.mf b/mf/feta-sleur.mf index 24637e273d..01c1e1406b 100644 --- a/mf/feta-sleur.mf +++ b/mf/feta-sleur.mf @@ -3,7 +3,7 @@ % % source file of LilyPond's pretty-but-neat music font % -% (c) 1997 Jan Nieuwenhuizen +% (c) 1997 Jan Nieuwenhuizen % & Han-Wen Nienhuys % % see Documentation/fonts.tex diff --git a/mi2mu/include/mi2mu-global.hh b/mi2mu/include/mi2mu-global.hh index 005870af7d..4ed873fb54 100644 --- a/mi2mu/include/mi2mu-global.hh +++ b/mi2mu/include/mi2mu-global.hh @@ -1,7 +1,7 @@ // // mi2mu-global.hh -- declare global (sic) stuff for mi2mu // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #ifndef MI2MU_GLOBAL_HH #define MI2MU_GLOBAL_HH diff --git a/mi2mu/include/midi-parser.hh b/mi2mu/include/midi-parser.hh index cc883e2a1b..6659fb42cd 100644 --- a/mi2mu/include/midi-parser.hh +++ b/mi2mu/include/midi-parser.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ diff --git a/mi2mu/include/midi-score-parser.hh b/mi2mu/include/midi-score-parser.hh index c13ea02727..0dc9823705 100644 --- a/mi2mu/include/midi-score-parser.hh +++ b/mi2mu/include/midi-score-parser.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ diff --git a/mi2mu/include/midi-track-parser.hh b/mi2mu/include/midi-track-parser.hh index 0115adecd5..3679ef6007 100644 --- a/mi2mu/include/midi-track-parser.hh +++ b/mi2mu/include/midi-track-parser.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ diff --git a/mi2mu/include/mudela-column.hh b/mi2mu/include/mudela-column.hh index 24d5196308..b1ab97c24b 100644 --- a/mi2mu/include/mudela-column.hh +++ b/mi2mu/include/mudela-column.hh @@ -1,7 +1,7 @@ // // mudela-column.hh -- declare Mudela_column // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #ifndef MUDELA_COLUMN_HH #define MUDELA_COLUMN_HH diff --git a/mi2mu/include/mudela-item.hh b/mi2mu/include/mudela-item.hh index 76754ebc80..461d43b71a 100644 --- a/mi2mu/include/mudela-item.hh +++ b/mi2mu/include/mudela-item.hh @@ -1,7 +1,7 @@ // // mudela-item.hh -- declare mudela_item // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #ifndef MUDELA_ITEM_HH #define MUDELA_ITEM_HH @@ -45,10 +45,10 @@ public: int minor_i_; }; -class Mudela_meter : public Mudela_item +class Mudela_time_signature : public Mudela_item { public: - Mudela_meter (int num_i, int den_i, int division_4_i, int count_32_i); + Mudela_time_signature (int num_i, int den_i, int division_4_i, int count_32_i); Duration i2_dur (int time_i, int division_1_i); int clocks_1_i(); @@ -108,7 +108,7 @@ public: private: int useconds_per_4_i_; - Real seconds_per_1_f_; + Moment seconds_per_1_mom_; }; class Mudela_text : public Mudela_item diff --git a/mi2mu/include/mudela-score.hh b/mi2mu/include/mudela-score.hh index d1102f0808..4d0992b35c 100644 --- a/mi2mu/include/mudela-score.hh +++ b/mi2mu/include/mudela-score.hh @@ -1,7 +1,7 @@ // // mudela-score.hh -- declare Mudela_score // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #ifndef MUDELA_SCORE_HH #define MUDELA_SCORE_HH @@ -28,7 +28,7 @@ public: // ugh Mudela_key* mudela_key_l_; - Mudela_meter* mudela_meter_l_; + Mudela_time_signature* mudela_time_signature_l_; Mudela_tempo* mudela_tempo_l_; private: diff --git a/mi2mu/include/mudela-staff.hh b/mi2mu/include/mudela-staff.hh index 6acb91b56a..4608e0859c 100644 --- a/mi2mu/include/mudela-staff.hh +++ b/mi2mu/include/mudela-staff.hh @@ -1,7 +1,7 @@ // // mudela-staff.hh -- declare mudela_staff // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #ifndef MUDELA_STAFF_HH #define MUDELA_STAFF_HH @@ -27,7 +27,7 @@ public: String instrument_str_; String name_str_; Mudela_key* mudela_key_l_; - Mudela_meter* mudela_meter_l_; + Mudela_time_signature* mudela_time_signature_l_; Mudela_tempo* mudela_tempo_l_; int number_i_; diff --git a/mi2mu/include/mudela-stream.hh b/mi2mu/include/mudela-stream.hh index f353838ea6..6953a961cd 100644 --- a/mi2mu/include/mudela-stream.hh +++ b/mi2mu/include/mudela-stream.hh @@ -1,7 +1,7 @@ // // mudela-stream.hh -- part of LilyPond // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen // should i be named Mudela_stream? @@ -10,6 +10,7 @@ #include "mi2mu-proto.hh" #include "string.hh" +#include "scalar.hh" /// Lily output class Mudela_stream { @@ -17,7 +18,7 @@ public: Mudela_stream (String filename_str); ~Mudela_stream(); - Mudela_stream& operator << (String str); + Mudela_stream& operator << (Scalar s); Mudela_stream& operator << (Mudela_item& mudela_item_r); private: diff --git a/mi2mu/include/mudela-voice.hh b/mi2mu/include/mudela-voice.hh index ab4aef142d..28b4efcdb9 100644 --- a/mi2mu/include/mudela-voice.hh +++ b/mi2mu/include/mudela-voice.hh @@ -1,7 +1,7 @@ // // mudela-voice.hh -- declare Mudela_voice // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #ifndef MUDELA_VOICE_HH #define MUDELA_VOICE_HH diff --git a/mi2mu/main.cc b/mi2mu/main.cc index 3ae4f39905..20e1866a43 100644 --- a/mi2mu/main.cc +++ b/mi2mu/main.cc @@ -1,12 +1,14 @@ // -// main.cc -- implement silly main() entry point +// main.cc -- implement silly main () entry point // should have Root class. // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #include +#include +#include "config.hh" #include "string-convert.hh" -#include "lgetopt.hh" +#include "getopt-long.hh" #include "file-path.hh" #include "duration-convert.hh" #include "source.hh" @@ -15,7 +17,11 @@ #include "midi-score-parser.hh" #include "mudela-item.hh" #include "mudela-score.hh" -//#include "version.hh" + +#if HAVE_GETTEXT +#include +#endif + // ugh String filename_str_g; @@ -34,25 +40,55 @@ Verbose level_ver = NORMAL_ver; void usage() { - LOGOUT(NORMAL_ver) << - _("Usage: mi2mu [options] midi-file\n" - "Translate midi-file to mudela\n" - "\n" - "Options:\n" + cout << _f ("Usage: %s [OPTION]... [FILE]", "mi2mu"); + cout << '\n'; + cout << _ ("Translate midi-file to mudela"); + cout << '\n'; + cout << '\n'; + cout << _ ("Options:"); + cout << '\n'; + cout << _ ( " -b, --no-quantify write exact durations, e.g.: a4*385/384\n" - " -d, --debug print lots of debugging stuff\n" + ); + cout << _ ( + " -D, --debug enable debugging output\n" + ); + cout << _ ( " -h, --help this help\n" + ); + cout << _ ( " -I, --include=DIR add DIR to search path\n" + ); + cout << _ ( " -k, --key=ACC[:MINOR] set key: ACC +sharps/-flats; :1 minor\n" + ); + cout << _ ( " -n, --no-silly assume no plets or double dots, smallest is 32\n" + ); + cout << _ ( " -o, --output=FILE set FILE as default output\n" + ); + cout << _ ( " -p, --no-plets assume no plets\n" + ); + cout << _ ( " -q, --quiet be quiet\n" + ); + cout << _ ( " -T, --no-timestamps don't timestamp the output\n" + ); + cout << _ ( " -s, --smallest=N assume no shorter (reciprocal) durations than N\n" + ); + cout << _ ( " -v, --verbose be verbose\n" + ); + cout << _ ( " -w, --warranty show warranty and copyright\n" - " -x, --no-double-dots assume no double dotted notes\n") + ); + cout << _ ( + " -x, --no-double-dots assume no double dotted notes\n" + ); ; } @@ -65,37 +101,49 @@ identify() void notice() { - LOGOUT(NORMAL_ver) << - _("\n" - "Mi2mu, translate midi to mudela.\n" - "Copyright (C) 1997 by\n" - " Jan Nieuwenhuizen \n" - " Han-Wen Nienhuys \n" - "\n" - " This program is free software; you can redistribute it and/or\n" - "modify it under the terms of the GNU General Public License version 2\n" - "as published by the Free Software Foundation.\n" - "\n" - " This program is distributed in the hope that it will be useful,\n" - "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" - "General Public License for more details.\n" - "\n" - " You should have received a copy (refer to the file COPYING) of the\n" - "GNU General Public License along with this program; if not, write to\n" - "the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n" - "USA.\n"); + LOGOUT(NORMAL_ver) << '\n'; + LOGOUT(NORMAL_ver) << _ ("Mi2mu, translate midi to mudela"); + LOGOUT(NORMAL_ver) << '\n'; + LOGOUT(NORMAL_ver) << _f ("Copyright (c) %s by", "1997, 1998"); + LOGOUT(NORMAL_ver) << '\n'; + LOGOUT(NORMAL_ver) << " " + _ ("Han-Wen Nienhuys ") + "\n"; + LOGOUT(NORMAL_ver) << " " + _ ("Jan Nieuwenhuizen ") + "\n"; + LOGOUT(NORMAL_ver) << '\n'; + LOGOUT(NORMAL_ver) << _ ( + " This program is free software; you can redistribute it and/or\n" + "modify it under the terms of the GNU General Public License version 2\n" + "as published by the Free Software Foundation.\n" + "\n" + " This program is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" + "General Public License for more details.\n" + "\n" + " You should have received a copy (refer to the file COPYING) of the\n" + "GNU General Public License along with this program; if not, write to\n" + "the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n" + "USA.\n"); } int main (int argc_i, char* argv_sz_a[]) { + +#if HAVE_GETTEXT + setlocale (LC_ALL, ""); +// setlocale (LC_MESSAGES, ""); + String name (PACKAGE); + name.to_lower (); + bindtextdomain (name.ch_C (), DIR_LOCALEDIR); + textdomain (name.ch_C ()) ; +#endif + Mudela_key key (0, 0); Long_option_init long_option_init_a[] = { {0, "no-quantify", 'b'}, - {0, "debug", 'd'}, + {0, "debug", 'D'}, {0, "help", 'h'}, {1, "key", 'k'}, {0, "no-silly", 'n'}, @@ -118,7 +166,7 @@ main (int argc_i, char* argv_sz_a[]) case 'b': Duration_convert::no_quantify_b_s = true; break; - case 'd': + case 'D': level_ver = DEBUG_ver; break; case 'h': @@ -135,7 +183,7 @@ main (int argc_i, char* argv_sz_a[]) int i = str.index_i (':'); i = (i >=0 ? i : str.length_i ()); key.accidentals_i_ = String_convert::dec2_i (str.left_str (i)); - key.minor_i_ = (int)(bool)String_convert::dec2_i (str.cut (i + 1,1)); + key.minor_i_ = (int)(bool)String_convert::dec2_i (str.cut_str (i + 1,1)); break; } case 'n': diff --git a/mi2mu/mi2mu-version.cc b/mi2mu/mi2mu-version.cc index 55946e5470..113512d363 100644 --- a/mi2mu/mi2mu-version.cc +++ b/mi2mu/mi2mu-version.cc @@ -1,20 +1,20 @@ // // version.cc -- implement inexpensive versioning // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #include #include "config.hh" +#include "version.hh" +#define VERSION_SZ MAJOR_VERSION "." MINOR_VERSION "." PATCH_LEVEL "." MY_PATCH_LEVEL -// static char *s = "mi2mu " MAJOR_VERSION "." MINOR_VERSION "." PATCH_LEVEL MY_PATCH_LEVEL " #%d"; -//urg -//static char *s = "mi2mu " TOPLEVEL_VERSION " #%d"; -static char *s = "mi2mu FIXME " ; +static char *s = "mi2mu " VERSION_SZ; const char * mi2mu_version_sz() -{ return s; +{ + return s; } diff --git a/mi2mu/midi-parser.cc b/mi2mu/midi-parser.cc index ad8e020d26..eafd50c004 100644 --- a/mi2mu/midi-parser.cc +++ b/mi2mu/midi-parser.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include @@ -61,7 +61,7 @@ Midi_parser::get_str (int n) { assert (n >= 0); if (!n) - warning (_("Zero length string encountered")); + warning (_ ("zero length string encountered")); Byte const* p = forward_byte_L (n); return String (p, n); @@ -97,5 +97,5 @@ Midi_parser::message (String str) void Midi_parser::warning (String str) { - ::message (message (String (_("warning: ")) + str)); + ::message (message (String (_ ("warning: ")) + str)); } diff --git a/mi2mu/midi-score-parser.cc b/mi2mu/midi-score-parser.cc index b0cac0c889..92eb74833e 100644 --- a/mi2mu/midi-score-parser.cc +++ b/mi2mu/midi-score-parser.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include "moment.hh" @@ -21,7 +21,7 @@ Midi_score_parser::open (String filename_str, Sources* sources_l) { info_l_->source_l_ = sources_l->get_file_l (filename_str); if (!info_l_->source_l_) - ::error (_("can't find: `") + filename_str + "'"); + ::error (_f ("can't find file: `%s\'", filename_str)); info_l_->byte_L_ = (Byte const*)info_l_->source_l_->ch_C (); // info_l_->end_byte_L_ = info_l_->byte_L_ + info_l_->source_l_->length_i (); info_l_->end_byte_L_ = info_l_->byte_L_ + info_l_->source_l_->length_i () + 1; @@ -42,12 +42,12 @@ Midi_score_parser::parse_header () { String str = get_str (4); if ( str != "MThd" ) - exit (_("MIDI header expected")); + exit (_ ("MIDI header expected")); int length_i = get_i (4); // is this signed? if (length_i < 6) - exit (_("Invalid header length")); + exit (_ ("Invalid header length")); info_l_->format_i_ = get_i (2); if (info_l_->format_i_ != 0 && info_l_->format_i_ != 1) exit (_("Invalid midi format")); @@ -56,7 +56,7 @@ Midi_score_parser::parse_header () exit (_("Invalid number of tracks")); info_l_->division_1_i_ = get_i (2) * 4; if (info_l_->division_1_i_ < 0) - exit (_("Cannot handle non-metrical time")); + exit (_f ("can't handle %s", _ ("non-metrical time"))); // ugh Duration::division_1_i_s = info_l_->division_1_i_; forward_byte_L (length_i - 6); @@ -82,7 +82,7 @@ Mudela_score* Midi_score_parser::parse_score () { int current_bar_i = 0; - Mudela_meter m4 (4, 2, 24, 8); + Mudela_time_signature m4 (4, 2, 24, 8); Moment bar4_mom = m4.bar_mom (); Mudela_score* score_p = new Mudela_score( 1, 1, 1 ); @@ -92,7 +92,7 @@ Midi_score_parser::parse_score () for (int i = 0; i < info_l_->tracks_i_; i++) tracks.push (new Midi_track_parser (info_l_, i)); - LOGOUT (NORMAL_ver) << _("Parsing...\n"); + LOGOUT (NORMAL_ver) << _ ("Parsing...\n"); while (tracks.size ()) { int i = find_earliest_i (tracks); diff --git a/mi2mu/midi-track-parser.cc b/mi2mu/midi-track-parser.cc index ffc3380da3..ff7d4453d4 100644 --- a/mi2mu/midi-track-parser.cc +++ b/mi2mu/midi-track-parser.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Jan Nieuwenhuizen + (c) 1997--1998 Jan Nieuwenhuizen */ #include @@ -60,16 +60,15 @@ Midi_track_parser::note_end (Mudela_column* col_l, int channel_i, int pitch_i, i i->end_column_l_ = col_l; // LOGOUT(DEBUG_ver) << "Note: " << pitch_i; // LOGOUT(DEBUG_ver) << "; " << i->mudela_column_l_->at_mom_; - // LOGOUT(DEBUG_ver) << ", " << i->end_column_l_->at_mom_ << "\n"; + // LOGOUT(DEBUG_ver) << ", " << i->end_column_l_->at_mom_ << '\n'; i.remove_p(); return; } else i++; } - warning (String (_("junking note-end event: ")) - + _(" channel = ") + String_convert::i2dec_str (channel_i, 0, ' ') - + _(", pitch = ") + String_convert::i2dec_str (pitch_i, 0, ' ')); + warning (_f ("junking note-end event: channel = %d, pitch = %d", + channel_i, pitch_i)); } void @@ -98,7 +97,7 @@ Midi_track_parser::parse (Mudela_column* col_l) if (!eot()) return 0; - // vangnet + // catch-all note_end_all (col_l); Mudela_staff* p = mudela_staff_p_; @@ -123,11 +122,11 @@ Midi_track_parser::parse_event (Mudela_column* col_l) if (byte <= 0x5f) { if (running_byte_ <= 0x5f) - exit (_("Invalid running status")); + exit (_ ("invalid running status")); /* 'running status' rather means 'missing status'. we'll just pretend we read the running status byte. - */ + */ byte = running_byte_; } else @@ -137,7 +136,7 @@ Midi_track_parser::parse_event (Mudela_column* col_l) // DATA_ENTRY [\x60-\x79] if ((byte >= 0x60) && (byte <= 0x79)) { - next_byte (); + next_byte (); } // ALL_NOTES_OFF [\x7a-\x7f] else if ((byte >= 0x7a) && (byte <= 0x7f)) @@ -165,7 +164,7 @@ Midi_track_parser::parse_event (Mudela_column* col_l) /* sss: some broken devices encode NOTE_OFF as NOTE_ON with zero volume - */ + */ if (dyn_i) { Mudela_note* p = new Mudela_note (col_l, channel_i, pitch_i, dyn_i); @@ -250,11 +249,11 @@ Midi_track_parser::parse_event (Mudela_column* col_l) Mudela_text* p = new Mudela_text (t, str); item_p = p; if (t == Mudela_text::COPYRIGHT) - mudela_staff_p_->copyright_str_ = p->text_str_; + mudela_staff_p_->copyright_str_ = p->text_str_; else if (t == Mudela_text::TRACK_NAME) - mudela_staff_p_->name_str_ = p->text_str_; + mudela_staff_p_->name_str_ = p->text_str_; else if (t == Mudela_text::INSTRUMENT_NAME) - mudela_staff_p_->instrument_str_ = p->text_str_; + mudela_staff_p_->instrument_str_ = p->text_str_; } // END_OF_TRACK [\x2f][\x00] else @@ -295,11 +294,11 @@ Midi_track_parser::parse_event (Mudela_column* col_l) int den_i = (int)next_byte (); int clocks_4_i = (int)next_byte (); int count_32_i = (int)next_byte (); - Mudela_meter* p = new Mudela_meter ( num_i, den_i, clocks_4_i, count_32_i ); + Mudela_time_signature* p = new Mudela_time_signature ( num_i, den_i, clocks_4_i, count_32_i ); item_p = p; - info_l_->score_l_->mudela_meter_l_ = p; + info_l_->score_l_->mudela_time_signature_l_ = p; info_l_->bar_mom_ = p->bar_mom (); - mudela_staff_p_->mudela_meter_l_ = p; + mudela_staff_p_->mudela_time_signature_l_ = p; } // KEY [\x59][\x02] else if ((byte == 0x59) && (next == 0x02)) @@ -324,12 +323,12 @@ Midi_track_parser::parse_event (Mudela_column* col_l) { next_byte (); next_byte (); - warning (_("Unimplemented MIDI meta-event")); + warning (_ ("unimplemented MIDI meta-event")); } } } else - exit (_("Invalid MIDI event")); + exit (_ ("invalid MIDI event")); if (item_p) item_p->mudela_column_l_ = col_l; @@ -344,16 +343,16 @@ Midi_track_parser::parse_header () { String str = get_str (4); if ( str != "MTrk" ) - exit (_("MIDI track expected")); + exit (_ ("MIDI track expected")); int length_i = get_i (4); // is this signed? if (length_i < 0) - exit (_("Invalid track length")); + exit (_ ("invalid track length")); assert (!track_info_p_); track_info_p_ = new Midi_parser_info (*info_l_); track_info_p_->end_byte_L_ = track_info_p_->byte_L_ + length_i; forward_byte_L (length_i); -// forward_byte_L (length_i-1); + // forward_byte_L (length_i-1); info_l_ = track_info_p_; } diff --git a/mi2mu/mudela-column.cc b/mi2mu/mudela-column.cc index a197fb8f15..5a00e88310 100644 --- a/mi2mu/mudela-column.cc +++ b/mi2mu/mudela-column.cc @@ -1,7 +1,7 @@ // // mudela-column.cc -- implement Mudela_column // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #include "mudela-column.hh" diff --git a/mi2mu/mudela-score.cc b/mi2mu/mudela-score.cc index 3f8573c96f..92329cd74d 100644 --- a/mi2mu/mudela-score.cc +++ b/mi2mu/mudela-score.cc @@ -1,7 +1,7 @@ // // mudela-score.cc -- implement Mudela_score // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #include #include "moment.hh" @@ -19,7 +19,7 @@ #include "cursor.tcc" //static Mudela_key key_c (0, 0); -static Mudela_meter meter_4 (4, 2, 24, 8); +static Mudela_time_signature time_sig_4 (4, 2, 24, 8); // useconds per 4: 250000 === 60 4 per minute static Mudela_tempo tempo_60 (1000000); @@ -31,7 +31,7 @@ Mudela_score::Mudela_score (int format_i, int tracks_i, int tempo_i) column_l_array_.push (new Mudela_column (this, Moment (0))); // mudela_key_l_ = &key_c; mudela_key_l_ = 0; - mudela_meter_l_ = &meter_4; + mudela_time_signature_l_ = &time_sig_4; mudela_tempo_l_ = &tempo_60; } @@ -91,21 +91,29 @@ Mudela_score::find_column_l (Moment mom) Mudela_column* Mudela_score::get_column_l (Moment mom) { - if ( column_l_array_ [column_l_array_.size() - 1]->at_mom () > mom ) + int i; + Mudela_column *c=0; + for (i=column_l_array_.size() - 1; !c && i >=0; i--) { - error (_("ugh")); - exit (1); + if (column_l_array_ [i]->at_mom () == mom ) + c = column_l_array_[i]; + else if (column_l_array_[i]->at_mom () < mom) + break; + } + if (!c) + { + c = new Mudela_column (this, mom); + column_l_array_.insert (c, i+1); } - if ( column_l_array_[column_l_array_.size() - 1]->at_mom () < mom ) - column_l_array_.push (new Mudela_column (this, mom)); - return column_l_array_ [column_l_array_.size() - 1]; + assert (c->at_mom () == mom); + return c; } void Mudela_score::output (String filename_str) { - LOGOUT(NORMAL_ver) << _("Lily output to ") << filename_str << " ..." << endl; + LOGOUT(NORMAL_ver) << _f ("Lily output to %s...", filename_str) << endl; // ugh, ugly midi type 1 fix if ( (mudela_staff_p_list_.size() == 1) && !mudela_staff_p_list_.top()->number_i_) @@ -115,23 +123,22 @@ Mudela_score::output (String filename_str) Mudela_stream mudela_stream (filename_str); for (PCursor i (mudela_staff_p_list_); i.ok(); i++) { - LOGOUT(NORMAL_ver) << _("track ") << track_i++ << ": " << flush; + LOGOUT(NORMAL_ver) << _ ("track ") << track_i++ << ": " << flush; i->output (mudela_stream); - mudela_stream << "\n"; + mudela_stream << '\n'; LOGOUT(NORMAL_ver) << endl; } mudela_stream << "\\score{\n"; if (mudela_staff_p_list_.size() > 1) - mudela_stream << "\\multi 3 < \\type Staff\n"; + mudela_stream << "< \n"; for (PCursor i (mudela_staff_p_list_); i.ok(); i++) { if ( (mudela_staff_p_list_.size() != 1) && (i == mudela_staff_p_list_.top())) continue; - mudela_stream << "< \\melodic{ "; - mudela_stream << "\\$" << i->id_str(); - mudela_stream << " } >\n"; + mudela_stream << "\\type Staff = \"" << i->id_str() << "\" "; + mudela_stream << "\\$" << i->id_str() << "\n"; } if (mudela_staff_p_list_.size() > 1) mudela_stream << ">\n"; @@ -149,22 +156,22 @@ Mudela_score::output (String filename_str) void Mudela_score::process() { - LOGOUT(NORMAL_ver) << _("\nProcessing...") << endl; + LOGOUT(NORMAL_ver) << '\n' << _ ("Processing...") << endl; LOGOUT(DEBUG_ver) << "columns\n"; // for (PCursor i (mudela_column_p_list_); i.ok(); i++) - // LOGOUT(DEBUG_ver) << "At: " << i->at_mom() << "\n"; + // LOGOUT(DEBUG_ver) << "At: " << i->at_mom() << '\n'; settle_columns(); filter_tempo(); quantify_columns(); quantify_durations(); - LOGOUT(NORMAL_ver) << _("\nCreating voices...") << endl; + LOGOUT(NORMAL_ver) << '\n' << _ ("Creating voices...") << endl; int track_i = 0; for (PCursor i (mudela_staff_p_list_); i.ok(); i++) { - LOGOUT(NORMAL_ver) << _("track ") << track_i++ << ": " << flush; + LOGOUT(NORMAL_ver) << _ ("track ") << track_i++ << ": " << flush; i->process(); LOGOUT(NORMAL_ver) << endl; } @@ -173,7 +180,7 @@ Mudela_score::process() void Mudela_score::filter_tempo() { - LOGOUT(NORMAL_ver) << _("\nNOT Filtering tempo...") << endl; + LOGOUT(NORMAL_ver) << '\n' << _ ("NOT Filtering tempo...") << endl; } void @@ -182,14 +189,14 @@ Mudela_score::quantify_columns() // ugh if (Duration_convert::no_quantify_b_s) { - LOGOUT(NORMAL_ver) << _("\nNOT Quantifying columns...") << endl; + LOGOUT(NORMAL_ver) << '\n' << _("NOT Quantifying columns...") << endl; return; } - LOGOUT(NORMAL_ver) << _("\nQuantifying columns...") << endl; + LOGOUT(NORMAL_ver) << '\n' << _("Quantifying columns...") << endl; int current_bar_i = 0; - Moment bar_mom = mudela_meter_l_->bar_mom(); + Moment bar_mom = mudela_time_signature_l_->bar_mom(); int n = 5 >? Duration_convert::no_smaller_than_i_s; n = Duration_convert::type2_i (n); @@ -203,7 +210,7 @@ Mudela_score::quantify_columns() int bar_i = (int) (column_l_array_ [i]->at_mom () / bar_mom) + 1; if (bar_i > current_bar_i) { - LOGOUT (NORMAL_ver) << '[' << bar_i << ']' << flush; + LOGOUT (NORMAL_ver) << "[" << bar_i << "]" << flush; current_bar_i = bar_i; } } @@ -213,15 +220,15 @@ Mudela_score::quantify_columns() void Mudela_score::quantify_durations() { - // LOGOUT(NORMAL_ver) << "\nQuantifying durations..." << endl; + // LOGOUT(NORMAL_ver) << '\n' << "Quantifying durations..." << endl; } void Mudela_score::settle_columns() { - // LOGOUT(NORMAL_ver) << "\nNOT Settling columns..." << endl; + // LOGOUT(NORMAL_ver) << '\n' << "NOT Settling columns..." << endl; // return; - LOGOUT(NORMAL_ver) << _("\nSettling columns...") << endl; + LOGOUT(NORMAL_ver) << '\n' << _("Settling columns...") << endl; #if 0 assert (!column_l_array_.size()); diff --git a/mi2mu/mudela-staff.cc b/mi2mu/mudela-staff.cc index 67fcaf4ab2..d6995e532a 100644 --- a/mi2mu/mudela-staff.cc +++ b/mi2mu/mudela-staff.cc @@ -1,7 +1,7 @@ // // mudela-staff.cc -- implement Mudela_staff // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #include #include @@ -26,7 +26,7 @@ Mudela_staff::Mudela_staff (int number_i, String copyright_str, String track_nam instrument_str_ = instrument_str; name_str_ = track_name_str; mudela_key_l_ = 0; - mudela_meter_l_ = 0; + mudela_time_signature_l_ = 0; mudela_tempo_l_ = 0; } @@ -68,7 +68,7 @@ Mudela_staff::eat_voice (Link_list& items) } else if (i.ok()) i++; - LOGOUT(DEBUG_ver) << "mom: " << mom.str () << "\n"; + LOGOUT(DEBUG_ver) << "mom: " << mom.str () << '\n'; } } @@ -88,7 +88,7 @@ Mudela_staff::name_str() { if (name_str_.length_i()) return name_str_; - return String ("track") + String (number_i_); + return String ("track") + to_str (number_i_); } void @@ -96,12 +96,12 @@ Mudela_staff::output (Mudela_stream& mudela_stream_r) { mudela_stream_r << "$" << id_str() << " = \\melodic"; mudela_stream_r << (mudela_voice_p_list_.size() > 1 ? "<" : "{"); - mudela_stream_r << "\n"; - mudela_stream_r << _("% midi copyright:") << copyright_str_ << "\n"; - mudela_stream_r << _("% instrument:") << instrument_str_ << "\n"; + mudela_stream_r << '\n'; + mudela_stream_r << _ ("% midi copyright:") << copyright_str_ << '\n'; + mudela_stream_r << _ ("% instrument:") << instrument_str_ << '\n'; // don't use last duration mode - mudela_stream_r << "\\duration 4;\n"; + // mudela_stream_r << "\\duration 4;\n"; if (mudela_voice_p_list_.size() == 1) mudela_voice_p_list_.top()->output (mudela_stream_r); else @@ -113,13 +113,13 @@ Mudela_staff::output (Mudela_stream& mudela_stream_r) } mudela_stream_r << (mudela_voice_p_list_.size() > 1 ? "\n>" : "\n}"); - mudela_stream_r << " % " << name_str() << "\n"; + mudela_stream_r << " % " << name_str() << '\n'; } void Mudela_staff::output_mudela_begin_bar (Mudela_stream& mudela_stream_r, Moment now_mom, int bar_i) { - Moment bar_mom = mudela_meter_l_->bar_mom(); + Moment bar_mom = mudela_time_signature_l_->bar_mom(); Moment into_bar_mom = now_mom - Moment (bar_i - 1) * bar_mom; if (bar_i > 1) { @@ -129,7 +129,7 @@ Mudela_staff::output_mudela_begin_bar (Mudela_stream& mudela_stream_r, Moment no mudela_stream_r << "% " << String_convert::i2dec_str (bar_i, 0, ' '); if (into_bar_mom) mudela_stream_r << ":" << Duration_convert::dur2_str (Duration_convert::mom2_dur (into_bar_mom)); - mudela_stream_r << "\n"; + mudela_stream_r << '\n'; } @@ -137,7 +137,7 @@ Mudela_staff::output_mudela_begin_bar (Mudela_stream& mudela_stream_r, Moment no void Mudela_staff::output_mudela_rest (Mudela_stream& mudela_stream_r, Moment begin_mom, Moment end_mom) { - Moment bar_mom = mudela_meter_l_->bar_mom(); + Moment bar_mom = mudela_time_signature_l_->bar_mom(); Moment now_mom = begin_mom; int begin_bar_i = (int) (now_mom / bar_mom) + 1; @@ -229,7 +229,7 @@ Mudela_staff::process() assert (mudela_score_l_g); mudela_key_l_ = mudela_score_l_g->mudela_key_l_; - mudela_meter_l_ = mudela_score_l_g->mudela_meter_l_; + mudela_time_signature_l_ = mudela_score_l_g->mudela_time_signature_l_; mudela_tempo_l_ = mudela_score_l_g->mudela_tempo_l_; Link_list items; diff --git a/mi2mu/mudela-voice.cc b/mi2mu/mudela-voice.cc index 6f91c8ff25..6f92d03f22 100644 --- a/mi2mu/mudela-voice.cc +++ b/mi2mu/mudela-voice.cc @@ -1,7 +1,7 @@ // // mudela-voice.cc -- implement Mudela_voice // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #include "string-convert.hh" #include "mi2mu-global.hh" @@ -26,14 +26,14 @@ Moment Mudela_voice::begin_mom() { return mudela_item_l_list_.size() ? - mudela_item_l_list_.top()->at_mom() : Moment (0); + mudela_item_l_list_.top()->at_mom() : Moment (0); } Moment Mudela_voice::end_mom() { return mudela_item_l_list_.size() ? - mudela_item_l_list_.bottom()->at_mom() : Moment (0); + mudela_item_l_list_.bottom()->at_mom() : Moment (0); } static int const FAIRLY_LONG_VOICE_i = 6; @@ -42,36 +42,36 @@ void Mudela_voice::output (Mudela_stream& mudela_stream_r) { if (!mudela_item_l_list_.size()) - return; + return; if (mudela_item_l_list_.size() > FAIRLY_LONG_VOICE_i) - mudela_stream_r << "\n"; + mudela_stream_r << '\n'; int current_bar_i = 0; - Moment bar_mom = mudela_staff_l_->mudela_meter_l_->bar_mom(); + Moment bar_mom = mudela_staff_l_->mudela_time_signature_l_->bar_mom(); for (PCursor i (mudela_item_l_list_); i.ok(); i++) { - Moment at_mom = i->mudela_column_l_->at_mom(); - int bar_i = (int) (at_mom / bar_mom) + 1; - if (bar_i > current_bar_i) - { - if (current_bar_i) - { - if (at_mom == Moment (bar_i - 1) * bar_mom) - mudela_stream_r << "|"; - mudela_stream_r << "\n% "; - mudela_stream_r << String_convert::i2dec_str (bar_i, 0, ' '); - mudela_stream_r << "\n"; - } - LOGOUT(NORMAL_ver) << '[' << bar_i << ']' << flush; - current_bar_i = bar_i; - } + Moment at_mom = i->mudela_column_l_->at_mom(); + int bar_i = (int) (at_mom / bar_mom) + 1; + if (bar_i > current_bar_i) + { + if (current_bar_i) + { + if (at_mom == Moment (bar_i - 1) * bar_mom) + mudela_stream_r << "|"; + mudela_stream_r << "\n% "; + mudela_stream_r << String_convert::i2dec_str (bar_i, 0, ' '); + mudela_stream_r << '\n'; + } + LOGOUT(NORMAL_ver) << "[" << bar_i << "]" << flush; + current_bar_i = bar_i; + } - mudela_stream_r << **i; + mudela_stream_r << **i; } if (mudela_item_l_list_.size() > FAIRLY_LONG_VOICE_i) - mudela_stream_r << "\n"; + mudela_stream_r << '\n'; } diff --git a/mi2mu/template9.cc b/mi2mu/template9.cc index 06d53f9ace..7d99a4b920 100644 --- a/mi2mu/template9.cc +++ b/mi2mu/template9.cc @@ -4,7 +4,7 @@ // liblily.a(template.o): In function `GLOBAL_$I$template.cc': // template.cc:28: multiple definition of `global constructors keyed to template.cc' // -// copyright 1997 Jan Nieuwenhuizen +// copyright 1997 Jan Nieuwenhuizen #include "proto.hh" #include "list.hh" diff --git a/po/TODO b/po/TODO new file mode 100644 index 0000000000..b854f34607 --- /dev/null +++ b/po/TODO @@ -0,0 +1,63 @@ +ISSUES -- please read this before doing too much real translating... + + * encapsulate locale strings in _( ) or _f ( ) + * fix/standardise messages + - it's silly to translate wrong strings + - no leading/trailing punctuation in strings: e.g. + _ ("foo found") iso _ ("foo found.), _ ("foo found.\n), ... + - no leading/trailing whitespace in strings + + - Think about translation issues. + In a lot of cases,it's better to translate a whole message + the english grammar mustn't be imposed on the transator. + So, iso + _ ("stem at") + moment.str () + _("doen't fit in beam") + have + _f ("stem at %s doen't fit in beam", moment.str ()) + ? + + Otoh: + en: can't open: `foo.ly' + nl: kan `foo.ly' niet openen (1) + kan niet openen: `foo.ly'* (2) + niet te openen: `foo.ly'* (3) + + The first nl message, although gramatically and stylish correct, + is not friendly for parsing by humans (even if they speak dutch). + I guess we'd prefer something like (2) or (3)... + + - don't modularise too much; a lot of words cannot be translated + without context. + it's probably safe to treat most occurences of words like + stem, beam, crescendo as separately translatable words. + + * don't! translate/gettextify: + - debug strings + - output (ps) strings + +TODO + * native speakers (naïeve sprekerds) that make/take care of {it,..}.po + * concurrently update Documentation/tex/computer.data + * convince xgettext my name is iso + :-) + * create user-friendly input format for multiple languages? + +SOLVED/HOWTO + * because i never install LilyPond, i made these links: + + ln -s $LILYPOND_SOURCEDIR/po/out/nl.mo + /usr/share/locale/nl/LC_MESSAGES/lilypond.mo + ln -s $LILYPOND_SOURCEDIR/po/out/it.mo + /usr/share/locale/it/LC_MESSAGES/lilypond.mo + + then simply type, e.g. + + LANG=nl lilypond -h + + * (howto?) avoid keep translating for moving target + - make po-update + - mv po/out/*.po po (manually!) + - edit po/*.po + - make -C po + - make show-po-update LANGUAGE=xx + diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000000..d8ac69d178 --- /dev/null +++ b/po/it.po @@ -0,0 +1,891 @@ +msgid "" +msgstr "" +"Date: 1998-05-30 00:17:12+0200\n" +"From: \n" +"Content-Type: text/plain; charset=\n" +"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po/out --add-comments --keyword=_ --keyword=_f\n" +"Files: bow.cc int.cc\n" + +#: data-file.cc:52 +msgid "EOF in a string" +msgstr "EOF in una corda" + +#: data-file.cc:121 input.cc:86 midi-parser.cc:100 warn.cc:21 +msgid "warning: " +msgstr "attentione: " + +#: dstream.cc:159 +msgid "Not enough fields in Dstream init." +msgstr "" + +#: flower-debug.cc:17 +msgid "Debug output disabled. Compiled with NPRINT." +msgstr "" + +#: lgetopt.cc:103 +msgid "option `%s' requires an argument" +msgstr "opzione `%s' chiede un argumento" + +#: lgetopt.cc:107 +msgid "option `%s' doesn't allow an argument" +msgstr "opzione `%s' non permette un argumento" + +#: lgetopt.cc:111 +msgid "unrecognized option: `%s'" +msgstr "opzione non riconosciuto `%s'" + +#: lgetopt.cc:117 +msgid "invalid argument `%s' to option `%s'" +msgstr "argumento non valide `%s' all'opzione `%s'" + +#: text-stream.cc:8 +msgid "" +msgstr "" + +#: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:102 parser.yy:1378 scores.cc:37 simple-file-storage.cc:44 tex-stream.cc:28 text-stream.cc:21 +msgid "can't open file: `%s'" +msgstr "non posso aprire il documento: `%s'" + +#: input.cc:91 warn.cc:7 warn.cc:15 +msgid "error: " +msgstr "errore: " + +#: input.cc:97 +msgid "Non fatal error: " +msgstr "Errore non fatale: " + +#: input.cc:105 source-file.cc:62 source-file.cc:155 +msgid "position unknown" +msgstr "posizione sconosciuto" + +#: mapped-file-storage.cc:65 +msgid "map_fd: " +msgstr "" + +#: mapped-file-storage.cc:74 +msgid "can't map file" +msgstr "non posso mappare il documento" + +#: mapped-file-storage.cc:109 +msgid "vm_deallocate: " +msgstr "" + +#: simple-file-storage.cc:56 +msgid "Huh? got %d, expected %d characters" +msgstr "Come? ce ne ho %d, ho aspettato %d carattere" + +#: abbreviation-beam-engraver.cc:76 beam-grav.cc:90 +msgid "unterminated beam" +msgstr "" + +#: afm.cc:114 +msgid "can't find character called `%s'" +msgstr "" + +#: atom.cc:31 +msgid "ridiculous dimension: %s, %s" +msgstr "dimensione da ridere: %s, %s" + +#: beam-grav.cc:106 +msgid "Stem must have Rhythmic structure." +msgstr "" + +#: beam-grav.cc:113 +msgid "stem doesn't fit in beam" +msgstr "" + +#: beam-grav.cc:124 +msgid "please fix me" +msgstr "aggiustami per favore" + +#: beam-grav.cc:125 +msgid "stem at %s doesn't fit in beam" +msgstr "" + +#: beam.cc:117 +msgid "beam with less than two stems" +msgstr "" + +#. when all too short, normal stems win.. +#: beam.cc:562 +msgid "weird beam shift, check your knees" +msgstr "" + +#: break.cc:25 +msgid "0 lines" +msgstr "0 linee" + +#: break.cc:27 +msgid "1 line (of %.0f columns)" +msgstr "1 linea (da %.0f colonne)" + +#: break.cc:29 +msgid "%d lines (with an average of %.1f columns)" +msgstr "%d linee (con una media di %.f colonne)" + +#: break.cc:159 +msgid "score does not have any columns" +msgstr "" + +#: break.cc:183 +msgid "approximated: %s" +msgstr "approssimato: %s:" + +#: break.cc:185 +msgid "calculated exactly: %s" +msgstr "calcolato esattamente: %s" + +#: break.cc:186 score.cc:111 +msgid "time: %.2f seconds" +msgstr "durata: %.2f secondi" + +#: change-iterator.cc:25 +msgid "can't change `%s' to `%s'" +msgstr "" + +#: clef-grav.cc:137 +msgid "unknown clef type " +msgstr "" + +#: collision.cc:62 +msgid "No stem direction set. Ignoring column in clash." +msgstr "" + +#: collision.cc:75 +msgid "Too many clashing notecolumns. Ignoring them." +msgstr "" + +#: command-request.cc:209 +msgid "don't know how handle empty keys" +msgstr "" + +#: crescendo.cc:47 +msgid "crescendo" +msgstr "" + +#: crescendo.cc:47 lookup.cc:338 lookup.cc:371 lookup.cc:389 +msgid "too small" +msgstr "" + +#: debug.cc:56 +msgid "Floating point exception" +msgstr "" + +#: debug.cc:140 +msgid "can't set mem-checking" +msgstr "" + +#: dimen.cc:31 +msgid "unknown length unit: `%s'" +msgstr "" + +#: dimen.cc:40 +msgid "NaN" +msgstr "" + +#: dynamic-grav.cc:85 slur-grav.cc:72 +msgid "can't find both ends of %s" +msgstr "" + +#: dynamic-grav.cc:86 +msgid "cresc" +msgstr "" + +#: dynamic-grav.cc:162 +msgid "unended crescendo" +msgstr "" + +#: identifier.cc:49 +msgid "Wrong identifier type: " +msgstr "" + +#: identifier.cc:50 +msgid "%s expected" +msgstr "%s aspettato" + +#: includable-lexer.cc:38 midi-score-parser.cc:24 scores.cc:108 scores.cc:113 +msgid "can't find file: `%s'" +msgstr "" + +#: ineq-constrained-qp.cc:167 +msgid "Ineq_constrained_qp::solve (): Constraint off by %f" +msgstr "" + +#: ineq-constrained-qp.cc:222 +msgid "didn't converge!" +msgstr "" + +#: ineq-constrained-qp.cc:224 +msgid "Too much degeneracy. " +msgstr "" + +#: key-grav.cc:109 +msgid "No key name: assuming `C'" +msgstr "" + +#: local-key-grav.cc:34 +msgid "out of tune" +msgstr "" + +#: local-key-grav.cc:34 meter-grav.cc:28 +msgid "can't find" +msgstr "" + +#: lookup.cc:337 lookup.cc:343 +msgid "piano brace" +msgstr "" + +#: lookup.cc:344 lookup.cc:395 +msgid "too big" +msgstr "" + +#: lookup.cc:370 lookup.cc:388 lookup.cc:394 +msgid "bracket" +msgstr "" + +#: main.cc:65 +msgid "Usage: %s [OPTION]... [FILE]..." +msgstr "Uso: %s [OPZIONE]... [DOCUMENTO]..." + +#: main.cc:66 +msgid "Typeset music and or play MIDI from FILE or " +msgstr "Stampa partitura oppure suona MIDI dal FILE o " + +#: main.cc:48 main.cc:69 +msgid "Options:" +msgstr "Opzioni: " + +#: main.cc:72 +msgid " -a, --about about LilyPond\n" +msgstr " -a, --about cos'è LilyPond\n" + +#: main.cc:54 main.cc:75 +msgid " -D, --debug enable debugging output\n" +msgstr "" + +#: main.cc:78 +msgid " -d, --dependencies write Makefile dependencies for every input file\n" +msgstr "" + +#: main.cc:60 main.cc:81 +msgid " -I, --include=DIR add DIR to search path\n" +msgstr " -I, --include=DIR add DIR to search path\n" + +#: main.cc:84 +msgid " -i, --init=FILE use FILE as init file\n" +msgstr " -i, --init=DOC usa DOC come documento iniziale\n" + +#: main.cc:57 main.cc:87 +msgid " -h, --help this help\n" +msgstr " -h, --help questo sostegno\n" + +#: main.cc:90 +msgid " -M, --no-paper produce midi output only\n" +msgstr " -M, --no-paper produce solo output midi\n" + +#: main.cc:93 +msgid " -o, --output=FILE set FILE as default output base\n" +msgstr "" + +#: main.cc:96 +msgid " -Q, --find-fourths show all intervals greater than a fourth\n" +msgstr "" + +#: main.cc:99 +msgid " -t, --test switch on experimental features\n" +msgstr " -t, --test usa truchi sperimentali\n" + +#: main.cc:78 main.cc:102 +msgid " -T, --no-timestamps don't timestamp the output\n" +msgstr "" + +#: main.cc:105 +msgid " -V, --ignore-version ignore mudela version\n" +msgstr "" + +#: main.cc:87 main.cc:108 +msgid " -w, --warranty show warranty and copyright\n" +msgstr "" + +#: main.cc:111 +msgid "GNU LilyPond was compiled with the following settings:" +msgstr "" + +#: main.cc:139 +msgid "GNU LilyPond is Free software, see --warranty" +msgstr "" + +#: main.cc:107 main.cc:142 main.cc:155 +msgid "Copyright (c) %s by" +msgstr "" + +#: main.cc:109 main.cc:144 main.cc:157 +msgid "Han-Wen Nienhuys " +msgstr "" + +#: main.cc:110 main.cc:145 main.cc:158 +msgid "Jan Nieuwenhuizen " +msgstr "" + +#: main.cc:153 +msgid "GNU LilyPond -- The GNU Project music typesetter" +msgstr "GNU LilyPond -- Il tipografo musicale del progetto GNU" + +#: main.cc:113 main.cc:161 +msgid "" +" This program is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License version 2\n" +"as published by the Free Software Foundation.\n" +"\n" +" This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" +"General Public License for more details.\n" +"\n" +" You should have received a copy (refer to the file COPYING) of the\n" +"GNU General Public License along with this program; if not, write to\n" +"the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n" +"USA.\n" +msgstr "" + +#: meter-grav.cc:28 +msgid "lost in time" +msgstr "" + +#: midi-item.cc:364 +msgid "unconventional key: flats: %d, sharps: %d" +msgstr "" + +#: midi-item.cc:410 +msgid "silly duration" +msgstr "" + +#: midi-item.cc:424 +msgid "silly pitch" +msgstr "" + +#: midi-stream.cc:29 tex-stream.cc:58 +msgid "error syncing file (disk full?)" +msgstr "" + +#: musical-pitch.cc:145 +msgid "Interval greater than quart, relative: %s" +msgstr "" + +#: musical-request.cc:93 +msgid "transposition by %s makes accidental larger than two" +msgstr "" + +#: musical-request.cc:439 +msgid "never heard of dynamic scale `\\%s', assuming %s" +msgstr "" + +#: my-lily-lexer.cc:120 +msgid "redeclaration of `\\%s'" +msgstr "" + +#: my-lily-lexer.cc:149 +msgid "error at EOF: %s" +msgstr "" + +#: my-lily-parser.cc:62 +msgid "Parsing..." +msgstr "Analizzare..." + +#: my-lily-parser.cc:71 +msgid "braces don't match" +msgstr "" + +#: p-score.cc:178 +msgid "Can't solve this casting problem exactly; revert to Word_wrap" +msgstr "" + +#: p-score.cc:197 +msgid "Preprocessing elements..." +msgstr "Preprocessare elementi..." + +#: p-score.cc:201 +msgid "Calculating column positions..." +msgstr "Calcolare posizioni di colonne..." + +#: p-score.cc:205 +msgid "Postprocessing elements..." +msgstr "Postprocessare elementi..." + +#: p-score.cc:231 +msgid "TeX output to %s..." +msgstr "Prodotto di TeX verso %s..." + +#: p-score.cc:245 +msgid "% outputting Score, defined at: " +msgstr "" + +#: paper-def.cc:61 +msgid "unknown paper variable: `%s'" +msgstr "" + +#: paper-def.cc:65 +msgid "not a real variable" +msgstr "" + +#. perhaps multiple text events? +#: performance.cc:54 +msgid "Creator: " +msgstr "" + +#: performance.cc:63 +msgid "Automatically generated" +msgstr "" + +#: mudela-stream.cc:84 performance.cc:68 tex-stream.cc:47 +msgid ", at " +msgstr "" + +#: performance.cc:76 +msgid "from musical definition: %s" +msgstr "" + +#: performance.cc:141 +msgid "MIDI output to %s..." +msgstr "Prodotto di MIDI verso %s..." + +#: plet-engraver.cc:83 +msgid "unterminated plet" +msgstr "" + +#: plet-spanner.cc:85 +msgid "lonely plet" +msgstr "" + +#: qlpsolve.cc:88 qlpsolve.cc:139 +msgid "degenerate constraints" +msgstr "" + +#: request-iterator.cc:68 +msgid "junking request: `%s'" +msgstr "" + +#: score-column.cc:55 +msgid "ignoring zero duration added to column at %s" +msgstr "" + +#: score-grav.cc:145 +msgid "Unbound spanner `%s'" +msgstr "" + +#: score.cc:57 +msgid "no toplevel translator" +msgstr "" + +#: score.cc:60 +msgid "Interpreting music..." +msgstr "Interpretare musica..." + +#: score.cc:70 +msgid "need music in a score" +msgstr "" + +#. should we? hampers debugging. +#: score.cc:106 +msgid "errors found, /*not processing score*/" +msgstr "" + +#: scores.cc:34 +msgid "writing dependency file: `%s'..." +msgstr "" + +#: scores.cc:78 +msgid "score contains errors; will not process it" +msgstr "" + +#: script.cc:60 +msgid "script needs stem direction" +msgstr "" + +#: slur-grav.cc:49 +msgid "unterminated slur" +msgstr "" + +#: slur-grav.cc:72 +msgid "slur" +msgstr "" + +#: spanner.cc:44 +msgid "left spanpoint is right spanpoint\n" +msgstr "" + +#: spanner.cc:101 +msgid "Spanner `%s' with equal left and right spanpoints" +msgstr "" + +#: spring-spacer.cc:82 +msgid "unconnected column: %d" +msgstr "" + +#: spring-spacer.cc:186 +msgid "I'm too fat; call Oprah" +msgstr "" + +#: spring-spacer.cc:344 +msgid "solution doesn't satisfy constraints" +msgstr "" + +#: spring-spacer.cc:623 +msgid "can't find a ruling note at %s" +msgstr "" + +#: spring-spacer.cc:629 +msgid "no minimum in measure at %s" +msgstr "" + +#: staff-side.cc:61 +msgid "Staff_side::get_position_f(): somebody forgot to set my direction, returning -20" +msgstr "" + +#: stem.cc:102 +msgid "weird stem size; check for narrow beams" +msgstr "" + +#: symtable.cc:50 +msgid "Symtable `%s': unknown symbol: `%s'" +msgstr "" + +#: symtable.cc:61 +msgid "Symtable `%s' unknown" +msgstr "" + +#: mudela-stream.cc:74 tex-stream.cc:37 +msgid "% Creator: " +msgstr "" + +#: mudela-stream.cc:79 tex-stream.cc:42 +msgid "% Automatically generated" +msgstr "" + +#: text-item.cc:47 +msgid "Text_item::get_position_f(): somebody forgot to set my vertical direction, returning -20" +msgstr "" + +#: tie-grav.cc:114 tie.cc:50 +msgid "lonely tie" +msgstr "" + +#: ties-grav.cc:82 +msgid "Can't find a note head at the right to attach Tie" +msgstr "" + +#: time-description.cc:17 +msgid "cadenza" +msgstr "" + +#: time-description.cc:106 +msgid "partial measure must be non-negative" +msgstr "" + +#: time-description.cc:108 +msgid "partial measure too large" +msgstr "" + +#: timing-translator.cc:32 +msgid "conflicting timing request" +msgstr "" + +#: timing-translator.cc:64 +msgid "meter change not allowed here" +msgstr "" + +#: timing-translator.cc:87 +msgid "barcheck failed by: %s" +msgstr "" + +#: translator-ctors.cc:40 +msgid "unknown translator `%s'" +msgstr "" + +#: translator-group.cc:149 +msgid "can't find or create `%s' called `%s'" +msgstr "" + +#: translator-group.cc:263 +msgid "can't find or create `%s'" +msgstr "" + +#: translator-group.cc:353 +msgid "can't find `%s'" +msgstr "" + +#: word-wrap.cc:68 +msgid "ugh, this measure is too long" +msgstr "" + +#: word-wrap.cc:69 +msgid "breakpoint: %d" +msgstr "" + +#: word-wrap.cc:70 +msgid "generating stupido solution" +msgstr "" + +#: word-wrap.cc:88 +msgid "I don't fit; put me on Montignac" +msgstr "" + +#: parser.yy:300 parser.yy:303 +msgid "incorrect mudela version: %s (%s, %s)" +msgstr "" + +#: parser.yy:477 +msgid "More than one music block" +msgstr "" + +#: parser.yy:1047 parser.yy:1225 parser.yy:1252 +msgid "not a duration: %d" +msgstr "" + +#: parser.yy:1049 parser.yy:1254 +msgid "can't abbreviate" +msgstr "" + +#: parser.yy:1264 +msgid "have to be in Note mode for notes" +msgstr "" + +#: parser.yy:1286 +msgid "have to be in Lyric mode for lyrics" +msgstr "" + +#: lexer.ll:125 +msgid "EOF found inside a comment" +msgstr "" + +#: lexer.ll:163 +msgid "undefined identifier: `%s'" +msgstr "" + +#. backup rule +#: lexer.ll:168 +msgid "missing end quote" +msgstr "" + +#. backup rule +#: lexer.ll:191 lexer.ll:195 +msgid "white expected" +msgstr "" + +#: lexer.ll:342 +msgid "illegal character: `%c'" +msgstr "" + +#: lexer.ll:392 +msgid "unknown escaped string: `\\%s'" +msgstr "" + +#: out/BLURB.hh:2 +msgid "" +"LilyPond is the GNU Project music typesetter. This program can print\n" +"beautiful sheet music from a music definition file. It can also play\n" +"mechanical performances to a MIDI file. Features include multiple\n" +"staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,\n" +"beams, slurs, triplets, formatting scores, part extraction. It includes\n" +"a nice font of musical symbols.\n" +msgstr "" +"LilyPond \350 il tipografo musicale del progetto GNU. Questo programma e\n" +"fatto per stampare bella partitura da un documento definito per musica.\n" +"Pu\362 anche sonare le prestazioni meccaniche ad un documento MIDI. Le\n" +"caratteristiche includono i personali multipli, tester, chiavi, suoni,\n" +"lirica, lingua potente dell' input, cadenzas, fasci, archi, tripletti,\n" +"segni di formattazione, estrazione della parte. Una seria completa di\n" +"caratteri musicali \350 compresa.\n" + +#: out/COPERTINA.hh:2 +msgid "" +"LilyPond \350 il tipografo musicale del progetto GNU. Questo programma \350\n" +"fatto per stampare belle partiture da un documento definito per musica.\n" +"Pu\362 anche suonare le prestazioni meccaniche ad un documento MIDI. Le\n" +"caratteristiche includono i personali multipli, tester, chiavi, suoni,\n" +"lirica, lingua potente dell' input, cadenze, fasci, archi, tripletti,\n" +"segni di formattazione, estrazione delle parte. \310 compresa una seria \n" +"completa di caratteri musicali.\n" +msgstr "" + +#: out/FLAPTEKST.hh:2 +msgid "" +"LilyPond is de muziekzetter van het GNU Project. Dit programma drukt\n" +"prachtige bladmuziek volgens een muzikaal definitie bestand. Ook kan\n" +"het een mechanische uitvoering afspelen naar een MIDI bestand.\n" +"Bijzondere kunstjes zijn verscheidene notenbalken, maatsoorten,\n" +"sleutels, toonaarden, zangteksten, krachtige invoer taal, cadensa,\n" +"balken, boogjes, triolen, partituren, en uittreksels voor individuele \n" +"partijen. Een fraaie set muziektekens is inbegrepen.\n" +msgstr "" + +#: main.cc:43 +msgid "Usage: %s [OPTION]... [FILE]" +msgstr "" + +#: main.cc:45 +msgid "Translate midi-file to mudela" +msgstr "" + +#: main.cc:51 +msgid " -b, --no-quantify write exact durations, e.g.: a4*385/384\n" +msgstr "" + +#: main.cc:63 +msgid " -k, --key=ACC[:MINOR] set key: ACC +sharps/-flats; :1 minor\n" +msgstr "" + +#: main.cc:66 +msgid " -n, --no-silly assume no plets or double dots, smallest is 32\n" +msgstr "" + +#: main.cc:69 +msgid " -o, --output=FILE set FILE as default output\n" +msgstr "" + +#: main.cc:72 +msgid " -p, --no-plets assume no plets\n" +msgstr "" + +#: main.cc:75 +msgid " -q, --quiet be quiet\n" +msgstr "" + +#: main.cc:81 +msgid " -s, --smallest=N assume no shorter (reciprocal) durations than N\n" +msgstr "" + +#: main.cc:84 +msgid " -v, --verbose be verbose\n" +msgstr "" + +#: main.cc:90 +msgid " -x, --no-double-dots assume no double dotted notes\n" +msgstr "" + +#: main.cc:105 +msgid "Mi2mu, translate midi to mudela" +msgstr "" + +#: midi-parser.cc:64 +msgid "zero length string encountered" +msgstr "" + +#: midi-score-parser.cc:45 +msgid "MIDI header expected" +msgstr "" + +#. is this signed? +#: midi-score-parser.cc:50 +msgid "Invalid header length" +msgstr "" + +#: midi-score-parser.cc:53 +msgid "Invalid midi format" +msgstr "" + +#: midi-score-parser.cc:56 +msgid "Invalid number of tracks" +msgstr "" + +#: midi-score-parser.cc:59 +msgid "can't handle %s" +msgstr "" + +#: midi-score-parser.cc:59 +msgid "non-metrical time" +msgstr "" + +#: midi-score-parser.cc:95 +msgid "Parsing...\n" +msgstr "" + +#: midi-track-parser.cc:70 +msgid "junking note-end event: channel = %d, pitch = %d" +msgstr "" + +#: midi-track-parser.cc:125 +msgid "invalid running status" +msgstr "" + +#: midi-track-parser.cc:326 +msgid "unimplemented MIDI meta-event" +msgstr "" + +#: midi-track-parser.cc:331 +msgid "invalid MIDI event" +msgstr "" + +#: midi-track-parser.cc:346 +msgid "MIDI track expected" +msgstr "" + +#: midi-track-parser.cc:351 +msgid "invalid track length" +msgstr "" + +#. heu, -2: should be - 1 1/2: A -> fis +#: mudela-item.cc:62 +msgid "%% \"%s\"; %% not supported yet" +msgstr "" + +#: mudela-item.cc:107 +msgid "#32 in quarter: %d" +msgstr "" + +#: mudela-score.cc:96 +msgid "ugh" +msgstr "" + +#: mudela-score.cc:108 +msgid "Lily output to %s..." +msgstr "" + +#: mudela-score.cc:118 mudela-score.cc:167 +msgid "track " +msgstr "" + +#: mudela-score.cc:152 +msgid "Processing..." +msgstr "" + +#: mudela-score.cc:163 +msgid "Creating voices..." +msgstr "" + +#: mudela-score.cc:176 +msgid "NOT Filtering tempo..." +msgstr "" + +#: mudela-score.cc:185 +msgid "NOT Quantifying columns..." +msgstr "" + +#: mudela-score.cc:189 +msgid "Quantifying columns..." +msgstr "" + +#. return; +#: mudela-score.cc:224 +msgid "Settling columns..." +msgstr "" + +#: mudela-staff.cc:100 +msgid "% midi copyright:" +msgstr "" + +#: mudela-staff.cc:101 +msgid "% instrument:" +msgstr "" + +#: mudela-stream.cc:36 +msgid "lily indent level: %d" +msgstr "" + +#: mudela-stream.cc:88 +msgid "% from input file: " +msgstr "" + +#: version.cc:12 +msgid "of" +msgstr "" diff --git a/po/lilypond.po b/po/lilypond.po new file mode 100644 index 0000000000..2352a8568b --- /dev/null +++ b/po/lilypond.po @@ -0,0 +1,884 @@ +msgid "" +msgstr "" +"Date: 1998-07-21 09:44:01+0200\n" +"From: \n" +"Content-Type: text/plain; charset=\n" +"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po/out --add-comments --keyword=_ --keyword=_f\n" +"Files: config.h gettext.h gettextP.h hash-string.h libgettext.h bindtextdom.c dcgettext.c dgettext.c finddomain.c gettext.c intl-compat.c loadmsgcat.c localealias.c textdomain.c\n" + +#: data-file.cc:52 +msgid "EOF in a string" +msgstr "" + +#: data-file.cc:121 input.cc:86 midi-parser.cc:100 warn.cc:21 +msgid "warning: " +msgstr "" + +#: dstream.cc:159 +msgid "Not enough fields in Dstream init." +msgstr "" + +#: flower-debug.cc:17 +msgid "Debug output disabled. Compiled with NPRINT." +msgstr "" + +#: lgetopt.cc:103 +msgid "option `%s' requires an argument" +msgstr "" + +#: lgetopt.cc:107 +msgid "option `%s' doesn't allow an argument" +msgstr "" + +#: lgetopt.cc:111 +msgid "unrecognized option: `%s'" +msgstr "" + +#: lgetopt.cc:117 +msgid "invalid argument `%s' to option `%s'" +msgstr "" + +#: text-stream.cc:8 +msgid "" +msgstr "" + +#: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:102 parser.yy:1378 scores.cc:37 simple-file-storage.cc:44 tex-stream.cc:28 text-stream.cc:21 +msgid "can't open file: `%s'" +msgstr "" + +#: input.cc:91 warn.cc:7 warn.cc:15 +msgid "error: " +msgstr "" + +#: input.cc:97 +msgid "Non fatal error: " +msgstr "" + +#: input.cc:105 source-file.cc:62 source-file.cc:155 +msgid "position unknown" +msgstr "" + +#: mapped-file-storage.cc:65 +msgid "map_fd: " +msgstr "" + +#: mapped-file-storage.cc:74 +msgid "can't map file" +msgstr "" + +#: mapped-file-storage.cc:109 +msgid "vm_deallocate: " +msgstr "" + +#: simple-file-storage.cc:56 +msgid "Huh? got %d, expected %d characters" +msgstr "" + +#: abbreviation-beam-engraver.cc:76 beam-grav.cc:90 +msgid "unterminated beam" +msgstr "" + +#: afm.cc:114 +msgid "can't find character called `%s'" +msgstr "" + +#: atom.cc:31 +msgid "ridiculous dimension: %s, %s" +msgstr "" + +#: beam-grav.cc:106 +msgid "Stem must have Rhythmic structure." +msgstr "" + +#: beam-grav.cc:113 +msgid "stem doesn't fit in beam" +msgstr "" + +#: beam-grav.cc:124 +msgid "please fix me" +msgstr "" + +#: beam-grav.cc:125 +msgid "stem at %s doesn't fit in beam" +msgstr "" + +#: beam.cc:117 +msgid "beam with less than two stems" +msgstr "" + +#. when all too short, normal stems win.. +#: beam.cc:562 +msgid "weird beam shift, check your knees" +msgstr "" + +#: break.cc:25 +msgid "0 lines" +msgstr "" + +#: break.cc:27 +msgid "1 line (of %.0f columns)" +msgstr "" + +#: break.cc:29 +msgid "%d lines (with an average of %.1f columns)" +msgstr "" + +#: break.cc:159 +msgid "score does not have any columns" +msgstr "" + +#: break.cc:183 +msgid "approximated: %s" +msgstr "" + +#: break.cc:185 +msgid "calculated exactly: %s" +msgstr "" + +#: break.cc:186 score.cc:111 +msgid "time: %.2f seconds" +msgstr "" + +#: change-iterator.cc:25 +msgid "can't change `%s' to `%s'" +msgstr "" + +#: clef-grav.cc:137 +msgid "unknown clef type " +msgstr "" + +#: collision.cc:62 +msgid "No stem direction set. Ignoring column in clash." +msgstr "" + +#: collision.cc:75 +msgid "Too many clashing notecolumns. Ignoring them." +msgstr "" + +#: command-request.cc:209 +msgid "don't know how handle empty keys" +msgstr "" + +#: crescendo.cc:47 +msgid "crescendo" +msgstr "" + +#: crescendo.cc:47 lookup.cc:338 lookup.cc:371 lookup.cc:389 +msgid "too small" +msgstr "" + +#: debug.cc:56 +msgid "Floating point exception" +msgstr "" + +#: debug.cc:140 +msgid "can't set mem-checking" +msgstr "" + +#: dimen.cc:31 +msgid "unknown length unit: `%s'" +msgstr "" + +#: dimen.cc:40 +msgid "NaN" +msgstr "" + +#: dynamic-grav.cc:85 slur-grav.cc:72 +msgid "can't find both ends of %s" +msgstr "" + +#: dynamic-grav.cc:86 +msgid "cresc" +msgstr "" + +#: dynamic-grav.cc:162 +msgid "unended crescendo" +msgstr "" + +#: identifier.cc:49 +msgid "Wrong identifier type: " +msgstr "" + +#: identifier.cc:50 +msgid "%s expected" +msgstr "" + +#: includable-lexer.cc:38 midi-score-parser.cc:24 scores.cc:108 scores.cc:113 +msgid "can't find file: `%s'" +msgstr "" + +#: ineq-constrained-qp.cc:167 +msgid "Ineq_constrained_qp::solve (): Constraint off by %f" +msgstr "" + +#: ineq-constrained-qp.cc:222 +msgid "didn't converge!" +msgstr "" + +#: ineq-constrained-qp.cc:224 +msgid "Too much degeneracy. " +msgstr "" + +#: key-grav.cc:109 +msgid "No key name: assuming `C'" +msgstr "" + +#: local-key-grav.cc:34 +msgid "out of tune" +msgstr "" + +#: local-key-grav.cc:34 meter-grav.cc:28 +msgid "can't find" +msgstr "" + +#: lookup.cc:337 lookup.cc:343 +msgid "piano brace" +msgstr "" + +#: lookup.cc:344 lookup.cc:395 +msgid "too big" +msgstr "" + +#: lookup.cc:370 lookup.cc:388 lookup.cc:394 +msgid "bracket" +msgstr "" + +#: main.cc:65 +msgid "Usage: %s [OPTION]... [FILE]..." +msgstr "" + +#: main.cc:66 +msgid "Typeset music and or play MIDI from FILE or " +msgstr "" + +#: main.cc:48 main.cc:69 +msgid "Options:" +msgstr "" + +#: main.cc:72 +msgid " -a, --about about LilyPond\n" +msgstr "" + +#: main.cc:54 main.cc:75 +msgid " -D, --debug enable debugging output\n" +msgstr "" + +#: main.cc:78 +msgid " -d, --dependencies write Makefile dependencies for every input file\n" +msgstr "" + +#: main.cc:60 main.cc:81 +msgid " -I, --include=DIR add DIR to search path\n" +msgstr "" + +#: main.cc:84 +msgid " -i, --init=FILE use FILE as init file\n" +msgstr "" + +#: main.cc:57 main.cc:87 +msgid " -h, --help this help\n" +msgstr "" + +#: main.cc:90 +msgid " -M, --no-paper produce midi output only\n" +msgstr "" + +#: main.cc:93 +msgid " -o, --output=FILE set FILE as default output base\n" +msgstr "" + +#: main.cc:96 +msgid " -Q, --find-fourths show all intervals greater than a fourth\n" +msgstr "" + +#: main.cc:99 +msgid " -t, --test switch on experimental features\n" +msgstr "" + +#: main.cc:78 main.cc:102 +msgid " -T, --no-timestamps don't timestamp the output\n" +msgstr "" + +#: main.cc:105 +msgid " -V, --ignore-version ignore mudela version\n" +msgstr "" + +#: main.cc:87 main.cc:108 +msgid " -w, --warranty show warranty and copyright\n" +msgstr "" + +#: main.cc:111 +msgid "GNU LilyPond was compiled with the following settings:" +msgstr "" + +#: main.cc:139 +msgid "GNU LilyPond is Free software, see --warranty" +msgstr "" + +#: main.cc:107 main.cc:142 main.cc:155 +msgid "Copyright (c) %s by" +msgstr "" + +#: main.cc:109 main.cc:144 main.cc:157 +msgid "Han-Wen Nienhuys " +msgstr "" + +#: main.cc:110 main.cc:145 main.cc:158 +msgid "Jan Nieuwenhuizen " +msgstr "" + +#: main.cc:153 +msgid "GNU LilyPond -- The GNU Project music typesetter" +msgstr "" + +#: main.cc:113 main.cc:161 +msgid "" +" This program is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License version 2\n" +"as published by the Free Software Foundation.\n" +"\n" +" This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" +"General Public License for more details.\n" +"\n" +" You should have received a copy (refer to the file COPYING) of the\n" +"GNU General Public License along with this program; if not, write to\n" +"the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n" +"USA.\n" +msgstr "" + +#: meter-grav.cc:28 +msgid "lost in time" +msgstr "" + +#: midi-item.cc:364 +msgid "unconventional key: flats: %d, sharps: %d" +msgstr "" + +#: midi-item.cc:410 +msgid "silly duration" +msgstr "" + +#: midi-item.cc:424 +msgid "silly pitch" +msgstr "" + +#: midi-stream.cc:29 tex-stream.cc:58 +msgid "error syncing file (disk full?)" +msgstr "" + +#: musical-pitch.cc:145 +msgid "Interval greater than quart, relative: %s" +msgstr "" + +#: musical-request.cc:93 +msgid "transposition by %s makes accidental larger than two" +msgstr "" + +#: musical-request.cc:439 +msgid "never heard of dynamic scale `\\%s', assuming %s" +msgstr "" + +#: my-lily-lexer.cc:120 +msgid "redeclaration of `\\%s'" +msgstr "" + +#: my-lily-lexer.cc:149 +msgid "error at EOF: %s" +msgstr "" + +#: my-lily-parser.cc:62 +msgid "Parsing..." +msgstr "" + +#: my-lily-parser.cc:71 +msgid "braces don't match" +msgstr "" + +#: p-score.cc:178 +msgid "Can't solve this casting problem exactly; revert to Word_wrap" +msgstr "" + +#: p-score.cc:197 +msgid "Preprocessing elements..." +msgstr "" + +#: p-score.cc:201 +msgid "Calculating column positions..." +msgstr "" + +#: p-score.cc:205 +msgid "Postprocessing elements..." +msgstr "" + +#: p-score.cc:231 +msgid "TeX output to %s..." +msgstr "" + +#: p-score.cc:245 +msgid "% outputting Score, defined at: " +msgstr "" + +#: paper-def.cc:61 +msgid "unknown paper variable: `%s'" +msgstr "" + +#: paper-def.cc:65 +msgid "not a real variable" +msgstr "" + +#. perhaps multiple text events? +#: performance.cc:54 +msgid "Creator: " +msgstr "" + +#: performance.cc:63 +msgid "Automatically generated" +msgstr "" + +#: mudela-stream.cc:84 performance.cc:68 tex-stream.cc:47 +msgid ", at " +msgstr "" + +#: performance.cc:76 +msgid "from musical definition: %s" +msgstr "" + +#: performance.cc:141 +msgid "MIDI output to %s..." +msgstr "" + +#: plet-engraver.cc:83 +msgid "unterminated plet" +msgstr "" + +#: plet-spanner.cc:85 +msgid "lonely plet" +msgstr "" + +#: qlpsolve.cc:88 qlpsolve.cc:139 +msgid "degenerate constraints" +msgstr "" + +#: request-iterator.cc:68 +msgid "junking request: `%s'" +msgstr "" + +#: score-column.cc:55 +msgid "ignoring zero duration added to column at %s" +msgstr "" + +#: score-grav.cc:145 +msgid "Unbound spanner `%s'" +msgstr "" + +#: score.cc:57 +msgid "no toplevel translator" +msgstr "" + +#: score.cc:60 +msgid "Interpreting music..." +msgstr "" + +#: score.cc:70 +msgid "need music in a score" +msgstr "" + +#. should we? hampers debugging. +#: score.cc:106 +msgid "errors found, /*not processing score*/" +msgstr "" + +#: scores.cc:34 +msgid "writing dependency file: `%s'..." +msgstr "" + +#: scores.cc:78 +msgid "score contains errors; will not process it" +msgstr "" + +#: script.cc:60 +msgid "script needs stem direction" +msgstr "" + +#: slur-grav.cc:49 +msgid "unterminated slur" +msgstr "" + +#: slur-grav.cc:72 +msgid "slur" +msgstr "" + +#: spanner.cc:44 +msgid "left spanpoint is right spanpoint\n" +msgstr "" + +#: spanner.cc:101 +msgid "Spanner `%s' with equal left and right spanpoints" +msgstr "" + +#: spring-spacer.cc:82 +msgid "unconnected column: %d" +msgstr "" + +#: spring-spacer.cc:186 +msgid "I'm too fat; call Oprah" +msgstr "" + +#: spring-spacer.cc:344 +msgid "solution doesn't satisfy constraints" +msgstr "" + +#: spring-spacer.cc:623 +msgid "can't find a ruling note at %s" +msgstr "" + +#: spring-spacer.cc:629 +msgid "no minimum in measure at %s" +msgstr "" + +#: staff-side.cc:61 +msgid "Staff_side::get_position_f(): somebody forgot to set my direction, returning -20" +msgstr "" + +#: stem.cc:102 +msgid "weird stem size; check for narrow beams" +msgstr "" + +#: symtable.cc:50 +msgid "Symtable `%s': unknown symbol: `%s'" +msgstr "" + +#: symtable.cc:61 +msgid "Symtable `%s' unknown" +msgstr "" + +#: mudela-stream.cc:74 tex-stream.cc:37 +msgid "% Creator: " +msgstr "" + +#: mudela-stream.cc:79 tex-stream.cc:42 +msgid "% Automatically generated" +msgstr "" + +#: text-item.cc:47 +msgid "Text_item::get_position_f(): somebody forgot to set my vertical direction, returning -20" +msgstr "" + +#: tie-grav.cc:114 tie.cc:50 +msgid "lonely tie" +msgstr "" + +#: ties-grav.cc:82 +msgid "Can't find a note head at the right to attach Tie" +msgstr "" + +#: time-description.cc:17 +msgid "cadenza" +msgstr "" + +#: time-description.cc:106 +msgid "partial measure must be non-negative" +msgstr "" + +#: time-description.cc:108 +msgid "partial measure too large" +msgstr "" + +#: timing-translator.cc:32 +msgid "conflicting timing request" +msgstr "" + +#: timing-translator.cc:64 +msgid "meter change not allowed here" +msgstr "" + +#: timing-translator.cc:87 +msgid "barcheck failed by: %s" +msgstr "" + +#: translator-ctors.cc:40 +msgid "unknown translator `%s'" +msgstr "" + +#: translator-group.cc:149 +msgid "can't find or create `%s' called `%s'" +msgstr "" + +#: translator-group.cc:263 +msgid "can't find or create `%s'" +msgstr "" + +#: translator-group.cc:353 +msgid "can't find `%s'" +msgstr "" + +#: word-wrap.cc:68 +msgid "ugh, this measure is too long" +msgstr "" + +#: word-wrap.cc:69 +msgid "breakpoint: %d" +msgstr "" + +#: word-wrap.cc:70 +msgid "generating stupido solution" +msgstr "" + +#: word-wrap.cc:88 +msgid "I don't fit; put me on Montignac" +msgstr "" + +#: parser.yy:300 parser.yy:303 +msgid "incorrect mudela version: %s (%s, %s)" +msgstr "" + +#: parser.yy:477 +msgid "More than one music block" +msgstr "" + +#: parser.yy:1047 parser.yy:1225 parser.yy:1252 +msgid "not a duration: %d" +msgstr "" + +#: parser.yy:1049 parser.yy:1254 +msgid "can't abbreviate" +msgstr "" + +#: parser.yy:1264 +msgid "have to be in Note mode for notes" +msgstr "" + +#: parser.yy:1286 +msgid "have to be in Lyric mode for lyrics" +msgstr "" + +#: lexer.ll:125 +msgid "EOF found inside a comment" +msgstr "" + +#: lexer.ll:163 +msgid "undefined identifier: `%s'" +msgstr "" + +#. backup rule +#: lexer.ll:168 +msgid "missing end quote" +msgstr "" + +#. backup rule +#: lexer.ll:191 lexer.ll:195 +msgid "white expected" +msgstr "" + +#: lexer.ll:342 +msgid "illegal character: `%c'" +msgstr "" + +#: lexer.ll:392 +msgid "unknown escaped string: `\\%s'" +msgstr "" + +#: out/BLURB.hh:2 +msgid "" +"LilyPond is the GNU Project music typesetter. This program can print\n" +"beautiful sheet music from a music definition file. It can also play\n" +"mechanical performances to a MIDI file. Features include multiple\n" +"staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,\n" +"beams, slurs, triplets, formatting scores, part extraction. It includes\n" +"a nice font of musical symbols.\n" +msgstr "" + +#: out/COPERTINA.hh:2 +msgid "" +"LilyPond \350 il tipografo musicale del progetto GNU. Questo programma \350\n" +"fatto per stampare belle partiture da un documento definito per musica.\n" +"Pu\362 anche suonare le prestazioni meccaniche ad un documento MIDI. Le\n" +"caratteristiche includono i personali multipli, tester, chiavi, suoni,\n" +"lirica, lingua potente dell' input, cadenze, fasci, archi, tripletti,\n" +"segni di formattazione, estrazione delle parte. \310 compresa una seria \n" +"completa di caratteri musicali.\n" +msgstr "" + +#: out/FLAPTEKST.hh:2 +msgid "" +"LilyPond is de muziekzetter van het GNU Project. Dit programma drukt\n" +"prachtige bladmuziek volgens een muzikaal definitie bestand. Ook kan\n" +"het een mechanische uitvoering afspelen naar een MIDI bestand.\n" +"Bijzondere kunstjes zijn verscheidene notenbalken, maatsoorten,\n" +"sleutels, toonaarden, zangteksten, krachtige invoer taal, cadensa,\n" +"balken, boogjes, triolen, partituren, en uittreksels voor individuele \n" +"partijen. Een fraaie set muziektekens is inbegrepen.\n" +msgstr "" + +#: main.cc:43 +msgid "Usage: %s [OPTION]... [FILE]" +msgstr "" + +#: main.cc:45 +msgid "Translate midi-file to mudela" +msgstr "" + +#: main.cc:51 +msgid " -b, --no-quantify write exact durations, e.g.: a4*385/384\n" +msgstr "" + +#: main.cc:63 +msgid " -k, --key=ACC[:MINOR] set key: ACC +sharps/-flats; :1 minor\n" +msgstr "" + +#: main.cc:66 +msgid " -n, --no-silly assume no plets or double dots, smallest is 32\n" +msgstr "" + +#: main.cc:69 +msgid " -o, --output=FILE set FILE as default output\n" +msgstr "" + +#: main.cc:72 +msgid " -p, --no-plets assume no plets\n" +msgstr "" + +#: main.cc:75 +msgid " -q, --quiet be quiet\n" +msgstr "" + +#: main.cc:81 +msgid " -s, --smallest=N assume no shorter (reciprocal) durations than N\n" +msgstr "" + +#: main.cc:84 +msgid " -v, --verbose be verbose\n" +msgstr "" + +#: main.cc:90 +msgid " -x, --no-double-dots assume no double dotted notes\n" +msgstr "" + +#: main.cc:105 +msgid "Mi2mu, translate midi to mudela" +msgstr "" + +#: midi-parser.cc:64 +msgid "zero length string encountered" +msgstr "" + +#: midi-score-parser.cc:45 +msgid "MIDI header expected" +msgstr "" + +#. is this signed? +#: midi-score-parser.cc:50 +msgid "Invalid header length" +msgstr "" + +#: midi-score-parser.cc:53 +msgid "Invalid midi format" +msgstr "" + +#: midi-score-parser.cc:56 +msgid "Invalid number of tracks" +msgstr "" + +#: midi-score-parser.cc:59 +msgid "can't handle %s" +msgstr "" + +#: midi-score-parser.cc:59 +msgid "non-metrical time" +msgstr "" + +#: midi-score-parser.cc:95 +msgid "Parsing...\n" +msgstr "" + +#: midi-track-parser.cc:70 +msgid "junking note-end event: channel = %d, pitch = %d" +msgstr "" + +#: midi-track-parser.cc:125 +msgid "invalid running status" +msgstr "" + +#: midi-track-parser.cc:326 +msgid "unimplemented MIDI meta-event" +msgstr "" + +#: midi-track-parser.cc:331 +msgid "invalid MIDI event" +msgstr "" + +#: midi-track-parser.cc:346 +msgid "MIDI track expected" +msgstr "" + +#: midi-track-parser.cc:351 +msgid "invalid track length" +msgstr "" + +#. heu, -2: should be - 1 1/2: A -> fis +#: mudela-item.cc:62 +msgid "%% \"%s\"; %% not supported yet" +msgstr "" + +#: mudela-item.cc:107 +msgid "#32 in quarter: %d" +msgstr "" + +#: mudela-score.cc:96 +msgid "ugh" +msgstr "" + +#: mudela-score.cc:108 +msgid "Lily output to %s..." +msgstr "" + +#: mudela-score.cc:118 mudela-score.cc:167 +msgid "track " +msgstr "" + +#: mudela-score.cc:152 +msgid "Processing..." +msgstr "" + +#: mudela-score.cc:163 +msgid "Creating voices..." +msgstr "" + +#: mudela-score.cc:176 +msgid "NOT Filtering tempo..." +msgstr "" + +#: mudela-score.cc:185 +msgid "NOT Quantifying columns..." +msgstr "" + +#: mudela-score.cc:189 +msgid "Quantifying columns..." +msgstr "" + +#. return; +#: mudela-score.cc:224 +msgid "Settling columns..." +msgstr "" + +#: mudela-staff.cc:100 +msgid "% midi copyright:" +msgstr "" + +#: mudela-staff.cc:101 +msgid "% instrument:" +msgstr "" + +#: mudela-stream.cc:36 +msgid "lily indent level: %d" +msgstr "" + +#: mudela-stream.cc:88 +msgid "% from input file: " +msgstr "" + +#: version.cc:12 +msgid "of" +msgstr "" diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000000..85fb726c2d --- /dev/null +++ b/po/nl.po @@ -0,0 +1,905 @@ +msgid "" +msgstr "" +"Date: 1998-05-26 11:26:28+0200\n" +"From: \n" +"Content-Type: text/plain; charset=\n" +"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po --add-comments --keyword=_\n" +"Files: bow.cc int.cc\n" + +#: data-file.cc:52 +msgid "EOF in a string" +msgstr "EOF in een string" + +#: data-file.cc:121 input.cc:86 midi-parser.cc:100 warn.cc:21 +msgid "warning: " +msgstr "waarschuwing: " + +#: dstream.cc:159 +msgid "Not enough fields in Dstream init." +msgstr "Onvoldoende velden in Dstream init." + +#: flower-debug.cc:17 +msgid "Debug output disabled. Compiled with NPRINT." +msgstr "Ontluis berichten zijn uitgeschakeld. Vertaald met NPRINT." + +#: lgetopt.cc:103 +msgid "option `%s' requires an argument" +msgstr "optie `%s' vereist een argument" + +#: lgetopt.cc:107 +msgid "option `%s' doesn't allow an argument" +msgstr "optie `%s' staat geen argument toe" + +#: lgetopt.cc:111 +msgid "unrecognized option: `%s'" +msgstr "onbekende optie: `%s'" + +#: lgetopt.cc:117 +msgid "invalid argument `%s' to option `%s'" +msgstr "onjuist argument: `%s' voor optie `%s'" + +#: text-stream.cc:8 +msgid "" +msgstr "" + +#: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:102 parser.yy:1378 scores.cc:37 simple-file-storage.cc:44 tex-stream.cc:28 text-stream.cc:21 +msgid "can't open file: `%s'" +msgstr "kan bestand niet openen: `%s'" + +#: input.cc:91 warn.cc:7 warn.cc:15 +msgid "error: " +msgstr "fout: " + +#: input.cc:97 +msgid "Non fatal error: " +msgstr "Niet noodlottige fout: " + +#: input.cc:105 source-file.cc:62 source-file.cc:155 +msgid "position unknown" +msgstr "positie onbekend" + +#: mapped-file-storage.cc:65 +msgid "map_fd: " +msgstr "" + +#: mapped-file-storage.cc:74 +msgid "can't map file" +msgstr "kan bestand niet inkaarten" + +#: mapped-file-storage.cc:109 +msgid "vm_deallocate: " +msgstr "" + +#: simple-file-storage.cc:56 +msgid "Huh? got %d, expected %d characters" +msgstr "Huh? kreeg %d, verwachtte %d tekens" + +#: abbreviation-beam-engraver.cc:76 beam-grav.cc:90 +msgid "unterminated beam" +msgstr "onafgesloten balk" + +#: afm.cc:114 +msgid "can't find character called `%s'" +msgstr "" + +#: atom.cc:31 +msgid "ridiculous dimension: %s, %s" +msgstr "belachelijke dimensie: %s, %s" + +#: beam-grav.cc:106 +msgid "Stem must have Rhythmic structure." +msgstr "" + +#: beam-grav.cc:113 +msgid "stem doesn't fit in beam" +msgstr "stok past niet in balk" + +#: beam-grav.cc:124 +msgid "please fix me" +msgstr "repareer mij alsjeblieft" + +#: beam-grav.cc:125 +msgid "stem at %s doesn't fit in beam" +msgstr "stok op %s past niet in balk" + +#: beam.cc:117 +msgid "beam with less than two stems" +msgstr "balk met minder dan twee stokken" + +#. when all too short, normal stems win.. +#: beam.cc:562 +msgid "weird beam shift, check your knees" +msgstr "vreemde balk verplaatsing, controleer uw knie-en" + +#: break.cc:25 +msgid "0 lines" +msgstr "0 regels" + +#: break.cc:27 +msgid "1 line (of %.0f columns)" +msgstr "1 regel (van %.0f kolommen)" + +#: break.cc:29 +msgid "%d lines (with an average of %.1f columns)" +msgstr "%d regels (van gemiddeld %.1f kolommen)" + +#: break.cc:159 +msgid "score does not have any columns" +msgstr "partituur heeft geen enkele kolom" + +#: break.cc:183 +msgid "approximated: %s" +msgstr "geschat: %s" + +#: break.cc:185 +msgid "calculated exactly: %s" +msgstr "exact berekend: %s" + +#: break.cc:186 score.cc:111 +msgid "time: %.2f seconds" +msgstr "duur: %.2f seconden" + +#: change-iterator.cc:25 +msgid "can't change `%s' to `%s'" +msgstr "kan `%s' niet in `%s' veranderen" + +#: clef-grav.cc:137 +msgid "unknown clef type " +msgstr "onbekende sleutel" + +#: collision.cc:62 +msgid "No stem direction set. Ignoring column in clash." +msgstr "Geen stokrichting gezet. Negeer kolom in botsing." + +#: collision.cc:75 +msgid "Too many clashing notecolumns. Ignoring them." +msgstr "Te veel botsende nootkolommen. Ik negeer ze." + +#: command-request.cc:209 +msgid "don't know how handle empty keys" +msgstr "" + +#: crescendo.cc:47 +msgid "crescendo" +msgstr "" + +#: crescendo.cc:47 lookup.cc:338 lookup.cc:371 lookup.cc:389 +msgid "too small" +msgstr "te klein" + +#: debug.cc:56 +msgid "Floating point exception" +msgstr "Drijvende komma uitzondering" + +#: debug.cc:140 +msgid "can't set mem-checking" +msgstr "" + +#: dimen.cc:31 +msgid "unknown length unit: `%s'" +msgstr "" + +#: dimen.cc:40 +msgid "NaN" +msgstr "NaN" + +#: dynamic-grav.cc:85 slur-grav.cc:72 +msgid "can't find both ends of %s" +msgstr "kan uiteinden van %s niet beide vinden" + +#: dynamic-grav.cc:86 +msgid "cresc" +msgstr "" + +#: dynamic-grav.cc:162 +msgid "unended crescendo" +msgstr "niet beeindigd crescendo" + +#: identifier.cc:49 +msgid "Wrong identifier type: " +msgstr "" + +#: identifier.cc:50 +msgid "%s expected" +msgstr "%s verwacht" + +#: includable-lexer.cc:38 midi-score-parser.cc:24 scores.cc:108 scores.cc:113 +msgid "can't find file: `%s'" +msgstr "kan bestand niet vinden: `%s'" + +#: ineq-constrained-qp.cc:167 +msgid "Ineq_constrained_qp::solve (): Constraint off by %f" +msgstr "Ineq_constrained_qp::solve (): voorwaarde zit er %f naast" + +#: ineq-constrained-qp.cc:222 +msgid "didn't converge!" +msgstr "ik convederde niet!" + +#: ineq-constrained-qp.cc:224 +msgid "Too much degeneracy. " +msgstr "" + +#: key-grav.cc:109 +msgid "No key name: assuming `C'" +msgstr "" + +#: local-key-grav.cc:34 +msgid "out of tune" +msgstr "vals" + +#: local-key-grav.cc:34 meter-grav.cc:28 +msgid "can't find" +msgstr "kan niet vinden" + +#: lookup.cc:337 lookup.cc:343 +msgid "piano brace" +msgstr "piano accolade" + +#: lookup.cc:344 lookup.cc:395 +msgid "too big" +msgstr "te groot" + +#: lookup.cc:370 lookup.cc:388 lookup.cc:394 +msgid "bracket" +msgstr "haak" + +#: main.cc:65 +msgid "Usage: %s [OPTION]... [FILE]..." +msgstr "Gebruik: %s [OPTIE]... [BESTAND]..." + +#: main.cc:66 +msgid "Typeset music and or play MIDI from FILE or " +msgstr "Zet muziek en of speel MIDI van FILE of " + +#: main.cc:48 main.cc:69 +msgid "Options:" +msgstr "Opties:" + +#: main.cc:72 +msgid " -a, --about about LilyPond\n" +msgstr " -a, --about over LilyPond\n" + +#: main.cc:54 main.cc:75 +msgid " -D, --debug enable debugging output\n" +msgstr " -D, --debug toon ontluis berichten\n" + +#: main.cc:78 +msgid " -d, --dependencies write Makefile dependencies for every input file\n" +msgstr " -d, --dependencies schrijf Makefile afhankelijkheden voor elk\n" +" invoerbestand\n" + +#: main.cc:60 main.cc:81 +msgid " -I, --include=DIR add DIR to search path\n" +msgstr " -I, --include=INDEX voeg INDEX toe aan zoekpad\n" + +#: main.cc:84 +msgid " -i, --init=FILE use FILE as init file\n" +msgstr " -i, --init=BESTAND gebruik BESTAND voor initialisatiebestand\n" + +#: main.cc:57 main.cc:87 +msgid " -h, --help this help\n" +msgstr " -h, --help deze hulp\n" + +#: main.cc:90 +msgid " -M, --no-paper produce midi output only\n" +msgstr " -M, --no-paper produceer alleen midi uitvoer\n" + +#: main.cc:93 +msgid " -o, --output=FILE set FILE as default output base\n" +msgstr "" + +#: main.cc:96 +msgid " -Q, --find-fourths show all intervals greater than a fourth\n" +msgstr " -Q, --find-fourths toon alle intervallen groter dan een kwart\n" + +#: main.cc:99 +msgid " -t, --test switch on experimental features\n" +msgstr " -t, --test doe experimentele kunstjes\n" + +#: main.cc:78 main.cc:102 +msgid " -T, --no-timestamps don't timestamp the output\n" +msgstr " -T, --no-timestamps zet geen tijdstempel in de uitvoer\n" + +#: main.cc:105 +msgid " -V, --ignore-version ignore mudela version\n" +msgstr " -V, --ignore-version negeer mudela versie\n" + +#: main.cc:87 main.cc:108 +msgid " -w, --warranty show warranty and copyright\n" +msgstr " -w, --warranty toon garantie en copyright\n" + +#: main.cc:111 +msgid "GNU LilyPond was compiled with the following settings:" +msgstr "GNU LilyPond is vertaald met de volgende instellingen:" + +#: main.cc:139 +msgid "GNU LilyPond is Free software, see --warranty" +msgstr "GNU LilyPond is Vrij bedenksel, zie --warranty" + +#: main.cc:107 main.cc:142 main.cc:155 +msgid "Copyright (c) %s by" +msgstr "Copyright (c) %s " + +#: main.cc:109 main.cc:144 main.cc:157 +msgid "Han-Wen Nienhuys " +msgstr "" + +#: main.cc:110 main.cc:145 main.cc:158 +msgid "Jan Nieuwenhuizen " +msgstr "" + +#: main.cc:153 +msgid "GNU LilyPond -- The GNU Project music typesetter" +msgstr "GNU LilyPond -- De Muziekzetter van het GNU Project" + +#: main.cc:113 main.cc:161 +msgid "" +" This program is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License version 2\n" +"as published by the Free Software Foundation.\n" +"\n" +" This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" +"General Public License for more details.\n" +"\n" +" You should have received a copy (refer to the file COPYING) of the\n" +"GNU General Public License along with this program; if not, write to\n" +"the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n" +"USA.\n" +msgstr "" +" Dit programma is vrij bedenksel; u mag het verspreiden en/of\n" +"veranderen onder de voorwaarden van de GNU Algemene Openbare Licentie\n" +"versie 2, zoals gepubliceerd door de Free Software Foundation.\n" +"\n" +" Dit programma wordt verspreid in de hoop dat het nuttig zal zijn,\n" +"maar ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garantie voor\n" +"het UITBATEN of als zijnde GESCHIKT VOOR EEN BEPAALD DOEL. Zie de GNU\n" +"Algemene Openbare Licentie voor details.\n" +"\n" +" Als het goed is, heeft u bij dit programma een copie (zie het bestand\n" +"COPYING) ontvangen van de GNU Algemene Openbare Licentie; zoniet, schrijf\n" +"dan naar de Free Software Foundation, Inc., 675 Mass Ave, Cambridge, \n" +"MA 02139, USA.\n" + +#: meter-grav.cc:28 +msgid "lost in time" +msgstr "hoe laat is het" + +#: midi-item.cc:364 +msgid "unconventional key: flats: %d, sharps: %d" +msgstr "vreemde toonsoort: %d mollen, %d kruizen" + +#: midi-item.cc:410 +msgid "silly duration" +msgstr "" + +#: midi-item.cc:424 +msgid "silly pitch" +msgstr "" + +#: midi-stream.cc:29 tex-stream.cc:58 +msgid "error syncing file (disk full?)" +msgstr "kan file niet wegschrijven (disk vol?)" + +#: musical-pitch.cc:145 +msgid "Interval greater than quart, relative: %s" +msgstr "Interval groter dan kwart, relatief: %s" + +#: musical-request.cc:93 +msgid "transposition by %s makes accidental larger than two" +msgstr "transpositie van %s geeft tripel kruizen/mollen " + +#: musical-request.cc:439 +msgid "never heard of dynamic scale `\\%s', assuming %s" +msgstr "zo hard kan ik niet `\\%s', ik doe gewoon %s" + +#: my-lily-lexer.cc:120 +msgid "redeclaration of `\\%s'" +msgstr "`\\%s' wordt opnieuw gedeclareerd" + +#: my-lily-lexer.cc:149 +msgid "error at EOF: %s" +msgstr "fout aan het einde van file: %s" + +#: my-lily-parser.cc:62 +msgid "Parsing..." +msgstr "Ontleden..." + +#: my-lily-parser.cc:71 +msgid "braces don't match" +msgstr "haakjes passen niet" + +#: p-score.cc:178 +msgid "Can't solve this casting problem exactly; revert to Word_wrap" +msgstr "Kan breekprobleem niet exact oplossen; verval naar Word_wrap" + +#: p-score.cc:197 +msgid "Preprocessing elements..." +msgstr "Voorbewerken van elementen..." + +#: p-score.cc:201 +msgid "Calculating column positions..." +msgstr "Berekenen van kolomposities..." + +#: p-score.cc:205 +msgid "Postprocessing elements..." +msgstr "Nabewerken van elementen..." + +#: p-score.cc:231 +msgid "TeX output to %s..." +msgstr "TeX uitvoer naar %s..." + +#: p-score.cc:245 +msgid "% outputting Score, defined at: " +msgstr "" + +#: paper-def.cc:61 +msgid "unknown paper variable: `%s'" +msgstr "onbekende \\paper variabele" + +#: paper-def.cc:65 +msgid "not a real variable" +msgstr "variabele is geen reeal getal" + +#. perhaps multiple text events? +#: performance.cc:54 +msgid "Creator: " +msgstr "Schepper: " + +#: performance.cc:63 +msgid "Automatically generated" +msgstr "Automatisch gegenerederd" + +#: mudela-stream.cc:84 performance.cc:68 tex-stream.cc:47 +msgid ", at " +msgstr ", bij " + +#: performance.cc:76 +msgid "from musical definition: %s" +msgstr "van muzikale definitie: %s" + +#: performance.cc:141 +msgid "MIDI output to %s..." +msgstr "MIDI uitvoer naar %s..." + +#: plet-engraver.cc:83 +msgid "unterminated plet" +msgstr "onsterfelijke -ool" + +#: plet-spanner.cc:85 +msgid "lonely plet" +msgstr "eenzame -ool" + +#: qlpsolve.cc:88 qlpsolve.cc:139 +msgid "degenerate constraints" +msgstr "voorwaarde is gedegenerederd" + +#: request-iterator.cc:68 +msgid "junking request: `%s'" +msgstr "schroot verzoek: `%s'" + +#: score-column.cc:55 +msgid "ignoring zero duration added to column at %s" +msgstr "" + +#: score-grav.cc:145 +msgid "Unbound spanner `%s'" +msgstr "Vrijgezelle spanner `%s'" + +#: score.cc:57 +msgid "no toplevel translator" +msgstr "" + +#: score.cc:60 +msgid "Interpreting music..." +msgstr "Vertolken van muziek..." + +#: score.cc:70 +msgid "need music in a score" +msgstr "zonder muziek geen partituur" + +#. should we? hampers debugging. +#: score.cc:106 +msgid "errors found, /*not processing score*/" +msgstr "" + +#: scores.cc:34 +msgid "writing dependency file: `%s'..." +msgstr "" + +#: scores.cc:78 +msgid "score contains errors; will not process it" +msgstr "" + +#: script.cc:60 +msgid "script needs stem direction" +msgstr "schrift benodigt stokrichting" + +#: slur-grav.cc:49 +msgid "unterminated slur" +msgstr "onsterfelijke boog" + +#: slur-grav.cc:72 +msgid "slur" +msgstr "" + +#: spanner.cc:44 +msgid "left spanpoint is right spanpoint\n" +msgstr "" + +#: spanner.cc:101 +msgid "Spanner `%s' with equal left and right spanpoints" +msgstr "" + +#: spring-spacer.cc:82 +msgid "unconnected column: %d" +msgstr "" + +#: spring-spacer.cc:186 +msgid "I'm too fat; call Oprah" +msgstr "" + +#: spring-spacer.cc:344 +msgid "solution doesn't satisfy constraints" +msgstr "" + +#: spring-spacer.cc:623 +msgid "can't find a ruling note at %s" +msgstr "" + +#: spring-spacer.cc:629 +msgid "no minimum in measure at %s" +msgstr "" + +#: staff-side.cc:61 +msgid "Staff_side::get_position_f(): somebody forgot to set my direction, returning -20" +msgstr "" + +#: stem.cc:102 +msgid "weird stem size; check for narrow beams" +msgstr "vreemde stoklengte; controleer op krappe balken" + +#: symtable.cc:50 +msgid "Symtable `%s': unknown symbol: `%s'" +msgstr "" + +#: symtable.cc:61 +msgid "Symtable `%s' unknown" +msgstr "" + +#: mudela-stream.cc:74 tex-stream.cc:37 +msgid "% Creator: " +msgstr "" + +#: mudela-stream.cc:79 tex-stream.cc:42 +msgid "% Automatically generated" +msgstr "" + +#: text-item.cc:47 +msgid "Text_item::get_position_f(): somebody forgot to set my vertical direction, returning -20" +msgstr "" + +#: tie-grav.cc:114 tie.cc:50 +msgid "lonely tie" +msgstr "" + +#: ties-grav.cc:82 +msgid "Can't find a note head at the right to attach Tie" +msgstr "" + +#: time-description.cc:17 +msgid "cadenza" +msgstr "cadens" + +#: time-description.cc:106 +msgid "partial measure must be non-negative" +msgstr "" + +#: time-description.cc:108 +msgid "partial measure too large" +msgstr "" + +#: timing-translator.cc:32 +msgid "conflicting timing request" +msgstr "" + +#: timing-translator.cc:64 +msgid "meter change not allowed here" +msgstr "maatwisseling is hier niet geoorloofd" + +#: timing-translator.cc:87 +msgid "barcheck failed by: %s" +msgstr "misplaatste maatstreep: %s" + +#: translator-ctors.cc:40 +msgid "unknown translator `%s'" +msgstr "" + +#: translator-group.cc:149 +msgid "can't find or create `%s' called `%s'" +msgstr "" + +#: translator-group.cc:263 +msgid "can't find or create `%s'" +msgstr "" + +#: translator-group.cc:353 +msgid "can't find `%s'" +msgstr "kan niet vinden `%s'" + +#: word-wrap.cc:68 +msgid "ugh, this measure is too long" +msgstr "ugh, deze maat is te lang" + +#: word-wrap.cc:69 +msgid "breakpoint: %d" +msgstr "" + +#: word-wrap.cc:70 +msgid "generating stupido solution" +msgstr "" + +#: word-wrap.cc:88 +msgid "I don't fit; put me on Montignac" +msgstr "Ik ben te dik." + +#: parser.yy:300 parser.yy:303 +msgid "incorrect mudela version: %s (%s, %s)" +msgstr "verkeerde mudela versie: %s (%s, %s)" + +#: parser.yy:477 +msgid "More than one music block" +msgstr "" + +#: parser.yy:1047 parser.yy:1225 parser.yy:1252 +msgid "not a duration: %d" +msgstr "is geen duur: %d" + +#: parser.yy:1049 parser.yy:1254 +msgid "can't abbreviate" +msgstr "" + +#: parser.yy:1264 +msgid "have to be in Note mode for notes" +msgstr "" + +#: parser.yy:1286 +msgid "have to be in Lyric mode for lyrics" +msgstr "" + +#: lexer.ll:125 +msgid "EOF found inside a comment" +msgstr "" + +#: lexer.ll:163 +msgid "undefined identifier: `%s'" +msgstr "" + +#. backup rule +#: lexer.ll:168 +msgid "missing end quote" +msgstr "" + +#. backup rule +#: lexer.ll:191 lexer.ll:195 +msgid "white expected" +msgstr "" + +#: lexer.ll:342 +msgid "illegal character: `%c'" +msgstr "" + +#: lexer.ll:392 +msgid "unknown escaped string: `\\%s'" +msgstr "" + +#: out/BLURB.hh:2 +msgid "" +"LilyPond is the GNU Project music typesetter. This program can print\n" +"beautiful sheet music from a music definition file. It can also play\n" +"mechanical performances to a MIDI file. Features include multiple\n" +"staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,\n" +"beams, slurs, triplets, formatting scores, part extraction. It includes\n" +"a nice font of musical symbols.\n" +msgstr "" +"LilyPond is de muziekzetter van het GNU Project. Dit programma drukt\n" +"prachtige bladmuziek volgens een muzikaal definitie bestand. Ook kan\n" +"het een mechanische uitvoering afspelen naar een MIDI bestand.\n" +"Bijzondere kunstjes zijn verscheidene notenbalken, maatsoorten,\n" +"sleutels, toonaarden, zangteksten, krachtige invoer taal, cadensa,\n" +"balken, boogjes, triolen, partituren, en losse partijen. Een fraaie set\n" +"muziektekens is inbegrepen.\n" + +#: out/COPERTINA.hh:2 +msgid "" +"LilyPond \350 il tipografo musicale del progetto GNU. Questo programma \350\n" +"fatto per stampare belle partiture da un documento definito per musica.\n" +"Pu\362 anche suonare le prestazioni meccaniche ad un documento MIDI. Le\n" +"caratteristiche includono i personali multipli, tester, chiavi, suoni,\n" +"lirica, lingua potente dell' input, cadenze, fasci, archi, tripletti,\n" +"segni di formattazione, estrazione delle parte. \310 compresa una seria \n" +"completa di caratteri musicali.\n" +msgstr "" + +#: out/FLAPTEKST.hh:2 +msgid "" +"LilyPond is de muziekzetter van het GNU Project. Dit programma drukt\n" +"prachtige bladmuziek volgens een muzikaal definitie bestand. Ook kan\n" +"het een mechanische uitvoering afspelen naar een MIDI bestand.\n" +"Bijzondere kunstjes zijn verscheidene notenbalken, maatsoorten,\n" +"sleutels, toonaarden, zangteksten, krachtige invoer taal, cadensa,\n" +"balken, boogjes, triolen, partituren, en uittreksels voor individuele \n" +"partijen. Een fraaie set muziektekens is inbegrepen.\n" +msgstr "" + +#: main.cc:43 +msgid "Usage: %s [OPTION]... [FILE]" +msgstr "" + +#: main.cc:45 +msgid "Translate midi-file to mudela" +msgstr "" + +#: main.cc:51 +msgid " -b, --no-quantify write exact durations, e.g.: a4*385/384\n" +msgstr "" + +#: main.cc:63 +msgid " -k, --key=ACC[:MINOR] set key: ACC +sharps/-flats; :1 minor\n" +msgstr "" + +#: main.cc:66 +msgid " -n, --no-silly assume no plets or double dots, smallest is 32\n" +msgstr "" + +#: main.cc:69 +msgid " -o, --output=FILE set FILE as default output\n" +msgstr " -o, --output=BESTAND zet BESTAND als verval uitvoer\n" + +#: main.cc:72 +msgid " -p, --no-plets assume no plets\n" +msgstr "" + +#: main.cc:75 +msgid " -q, --quiet be quiet\n" +msgstr "" + +#: main.cc:81 +msgid " -s, --smallest=N assume no shorter (reciprocal) durations than N\n" +msgstr "" + +#: main.cc:84 +msgid " -v, --verbose be verbose\n" +msgstr "" + +#: main.cc:90 +msgid " -x, --no-double-dots assume no double dotted notes\n" +msgstr "" + +#: main.cc:105 +msgid "Mi2mu, translate midi to mudela" +msgstr "" + +#: midi-parser.cc:64 +msgid "zero length string encountered" +msgstr "" + +#: midi-score-parser.cc:45 +msgid "MIDI header expected" +msgstr "" + +#. is this signed? +#: midi-score-parser.cc:50 +msgid "Invalid header length" +msgstr "" + +#: midi-score-parser.cc:53 +msgid "Invalid midi format" +msgstr "" + +#: midi-score-parser.cc:56 +msgid "Invalid number of tracks" +msgstr "" + +#: midi-score-parser.cc:59 +msgid "can't handle %s" +msgstr "" + +#: midi-score-parser.cc:59 +msgid "non-metrical time" +msgstr "" + +#: midi-score-parser.cc:95 +msgid "Parsing...\n" +msgstr "" + +#: midi-track-parser.cc:70 +msgid "junking note-end event: channel = %d, pitch = %d" +msgstr "" + +#: midi-track-parser.cc:125 +msgid "invalid running status" +msgstr "" + +#: midi-track-parser.cc:326 +msgid "unimplemented MIDI meta-event" +msgstr "" + +#: midi-track-parser.cc:331 +msgid "invalid MIDI event" +msgstr "" + +#: midi-track-parser.cc:346 +msgid "MIDI track expected" +msgstr "" + +#: midi-track-parser.cc:351 +msgid "invalid track length" +msgstr "" + +#. heu, -2: should be - 1 1/2: A -> fis +#: mudela-item.cc:62 +msgid "%% \"%s\"; %% not supported yet" +msgstr "" + +#: mudela-item.cc:107 +msgid "#32 in quarter: %d" +msgstr "" + +#: mudela-score.cc:96 +msgid "ugh" +msgstr "" + +#: mudela-score.cc:108 +msgid "Lily output to %s..." +msgstr "" + +#: mudela-score.cc:118 mudela-score.cc:167 +msgid "track " +msgstr "" + +#: mudela-score.cc:152 +msgid "Processing..." +msgstr "" + +#: mudela-score.cc:163 +msgid "Creating voices..." +msgstr "" + +#: mudela-score.cc:176 +msgid "NOT Filtering tempo..." +msgstr "" + +#: mudela-score.cc:185 +msgid "NOT Quantifying columns..." +msgstr "" + +#: mudela-score.cc:189 +msgid "Quantifying columns..." +msgstr "" + +#. return; +#: mudela-score.cc:224 +msgid "Settling columns..." +msgstr "" + +#: mudela-staff.cc:100 +msgid "% midi copyright:" +msgstr "" + +#: mudela-staff.cc:101 +msgid "% instrument:" +msgstr "" + +#: mudela-stream.cc:36 +msgid "lily indent level: %d" +msgstr "" + +#: mudela-stream.cc:88 +msgid "% from input file: " +msgstr "" + +#: version.cc:12 +msgid "of" +msgstr "van" diff --git a/stepmake/Documentation/topdocs/AUTHORS.yo b/stepmake/Documentation/topdocs/AUTHORS.yo new file mode 100644 index 0000000000..e14f5d0a10 --- /dev/null +++ b/stepmake/Documentation/topdocs/AUTHORS.yo @@ -0,0 +1,27 @@ +nsect(NAME) + +AUTHORS - who did what on StepMake? + +nsect(DESCRIPTION) + +This file lists authors of StepMake, and what they wrote. + +nsect(AUTHORS) +itemize( +it()nemail(Jan Nieuwenhuizen)(janneke@gnu.org), + lurl(http://www.digicash.com/~jan) + nl() + Main author. +it()nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl), + lurl(http://www.cs.uu.nl/people/hanwen) + nl() + Main author. +) + +nsect(CONTRIBUTORS) + +itemize( +it()nemail(Jeffrey B. Reed)(daboys@bga.com), + Windows-nt fixes. +) + diff --git a/stepmake/README b/stepmake/README new file mode 100644 index 0000000000..22375a6104 --- /dev/null +++ b/stepmake/README @@ -0,0 +1,18 @@ +StepMake + +This is a simple generic make package. +It is being used by LilyPond and Harmonia +(and StepMake itself, of course) + +You're looking at her embryonal state -- things are *supposed* +to be broken. + +Fixes/patches/suggestions appreciated. + +StepMake is Free Software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +Jan Nieuwenhuizen +ftp://pcnov095.win.tue.nl/pub/lilypond/development + diff --git a/stepmake/bin/packagepython.py b/stepmake/bin/packagepython.py new file mode 100755 index 0000000000..68c7abdc67 --- /dev/null +++ b/stepmake/bin/packagepython.py @@ -0,0 +1,173 @@ +#!/usr/bin/python + +# packagepython.py -- implement general StepMake-wide python stuff +# +# source file of the GNU LilyPond music typesetter +# +# (c) 1997--1998 Han-Wen Nienhuys +# Jan Nieuwenhuizen + +import regex +import regsub +from string import * +# from flower import * +import sys +import os +import getopt + +make_assign_re = regex.compile('^\([A-Z_]*\)=\(.*\)$') + +def read_makefile (fn): + file = open (fn) + lines = file.readlines() + + mi = pa = mj = 0 + mp = '' + + make_dict = {} + for l in lines: + if make_assign_re.search(l) <> -1: + nm = make_assign_re.group(1) + val = make_assign_re.group(2) + make_dict[nm] = val + return make_dict + +class Package: + def __init__ (self, dirname): + dict = read_makefile (dirname + '/VERSION') + version_list = [] + for x in [ 'MAJOR_VERSION', 'MINOR_VERSION', 'PATCH_LEVEL']: + version_list.append (atoi (dict[x])) + version_list.append (dict['MY_PATCH_LEVEL']) + self.topdir = dirname + self.groupdir = self.topdir + '/..' + self.patch_dir = self.groupdir + '/patches/' + self.release_dir = self.groupdir + '/releases/' + self.test_dir = self.groupdir + '/test/' + self.version = tuple(version_list) + self.Name = dict['PACKAGE_NAME'] + self.name = lower (self.Name) + if self.name == 'lilypond': + self.nickname = 'lelie' + else: + self.nickname = self.name + self.NAME = upper (self.Name) + + +class Packager: + def __init__ (self): + try: + m= os.environ['MAILADDRESS'] + except KeyError: + m= '(address unknown)' + self.mail= m + + +def full_version_tup(tup): + t = [0,0,0,''] + for i in range (4): + try: + t[i] = tup[i] + except IndexError: + break + return tuple(t) + +def split_my_patchlevel(str): + return (regsub.sub('[0-9]*$', '', str), + atoi(regsub.sub('[^0-9]*', '', str))) + + +def next_version(tup): + l = list(full_version_tup (tup)) + t3name=t3num='' + if l[3]: + (t3name,t3num)= split_my_patchlevel (l[3]) + if t3num: + t3num = '%d' % (t3num + 1) + else: + t3num = t3name ='' + else: + l[2] = l[2] +1 + + return tuple(l[0:3] + [t3name + t3num]) + +def prev_version(tup): + l = list(full_version_tup (tup)) + t3name=t3num='' + if l[3]: + (t3name,t3num)= split_my_patchlevel (l[3]) + if t3num and t3num - 1 > 0: + t3num = '%d' %(t3num - 1) + else: + t3num = t3name ='' + + else: + l[2] = l[2] -1 + + return tuple(l[0:3] + [t3name + t3num]) + +def version_tuple_to_str(tup): + tup = full_version_tup (tup) + if tup[3]: + my = '.' + tup[3] + else: + my = '' + return ('%d.%d.%d' % tup[0:3]) + my + +def version_str_to_tuple(str): + t = split(str, '.') + try: + mypatch = t[3] + except IndexError: + mypatch = '' + return (atoi(t[0]), atoi(t[1]), atoi(t[2]), mypatch) + +def version_compare (tupl, tupr): + tupl = full_version_tup (tupl) + tupr = full_version_tup (tupr) + for i in (0,1,2): + if tupl[i] - tupr[i]: return tupl[i] - tupr[i] + if tupl[3] and tupr[3]: + lname = regsub.sub('[0-9]*$', '', tupl[3]) + lnum = atoi(regsub.sub('[^0-9]*', '', tupl[3])) + rname = regsub.sub('[0-9]*$', '', tupr[3]) + rnum = atoi(regsub.sub('[^0-9]*', '', tupr[3])) + if lname != rname: + raise 'ambiguous' + return sign (lnum - rnum) + if tupl[3]: + return 1 + else: + return -1 + + +if __name__ == '__main__': + p = Package ('.') + v= p.version + print v, prev_version(v), next_version(v) + pv=(0,1,1,'jcn4') + print version_tuple_to_str(pv), prev_version(pv), next_version(pv) + print version_tuple_to_str((0,1,1,'')) + print full_version_tup ((0,1)) + + +def dump_file(f, s): + i = open(f, 'w') + i.write(s) + i.close () + +def gulp_file(f): + try: + i = open(f) + i.seek (0, 2) + n = i.tell () + i.seek (0,0) + except: + sys.stderr.write( 'can\'t open file %s\n ' % f) + return '' + s = i.read (n) + if len (s) <= 0: + sys.stderr.write( 'gulped empty file: %s\n'% f) + return s + + diff --git a/stepmake/bin/table-to-html.py b/stepmake/bin/table-to-html.py new file mode 100644 index 0000000000..d43590f0d7 --- /dev/null +++ b/stepmake/bin/table-to-html.py @@ -0,0 +1,137 @@ +#!@PYTHON@ + +# table-to-html.py -- convert char-separated table to html table +# +# source file of the GNU LilyPond music typesetter +# +# (c) 1998 Jan Nieuwenhuizen + +version = '0.1' +name = 'table-to-html' + +import os +import sys + +import getopt +from string import * +import regex +import regsub +import time + +def program_id (): + return name + ' version ' + version; + +def identify (): + sys.stdout.write (program_id () + '\n') + +def help (): + sys.stdout.write ("Usage: table-to-html [OPTION]... TABLE-FILE HTML-FILENAME\n" + + "Generate pretty table from char separated table\n\n" + + "Options:\n" + + " -h, --help print this help\n" + + " -p, --package=DIR specify package\n" + + " -s, --separator=SEP specify separator [:]\n" + + " -t, --latex do latex output instead\n" + ) + + sys.exit (0) + + +def header (html): + html.write ('') + +def footer (html): + html.write ('
') + +def convert_html (inname, outname, separator): + # urg, again? + from flower import * + table = File (inname) + # ugh + html = File (outname, 'w') + + header (html) + i = 0 + while not table.eof (): + line = table.readline () + i = i + 1 + if not len(line): + continue + columns = split (line, separator) + html_line = '' + join (columns, '') + '' + html.write (html_line) + if len (columns) < 7: + print inname + ': ' + str(i) + ':warning: not enough cols\n' + continue + if len (columns) > 7: + print inname + ': ' + str(i) + ':warning: too many cols\n' + continue + + table.close () + footer (html) + html.close () + +def convert_tex (inname, outname, separator): + # urg, again? + from flower import * + table = File (inname) + # ugh + html = File (outname, 'w') + + i = 0 + while not table.eof (): + line = table.readline () + i = i + 1 + if not len(line): + continue + columns = split (line, separator) + if len (columns) < 7: + print inname + ': ' + str(i) + ':warning: not enough cols\n' + continue + if len (columns) > 7: + print inname + ': ' + str(i) + ':warning: too many cols\n' + continue + + html_line = '\\tableentry{' + join (columns, '}{') + '}\n' + html.write (html_line) + table.close () + html.close () + +def main (): + identify () + (options, files) = getopt.getopt ( + sys.argv[1:], 'to:hp:s:', ['help', 'latex', 'output=', 'package=', 'separator=']) + latex = 0 + separator = ':' + output = '' + for opt in options: + o = opt[0] + a = opt[1] + if o == '--separator' or o == '-s': + separator = a + elif o== '--help' or o == '-h': + help () + elif o=='--latex' or o == '-t': + latex = 1 + elif o == '--output' or o == '-o': + output = a + elif o == '--package' or o == '-p': + topdir=a + else: + print o + raise getopt.error + + sys.path.append (topdir + '/stepmake/bin') + from packagepython import * + package = Package (topdir) + packager = Packager () + + from flower import * + + if latex: + convert_tex (files[0], output, separator) + else: + convert_html (files[0], output, separator) + +main () + diff --git a/stepmake/bin/update.py b/stepmake/bin/update.py new file mode 100644 index 0000000000..60521aeae4 --- /dev/null +++ b/stepmake/bin/update.py @@ -0,0 +1,173 @@ +#!@PYTHON@ + +# update.py -- update current source tree +# +# source file of the GNU LilyPond music typesetter +# +# (c) 1998 Jan Nieuwenhuizen + +program_name = 'update' +version = '0.1' + +import os +import sys + +sys.path.append ('@abs-step-bindir@') +sys.path.append (os.environ['HOME'] + '/usr/src/lilypond/stepmake/bin') + +import getopt +from string import * +import regex +import regsub +import time + +def program_id (): + return program_name + ' version ' + version; + +def identify (): + sys.stdout.write (program_id () + '\n') + +def help (): + sys.stdout.write ("Usage: %s [OPTION]...\n" + "Update sourcetree\n\n" + + "Options:\n" + + " -f, --file=FILE specify patch file\n" + + " -h, --help print this help\n" + + " -p, --package=DIR specify package\n" + + " -v, --version=VER specify patch version\n" + % (program_name) + ) + sys.exit (0) + +identify () +(options, files) = getopt.getopt ( + sys.argv[1:], 'f:hp:v:', ['file=', 'help', 'package=', 'version=']) +patch='' +ver='' +for opt in options: + o = opt[0] + a = opt[1] + if o == '--help' or o == '-h': + help () + elif o == '-f' or o == '--file': + patch = a + elif o == '-p' or o == '--package': + topdir = a + elif o == '-v' or o == '--version': + ver = a + else: + print o + raise getopt.error + +sys.path.append (topdir + '/stepmake/bin') +from packagepython import * +package = Package (topdir) +packager = Packager () + +from flower import * + +def read_patch_vector (patch): + vec = [] + pipe = os.popen ('gzip -dc ' + patch) + line = pipe.readline () + while line and line != '--state\n': + line = pipe.readline () + line = pipe.readline () + while line and line != '++state\n': + vec.append (line[:len (line)-1]) + line = pipe.readline () + pipe.close () + return vec + +def read_state_vector (states): + vec = [] + file = File (states) + while not file.eof (): + line = file.readline () + if line: + vec.append (line[:len (line)-1]) + return vec + +def read_relevant_state_vector (states, from_str): + vec = read_state_vector (states) + for i in range (len (vec)): + if vec[i] == from_str: + return vec[i:] + return [] + +def find_revert (states, patch): + for i in range (len (state_vector)): + for j in doubles: + if j in state_vector[:i+1]: + return state_vector[i:] + return [] + +if patch == '' and ver != '': + patch = package.patch_dir + '/' + package.name + '-%s.diff.gz' % ver +if patch == '': + if 0: + files = os.listdir (package.patch_dir) + patches = [] + for i in files: + if regex.search (package.name + '-.*.diff.gz', i) == 0: + patches.append (i) + # urg: sort + patch = package.patch_dir + '/' + patches[len (patches) -1] + else: + os.chdir (package.patch_dir) + pipe = os.popen ('/bin/ls -t1 ' + package.name + + '-*.diff.gz 2> /dev/null') + patch = pipe.readline () + patch = patch[:len (patch) -1] + pipe.close () + if not patch: + raise 'patch not found' + patch = package.patch_dir + '/' + patch + print patch + +os.chdir (package.topdir) +patch_vector = read_patch_vector (patch) +print 'patch vector: ' + str (patch_vector) +from_str = patch_vector[0] +state_vector = read_relevant_state_vector ('make/STATE-VECTOR', from_str) +print 'relevant state vector: ' + str (state_vector) + +doubles = [] +for i in patch_vector[1:]: + if i in state_vector: + doubles.append (i) +print 'doubles: ' + str (doubles) + +revert = find_revert (state_vector, patch_vector) +redo = [] +for i in revert: + redo.append (i) +revert.reverse () + +for i in doubles: + redo.remove (i) + +if revert or redo or doubles: + print 'not smart enough; please do:' + print ' * revert: ' + str (revert) + print ' * apply: ' + os.path.basename (patch) + print ' * redo: ' + str (redo) + sys.exit (1) + +status = os.system ('echo "gzip -dc %s | patch -p1 -E --force"' % patch) +if status: + raise 'apply patch failed' + +sys.stdout.write ('checking...') +rejects = my_find (['*.rej'], '.') +if len (rejects): + print 'rejects found:' + for i in rejects: + print i + sys.exit (1) +print 'ok' +sys.stdout.write ('cleaning...') +origs = my_find (['*.orig'], '.') +for i in origs: + os.remove (i) +print 'ok' diff --git a/stepmake/make/stepmake.lsm.in b/stepmake/make/stepmake.lsm.in new file mode 100644 index 0000000000..1e00adf0f7 --- /dev/null +++ b/stepmake/make/stepmake.lsm.in @@ -0,0 +1,15 @@ +Begin3 +Title: StepMake +Version: @TOPLEVEL_VERSION@ +Entered-date: @DATE@ +Description: @BLURB@ +Keywords: music notation typesetting midi fonts engraving +Author: janneke@gnu.org (Jan Nieuwenhuizen) + hanwen@cs.ruu.nl (Han-Wen Nienhuys) +Maintained-by: janneke@gnu.org (Jan Nieuwenhuizen) +Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert + 40k @package@-@TOPLEVEL_VERSION@.tar.gz +Original-site: pcnov095.win.tue.nl /pub/lilypond/development/ + 40k @package@-@TOPLEVEL_VERSION@.tar.gz +Copying-policy: GPL +End diff --git a/stepmake/make/stepmake.spec.in b/stepmake/make/stepmake.spec.in new file mode 100644 index 0000000000..ded7146fe6 --- /dev/null +++ b/stepmake/make/stepmake.spec.in @@ -0,0 +1,26 @@ +Name: @package@ +Version: @TOPLEVEL_VERSION@ +Release: 1 +Copyright: GPL +Group: Development +Source0: pcnov095.win.tue.nl:/pub/lilypond/development/@package@-@TOPLEVEL_VERSION@.tar.gz +Summary: generic make package +Packager: janneke@gnu.org (Jan Nieuwenhuizen) +Buildroot: /tmp/stepmake-install + +%description +@BLURB@ + +%prep +%setup +%build +./configure --prefix=/usr +make all +%install +rm -rf $RPM_BUILD_ROOT +make prefix="$RPM_BUILD_ROOT/usr" install +%files +# urg +/usr/bin/make-patch +%post + -- 2.39.5